Search in sources :

Example 1 with SortableTableViewer

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();
}
Also used : PackageComparator(org.netxms.nxmc.modules.agentmanagement.views.helpers.PackageComparator) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) SortableTableViewer(org.netxms.nxmc.base.widgets.SortableTableViewer) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) PackageLabelProvider(org.netxms.nxmc.modules.agentmanagement.views.helpers.PackageLabelProvider) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider)

Example 2 with SortableTableViewer

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);
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) Composite(org.eclipse.swt.widgets.Composite) ChartConfiguration(org.netxms.client.datacollection.ChartConfiguration) DateBuilder(org.netxms.nxmc.tools.DateBuilder) Label(org.eclipse.swt.widgets.Label) SortableTableViewer(org.netxms.nxmc.base.widgets.SortableTableViewer) DateTimeSelector(org.netxms.nxmc.base.widgets.DateTimeSelector) DisposeEvent(org.eclipse.swt.events.DisposeEvent) BusinessServiceTicketComparator(org.netxms.nxmc.modules.businessservice.views.helpers.BusinessServiceTicketComparator) BusinessServiceTicketLabelProvider(org.netxms.nxmc.modules.businessservice.views.helpers.BusinessServiceTicketLabelProvider) ChartColor(org.netxms.nxmc.modules.charts.api.ChartColor) GridLayout(org.eclipse.swt.layout.GridLayout) Button(org.eclipse.swt.widgets.Button) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) GraphItem(org.netxms.client.datacollection.GraphItem) Chart(org.netxms.nxmc.modules.charts.widgets.Chart) SelectionListener(org.eclipse.swt.events.SelectionListener)

Example 3 with SortableTableViewer

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;
}
Also used : SortableTableViewer(org.netxms.nxmc.base.widgets.SortableTableViewer) AgentParameter(org.netxms.client.AgentParameter)

Example 4 with SortableTableViewer

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;
}
Also used : AgentTable(org.netxms.client.AgentTable) SortableTableViewer(org.netxms.nxmc.base.widgets.SortableTableViewer)

Example 5 with SortableTableViewer

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;
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) Composite(org.eclipse.swt.widgets.Composite) Label(org.eclipse.swt.widgets.Label) GridData(org.eclipse.swt.layout.GridData) SortableTableViewer(org.netxms.nxmc.base.widgets.SortableTableViewer)

Aggregations

SortableTableViewer (org.netxms.nxmc.base.widgets.SortableTableViewer)82 ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)56 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)36 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)36 DoubleClickEvent (org.eclipse.jface.viewers.DoubleClickEvent)32 IDoubleClickListener (org.eclipse.jface.viewers.IDoubleClickListener)32 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)32 Composite (org.eclipse.swt.widgets.Composite)32 GridData (org.eclipse.swt.layout.GridData)31 GridLayout (org.eclipse.swt.layout.GridLayout)31 SelectionEvent (org.eclipse.swt.events.SelectionEvent)23 Button (org.eclipse.swt.widgets.Button)23 DisposeEvent (org.eclipse.swt.events.DisposeEvent)21 DisposeListener (org.eclipse.swt.events.DisposeListener)21 RowLayout (org.eclipse.swt.layout.RowLayout)20 SelectionListener (org.eclipse.swt.events.SelectionListener)18 RowData (org.eclipse.swt.layout.RowData)18 Event (org.eclipse.swt.widgets.Event)9 Label (org.eclipse.swt.widgets.Label)9 SessionListener (org.netxms.client.SessionListener)8