/*******************************************************************************
* Copyright (c) 2016 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.openshift.internal.ui.property.tabbed;
import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.jboss.tools.openshift.internal.common.ui.utils.TableViewerBuilder;
import org.jboss.tools.openshift.internal.common.ui.utils.TableViewerBuilder.ICellToolTipProvider;
import org.jboss.tools.openshift.internal.ui.models.IResourceWrapper;
import com.openshift.restclient.ResourceKind;
import com.openshift.restclient.model.IEvent;
/**
* Tabbed property section for displaying Events.
*
* @author jeff.cantrill
*
*/
public class EventsPropertySection extends OpenShiftResourcePropertySection {
public EventsPropertySection() {
super("popup:org.jboss.tools.openshift.ui.properties.tab.EventsTab", ResourceKind.EVENT);
}
@Override
protected void setSorter(TableViewerBuilder tableViewerBuilder) {
tableViewerBuilder.sorter(createCreationTimestampSorter(true));
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void addColumns(TableViewerBuilder tableViewerBuilder) {
addCreatedColumn(tableViewerBuilder);
ICellToolTipProvider toolTipProvider = new ICellToolTipProvider() {
@Override
public String getToolTipText(Object object) {
if(object instanceof IResourceWrapper && ((IResourceWrapper) object).getWrapped() instanceof IEvent) {
return ((IEvent)((IResourceWrapper) object).getWrapped()).getMessage();
}
return null;
}
@Override
public int getToolTipDisplayDelayTime(Object event) {
return 0;
}
};
tableViewerBuilder
//name
.column(model -> StringUtils.substringBefore(getResource(model).getName(),".")).name("Name").align(SWT.LEFT).weight(1)
.minWidth(15)
.cellToolTipProvider(toolTipProvider)
.buildColumn()
//kind
.column(model -> ((IEvent)getResource(model)).getInvolvedObject().getKind()).name("Kind").align(SWT.LEFT).weight(1).minWidth(5)
.cellToolTipProvider(toolTipProvider)
.buildColumn()
//reason
.column(model -> ((IEvent)getResource(model)).getReason()).name("Reason").align(SWT.LEFT).weight(1).minWidth(5)
.cellToolTipProvider(toolTipProvider)
.buildColumn();
}
}