Example usage for org.eclipse.jface.viewers ViewerComparator ViewerComparator

List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerComparator ViewerComparator.

Prototype

public ViewerComparator() 

Source Link

Document

Creates a new ViewerComparator , which uses the default comparator to sort strings.

Usage

From source file:de.tub.tfs.henshin.editor.ui.dialog.resources.ResourceSelectionGroup.java

License:Open Source License

/**
 * Returns a new drill down viewer for this dialog.
 * //w w  w.j  a  va 2s. c  om
 * @param heightHint
 *            height hint for the drill down composite
 * @param widthHint
 *            the width hint
 */
protected void createTreeViewer(int heightHint, int widthHint) {
    GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
    spec.widthHint = widthHint;
    spec.heightHint = heightHint;

    DrillDownComposite drillDown = new DrillDownComposite(this, SWT.NONE);
    drillDown.setLayoutData(spec);

    // Create tree viewer inside drill down.
    treeViewer = new TreeViewer(drillDown, SWT.BORDER);

    drillDown.setChildTree(treeViewer);

    treeViewer.setContentProvider(new ResourceContentProvider(validator));
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new ViewerComparator());
    treeViewer.setUseHashlookup(true);
    treeViewer.addSelectionChangedListener(this);
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();
                if (item == null) {
                    return;
                }
                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    // This has to be done after the viewer has been laid out
    treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
}

From source file:de.tub.tfs.henshin.tggeditor.dialogs.resource.ResourceSelectionGroup.java

License:Open Source License

/**
 * Returns a new drill down viewer for this dialog.
 *
 * @param heightHint height hint for the drill down composite
 * @param widthHint the width hint/*from w ww  . j av  a 2  s.  c om*/
 */
protected void createTreeViewer(int heightHint, int widthHint) {
    GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
    spec.widthHint = widthHint;
    spec.heightHint = heightHint;

    DrillDownComposite drillDown = new DrillDownComposite(this, SWT.NONE);
    drillDown.setLayoutData(spec);

    // Create tree viewer inside drill down.
    treeViewer = new TreeViewer(drillDown, SWT.BORDER);

    drillDown.setChildTree(treeViewer);

    treeViewer.setContentProvider(new ResourceContentProvider(validator));
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new ViewerComparator());
    treeViewer.setUseHashlookup(true);
    treeViewer.addSelectionChangedListener(this);
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();
                if (item == null) {
                    return;
                }
                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    // This has to be done after the viewer has been laid out
    treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
}

From source file:de.walware.docmlet.tex.internal.ui.preferences.TexCodeStylePreferenceBlock.java

License:Open Source License

private Control createIndentControls(final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(LayoutUtil.applyTabDefaults(new GridLayout(), 2));

    fStdIndentSettings.createControls(composite);
    LayoutUtil.addSmallFiller(composite, false);

    final Composite depthComposite = new Composite(composite, SWT.NONE);
    depthComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    depthComposite.setLayout(LayoutUtil.applyCompositeDefaults(new GridLayout(), 4));
    fIndentBlockDepthControl = createIndentDepthLine(depthComposite,
            Messages.CodeStyle_Indent_IndentInBlocks_label);
    fIndentEnvDepthControl = createIndentDepthLine(depthComposite,
            Messages.CodeStyle_Indent_IndentInEnvs_label);

    {// www .jav a 2s .  com
        final Label label = new Label(depthComposite, SWT.NONE);
        final GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false, 4, 1);
        gd.horizontalIndent = LayoutUtil.defaultIndent();
        label.setLayoutData(gd);
        label.setText("Environments to be indented:");
    }
    fIndentEnvLabelsControl = new EditableTextList();
    {
        final Control control = fIndentEnvLabelsControl.create(depthComposite, new ViewerComparator());
        final GridData gd = new GridData(SWT.FILL, SWT.FILL, false, true, 3, 1);
        gd.horizontalIndent = LayoutUtil.defaultIndent();
        control.setLayoutData(gd);
        LayoutUtil.addGDDummy(depthComposite, true);
    }
    fIndentEnvLabelsControl.getColumn().setEditingSupport(new LabelEditing(fIndentEnvLabelsControl));

    LayoutUtil.addSmallFiller(depthComposite, false);

    LayoutUtil.addSmallFiller(composite, false);
    return composite;
}

From source file:de.walware.statet.base.internal.ui.preferences.TaskTagsConfigurationBlock.java

License:Open Source License

protected Composite createTable(final Composite parent) {
    final TableComposite composite = new ViewerUtil.TableComposite(parent,
            SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    this.listViewer = composite.viewer;
    composite.table.setHeaderVisible(true);
    composite.table.setLinesVisible(true);

    final PixelConverter conv = new PixelConverter(composite.table);

    {//from   w ww.  j  a va2 s . co m
        final TableViewerColumn column = new TableViewerColumn(composite.viewer, SWT.LEFT);
        composite.layout.setColumnData(column.getColumn(), new ColumnWeightData(1));
        column.getColumn().setText(Messages.TaskTags_TaskColumn_name);
        column.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public Image getImage(final Object element) {
                final TaskTag tag = (TaskTag) element;
                return (isDefaultTask(tag)) ? TaskTagsConfigurationBlock.this.taskDefaultIcon
                        : TaskTagsConfigurationBlock.this.taskIcon;
            }

            @Override
            public String getText(final Object element) {
                final TaskTag tag = (TaskTag) element;
                return tag.getKeyword();
            }
        });
    }
    {
        final TableViewerColumn column = new TableViewerColumn(composite.viewer, SWT.LEFT);
        int priorityWidth = Messages.TaskTags_PriorityColumn_name.length();
        priorityWidth = Math.max(priorityWidth, StatetMessages.TaskPriority_High.length());
        priorityWidth = Math.max(priorityWidth, StatetMessages.TaskPriority_Normal.length());
        priorityWidth = Math.max(priorityWidth, StatetMessages.TaskPriority_Low.length());
        priorityWidth = conv.convertWidthInCharsToPixels(priorityWidth) + conv.convertHorizontalDLUsToPixels(5);
        composite.layout.setColumnData(column.getColumn(), new ColumnPixelData(priorityWidth, false, true));

        column.getColumn().setText(Messages.TaskTags_PriorityColumn_name);
        column.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public String getText(final Object element) {
                final TaskTag task = (TaskTag) element;
                switch (task.getPriority()) {
                case HIGH:
                    return StatetMessages.TaskPriority_High;
                case NORMAL:
                    return StatetMessages.TaskPriority_Normal;
                case LOW:
                    return StatetMessages.TaskPriority_Low;
                default:
                    return ""; //$NON-NLS-1$
                }
            }
        });
    }

    composite.viewer.setContentProvider(new ArrayContentProvider());
    // Sorter
    composite.viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            return getComparator().compare(((TaskTag) e1).getKeyword(), ((TaskTag) e2).getKeyword());
        }
    });
    return composite;
}

From source file:de.walware.statet.r.internal.debug.ui.preferences.REnvPreferencePage.java

License:Open Source License

private Composite createTable(final Composite parent) {
    final TableComposite composite = new ViewerUtil.TableComposite(parent,
            SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL);
    fListViewer = composite.viewer;/*from   w  w  w . j ava 2 s  .c o m*/
    composite.table.setHeaderVisible(true);
    composite.table.setLinesVisible(true);

    {
        final TableViewerColumn column = new TableViewerColumn(composite.viewer, SWT.NONE);
        composite.layout.setColumnData(column.getColumn(), new ColumnWeightData(1));
        column.getColumn().setText(Messages.REnv_NameColumn_name);
        column.setLabelProvider(new REnvLabelProvider(fDefault));
    }

    {
        final TableViewerColumn column = new TableViewerColumn(composite.viewer, SWT.NONE);
        composite.layout.setColumnData(column.getColumn(), new ColumnWeightData(1));
        column.getColumn().setText(Messages.REnv_LocationColumn_name);
        column.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public Image getImage(final Object element) {
                return super.getImage(element);
            }

            @Override
            public String getText(final Object element) {
                final IREnvConfiguration config = (IREnvConfiguration) element;
                if (config.getType() == IREnvConfiguration.USER_LOCAL_TYPE) {
                    return config.getRHome();
                }
                if (config.getType() == IREnvConfiguration.EPLUGIN_LOCAL_TYPE) {
                    return "<embedded>";
                }
                return ""; //$NON-NLS-1$
            }
        });
    }

    composite.viewer.setContentProvider(new ArrayContentProvider());
    // Sorter
    composite.viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            return getComparator().compare(((IREnvConfiguration) e1).getName(),
                    ((IREnvConfiguration) e2).getName());
        }
    });

    return composite;
}

From source file:e4.handler.E4TemplatePreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite ancestor) {
    Composite parent = new Composite(ancestor, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;/*ww  w.  jav  a  2 s .  com*/
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    parent.setLayout(layout);

    Composite innerParent = new Composite(parent, SWT.NONE);
    GridLayout innerLayout = new GridLayout();
    innerLayout.numColumns = 2;
    innerLayout.marginHeight = 0;
    innerLayout.marginWidth = 0;
    innerParent.setLayout(innerLayout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    innerParent.setLayoutData(gd);

    Composite tableComposite = new Composite(innerParent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 360;
    data.heightHint = convertHeightInCharsToPixels(10);
    tableComposite.setLayoutData(data);

    ColumnLayout columnLayout = new ColumnLayout();
    tableComposite.setLayout(columnLayout);
    Table table = new Table(tableComposite,
            SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    GC gc = new GC(getShell());
    gc.setFont(JFaceResources.getDialogFont());

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText(TemplatesMessages.TemplatePreferencePage_column_name);
    int minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_name);
    columnLayout.addColumnData(new ColumnWeightData(2, minWidth, true));

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(TemplatesMessages.TemplatePreferencePage_column_context);
    minWidth = computeMinimumContextColumnWidth(gc);
    columnLayout.addColumnData(new ColumnWeightData(1, minWidth, true));

    TableColumn column3 = new TableColumn(table, SWT.NONE);
    column3.setText(TemplatesMessages.TemplatePreferencePage_column_description);
    minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_description);
    columnLayout.addColumnData(new ColumnWeightData(3, minWidth, true));

    TableColumn column4 = new TableColumn(table, SWT.NONE);
    column4.setAlignment(SWT.CENTER);
    column4.setText(TemplatesMessages.TemplatePreferencePage_column_autoinsert);
    minWidth = computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_column_autoinsert);
    minWidth = Math.max(minWidth, computeMinimumColumnWidth(gc, TemplatesMessages.TemplatePreferencePage_on));
    columnLayout.addColumnData(new ColumnPixelData(minWidth, false, false));

    gc.dispose();

    fTableViewer = new CheckboxTableViewer(table);
    fTableViewer.setLabelProvider(new TemplateLabelProvider());
    fTableViewer.setContentProvider(new TemplateContentProvider());

    fTableViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object object1, Object object2) {
            if ((object1 instanceof TemplatePersistenceData) && (object2 instanceof TemplatePersistenceData)) {
                Template left = ((TemplatePersistenceData) object1).getTemplate();
                Template right = ((TemplatePersistenceData) object2).getTemplate();
                int result = Collator.getInstance().compare(left.getName(), right.getName());
                if (result != 0)
                    return result;
                return Collator.getInstance().compare(left.getDescription(), right.getDescription());
            }
            return super.compare(viewer, object1, object2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });

    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            edit();
        }
    });

    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            selectionChanged1();
        }
    });

    fTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            TemplatePersistenceData d = (TemplatePersistenceData) event.getElement();
            d.setEnabled(event.getChecked());
        }
    });

    BidiUtils.applyTextDirection(fTableViewer.getControl(), BidiUtils.BTD_DEFAULT);

    Composite buttons = new Composite(innerParent, SWT.NONE);
    buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttons.setLayout(layout);

    fAddButton = new Button(buttons, SWT.PUSH);
    fAddButton.setText(TemplatesMessages.TemplatePreferencePage_new);
    fAddButton.setLayoutData(getButtonGridData(fAddButton));
    fAddButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            add();
        }
    });

    fEditButton = new Button(buttons, SWT.PUSH);
    fEditButton.setText(TemplatesMessages.TemplatePreferencePage_edit);
    fEditButton.setLayoutData(getButtonGridData(fEditButton));
    fEditButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            edit();
        }
    });

    fRemoveButton = new Button(buttons, SWT.PUSH);
    fRemoveButton.setText(TemplatesMessages.TemplatePreferencePage_remove);
    fRemoveButton.setLayoutData(getButtonGridData(fRemoveButton));
    fRemoveButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            remove();
        }
    });

    createSeparator(buttons);

    fRestoreButton = new Button(buttons, SWT.PUSH);
    fRestoreButton.setText(TemplatesMessages.TemplatePreferencePage_restore);
    fRestoreButton.setLayoutData(getButtonGridData(fRestoreButton));
    fRestoreButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            restoreDeleted();
        }
    });

    fRevertButton = new Button(buttons, SWT.PUSH);
    fRevertButton.setText(TemplatesMessages.TemplatePreferencePage_revert);
    fRevertButton.setLayoutData(getButtonGridData(fRevertButton));
    fRevertButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            revert();
        }
    });

    createSeparator(buttons);

    fImportButton = new Button(buttons, SWT.PUSH);
    fImportButton.setText(TemplatesMessages.TemplatePreferencePage_import);
    fImportButton.setLayoutData(getButtonGridData(fImportButton));
    fImportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            import_();
        }
    });

    fExportButton = new Button(buttons, SWT.PUSH);
    fExportButton.setText(TemplatesMessages.TemplatePreferencePage_export);
    fExportButton.setLayoutData(getButtonGridData(fExportButton));
    fExportButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            export();
        }
    });

    fPatternViewer = doCreateViewer(parent);

    if (isShowFormatterSetting()) {
        fFormatButton = new Button(parent, SWT.CHECK);
        fFormatButton.setText(TemplatesMessages.TemplatePreferencePage_use_code_formatter);
        GridData gd1 = new GridData();
        gd1.horizontalSpan = 2;
        fFormatButton.setLayoutData(gd1);
        fFormatButton.setSelection(getPreferenceStore().getBoolean(getFormatterPreferenceKey()));
    }

    fTableViewer.setInput(fTemplateStore);
    fTableViewer.setAllChecked(false);
    fTableViewer.setCheckedElements(getEnabledTemplates());

    updateButtons();
    Dialog.applyDialogFont(parent);
    innerParent.layout();

    return parent;
}

From source file:edu.washington.cs.cupid.views.BulletinBoardView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {

    provider = new ViewContentProvider(CupidPlatform.getCapabilityRegistry());

    panel = new Composite(parent, SWT.NONE);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;/*from  w  w w  . j  a  va 2  s.c o  m*/
    panel.setLayout(gridLayout);
    panel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    search = new Text(panel, SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
    search.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    search.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            viewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
                @Override
                public boolean select(Viewer viewer, Object parentElement, Object element) {

                    if (element instanceof ICapability) {
                        final String query = search.getText();
                        ICapability capability = (ICapability) element;

                        return query.isEmpty() || isMatch(query, capability.getName())
                                || isMatch(query, capability.getDescription());
                    } else {
                        return true;
                    }
                }
            } });
        }
    });

    viewer = new TreeViewer(panel, SWT.SINGLE | SWT.V_SCROLL);
    viewer.setContentProvider(provider);
    viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    final TreeViewerColumn nameColumn = createColumn("Name", 100, 0);
    nameColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof ICapability) {
                return ((ICapability) element).getName();
            } else if (element instanceof ICapability.IParameter) {
                return ((ICapability.IParameter<?>) element).getName();
            } else if (element instanceof ICapability.IOutput) {
                return ((ICapability.IOutput<?>) element).getName();
            } else {
                throw new RuntimeException("Unexpected tree entry of type " + element.getClass());
            }
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof ICapability) {
                return null;
            } else if (element instanceof ICapability.IParameter) {
                return ((ICapability.IParameter<?>) element).hasDefault() ? ICON_OPTION : ICON_INPUT;
            } else if (element instanceof ICapability.IOutput) {
                return ICON_OUTPUT;
            } else {
                throw new RuntimeException("Unexpected tree entry of type " + element.getClass());
            }
        }
    });

    final TreeViewerColumn descriptionColumn = createColumn("Description", 200, 1);
    descriptionColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof ICapability) {
                return ((ICapability) element).getDescription();
            } else if (element instanceof ICapability.IParameter) {
                return null;
            } else if (element instanceof ICapability.IOutput) {
                return null;
            } else {
                throw new RuntimeException("Unexpected tree entry of type " + element.getClass());
            }
        }
    });

    final TreeViewerColumn inputColumn = createColumn("Input", 100, 2);
    inputColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof ICapability) {
                ICapability c = (ICapability) element;

                if (CapabilityUtil.isUnary(c)) {
                    return TypeManager.simpleTypeName(CapabilityUtil.unaryParameter(c).getType());
                } else {
                    return null;
                }
            } else if (element instanceof ICapability.IParameter) {
                return TypeManager.simpleTypeName(((ICapability.IParameter<?>) element).getType());
            } else if (element instanceof ICapability.IOutput) {
                return null;
            } else {
                throw new RuntimeException("Unexpected tree entry of type " + element.getClass());
            }
        }
    });

    final TreeViewerColumn outputColumn = createColumn("Output", 100, 2);
    outputColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof ICapability) {
                ICapability c = (ICapability) element;

                if (CapabilityUtil.hasSingleOutput(c)) {
                    return TypeManager.simpleTypeName((CapabilityUtil.singleOutput(c).getType()));
                } else {
                    return null;
                }
            } else if (element instanceof ICapability.IParameter) {
                return null;
            } else if (element instanceof ICapability.IOutput) {
                return TypeManager.simpleTypeName(((ICapability.IOutput<?>) element).getType());
            } else {
                throw new RuntimeException("Unexpected tree entry of type " + element.getClass());
            }
        }
    });

    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(1));
    layout.addColumnData(new ColumnWeightData(4));
    layout.addColumnData(new ColumnWeightData(1));
    layout.addColumnData(new ColumnWeightData(1));
    viewer.getTree().setLayout(layout);
    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(true);
    viewer.setInput(getViewSite());

    // sort table by capability name
    viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer context, final Object lhs, final Object rhs) {
            if (lhs instanceof ICapability && rhs instanceof ICapability) {
                return CapabilityUtil.COMPARE_NAME.compare((ICapability) lhs, (ICapability) rhs);
            } else {
                return 0;
            }
        }
    });

    MenuManager menuManager = new MenuManager();
    menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    viewer.getTree().setMenu(menuManager.createContextMenu(viewer.getTree()));

    getSite().registerContextMenu(menuManager, viewer);
    getSite().setSelectionProvider(viewer);
}

From source file:es.cv.gvcase.emf.ui.common.dialogs.SelectMultipleValuesDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite contents = (Composite) super.createDialogArea(parent);

    GridLayout contentsGridLayout = (GridLayout) contents.getLayout();
    contentsGridLayout.numColumns = 3;//  w  w  w. ja  v a2 s  . c  o  m

    GridData contentsGridData = (GridData) contents.getLayoutData();
    contentsGridData.horizontalAlignment = SWT.FILL;
    contentsGridData.verticalAlignment = SWT.FILL;

    Composite choiceComposite = new Composite(contents, SWT.NONE);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.horizontalAlignment = SWT.END;
    choiceComposite.setLayoutData(data);
    GridLayout layout = new GridLayout();
    data.horizontalAlignment = SWT.FILL;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.numColumns = 1;
    choiceComposite.setLayout(layout);

    Label choiceLabel = new Label(choiceComposite, SWT.NONE);
    choiceLabel.setText("Available values:");
    data = new GridData();
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    choiceLabel.setLayoutData(data);

    Composite filterGroupComposite = new Composite(choiceComposite, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    filterGroupComposite.setLayout(layout);
    data = new GridData(SWT.FILL, SWT.DEFAULT, true, false, 3, 1);
    filterGroupComposite.setLayoutData(data);

    Label label = new Label(filterGroupComposite, SWT.NONE);
    label.setText("Filter " + EMFEditUIPlugin.INSTANCE.getString("_UI_Choices_pattern_label"));

    Text patternText = new Text(filterGroupComposite, SWT.BORDER);
    patternText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    Table choiceTable = new Table(choiceComposite, SWT.MULTI | SWT.BORDER);
    data = new GridData();
    data.widthHint = Display.getCurrent().getBounds().width / 10;
    data.heightHint = Display.getCurrent().getBounds().height / 6;
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    choiceTable.setLayoutData(data);

    final TableViewer choiceTableViewer = new TableViewer(choiceTable);
    choiceTableViewer.setContentProvider(new AdapterFactoryContentProvider(new AdapterFactoryImpl()));
    choiceTableViewer.setLabelProvider(labelProvider);
    final PatternFilter filter = new PatternFilter() {
        @Override
        protected boolean isParentMatch(Viewer viewer, Object element) {
            return viewer instanceof AbstractTreeViewer && super.isParentMatch(viewer, element);
        }
    };
    choiceTableViewer.addFilter(filter);
    patternText.addListener(SWT.Modify, new Listener() {
        public void handleEvent(final Event e) {
            ISWTUpdater updater = new ISWTUpdater() {
                public void execute() {
                    filter.setPattern(((Text) e.widget).getText());
                    choiceTableViewer.refresh();
                }
            };
            searchAsynchUpdater.addExecution(e, updater);
        }
    });
    choiceTableViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            String s1 = SelectMultipleValuesDialog.this.labelProvider.getText(e1);
            String s2 = SelectMultipleValuesDialog.this.labelProvider.getText(e2);
            return s1.compareToIgnoreCase(s2);
        }
    });
    choiceTableViewer.setInput(choices);

    Composite controlButtons = new Composite(contents, SWT.NONE);
    data = new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_FILL);
    controlButtons.setLayoutData(data);

    layout = new GridLayout();
    controlButtons.setLayout(layout);

    new Label(controlButtons, SWT.NONE);

    final Button addButton = new Button(controlButtons, SWT.PUSH);
    addButton.setText(EMFEditUIPlugin.INSTANCE.getString("_UI_Add_label"));
    data = new GridData();
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    addButton.setLayoutData(data);

    final Button removeButton = new Button(controlButtons, SWT.PUSH);
    removeButton.setText(EMFEditUIPlugin.INSTANCE.getString("_UI_Remove_label"));
    data = new GridData();
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    removeButton.setLayoutData(data);

    Label spaceLabel = new Label(controlButtons, SWT.NONE);
    data = new GridData();
    data.verticalSpan = 2;
    spaceLabel.setLayoutData(data);

    final Button upButton = new Button(controlButtons, SWT.PUSH);
    upButton.setText(EMFEditUIPlugin.INSTANCE.getString("_UI_Up_label"));
    data = new GridData();
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    upButton.setLayoutData(data);

    Button downButton = new Button(controlButtons, SWT.PUSH);
    downButton.setText(EMFEditUIPlugin.INSTANCE.getString("_UI_Down_label"));
    data = new GridData();
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    downButton.setLayoutData(data);

    Composite featureComposite = new Composite(contents, SWT.NONE);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.horizontalAlignment = SWT.END;
    featureComposite.setLayoutData(data);
    layout = new GridLayout();
    data.horizontalAlignment = SWT.FILL;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.numColumns = 1;
    featureComposite.setLayout(layout);

    Label featureLabel = new Label(featureComposite, SWT.NONE);
    featureLabel.setText("Selected values:");
    data = new GridData();
    data.horizontalSpan = 2;
    data.horizontalAlignment = SWT.FILL;
    data.verticalAlignment = SWT.FILL;
    featureLabel.setLayoutData(data);

    Table featureTable = new Table(featureComposite, SWT.MULTI | SWT.BORDER);
    data = new GridData();
    data.widthHint = Display.getCurrent().getBounds().width / 10;
    data.heightHint = Display.getCurrent().getBounds().height / 6;
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    featureTable.setLayoutData(data);

    final TableViewer featureTableViewer = new TableViewer(featureTable);
    featureTableViewer.setContentProvider(contentProvider);
    featureTableViewer.setLabelProvider(labelProvider);
    featureTableViewer.setInput(values);
    if (!values.getChildren().isEmpty()) {
        featureTableViewer.setSelection(new StructuredSelection(values.getChildren().get(0)));
    }

    choiceTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (addButton.isEnabled()) {
                addButton.notifyListeners(SWT.Selection, null);
            }
        }
    });

    featureTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (removeButton.isEnabled()) {
                removeButton.notifyListeners(SWT.Selection, null);
            }
        }
    });

    upButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) featureTableViewer.getSelection();
            int minIndex = 0;
            for (Iterator<?> i = selection.iterator(); i.hasNext();) {
                Object value = i.next();
                int index = values.getChildren().indexOf(value);
                values.getChildren().move(Math.max(index - 1, minIndex++), value);
            }
        }
    });

    downButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) featureTableViewer.getSelection();
            int maxIndex = values.getChildren().size() - selection.size();
            for (Iterator<?> i = selection.iterator(); i.hasNext();) {
                Object value = i.next();
                int index = values.getChildren().indexOf(value);
                values.getChildren().move(Math.min(index + 1, maxIndex++), value);
            }
        }
    });

    addButton.addSelectionListener(new SelectionAdapter() {
        // event is null when choiceTableViewer is double clicked
        @Override
        public void widgetSelected(SelectionEvent event) {
            Object value = null;
            IStructuredSelection selection = (IStructuredSelection) choiceTableViewer.getSelection();
            for (Iterator<?> i = selection.iterator(); i.hasNext();) {
                value = i.next();
                if (!values.getChildren().contains(value)) {
                    values.getChildren().add(value);
                    choices.getChildren().remove(value);
                }
            }
            choiceTableViewer.refresh();
            featureTableViewer.refresh();
            if (value != null) {
                featureTableViewer.setSelection(new StructuredSelection(value));
            }
        }
    });

    removeButton.addSelectionListener(new SelectionAdapter() {
        // event is null when featureTableViewer is double clicked
        @Override
        public void widgetSelected(SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) featureTableViewer.getSelection();
            Object firstValue = null;
            for (Iterator<?> i = selection.iterator(); i.hasNext();) {
                Object value = i.next();
                if (firstValue == null) {
                    firstValue = value;
                }
                values.getChildren().remove(value);
                choices.getChildren().add(value);
            }

            choiceTableViewer.refresh();
            if (!values.getChildren().isEmpty()) {
                featureTableViewer.setSelection(new StructuredSelection(values.getChildren().get(0)));
            }

            choiceTableViewer.setSelection(selection);
        }
    });

    return contents;
}

From source file:eu.esdihumboldt.hale.io.gml.ui.RootElementPage.java

License:Open Source License

/**
 * @see HaleWizardPage#createContent(Composite)
 *///from  w ww. j a v a 2s.co  m
@Override
protected void createContent(Composite page) {
    page.setLayout(new GridLayout(1, false));

    // add filter text
    filterText = new Text(page, SWT.SINGLE | SWT.BORDER);
    filterText.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    filterText.setText(""); //$NON-NLS-1$

    // add filtered list
    list = new ListViewer(page, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    list.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof XmlElement) {
                QName name = ((XmlElement) element).getName();

                return name.getLocalPart() + " (" + name.getNamespaceURI() + ")";
            }
            if (element instanceof Definition) {
                return ((Definition<?>) element).getDisplayName();
            }
            return super.getText(element);
        }

    });
    list.setContentProvider(ArrayContentProvider.getInstance());
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
    layoutData.widthHint = SWT.DEFAULT;
    layoutData.heightHint = 8 * list.getList().getItemHeight();
    list.getControl().setLayoutData(layoutData);

    // page status update
    list.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            setPageComplete(!selection.isEmpty());
        }
    });

    list.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            if (canFlipToNextPage()) {
                getContainer().showPage(getNextPage());
                return;
            }
        }
    });

    // search filter & update
    list.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            String filter = filterText.getText();
            // handle empty filter
            if (filter == null || filter.isEmpty()) {
                return true;
            }

            if (element instanceof Definition) {
                Definition<?> def = (Definition<?>) element;
                filter = filter.toLowerCase();

                if (def.getDisplayName().toLowerCase().contains(filter)) {
                    return true;
                }
            }

            return false;
        }
    });
    list.setComparator(new ViewerComparator());
    filterText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            // refilter
            list.refresh();
        }
    });

    updateList();
}

From source file:eu.esdihumboldt.hale.ui.instancevalidation.report.InstanceValidationReportDetailsPage.java

License:Open Source License

/**
 * @see CustomReportDetailsPage#createControls(Composite)
 *///from ww  w. j  a  v  a 2  s . com
@Override
public Control createControls(Composite parent) {
    // filtered tree sets itself GridData, so set layout to gridlayout
    parent.setLayout(GridLayoutFactory.fillDefaults().create());

    // create pattern filter for FilteredTree
    PatternFilter filter = new TreePathPatternFilter();
    filter.setIncludeLeadingWildcard(true);

    // create FilteredTree
    FilteredTree filteredTree = new TreePathFilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL,
            filter, true);

    treeViewer = filteredTree.getViewer();

    // set content provider
    contentProvider = new InstanceValidationReportDetailsContentProvider();
    treeViewer.setContentProvider(contentProvider);

    // set label provider
    treeViewer.setLabelProvider(new InstanceValidationReportDetailsLabelProvider(contentProvider));

    // set comparator
    treeViewer.setComparator(new ViewerComparator() {

        /**
         * @see org.eclipse.jface.viewers.ViewerComparator#category(java.lang.Object)
         */
        @Override
        public int category(Object element) {
            if (element instanceof QName || element instanceof Definition<?>)
                return 0; // Path
            else if (element instanceof String)
                return 1; // Category
            else
                return 2; // InstanceValidationMessage
        }
    });

    // add menu on right-click
    MenuManager menuMgr = new MenuManager();
    Menu menu = menuMgr.createContextMenu(treeViewer.getTree());

    menuMgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            if (getValidSelection() == null)
                return;

            // selection is valid, offer link to transformed data view
            manager.add(new ShowExampleAction());
        }
    });

    // remove previous menus
    menuMgr.setRemoveAllWhenShown(true);

    // add menu to tree
    treeViewer.getTree().setMenu(menu);

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            showSelectionInDataView();
        }
    });

    Image noReportBaseImage = InstanceValidationUIPlugin.getDefault().getImageRegistry()
            .get(InstanceValidationUIPlugin.IMG_INSTANCE_VALIDATION);
    reportImage = new DecorationOverlayIcon(noReportBaseImage,
            PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_DEC_FIELD_WARNING),
            IDecoration.BOTTOM_LEFT).createImage();

    return filteredTree;
}