List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
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; }