List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:de.anbos.eclipse.easyshell.plugin.preferences.CommandPage.java
License:Open Source License
private void createTableViewer(Composite parent) { tableViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); createColumns(parent, tableViewer);/*from w w w . j a va2s . com*/ final Table table = tableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); tableViewer.setLabelProvider(new CommandDataLabelProvider()); tableViewer.setContentProvider(new CommandDataContentProvider()); if (filter != null) { tableViewer.addFilter(filter); } // Get the content for the viewer, setInput will call getElements in the // contentProvider tableViewer.setInput(CommandDataStore.instance()); // Layout the viewer GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = GridData.FILL; tableViewer.getControl().setLayoutData(gridData); tableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { editDialog(); } }); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); int selected = selection.size(); boolean presetSelectedOrNotEqualType = false; Iterator<?> elements = selection.iterator(); PresetType type = PresetType.presetUnknown; while (elements.hasNext()) { CommandData data = (CommandData) elements.next(); if (type == PresetType.presetUnknown) { type = data.getPresetType(); } if (data.getPresetType() == PresetType.presetPlugin || type != data.getPresetType()) { presetSelectedOrNotEqualType = true; break; } } editButton.setEnabled(selected == 1); addCopyButton.setEnabled(selected == 1); removeButton.setEnabled(selected > 0 && !presetSelectedOrNotEqualType); } }); tableViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object object1, Object object2) { if (!(object1 instanceof CommandData) || !(object2 instanceof CommandData)) { return super.compare(viewer, object1, object2); } CommandData data1 = (CommandData) object1; CommandData data2 = (CommandData) object2; if (data1.getPosition() > data2.getPosition()) { return 1; } if (data1.getPosition() < data2.getPosition()) { return -1; } if (data1.getPosition() == data2.getPosition()) { return 0; } return super.compare(viewer, object1, object2); } @Override public boolean isSorterProperty(Object element, String property) { return true; } }); }
From source file:de.anbos.eclipse.easyshell.plugin.preferences.MenuPage.java
License:Open Source License
private void createTableViewer(Composite parent) { tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); createColumns(parent, tableViewer);// w w w . ja va2 s . com final Table table = tableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); tableViewer.setLabelProvider(new MenuDataLabelProvider()); tableViewer.setContentProvider(new MenuDataContentProvider()); if (filter != null) { tableViewer.addFilter(filter); } // Get the content for the viewer, setInput will call getElements in the // contentProvider tableViewer.setInput(MenuDataStore.instance()); // Layout the viewer GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = GridData.FILL; tableViewer.getControl().setLayoutData(gridData); tableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { editDialog(); } }); tableViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { MenuData data = (MenuData) event.getElement(); data.setEnabled(event.getChecked()); } }); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); int selected = selection.size(); addCopyButton.setEnabled(selected == 1); editButton.setEnabled(selected == 1); removeButton.setEnabled(selected > 0); upButton.setEnabled(selected == 1); downButton.setEnabled(selected == 1); } }); tableViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object object1, Object object2) { if (!(object1 instanceof MenuData) || !(object2 instanceof MenuData)) { return super.compare(viewer, object1, object2); } MenuData data1 = (MenuData) object1; MenuData data2 = (MenuData) object2; if (data1.getPosition() > data2.getPosition()) { return 1; } if (data1.getPosition() < data2.getPosition()) { return -1; } if (data1.getPosition() == data2.getPosition()) { return 0; } return super.compare(viewer, object1, object2); } @Override public boolean isSorterProperty(Object element, String property) { return true; } }); itemMover = new MenuDataMover(table, MenuDataStore.instance()); }
From source file:de.bmw.yamaica.common.ui.dialogs.YamaicaResourceSelectionDialog.java
License:Mozilla Public License
protected Control createDialogArea(Composite parent) { // create composite Composite area = (Composite) super.createDialogArea(parent); final Listener listener = new Listener() { public void handleEvent(Event event) { if (statusMessage != null && validator != null) { String errorMsg = validator.isValid(getContainerFullPath()); if (errorMsg == null || errorMsg.equals(EMPTY_STRING)) { statusMessage.setText(EMPTY_STRING); getOkButton().setEnabled(true); } else { statusMessage.setText(errorMsg); getOkButton().setEnabled(false); }/*from ww w . j av a2 s .co m*/ } } }; Label label = new Label(area, SWT.WRAP); label.setText(getMessage()); label.setFont(area.getFont()); if (allowNewContainerName) { containerNameField = new Text(area, SWT.SINGLE | SWT.BORDER); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.widthHint = 320; containerNameField.setLayoutData(gd); containerNameField.addListener(SWT.Modify, listener); containerNameField.setFont(area.getFont()); } else { // filler... new Label(area, SWT.NONE); } DrillDownComposite drillDown = new DrillDownComposite(area, SWT.BORDER); GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true); spec.widthHint = 320; spec.heightHint = 300; drillDown.setLayoutData(spec); // Create tree viewer inside drill down. treeViewer = new TreeViewer(drillDown, SWT.NONE); drillDown.setChildTree(treeViewer); ResourceContentProvider cp = new ResourceContentProvider(); cp.showClosedProjects(showClosedProjects); treeViewer.setContentProvider(cp); treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider()); treeViewer.setComparator(new ViewerComparator()); treeViewer.setUseHashlookup(true); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); IContainer container = (IContainer) selection.getFirstElement(); // allow null if (null != containerNameField) { if (null == container) { containerNameField.setText(EMPTY_STRING);//$NON-NLS-1$ } else { String text = TextProcessor.process( container.getFullPath().makeRelativeTo(rootContainer.getFullPath()).toString()); containerNameField.setText(text); containerNameField.setToolTipText(text); } } // fire an event so the parent can update its controls if (listener != null) { Event changeEvent = new Event(); changeEvent.type = SWT.Selection; changeEvent.widget = treeViewer.getControl(); listener.handleEvent(changeEvent); } } }); 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); } } } }); treeViewer.setInput(rootContainer); // container selection group // group = new ContainerSelectionGroup(area, listener, allowNewContainerName, getMessage(), showClosedProjects); if (initialSelection != null) { // group.setSelectedContainer(initialSelection); // expand to and select the specified container List<IContainer> itemsToExpand = new ArrayList<IContainer>(); IContainer parentContainer = initialSelection.getParent(); while (parentContainer != null) { itemsToExpand.add(0, parentContainer); parentContainer = parentContainer.getParent(); } treeViewer.setExpandedElements(itemsToExpand.toArray()); treeViewer.setSelection(new StructuredSelection(initialSelection), true); } statusMessage = new Label(area, SWT.WRAP); statusMessage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); statusMessage.setText(" \n "); //$NON-NLS-1$ statusMessage.setFont(parent.getFont()); return dialogArea; }
From source file:de.byteholder.geoclipse.preferences.PrefPageMapProviders.java
License:Open Source License
private void createUI20MapViewer(final Composite parent) { final PixelConverter pixelConverter = new PixelConverter(parent); final TableColumnLayout tableLayout = new TableColumnLayout(); final Composite layoutContainer = new Composite(parent, SWT.NONE); layoutContainer.setLayout(tableLayout); GridDataFactory.fillDefaults()// .hint(400, pixelConverter.convertHeightInCharsToPixels(10)).grab(true, true) .applyTo(layoutContainer);//from w w w . ja v a2 s .c om /* * create table */ final Table table = new Table(layoutContainer, SWT.FULL_SELECTION | SWT.BORDER); table.setLayout(new TableLayout()); table.setHeaderVisible(true); table.setLinesVisible(false); _mpViewer = new TableViewer(table); _mpViewer.setUseHashlookup(true); /* * create columns */ TableViewerColumn tvc; TableColumn tc; // column: server type tvc = new TableViewerColumn(_mpViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setToolTipText(Messages.Pref_Map_Viewer_Column_Lbl_ServerType_Tooltip); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final MP mapProvider = (MP) cell.getElement(); if (mapProvider instanceof MPWms) { cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeWms); } else if (mapProvider instanceof MPCustom) { cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeCustom); } else if (mapProvider instanceof MPProfile) { cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeMapProfile); } else if (mapProvider instanceof MPPlugin) { cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypePlugin); } else { cell.setText(UI.EMPTY_STRING); } } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4))); // column: map provider tvc = new TableViewerColumn(_mpViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_MapProvider); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final MP mapProvider = (MP) cell.getElement(); cell.setText(mapProvider.getName()); } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(20)); // column: offline path tvc = new TableViewerColumn(_mpViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflinePath); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final MP mapProvider = (MP) cell.getElement(); cell.setText(mapProvider.getOfflineFolder()); } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(10)); // column: layer tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL); tc = tvc.getColumn(); tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_Layer); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { String layer = UI.EMPTY_STRING; final MP mapProvider = (MP) cell.getElement(); if (mapProvider instanceof MPWms) { final MPWms wmsMapProvider = (MPWms) mapProvider; final StringBuilder sb = new StringBuilder(); sb.append(wmsMapProvider.getAvailableLayers()); layer = sb.toString(); } cell.setText(layer); } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10))); // column: offline file counter tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL); tc = tvc.getColumn(); tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflineFileCounter); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final int offlineTileCounter = ((MP) cell.getElement()).getOfflineFileCounter(); if (offlineTileCounter == MP.OFFLINE_INFO_NOT_READ) { cell.setText(Messages.pref_map_lable_NA); } else if (offlineTileCounter > 0) { cell.setText(Integer.toString(offlineTileCounter)); } else { cell.setText(UI.DASH_WITH_SPACE); } } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10))); // column: offline file size tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL); tc = tvc.getColumn(); tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflineFileSize); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final long offlineTileSize = ((MP) cell.getElement()).getOfflineFileSize(); if (offlineTileSize == MP.OFFLINE_INFO_NOT_READ) { cell.setText(Messages.pref_map_lable_NA); } else if (offlineTileSize > 0) { cell.setText(_nf.format((float) offlineTileSize / 1024 / 1024)); } else { cell.setText(UI.DASH_WITH_SPACE); } } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(12))); /* * create table viewer */ _mpViewer.setContentProvider(new MapContentProvider()); _mpViewer.setComparator(new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object e1, final Object e2) { final MP mp1 = (MP) e1; final MP mp2 = (MP) e2; final boolean thisIsPlugin = e1 instanceof MPPlugin; final boolean otherIsPlugin = e2 instanceof MPPlugin; if (thisIsPlugin && otherIsPlugin) { return mp1.getName().compareTo(mp2.getName()); } else if (thisIsPlugin) { return 1; } else if (otherIsPlugin) { return -1; } else { return mp1.getName().compareTo(mp2.getName()); } } }); _mpViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { onSelectMapProvider(event); } }); _mpViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { if (_selectedMapProvider instanceof MPWms) { openConfigDialogWms(); } else if (_selectedMapProvider instanceof MPCustom) { openConfigDialogCustom(); } else if (_selectedMapProvider instanceof MPProfile) { openConfigDialogMapProfile(); } else { // select name _txtMapProviderName.setFocus(); _txtMapProviderName.selectAll(); } } }); }
From source file:de.femodeling.e4.ui.progress.internal.BlockedJobsDialog.java
License:Open Source License
/** * This method creates a dialog area in the parent composite and displays a * progress tree viewer of the running jobs. * /*from w w w . j a v a2 s. c o m*/ * @param parent * The parent Composite. */ void showJobDetails(Composite parent) { viewer = new DetailedProgressViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); viewer.setComparator(new ViewerComparator() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ public int compare(Viewer testViewer, Object e1, Object e2) { return ((Comparable) e1).compareTo(e2); } }); ProgressViewerContentProvider provider = getContentProvider(); viewer.setContentProvider(provider); viewer.setInput(provider); viewer.setLabelProvider(new ProgressLabelProvider()); GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH); data.horizontalSpan = 2; int heightHint = convertHeightInCharsToPixels(10); data.heightHint = heightHint; viewer.getControl().setLayoutData(data); }
From source file:de.femodeling.e4.ui.progress.internal.ProgressManagerUtil.java
License:Open Source License
/** * Return a viewer comparator for looking at the jobs. * /*from ww w . j a v a 2 s. c om*/ * @return ViewerComparator */ static ViewerComparator getProgressViewerComparator() { return new ViewerComparator() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ public int compare(Viewer testViewer, Object e1, Object e2) { return ((Comparable) e1).compareTo(e2); } }; }
From source file:de.femodeling.e4.ui.progress.internal.ProgressMonitorJobsDialog.java
License:Open Source License
/** * The details button has been selected. Open or close the progress viewer * as appropriate./*from w w w . j a v a 2s . c o m*/ * */ void handleDetailsButtonSelect() { Shell shell = getShell(); Point shellSize = shell.getSize(); Composite composite = (Composite) getDialogArea(); if (viewer != null) { viewer.getControl().dispose(); viewer = null; composite.layout(); shell.setSize(shellSize.x, shellSize.y - viewerHeight); detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_DetailsTitle); } else { //Abort if there are no jobs visible if (ProgressManager.getInstance().getRootElements(IProgressConstants.DEBUG_SHOW_ALL_JOBS).length == 0) { detailsButton.setEnabled(false); return; } viewer = new DetailedProgressViewer(viewerComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); viewer.setComparator(new ViewerComparator() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ public int compare(Viewer testViewer, Object e1, Object e2) { return ((Comparable) e1).compareTo(e2); } }); viewer.setContentProvider(new ProgressViewerContentProvider(shell, viewer, true, false) { public Object[] getElements(Object inputElement) { return super.getElements(inputElement); } }); viewer.setLabelProvider(new ProgressLabelProvider()); viewer.setInput(this); GridData viewerData = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(viewerData); GridData viewerCompositeData = (GridData) viewerComposite.getLayoutData(); viewerCompositeData.heightHint = convertHeightInCharsToPixels(10); viewerComposite.layout(true); viewer.getControl().setVisible(true); viewerHeight = viewerComposite.computeTrim(0, 0, 0, viewerCompositeData.heightHint).height; detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_HideTitle); shell.setSize(shellSize.x, shellSize.y + viewerHeight); } }
From source file:de.ovgu.featureide.examples.wizards.ExampleNewWizardPage.java
License:Open Source License
/** * Create the checkbox list for the found projects. * // w w w .j a v a 2s. c o m * @param workArea */ private void createProjectsList(final Composite workArea) { Label title = new Label(workArea, SWT.NONE); title.setText("Choosable Examples"); Composite listComposite = new Composite(workArea, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginWidth = 0; layout.makeColumnsEqualWidth = false; listComposite.setLayout(layout); listComposite.setLayoutData( new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH)); projectsList = new CheckboxTreeViewer(listComposite, SWT.BORDER); GridData listData = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH); listData.minimumHeight = 175; projectsList.getControl().setLayoutData(listData); projectsList.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return new Object[0]; } public Object[] getElements(Object inputElement) { return selectedProjects; } public boolean hasChildren(Object element) { return false; } public Object getParent(Object element) { return null; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); projectsList.setLabelProvider(new LabelProvider() { public String getText(Object element) { return ((ProjectRecord) element).getProjectLabel(); } }); projectsList.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { ProjectRecord tmpRecord = (ProjectRecord) event.getElement(); if (tmpRecord.hasWarnings()) { projectsList.setChecked(tmpRecord, false); setMessage(tmpRecord.getWarningText(), WARNING); } setPageComplete(projectsList.getCheckedElements().length > 0); } }); projectsList.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection iss = (IStructuredSelection) event.getSelection(); ProjectRecord tmpRecord = (ProjectRecord) iss.getFirstElement(); descBox.setText(tmpRecord.getDescription()); if (tmpRecord.hasWarnings()) { setMessage(tmpRecord.getWarningText(), WARNING); } else { setMessage(""); } } } } ); projectsList.setInput(this); projectsList.setComparator(new ViewerComparator()); createSelectionButtons(listComposite); }
From source file:de.ovgu.featureide.fm.ui.editors.ConstraintDialog.java
License:Open Source License
/** * initializes the group containing the searchText and featureTable * //from w w w . ja va2 s.com * @param featuremodel */ private void initFeatureGroup(final FeatureModel featuremodel) { featureGroup = new Group(shell, SWT.NONE); featureGroup.setText("Features"); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; featureGroup.setLayoutData(gridData); GridLayout featureGroupLayout = new GridLayout(); featureGroupLayout.numColumns = 1; featureGroup.setLayout(featureGroupLayout); searchFeatureText = new StyledText(featureGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); searchFeatureText.setText(FILTERTEXT); searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY)); gridData = new GridData(GridData.FILL_HORIZONTAL); searchFeatureText.setLayoutData(gridData); Composite tableComposite = new Composite(featureGroup, SWT.NONE); gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; tableComposite.setLayoutData(gridData); final TableViewer featureTableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); featureTable = featureTableViewer.getTable(); featureTableViewer.setContentProvider(new ArrayContentProvider()); TableViewerColumn viewerNameColumn = new TableViewerColumn(featureTableViewer, SWT.NONE); TableColumnLayout tableColumnLayout = new TableColumnLayout(); tableComposite.setLayout(tableColumnLayout); tableColumnLayout.setColumnData(viewerNameColumn.getColumn(), new ColumnWeightData(100, 100, false)); featureTableViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object feature1, Object feature2) { return ((Feature) feature1).getName().compareToIgnoreCase(((Feature) feature2).getName()); } }); viewerNameColumn.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((Feature) cell.getElement()).getName()); } }); searchFeatureText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { ViewerFilter searchFilter = new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { return ((Feature) element).getName().toLowerCase(Locale.ENGLISH) .contains(searchFeatureText.getText().toLowerCase(Locale.ENGLISH)); } }; if (!searchFeatureText.getText().equalsIgnoreCase(FILTERTEXT)) { featureTableViewer.addFilter(searchFilter); } } }); searchFeatureText.addListener(SWT.FocusOut, new Listener() { @Override public void handleEvent(Event event) { if (searchFeatureText.getText().isEmpty()) { searchFeatureText.setText(FILTERTEXT); searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY)); } } }); searchFeatureText.addListener(SWT.FocusIn, new Listener() { @Override public void handleEvent(Event event) { if (searchFeatureText.getText().equals(FILTERTEXT)) searchFeatureText.setText(""); searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_BLACK)); } }); featureTableViewer.setInput(featureModel.getFeatures()); gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessVerticalSpace = true; featureTable.setLayoutData(gridData); featureTable.addListener(SWT.MouseDoubleClick, new Listener() { @Override public void handleEvent(Event event) { TableItem[] selectedItem = featureTable.getSelection(); StringBuilder temp = new StringBuilder(constraintText.getText()); temp.delete(x, y); if (selectedItem.length > 0) { temp.insert(x > y ? y : x, " " + (selectedItem[0].getText().contains(" ") || Operator.isOperatorName(selectedItem[0].getText()) ? "\"" + selectedItem[0].getText() + "\"" : selectedItem[0].getText()) + " "); } constraintText.setText(temp.toString()); //NodeReader.reduceWhiteSpaces(temp.toString())); constraintText.setSelection(constraintText.getCharCount()); searchFeatureText.setText(FILTERTEXT); searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY)); constraintText.setFocus(); featureTableViewer.resetFilters(); validate(); } }); }
From source file:de.ovgu.featureide.fm.ui.editors.DeleteOperationAlternativeDialog.java
License:Open Source License
/** * initializes the group containing the searchText and featureTable * /*from w w w . j a v a2 s . c om*/ * @param featuremodel */ private void initFeatureGroup() { Group featureGroup = new Group(shell, SWT.NONE); featureGroup.setText("Features"); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessHorizontalSpace = true; featureGroup.setLayoutData(gridData); GridLayout featureGroupLayout = new GridLayout(); featureGroupLayout.numColumns = 2; featureGroup.setLayout(featureGroupLayout); Composite tableComposite = new Composite(featureGroup, SWT.NONE); gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessVerticalSpace = true; gridData.grabExcessHorizontalSpace = true; tableComposite.setLayoutData(gridData); final TableViewer tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); alternativefeatureTable = tableViewer.getTable(); alternativefeatureTable.setLayoutData(gridData); alternativefeatureTable.setToolTipText("Features supposed to be deleted"); TableViewerColumn viewerNameColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumnLayout tableColumnLayout = new TableColumnLayout(); tableComposite.setLayout(tableColumnLayout); tableColumnLayout.setColumnData(viewerNameColumn.getColumn(), new ColumnWeightData(100, 100, false)); tableViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object feature1, Object feature2) { return ((Feature) feature1).getName().compareToIgnoreCase(((Feature) feature2).getName()); } }); viewerNameColumn.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((Feature) cell.getElement()).getName()); } }); Collection<Feature> l = new ArrayList<Feature>(); l.addAll(featureMap.keySet()); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setInput(l); tableComposite = new Composite(featureGroup, SWT.NONE); gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessVerticalSpace = true; gridData.grabExcessHorizontalSpace = true; tableComposite.setLayoutData(gridData); final TableViewer tableViewer2 = new TableViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); featureTable = tableViewer2.getTable(); featureTable.setLayoutData(gridData); featureTable.setToolTipText("alternative features"); TableViewerColumn viewerNameColumn2 = new TableViewerColumn(tableViewer2, SWT.NONE); tableColumnLayout = new TableColumnLayout(); tableComposite.setLayout(tableColumnLayout); tableColumnLayout.setColumnData(viewerNameColumn2.getColumn(), new ColumnWeightData(100, 100, false)); tableViewer2.setContentProvider(new ArrayContentProvider()); featureTable.addListener(SWT.MouseDoubleClick, new Listener() { @Override public void handleEvent(Event event) { execute(); } }); alternativefeatureTable.addListener(SWT.MouseUp, new Listener() { @Override public void handleEvent(Event event) { final Collection<Feature> l = new ArrayList<Feature>(); l.addAll(featureMap.get((Feature) (alternativefeatureTable.getSelection()[0]).getData())); for (int i = 0; i < alternativefeatureTable.getSelectionCount(); i++) { if (!featureMap.get((Feature) (alternativefeatureTable.getSelection()[0]).getData()).equals( featureMap.get((Feature) (alternativefeatureTable.getSelection()[i]).getData()))) { l.clear(); break; } } tableViewer2.setInput(l); featureTable.select(0); tableViewer2.refresh(true, true); } }); viewerNameColumn2.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((Feature) cell.getElement()).getName()); } }); final Label label = new Label(featureGroup, 0); gridData = new GridData(GridData.FILL_HORIZONTAL); label.setLayoutData(gridData); final Button button = new Button(featureGroup, SWT.PUSH); button.setText("Replace"); gridData = new GridData(GridData.FILL_HORIZONTAL); button.setLayoutData(gridData); button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { execute(); } }); }