List of usage examples for org.eclipse.jface.viewers ColumnViewerEditorActivationEvent PROGRAMMATIC
int PROGRAMMATIC
To view the source code for org.eclipse.jface.viewers ColumnViewerEditorActivationEvent PROGRAMMATIC.
Click Source Link
From source file:Snippet048TreeViewerTabWithCheckboxFor3_3.java
License:Open Source License
public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) { final TreeViewer v = new TreeViewer(shell, SWT.BORDER | SWT.FULL_SELECTION); v.getTree().setLinesVisible(true);//from w w w .j a v a 2 s . c o m v.getTree().setHeaderVisible(true); final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v, new FocusCellOwnerDrawHighlighter(v)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && (event.keyCode == SWT.CR || event.character == ' ')) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(v, mgr, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); final TextCellEditor textCellEditor = new TextCellEditor(v.getTree()); final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree()); TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Column 1"); column.setLabelProvider(new ColumnLabelProvider() { public String getText(Object element) { return "Column 1 => " + element.toString(); } }); column.setEditingSupport(new EditingSupport(v) { protected boolean canEdit(Object element) { return false; } protected CellEditor getCellEditor(Object element) { return textCellEditor; } protected Object getValue(Object element) { return ((MyModel) element).counter + ""; } protected void setValue(Object element, Object value) { ((MyModel) element).counter = Integer.parseInt(value.toString()); v.update(element, null); } }); column = new TreeViewerColumn(v, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Column 2"); column.setLabelProvider(new ColumnLabelProvider() { public String getText(Object element) { return "Column 2 => " + element.toString(); } }); column.setEditingSupport(new EditingSupport(v) { protected boolean canEdit(Object element) { return true; } protected CellEditor getCellEditor(Object element) { return textCellEditor; } protected Object getValue(Object element) { return ((MyModel) element).counter + ""; } protected void setValue(Object element, Object value) { ((MyModel) element).counter = Integer.parseInt(value.toString()); v.update(element, null); } }); column = new TreeViewerColumn(v, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Column 3"); column.setLabelProvider(new ColumnLabelProvider() { public String getText(Object element) { return ((MyModel) element).bool + ""; } }); column.setEditingSupport(new EditingSupport(v) { protected boolean canEdit(Object element) { return true; } protected CellEditor getCellEditor(Object element) { return checkboxCellEditor; } protected Object getValue(Object element) { return new Boolean(((MyModel) element).bool); } protected void setValue(Object element, Object value) { ((MyModel) element).bool = ((Boolean) value).booleanValue(); v.update(element, null); } }); v.setContentProvider(new MyContentProvider()); v.setInput(createModel()); v.getControl().addTraverseListener(new TraverseListener() { public void keyTraversed(TraverseEvent e) { if ((e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) && mgr.getFocusCell().getColumnIndex() == 2) { ColumnViewerEditor editor = v.getColumnViewerEditor(); ViewerCell cell = mgr.getFocusCell(); try { Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent", new Class[] { int.class, ViewerRow.class, TraverseEvent.class }); m.setAccessible(true); m.invoke(editor, new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e }); } catch (SecurityException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (NoSuchMethodException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalArgumentException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalAccessException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (InvocationTargetException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }); }
From source file:au.gov.ga.earthsci.application.parts.layer.LayerTreePart.java
License:Apache License
@PostConstruct public void init(Composite parent, EMenuService menuService) { LayerOpacityToolControl.setPartContext(context); viewer = new CheckboxTreeViewer(parent, SWT.MULTI); viewer.getTree().setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT)); context.set(TreeViewer.class, viewer); clipboard = new Clipboard(shell.getDisplay()); context.set(Clipboard.class, clipboard); IListProperty childrenProperty = new MultiListProperty( new IListProperty[] { BeanProperties.list("children") }); //$NON-NLS-1$ ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider( childrenProperty.listFactory(), null); viewer.setContentProvider(contentProvider); //TreeViewerEditor.create(viewer, new SecondClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT); IObservableSet knownElements = contentProvider.getKnownElements(); IObservableMap enabledMap = BeanProperties.value("enabled").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap opacityMap = BeanProperties.value("opacity").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap nameMap = BeanProperties.value("name").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap labelMap = BeanProperties.value("label").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap statusMap = BeanProperties.value("status").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap anyChildrenEnabledMap = BeanProperties.value("anyChildrenEnabled") //$NON-NLS-1$ .observeDetail(knownElements); IObservableMap allChildrenEnabledMap = BeanProperties.value("allChildrenEnabled") //$NON-NLS-1$ .observeDetail(knownElements); IObservableMap childrenMap = BeanProperties.value("children").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap expandedMap = BeanProperties.value("expanded").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap[] labelAttributeMaps = new IObservableMap[] { enabledMap, opacityMap, nameMap, labelMap, anyChildrenEnabledMap, allChildrenEnabledMap, statusMap }; labelProvider = new LayerTreeLabelProvider(labelAttributeMaps); viewer.setLabelProvider(labelProvider); viewer.setCheckStateProvider(new LayerTreeCheckStateProvider()); viewer.setInput(model.getRootNode()); viewer.setExpandedElements(getExpandedNodes()); IMapChangeListener childrenListener = new IMapChangeListener() { @Override/* ww w . ja v a 2 s. co m*/ public void handleMapChange(MapChangeEvent event) { //for any children added, expand the nodes Set<?> addedKeys = event.diff.getAddedKeys(); for (Object o : addedKeys) { if (o instanceof ILayerTreeNode) { ((ILayerTreeNode) o).getParent().getValue().setExpanded(true); } } } }; IMapChangeListener expandedListener = new IMapChangeListener() { @Override public void handleMapChange(MapChangeEvent event) { //ensure the expanded elements are kept in sync with the model viewer.getTree().getDisplay().asyncExec(new Runnable() { @Override public void run() { if (!viewer.getTree().isDisposed()) { viewer.setExpandedElements(getExpandedNodes()); } } }); } }; childrenMap.addMapChangeListener(childrenListener); childrenMap.addMapChangeListener(expandedListener); expandedMap.addMapChangeListener(expandedListener); viewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { Object element = event.getElement(); if (element instanceof ILayerTreeNode) { ILayerTreeNode node = (ILayerTreeNode) element; node.enableChildren(event.getChecked()); } } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); List<?> list = selection.toList(); ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]); selectionService.setSelection(array.length == 1 ? array[0] : array); } }); viewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(true); } @Override public void treeCollapsed(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(false); } }); viewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDoubleClick(MouseEvent e) { ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); if (cell == null) return; ILayerTreeNode layer = (ILayerTreeNode) cell.getElement(); selectLayer(layer); } @Override public void mouseDown(MouseEvent e) { ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); if (cell == null) { viewer.setSelection(StructuredSelection.EMPTY); } } }); viewer.getTree().addTraverseListener(new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_RETURN) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() == 1) { ILayerTreeNode layer = (ILayerTreeNode) selection.getFirstElement(); selectLayer(layer); } } } }); viewer.setCellEditors(new CellEditor[] { new TextCellEditor(viewer.getTree(), SWT.BORDER) }); viewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$ viewer.setCellModifier(new ICellModifier() { @Override public void modify(Object element, String property, Object value) { if (element instanceof Item) { element = ((Item) element).getData(); } ((ILayerTreeNode) element).setLabel((String) value); } @Override public Object getValue(Object element, String property) { if (element instanceof Item) { element = ((Item) element).getData(); } return ((ILayerTreeNode) element).getLabelOrName(); } @Override public boolean canModify(Object element, String property) { return true; } }); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); //add drag and drop support int ops = DND.DROP_COPY | DND.DROP_MOVE; viewer.addDragSupport(ops, new Transfer[] { LayerTransfer.getInstance() }, new LayerTreeDragSourceListener(viewer)); viewer.addDropSupport(ops, new Transfer[] { LayerTransfer.getInstance(), FileTransfer.getInstance() }, new LayerTreeDropAdapter(viewer, model, context)); //add context menu menuService.registerContextMenu(viewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$ }
From source file:au.gov.ga.earthsci.bookmark.part.BookmarksPart.java
License:Apache License
private void initList(Composite parent) { Composite tableHolder = new Composite(parent, SWT.NONE); GridData gd = new GridData(GridData.FILL_BOTH); gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true;//from ww w .j a va2s. c o m gd.horizontalAlignment = GridData.FILL; tableHolder.setLayoutData(gd); TableColumnLayout layout = new TableColumnLayout(); tableHolder.setLayout(layout); bookmarkListTableViewer = new TableViewer(tableHolder, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); bookmarkListTableViewer.getTable().setHeaderVisible(false); bookmarkListTableViewer.getTable().setLinesVisible(false); bookmarkListTableViewer.getTable().setLayoutData(gd); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); bookmarkListTableViewer.setContentProvider(contentProvider); IObservableMap labelMap = BeanProperties.value("name").observeDetail(contentProvider.getKnownElements()); //$NON-NLS-1$ TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT); column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer)); column.setLabelProvider(new ObservableMapCellLabelProvider(labelMap) { @Override public void update(ViewerCell cell) { super.update(cell); cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$ cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS)); } }); ColumnLayoutData cld = new ColumnWeightData(12); layout.setColumnData(column.getColumn(), cld); // Allow edit (rename) only via programmatic access (rename command) ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( bookmarkListTableViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(bookmarkListTableViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); // Populate the current selection with the actual bookmark items bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection(); List<?> list = selection.toList(); selectionService.setSelection(list.toArray(new IBookmark[list.size()])); } }); // Apply the bookmark on double click bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement()); } }); // Deselect when clicking outside a valid row bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) { bookmarkListTableViewer.setSelection(null); } } }); }
From source file:au.gov.ga.earthsci.bookmark.ui.BookmarksPart.java
License:Apache License
private void initList(Composite parent) { Composite tableHolder = new Composite(parent, SWT.NONE); GridData gd = new GridData(GridData.FILL_BOTH); gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true;// w w w . ja v a 2 s.c o m gd.horizontalAlignment = GridData.FILL; tableHolder.setLayoutData(gd); TableColumnLayout layout = new TableColumnLayout(); tableHolder.setLayout(layout); bookmarkListTableViewer = new TableViewer(tableHolder, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); bookmarkListTableViewer.getTable().setHeaderVisible(false); bookmarkListTableViewer.getTable().setLinesVisible(false); bookmarkListTableViewer.getTable().setLayoutData(gd); ObservableListContentProvider<IBookmark> contentProvider = new ObservableListContentProvider<IBookmark>( IBookmark.class); bookmarkListTableViewer.setContentProvider(contentProvider); IObservableSet<IBookmark> knownElements = contentProvider.getKnownElements(); IObservableMap<IBookmark, String> nameMap = BeanProperties.value(IBookmark.class, "name", String.class) //$NON-NLS-1$ .observeDetail(knownElements); TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT); column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer)); column.setLabelProvider(new ObservableMapCellLabelProvider<IBookmark, String>(nameMap) { @Override public void update(ViewerCell cell) { super.update(cell); cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$ cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS)); } }); ColumnLayoutData cld = new ColumnWeightData(12); layout.setColumnData(column.getColumn(), cld); // Allow edit (rename) only via programmatic access (rename command) ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( bookmarkListTableViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(bookmarkListTableViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); // Populate the current selection with the actual bookmark items bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection(); List<?> list = selection.toList(); selectionService.setSelection(list.toArray(new IBookmark[list.size()])); } }); // Apply the bookmark on double click bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement()); } }); // Deselect when clicking outside a valid row bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) { bookmarkListTableViewer.setSelection(null); } } }); }
From source file:au.gov.ga.earthsci.layer.ui.LayerTreePart.java
License:Apache License
protected void createStructureViewer(Composite parent, EMenuService menuService, CTabItem tabItem) { structureViewer = new CheckboxTreeViewer(parent, SWT.MULTI); tabItem.setControl(structureViewer.getControl()); structureViewer.getTree()//from www. j ava2 s . c om .setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT)); context.set(TreeViewer.class, structureViewer); clipboard = new Clipboard(parent.getDisplay()); context.set(Clipboard.class, clipboard); //create a property change listener for updating the labels whenever a property //changes on an ILayerTreeNode instance final PropertyChangeListener anyChangeListener = new PropertyChangeListener() { @Override public void propertyChange(final PropertyChangeEvent evt) { updateElementLabel(evt.getSource()); } }; //create a property change listener that ensures the expanded state of the tree //is kept in sync with the value of the expanded property for each node final PropertyChangeListener expandedChangeListener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { syncExpandedNodes(); } }; //setup the label provider labelProvider = new LayerTreeLabelProvider(); //create a bean list property associated with ILayerTreeNode's children property IBeanListProperty<ILayerTreeNode, ILayerTreeNode> childrenProperty = BeanProperties .list(ILayerTreeNode.class, "children", ILayerTreeNode.class); //$NON-NLS-1$ //setup a factory for creating observables observing ILayerTreeNodes IObservableFactory<ILayerTreeNode, IObservableList<ILayerTreeNode>> observableFactory = childrenProperty .listFactory(); //listen for any changes (additions/removals) to any of the children in the tree observableListTreeSupport = new ObservableListTreeSupport<ILayerTreeNode>(observableFactory); observableListTreeSupport.addListener(new ITreeChangeListener<ILayerTreeNode>() { @Override public void elementAdded(ILayerTreeNode element) { element.addPropertyChangeListener(anyChangeListener); element.addPropertyChangeListener("expanded", expandedChangeListener); //$NON-NLS-1$ } @Override public void elementRemoved(ILayerTreeNode element) { element.removePropertyChangeListener(anyChangeListener); element.removePropertyChangeListener("expanded", expandedChangeListener); //$NON-NLS-1$ } }); //create a content provider that listens for changes to any children in the tree ObservableListTreeContentProvider<ILayerTreeNode> contentProvider = new ObservableListTreeContentProvider<ILayerTreeNode>( observableFactory, null); //set the viewer's providers structureViewer.setContentProvider(contentProvider); structureViewer.setLabelProvider(labelProvider); structureViewer.setCheckStateProvider(new LayerTreeCheckStateProvider()); //set the viewer and listener inputs structureViewer.setInput(model.getRootNode()); observableListTreeSupport.setInput(model.getRootNode()); //Listen for any additions to the tree, and expand added node's parent, so that //added nodes are always visible. This is done after the input is set up, so that //we don't expand all the nodes that are already in the tree. observableListTreeSupport.addListener(new TreeChangeAdapter<ILayerTreeNode>() { @Override public void elementAdded(ILayerTreeNode element) { //for any children added, expand the nodes if (!element.isRoot()) { element.getParent().setExpanded(true); } //if the nodes were already expanded, the expanded property change event //is not fired, so we need to sync the expanded state anyway syncExpandedNodes(); //when a layer is added, we should activate this part and select the added element activateAndSelectElement(element); } }); //expand any nodes that should be expanded after unpersisting syncExpandedNodes(); //enable/disable any nodes that are checked/unchecked structureViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { Object element = event.getElement(); if (element instanceof ILayerTreeNode) { ILayerTreeNode node = (ILayerTreeNode) element; node.enableChildren(event.getChecked()); } } }); //setup the selection tracking structureViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) structureViewer.getSelection(); List<?> list = selection.toList(); ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]); settingSelection = true; selectionService.setSelection(array.length == 1 ? array[0] : array); settingSelection = false; } }); structureViewer.getTree().addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) structureViewer.getSelection(); ILayerTreeNode firstElement = (ILayerTreeNode) selection.getFirstElement(); if (firstElement != null) { selectLayer(firstElement); } } }); //setup tree expansion/collapse listening structureViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(true); } @Override public void treeCollapsed(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(false); } }); //make tree cells unselectable by selecting outside structureViewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { ViewerCell cell = structureViewer.getCell(new Point(e.x, e.y)); if (cell == null) { structureViewer.setSelection(StructuredSelection.EMPTY); } } }); //setup cell editing structureViewer .setCellEditors(new CellEditor[] { new TextCellEditor(structureViewer.getTree(), SWT.BORDER) }); structureViewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$ structureViewer.setCellModifier(new ICellModifier() { @Override public void modify(Object element, String property, Object value) { if (element instanceof Item) { element = ((Item) element).getData(); } ((ILayerTreeNode) element).setLabel((String) value); } @Override public Object getValue(Object element, String property) { if (element instanceof Item) { element = ((Item) element).getData(); } return ((ILayerTreeNode) element).getLabelOrName(); } @Override public boolean canModify(Object element, String property) { return true; } }); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( structureViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(structureViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); //add drag and drop support int ops = DND.DROP_COPY | DND.DROP_MOVE; structureViewer.addDragSupport(ops, new Transfer[] { LocalLayerTransfer.getInstance(), LayerTransfer.getInstance() }, new LayerTreeDragSourceListener(structureViewer)); structureViewer .addDropSupport(ops, new Transfer[] { LocalLayerTransfer.getInstance(), LayerTransfer.getInstance(), FileTransfer.getInstance() }, new LayerTreeDropAdapter(structureViewer, model, context)); //add context menu menuService.registerContextMenu(structureViewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$ }
From source file:ch.elexis.core.ui.dialogs.OrderImportDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite mainArea = new Composite(parent, SWT.NONE); mainArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); mainArea.setLayout(new GridLayout()); Composite scannerArea = new Composite(mainArea, SWT.NONE); scannerArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); scannerArea.setLayout(new GridLayout()); Group scannerGroup = new Group(scannerArea, SWT.NONE); scannerGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); scannerGroup.setLayout(new GridLayout(4, false)); scannerGroup.setText("Einlesen mit Barcode-Scanner"); diffSpinner = new Spinner(scannerGroup, SWT.NONE); diffSpinner.setMinimum(DIFF_SPINNER_MIN); diffSpinner.setSelection(DIFF_SPINNER_DEFAULT); Label eanLabel = new Label(scannerGroup, SWT.NONE); eanLabel.setText("EAN:"); eanText = new ElexisText(scannerGroup, SWT.NONE); eanText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); eanText.addKeyListener(new KeyAdapter() { @Override// w w w .jav a 2s . co m public void keyPressed(KeyEvent e) { if (e.character == SWT.CR) { applyScanner(); } } }); Button button = new Button(scannerGroup, SWT.PUSH); button.setText("bernehmen"); button.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { applyScanner(); } public void widgetDefaultSelected(SelectionEvent e) { // do nothing } }); Composite tableArea = new Composite(mainArea, SWT.NONE); tableArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); tableArea.setLayout(new GridLayout()); viewer = new TableViewer(tableArea, SWT.FULL_SELECTION); Table table = viewer.getTable(); table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); table.setLinesVisible(true); table.setHeaderVisible(true); verifiedColor = table.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN); boldFont = createBoldFont(table.getFont()); final TableViewerFocusCellManager mgr = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && (event.keyCode == SWT.CR || event.character == ' ')) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, mgr, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); createViewerColumns(); viewer.setContentProvider(new ViewerContentProvider()); viewer.setInput(this); viewer.setComparator(new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { Artikel a1 = ((OrderElement) e1).getArticle(); Artikel a2 = ((OrderElement) e2).getArticle(); if (a1 != null && a2 != null) { return a1.getName().compareTo(a2.getName()); } return 0; }; }); Composite cButtons = new Composite(mainArea, SWT.NONE); cButtons.setLayout(new GridLayout(2, false)); final Button clickAllButton = new Button(cButtons, SWT.PUSH); clickAllButton.setText(ALLE_MARKIEREN); clickAllButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { boolean bv = true; if (clickAllButton.getText().equals(ALLE_MARKIEREN)) { bv = true; clickAllButton.setText("Alle demarkieren"); } else { bv = false; clickAllButton.setText(ALLE_MARKIEREN); } for (OrderElement oe : orderElements) { oe.setVerified(bv); } viewer.refresh(true); } }); Button importButton = new Button(cButtons, SWT.PUSH); GridData gd = new GridData(SWT.RIGHT, SWT.CENTER, false, false); importButton.setLayoutData(gd); importButton.setText("Lagerbestnde anpassen"); importButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doImport(); } }); cButtons.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); return mainArea; }
From source file:ch.elexis.dialogs.OrderImportDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite mainArea = new Composite(parent, SWT.NONE); mainArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); mainArea.setLayout(new GridLayout()); Composite scannerArea = new Composite(mainArea, SWT.NONE); scannerArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); scannerArea.setLayout(new GridLayout()); Group scannerGroup = new Group(scannerArea, SWT.NONE); scannerGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); scannerGroup.setLayout(new GridLayout(4, false)); scannerGroup.setText("Einlesen mit Barcode-Scanner"); diffSpinner = new Spinner(scannerGroup, SWT.NONE); diffSpinner.setMinimum(DIFF_SPINNER_MIN); diffSpinner.setSelection(DIFF_SPINNER_DEFAULT); Label eanLabel = new Label(scannerGroup, SWT.NONE); eanLabel.setText("EAN:"); eanText = new ElexisText(scannerGroup, SWT.NONE); eanText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); eanText.addKeyListener(new KeyAdapter() { @Override/*from ww w. j av a2 s .c om*/ public void keyPressed(KeyEvent e) { if (e.character == SWT.CR) { applyScanner(); } } }); Button button = new Button(scannerGroup, SWT.PUSH); button.setText("bernehmen"); button.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { applyScanner(); } public void widgetDefaultSelected(SelectionEvent e) { // do nothing } }); Composite tableArea = new Composite(mainArea, SWT.NONE); tableArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); tableArea.setLayout(new GridLayout()); viewer = new TableViewer(tableArea, SWT.FULL_SELECTION); Table table = viewer.getTable(); table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); table.setLinesVisible(true); table.setHeaderVisible(true); verifiedColor = table.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN); boldFont = createBoldFont(table.getFont()); final TableViewerFocusCellManager mgr = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && (event.keyCode == SWT.CR || event.character == ' ')) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, mgr, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); createViewerColumns(); viewer.setContentProvider(new ViewerContentProvider()); viewer.setInput(this); Composite cButtons = new Composite(mainArea, SWT.NONE); cButtons.setLayout(new GridLayout(2, false)); final Button clickAllButton = new Button(cButtons, SWT.PUSH); clickAllButton.setText(ALLE_MARKIEREN); clickAllButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { boolean bv = true; if (clickAllButton.getText().equals(ALLE_MARKIEREN)) { bv = true; clickAllButton.setText("Alle demarkieren"); } else { bv = false; clickAllButton.setText(ALLE_MARKIEREN); } for (OrderElement oe : orderElements) { oe.setVerified(bv); } viewer.refresh(true); } }); Button importButton = new Button(cButtons, SWT.PUSH); GridData gd = new GridData(SWT.RIGHT, SWT.CENTER, false, false); importButton.setLayoutData(gd); importButton.setText("Lagerbestnde anpassen"); importButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doImport(); } }); cButtons.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); return mainArea; }
From source file:cn.ieclipse.adt.ext.wizards.ElementTableSelector.java
License:Apache License
public ElementTableSelector(final Composite composite, GridData gridData, final String groupDescr, final String selectionMessage, final Object[] elements) { this.elements = elements; Group intentGroup = new Group(composite, SWT.NONE); intentGroup.setLayout(new GridLayout(2, false)); intentGroup.setLayoutData(gridData); intentGroup.setText(groupDescr);/*www . j a va2 s. co m*/ tv = new TableViewer(intentGroup, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION); table = tv.getTable(); table.setHeaderVisible(false); table.setLinesVisible(true); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final Menu menu = new Menu(tv.getControl()); MenuItem add = new MenuItem(menu, SWT.PUSH); add.setText("&Add Custom"); add.setImage(ADD_IMG); add.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { addModel(new Model("custom")); tv.refresh(); } }); MenuItem up = new MenuItem(menu, SWT.PUSH); up.setText("&Up"); up.setImage(UP_IMG); up.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = (IStructuredSelection) tv.getSelection(); if (!sel.isEmpty()) { Model m = (Model) sel.getFirstElement(); int idx = selectedElements.indexOf(m); if (idx > 0) { Model n = selectedElements.get(idx - 1); selectedElements.set(idx, n); selectedElements.set(idx - 1, m); tv.refresh(); } } } }); MenuItem down = new MenuItem(menu, SWT.PUSH); down.setText("&Down"); down.setImage(DOWN_IMG); down.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = (IStructuredSelection) tv.getSelection(); if (!sel.isEmpty()) { Model m = (Model) sel.getFirstElement(); int idx = selectedElements.indexOf(m); if (idx < selectedElements.size() - 1) { Model n = selectedElements.get(idx + 1); selectedElements.set(idx, n); selectedElements.set(idx + 1, m); tv.refresh(); } } } }); table.setMenu(menu); tv.setContentProvider(new MyContentProvider()); ColumnViewerToolTipSupport.enableFor(tv, ToolTip.NO_RECREATE); // TableViewerFocusCellManager focusCellManager = new // TableViewerFocusCellManager( // tv, new FocusBorderCellHighlighter(tv)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tv) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(tv, null, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); final TableViewerColumn col = new TableViewerColumn(tv, SWT.NONE); col.setLabelProvider(new MyCellLabelProvider()); col.setEditingSupport(new MyEditingSupport(tv)); // tv.getTable(). col.getColumn().setWidth(300); table.addControlListener(new ControlListener() { public void controlResized(ControlEvent e) { int w = table.getClientArea().width; if (w > 0) { col.getColumn().setWidth(w); } } public void controlMoved(ControlEvent e) { } }); tv.setInput(selectedElements); Composite buttonComp = new Composite(intentGroup, SWT.NONE); buttonComp.setLayout(new FillLayout(SWT.VERTICAL)); addButton = new Button(buttonComp, SWT.NONE); addButton.setText("Add..."); addButton.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { showSelectionDialog(composite, selectionMessage); } public void widgetDefaultSelected(SelectionEvent e) { } }); removeButton = new Button(buttonComp, SWT.NONE); removeButton.setText("Remove..."); removeButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int[] selection = table.getSelectionIndices(); if (selection != null) { IStructuredSelection sel = (IStructuredSelection) tv.getSelection(); if (!sel.isEmpty()) { for (Object object : sel.toArray()) { selectedElements.remove(object); } } tv.refresh(); } } }); }
From source file:com.adobe.granite.ide.eclipse.ui.wizards.np.AdvancedSettingsComponent.java
License:Apache License
public void createAdvancedSection(Composite container) { Label label;// w w w. j av a 2s . c o m GridData gd; label = new Label(container, SWT.NULL); label.setText("&Version:"); version = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); version.setLayoutData(gd); version.setText("0.0.1-SNAPSHOT"); version.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { wizardPage.dialogChanged(); } }); label = new Label(container, SWT.NULL); label.setText("&Package:"); javaPackage = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); javaPackage.setLayoutData(gd); javaPackageModified = false; javaPackage.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { javaPackageModified = true; } }); javaPackage.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { wizardPage.dialogChanged(); } }); label = new Label(container, SWT.NULL); gd = new GridData(SWT.LEFT, SWT.TOP, false, false); label.setLayoutData(gd); label.setText("&Parameters:"); propertiesViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION); propertiesTable = propertiesViewer.getTable(); propertiesTable.setLinesVisible(true); propertiesTable.setHeaderVisible(true); propertiesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2)); CellNavigationStrategy strategy = new CellNavigationStrategy(); TableViewerFocusCellManager focusCellMgr = new TableViewerFocusCellManager(propertiesViewer, new FocusCellOwnerDrawHighlighter(propertiesViewer), strategy); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy( propertiesViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK; TableViewerEditor.create(propertiesViewer, focusCellMgr, actSupport, features); TableColumn propertiesTableNameColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableNameColumn.setWidth(180); propertiesTableNameColumn.setText("Name"); TableColumn propertiesTableValueColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableValueColumn.setWidth(300); propertiesTableValueColumn.setText("Value"); propertiesViewer.setColumnProperties(new String[] { KEY_PROPERTY, VALUE_PROPERTY }); propertiesViewer.setCellEditors(new CellEditor[] { null /* cannot edit the name */, new TextCellEditor(propertiesTable, SWT.NONE) }); propertiesViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return true; } public void modify(Object element, String property, Object value) { if (element instanceof TableItem) { ((TableItem) element).setText(getTextIndex(property), String.valueOf(value)); wizardPage.dialogChanged(); } } public Object getValue(Object element, String property) { if (element instanceof TableItem) { return ((TableItem) element).getText(getTextIndex(property)); } return null; } }); }
From source file:com.buildml.eclipse.outline.OutlinePage.java
License:Open Source License
@Override public void createControl(Composite parent) { super.createControl(parent); /* //w w w . j a v a 2 s . c om * Configure the view's (pre-existing) TreeViewer with necessary helper objects that * will display the BuildML editor's package structure. */ treeViewer = getTreeViewer(); treeViewer.setContentProvider(new OutlineContentProvider(pkgMgr, true)); treeViewer.setLabelProvider(new OutlineLabelProvider(pkgMgr)); treeViewer.addSelectionChangedListener(this); treeViewer.setInput(new UIPackageFolder[] { new UIPackageFolder(pkgMgr.getRootFolder()) }); treeViewer.expandToLevel(2); /* * Create the context menu. It'll be populated by the rules in plugin.xml. */ MenuManager menuMgr = new MenuManager(); menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(IMenuManager manager) { manager.add(new Separator("buildmladditions")); } }); Menu menu = menuMgr.createContextMenu(treeViewer.getControl()); treeViewer.getControl().setMenu(menu); getSite().registerContextMenu("org.eclipse.ui.views.ContentOutline", menuMgr, treeViewer); getSite().setSelectionProvider(treeViewer); /* * When the user double-clicks on a folder name, automatically expand the content * of that folder. If they double-click on a package name, open that package * as a new Diagram in the main editor. */ treeViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object node = selection.getFirstElement(); if (treeViewer.isExpandable(node)) { treeViewer.setExpandedState(node, !treeViewer.getExpandedState(node)); } /* else, open the package diagram editor */ else { if (node instanceof UIPackage) { int selectedPkgId = ((UIPackage) node).getId(); if (selectedPkgId != pkgMgr.getImportPackage()) { mainEditor.openPackageDiagram(selectedPkgId); } } } } }); /* * Configure the ability to edit cells in the package/folder tree. The * OutlineContentCellModifier class does most of the hard work. */ treeViewer.setColumnProperties(new String[] { "NAME" }); treeViewer.setCellModifier(new OutlineContentCellModifier(mainEditor)); treeViewer.setCellEditors(new CellEditor[] { new TextCellEditor(treeViewer.getTree()) }); /* * Arrange it so that cell editing is only possible when we call editElement(), rather * than when the user clicks on the label. */ treeViewer.getColumnViewerEditor().addEditorActivationListener(new ColumnViewerEditorActivationListener() { public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) { if (event.eventType != ColumnViewerEditorActivationEvent.PROGRAMMATIC) { event.cancel = true; } } public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) { } public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) { } public void afterEditorActivated(ColumnViewerEditorActivationEvent event) { } }); /* * Listen to our own selection events, which is necessary to learn which element is * selected when we want to add or delete elements. */ addSelectionChangedListener(this); /* * Add the DragSource and DropTarget so that we can copy/move packages around. */ new OutlineDragSource(treeViewer, this); new OutlineDropTarget(treeViewer, this); /* * Add the undo/redo actions from the main editor to our action bar. This allows * the user to use Ctrl-Z etc. to undo/redo while focused on our window. */ getSite().getActionBars().setGlobalActionHandler(ActionFactory.UNDO.getId(), undoAction); getSite().getActionBars().setGlobalActionHandler(ActionFactory.REDO.getId(), redoAction); }