use of org.netxms.nxmc.base.widgets.SortableTableViewer in project netxms by netxms.
the class PackageManager method createContent.
/**
* @see org.netxms.nxmc.base.views.View#createContent(org.eclipse.swt.widgets.Composite)
*/
@Override
protected void createContent(Composite parent) {
final String[] names = { i18n.tr("ID"), i18n.tr("Name"), i18n.tr("Type"), i18n.tr("Version"), i18n.tr("Platform"), i18n.tr("File"), i18n.tr("Command"), i18n.tr("Description") };
final int[] widths = { 70, 120, 100, 90, 120, 300, 300, 400 };
viewer = new SortableTableViewer(parent, names, widths, COLUMN_ID, SWT.UP, SWT.FULL_SELECTION | SWT.MULTI);
viewer.setContentProvider(new ArrayContentProvider());
viewer.setLabelProvider(new PackageLabelProvider());
viewer.setComparator(new PackageComparator());
createActions();
createPopupMenu();
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = viewer.getStructuredSelection();
actionEditMetadata.setEnabled(selection.size() == 1);
actionRemove.setEnabled(selection.size() > 0);
}
});
viewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
editPackageMetadata();
}
});
refresh();
}
use of org.netxms.nxmc.base.widgets.SortableTableViewer in project netxms by netxms.
the class BusinessServiceAvailabilityView method createContent.
/**
* @see org.netxms.nxmc.base.views.View#createContent(org.eclipse.swt.widgets.Composite)
*/
@Override
protected void createContent(Composite parent) {
session = Registry.getSession();
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
parent.setLayout(layout);
Composite queryGroup = new Composite(parent, SWT.NONE);
GridData gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
queryGroup.setLayoutData(gd);
layout = new GridLayout();
layout.numColumns = 2;
queryGroup.setLayout(layout);
Composite timeSelectorGroup = new Composite(queryGroup, SWT.NONE);
layout = new GridLayout();
layout.numColumns = 3;
layout.makeColumnsEqualWidth = false;
layout.marginWidth = 0;
layout.marginHeight = 0;
layout.horizontalSpacing = 30;
timeSelectorGroup.setLayout(layout);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.horizontalSpan = 2;
timeSelectorGroup.setLayoutData(gd);
startDateSelector = new DateTimeSelector(timeSelectorGroup, SWT.NONE);
Label label = new Label(timeSelectorGroup, SWT.CENTER);
label.setText("\u2015");
gd = new GridData();
gd.horizontalAlignment = SWT.CENTER;
gd.verticalAlignment = SWT.CENTER;
label.setLayoutData(gd);
endDateSelector = new DateTimeSelector(timeSelectorGroup, SWT.NONE);
Composite buttonGroup = new Composite(queryGroup, SWT.NONE);
layout = new GridLayout();
layout.numColumns = 6;
layout.makeColumnsEqualWidth = true;
layout.marginHeight = 0;
layout.marginWidth = 0;
buttonGroup.setLayout(layout);
gd = new GridData();
gd.horizontalAlignment = SWT.LEFT;
buttonGroup.setLayoutData(gd);
createQuickSetButton(buttonGroup, i18n.tr("Today"), new DateBuilder().setMidnight().create(), null);
createQuickSetButton(buttonGroup, i18n.tr("Yesterday"), new DateBuilder().setMidnight().add(Calendar.DATE, -1).create(), new DateBuilder().setMidnight().add(Calendar.SECOND, -1).create());
createQuickSetButton(buttonGroup, i18n.tr("This month"), new DateBuilder().set(Calendar.DAY_OF_MONTH, 1).setMidnight().create(), null);
createQuickSetButton(buttonGroup, i18n.tr("Last month"), new DateBuilder().add(Calendar.MONTH, -1).set(Calendar.DAY_OF_MONTH, 1).setMidnight().create(), new DateBuilder().add(Calendar.MONTH, -1).setLastDayOfMonth().setMidnight().add(Calendar.SECOND, -1).create());
createQuickSetButton(buttonGroup, i18n.tr("This year"), new DateBuilder().set(Calendar.DAY_OF_YEAR, 1).setMidnight().create(), null);
createQuickSetButton(buttonGroup, i18n.tr("Last year"), new DateBuilder().add(Calendar.YEAR, -1).set(Calendar.DAY_OF_YEAR, 1).setMidnight().create(), new DateBuilder().set(Calendar.DAY_OF_YEAR, 1).setMidnight().add(Calendar.SECOND, -1).create());
buttonQuery = new Button(queryGroup, SWT.PUSH);
buttonQuery.setText(i18n.tr("Query"));
buttonQuery.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
refresh();
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
widgetSelected(arg0);
}
});
gd = new GridData();
gd.widthHint = 200;
gd.horizontalAlignment = SWT.RIGHT;
buttonQuery.setLayoutData(gd);
Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
separator.setLayoutData(gd);
ChartConfiguration chartConfiguration = new ChartConfiguration();
chartConfiguration.setLegendVisible(true);
chartConfiguration.setLegendPosition(ChartConfiguration.POSITION_RIGHT);
chartConfiguration.setTranslucent(false);
chart = new Chart(parent, SWT.NONE, ChartType.PIE, chartConfiguration);
chart.setBackground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
chart.addParameter(new GraphItem(DataType.FLOAT, i18n.tr("Uptime"), i18n.tr("Uptime"), "%s"));
chart.addParameter(new GraphItem(DataType.FLOAT, i18n.tr("Downtime"), i18n.tr("Downtime"), "%s"));
chart.setPaletteEntry(0, new ChartColor(127, 154, 72));
chart.setPaletteEntry(1, new ChartColor(158, 65, 62));
chart.rebuild();
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessVerticalSpace = true;
gd.verticalAlignment = SWT.FILL;
chart.setLayoutData(gd);
separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
separator.setLayoutData(gd);
final String[] names = { i18n.tr("ID"), i18n.tr("Service"), i18n.tr("Check ID"), i18n.tr("Description"), i18n.tr("Created"), i18n.tr("Closed"), i18n.tr("Reason") };
final int[] widths = { 70, 200, 70, 300, 150, 150, 300 };
ticketViewer = new SortableTableViewer(parent, names, widths, 0, SWT.DOWN, SortableTableViewer.DEFAULT_STYLE);
ticketViewer.setContentProvider(new ArrayContentProvider());
ticketViewer.setLabelProvider(new BusinessServiceTicketLabelProvider());
ticketViewer.setComparator(new BusinessServiceTicketComparator());
WidgetHelper.restoreColumnSettings(ticketViewer.getTable(), ID);
ticketViewer.getTable().addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
WidgetHelper.saveColumnSettings(ticketViewer.getTable(), ID);
}
});
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessVerticalSpace = true;
gd.verticalAlignment = SWT.FILL;
ticketViewer.getTable().setLayoutData(gd);
}
use of org.netxms.nxmc.base.widgets.SortableTableViewer in project netxms by netxms.
the class AgentParameterComparator method compare.
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
int result;
AgentParameter p1 = (AgentParameter) e1;
AgentParameter p2 = (AgentParameter) e2;
switch(// $NON-NLS-1$
(Integer) ((SortableTableViewer) viewer).getTable().getSortColumn().getData("ID")) {
case AbstractSelectParamDlg.COLUMN_NAME:
result = p1.getName().compareToIgnoreCase(p2.getName());
break;
case AbstractSelectParamDlg.COLUMN_TYPE:
result = DataCollectionDisplayInfo.getDataTypeName(p1.getDataType()).compareTo(DataCollectionDisplayInfo.getDataTypeName(p2.getDataType()));
break;
case AbstractSelectParamDlg.COLUMN_DESCRIPTION:
result = p1.getDescription().compareToIgnoreCase(p2.getDescription());
break;
default:
result = 0;
break;
}
return (((SortableTableViewer) viewer).getTable().getSortDirection() == SWT.UP) ? result : -result;
}
use of org.netxms.nxmc.base.widgets.SortableTableViewer in project netxms by netxms.
the class AgentTableComparator method compare.
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
int result;
AgentTable p1 = (AgentTable) e1;
AgentTable p2 = (AgentTable) e2;
switch(// $NON-NLS-1$
(Integer) ((SortableTableViewer) viewer).getTable().getSortColumn().getData("ID")) {
case AbstractSelectParamDlg.COLUMN_NAME:
result = p1.getName().compareToIgnoreCase(p2.getName());
break;
case AbstractSelectParamDlg.COLUMN_TYPE:
result = p1.getInstanceColumnsAsList().compareToIgnoreCase(p2.getInstanceColumnsAsList());
break;
case AbstractSelectParamDlg.COLUMN_DESCRIPTION:
result = p1.getDescription().compareToIgnoreCase(p2.getDescription());
break;
default:
result = 0;
break;
}
return (((SortableTableViewer) viewer).getTable().getSortDirection() == SWT.UP) ? result : -result;
}
use of org.netxms.nxmc.base.widgets.SortableTableViewer in project netxms by netxms.
the class AlarmStateChangeFailureDialog method createDialogArea.
/**
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createDialogArea(Composite parent) {
Composite dialogArea = (Composite) super.createDialogArea(parent);
GridLayout layout = new GridLayout();
layout.marginWidth = WidgetHelper.DIALOG_WIDTH_MARGIN;
layout.marginHeight = WidgetHelper.DIALOG_HEIGHT_MARGIN;
layout.verticalSpacing = WidgetHelper.DIALOG_SPACING;
dialogArea.setLayout(layout);
Label text = new Label(dialogArea, SWT.NONE);
text.setText(i18n.tr("State of some alarms was not changed due to following reasons:"));
final String[] names = { i18n.tr("ID"), i18n.tr("Reason") };
final int[] widths = { 80, 250 };
alarmList = new SortableTableViewer(dialogArea, names, widths, 0, SWT.UP, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL);
alarmList.setContentProvider(new MapContentProvider());
alarmList.setLabelProvider(new FailuresLabelProvider());
alarmList.setInput(failures);
GridData gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.verticalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
gd.grabExcessVerticalSpace = true;
gd.heightHint = 350;
alarmList.getTable().setLayoutData(gd);
return dialogArea;
}
Aggregations