List of usage examples for org.eclipse.jface.viewers ITreeViewerListener ITreeViewerListener
ITreeViewerListener
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//www .j av 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.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()/* ww w . j a va 2 s .co m*/ .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:com.amalto.workbench.dialogs.DataModelSelectDialog.java
License:Open Source License
private void selectDataModel() { Object input = domViewer.getInput(); TreeObject[] elements = (TreeObject[]) contentProvider.getElements(input); selectDefaultDataModel(elements);//from ww w . j ava2 s. c o m domViewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { TreeParent parent = (TreeParent) event.getElement(); TreeObject[] children = parent.getChildren(); selectDefaultDataModel(children); } public void treeCollapsed(TreeExpansionEvent event) {// } }); }
From source file:com.android.traceview.ProfileView.java
License:Apache License
public ProfileView(Composite parent, TraceReader reader, SelectionController selectController) { super(parent, SWT.NONE); setLayout(new GridLayout(1, false)); this.mSelectionController = selectController; mSelectionController.addObserver(this); // Add a tree viewer at the top mTreeViewer = new TreeViewer(this, SWT.MULTI | SWT.NONE); mTreeViewer.setUseHashlookup(true);/*www . j a v a2 s . co m*/ mProfileProvider = reader.getProfileProvider(); mProfileProvider.setTreeViewer(mTreeViewer); SelectionAdapter listener = mProfileProvider.getColumnListener(); final Tree tree = mTreeViewer.getTree(); tree.setHeaderVisible(true); tree.setLayoutData(new GridData(GridData.FILL_BOTH)); // Get the column names from the ProfileProvider String[] columnNames = mProfileProvider.getColumnNames(); int[] columnWidths = mProfileProvider.getColumnWidths(); int[] columnAlignments = mProfileProvider.getColumnAlignments(); for (int ii = 0; ii < columnWidths.length; ++ii) { TreeColumn column = new TreeColumn(tree, SWT.LEFT); column.setText(columnNames[ii]); column.setWidth(columnWidths[ii]); column.setMoveable(true); column.addSelectionListener(listener); column.setAlignment(columnAlignments[ii]); } // Add a listener to the tree so that we can make the row // height smaller. tree.addListener(SWT.MeasureItem, new Listener() { @Override public void handleEvent(Event event) { int fontHeight = event.gc.getFontMetrics().getHeight(); event.height = fontHeight; } }); mTreeViewer.setContentProvider(mProfileProvider); mTreeViewer.setLabelProvider(mProfileProvider.getLabelProvider()); mTreeViewer.setInput(mProfileProvider.getRoot()); // Create another composite to hold the label and text box Composite composite = new Composite(this, SWT.NONE); composite.setLayout(new GridLayout(2, false)); composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // Add a label for the search box Label label = new Label(composite, SWT.NONE); label.setText("Find:"); // Add a text box for searching for method names mSearchBox = new Text(composite, SWT.BORDER); mSearchBox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Display display = getDisplay(); mColorNoMatch = new Color(display, 255, 200, 200); mColorMatch = mSearchBox.getBackground(); mSearchBox.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent ev) { String query = mSearchBox.getText(); if (query.length() == 0) return; findName(query); } }); // Add a key listener to the text box so that we can clear // the text box if the user presses <ESC>. mSearchBox.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.ESC) { mSearchBox.setText(""); } else if (event.keyCode == SWT.CR) { String query = mSearchBox.getText(); if (query.length() == 0) return; findNextName(query); } } }); // Also add a key listener to the tree viewer so that the // user can just start typing anywhere in the tree view. tree.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.ESC) { mSearchBox.setText(""); } else if (event.keyCode == SWT.BS) { // Erase the last character from the search box String text = mSearchBox.getText(); int len = text.length(); String chopped; if (len <= 1) chopped = ""; else chopped = text.substring(0, len - 1); mSearchBox.setText(chopped); } else if (event.keyCode == SWT.CR) { String query = mSearchBox.getText(); if (query.length() == 0) return; findNextName(query); } else { // Append the given character to the search box String str = String.valueOf(event.character); mSearchBox.append(str); } event.doit = false; } }); // Add a selection listener to the tree so that the user can click // on a method that is a child or parent and jump to that method. mTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent ev) { ISelection sel = ev.getSelection(); if (sel.isEmpty()) return; if (sel instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) sel; Object element = selection.getFirstElement(); if (element == null) return; if (element instanceof MethodData) { MethodData md = (MethodData) element; highlightMethod(md, true); } if (element instanceof ProfileData) { MethodData md = ((ProfileData) element).getMethodData(); highlightMethod(md, true); } } } }); // Add a tree listener so that we can expand the parents and children // of a method when a method is expanded. mTreeViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { Object element = event.getElement(); if (element instanceof MethodData) { MethodData md = (MethodData) element; expandNode(md); } } @Override public void treeCollapsed(TreeExpansionEvent event) { } }); tree.addListener(SWT.MouseDown, new Listener() { @Override public void handleEvent(Event event) { Point point = new Point(event.x, event.y); TreeItem treeItem = tree.getItem(point); MethodData md = mProfileProvider.findMatchingTreeItem(treeItem); if (md == null) return; ArrayList<Selection> selections = new ArrayList<Selection>(); selections.add(Selection.highlight("MethodData", md)); mSelectionController.change(selections, "ProfileView"); if (mMethodHandler != null && (event.stateMask & SWT.MOD1) != 0) { mMethodHandler.handleMethod(md); } } }); }
From source file:com.aptana.ide.installer.wizard.PluginsTreeViewer.java
License:Open Source License
private void createContents(Composite parent) { fTreeViewer = new ContainerCheckedTreeViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); Tree tree = fTreeViewer.getTree();/*from w ww .j ava 2 s. com*/ tree.setHeaderVisible(true); fTreeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); TreeColumn column = new TreeColumn(tree, SWT.LEFT); column.setText("Plugin"); //$NON-NLS-1$ column.setWidth(350); column = new TreeColumn(tree, SWT.LEFT); column.setText("Description"); //$NON-NLS-1$ column.setWidth(350); fTreeViewer.setContentProvider(new ContentProvider()); fTreeViewer.setLabelProvider(new LabelProvider()); fTreeViewer.setComparator(new PluginsComparator()); fTreeViewer.setInput(fModel = new PluginsTreeModel()); fTreeViewer.addCheckStateListener(this); fTreeViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { updateForeground(); } public void treeExpanded(TreeExpansionEvent event) { updateForeground(); } }); updateExpansionState(); updateForeground(); }
From source file:com.aptana.ide.server.ui.views.GenericServersView.java
License:Open Source License
/** * Helper method to create the table viewer. * /*from w w w . ja v a2 s . c o m*/ * @param parent */ private void createTableViewer(Composite parent) { serverViewer = new TreeViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION); serverViewer.getTree().setLinesVisible(true); serverViewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { Object server = event.getElement(); if (server instanceof IServer) { ServerUIPlugin.getDefault().getPreferenceStore().setValue( IPreferenceConstants.COLLAPSE_SERVER + "." + ((IServer) server).getId(), false); //$NON-NLS-1$ } updateCollapseAllAction(); } public void treeCollapsed(TreeExpansionEvent event) { Object server = event.getElement(); if (server instanceof IServer) { ServerUIPlugin.getDefault().getPreferenceStore().setValue( IPreferenceConstants.COLLAPSE_SERVER + "." + ((IServer) server).getId(), true); //$NON-NLS-1$ } updateCollapseAllAction(); } }); PreferenceUtils.registerBackgroundColorPreference(serverViewer.getControl(), "com.aptana.ide.core.ui.background.color.serversView"); //$NON-NLS-1$ PreferenceUtils.registerForegroundColorPreference(serverViewer.getControl(), "com.aptana.ide.core.ui.foreground.color.serversView"); //$NON-NLS-1$ createTree(); }
From source file:com.atlassian.connector.eclipse.internal.crucible.ui.wizards.SelectChangesetsFromCruciblePage.java
License:Open Source License
private void createChangesViewer(Composite parent) { Tree tree = new Tree(parent, SWT.MULTI | SWT.BORDER); availableTreeViewer = new TreeViewer(tree); GridDataFactory.fillDefaults().grab(true, true).hint(300, 220).applyTo(tree); availableTreeViewer.setLabelProvider(new ChangesetLabelProvider()); availableTreeViewer.setContentProvider(new ChangesetContentProvider()); availableTreeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME)); availableTreeViewer.setComparator(new ViewerComparator() { @Override// w w w. j a v a 2 s . c o m public int compare(Viewer viewer, Object e1, Object e2) { if (e1 instanceof Change && e2 instanceof Change) { return ((Change) e2).getDate().compareTo(((Change) e1).getDate()); } return super.compare(viewer, e1, e2); } }); tree.setMenu(createChangesContextMenu()); tree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { updateButtonEnablement(); } }); availableTreeViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { // ignore } public void treeExpanded(TreeExpansionEvent event) { // first time of expanding: retrieve first 10 changesets final Object object = event.getElement(); if (object instanceof Repository) { refreshRepository((Repository) object); } } }); availableTreeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object object = selection.getFirstElement(); if (availableTreeViewer.isExpandable(object)) { if (!availableTreeViewer.getExpandedState(object) && object instanceof Repository) { refreshRepository((Repository) object); return; } availableTreeViewer.setExpandedState(object, !availableTreeViewer.getExpandedState(object)); } } }); }
From source file:com.atlassian.connector.eclipse.internal.crucible.ui.wizards.SelectScmChangesetsPage.java
License:Open Source License
private void createLeftViewer(Composite parent) { Tree tree = new Tree(parent, SWT.MULTI | SWT.BORDER); availableTreeViewer = new TreeViewer(tree); GridDataFactory.fillDefaults().grab(true, true).hint(300, 220).applyTo(tree); availableTreeViewer.setLabelProvider(new ChangesetLabelProvider()); availableTreeViewer.setContentProvider(new ChangesetContentProvider()); availableTreeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME)); availableTreeViewer.setComparator(new ViewerComparator() { @Override// w w w . ja va 2 s . co m public int compare(Viewer viewer, Object e1, Object e2) { if (e1 instanceof ICustomChangesetLogEntry && e2 instanceof ICustomChangesetLogEntry) { return ((ICustomChangesetLogEntry) e2).getDate() .compareTo(((ICustomChangesetLogEntry) e1).getDate()); } return super.compare(viewer, e1, e2); } }); availableTreeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot()); final Menu contextMenuSource = new Menu(getShell(), SWT.POP_UP); tree.setMenu(contextMenuSource); addChangesetMenuItem = new MenuItem(contextMenuSource, SWT.PUSH); addChangesetMenuItem.setText("Add to Review"); new MenuItem(contextMenuSource, SWT.SEPARATOR); addChangesetMenuItem.setEnabled(false); getNextRevisionsMenuItem = new MenuItem(contextMenuSource, SWT.PUSH); getNextRevisionsMenuItem.setText(String.format("Get %d More Revisions", LIMIT)); getNextRevisionsMenuItem.setEnabled(false); getNextRevisionsMenuItem.addSelectionListener(new SelectionAdapter() { @SuppressWarnings("unchecked") @Override public void widgetSelected(SelectionEvent e) { TreeSelection selection = getTreeSelection(availableTreeViewer); if (selection != null) { Iterator<Object> iterator = (selection).iterator(); Set<ScmRepository> alreadyDone = new TreeSet<ScmRepository>(); while (iterator.hasNext()) { Object element = iterator.next(); ScmRepository repository = null; if (element instanceof ICustomChangesetLogEntry) { repository = ((ICustomChangesetLogEntry) element).getRepository(); } else if (element instanceof ScmRepository) { repository = (ScmRepository) element; } if (repository != null && !alreadyDone.contains(repository)) { SortedSet<ICustomChangesetLogEntry> logEntries = availableLogEntries.get(repository); int currentNumberOfEntries = logEntries == null ? 0 : logEntries.size(); updateChangesets(repository, currentNumberOfEntries + LIMIT); alreadyDone.add(repository); } } } else { //update all for (ScmRepository repository : availableLogEntries.keySet()) { SortedSet<ICustomChangesetLogEntry> logEntries = availableLogEntries.get(repository); int currentNumberOfEntries = logEntries == null ? 0 : logEntries.size(); updateChangesets(repository, currentNumberOfEntries + LIMIT); } } } }); addChangesetMenuItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { addChangesets(); updateButtonEnablement(); } }); tree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { updateButtonEnablement(); } }); availableTreeViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { // ignore } public void treeExpanded(TreeExpansionEvent event) { // first time of expanding: retrieve first 10 changesets final Object object = event.getElement(); if (object instanceof ScmRepository) { refreshRepository((ScmRepository) object); } } }); availableTreeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object object = selection.getFirstElement(); if (availableTreeViewer.isExpandable(object)) { if (!availableTreeViewer.getExpandedState(object) && object instanceof ScmRepository) { refreshRepository((ScmRepository) object); return; } availableTreeViewer.setExpandedState(object, !availableTreeViewer.getExpandedState(object)); } } }); }
From source file:com.cloudbees.eclipse.dev.ui.views.jobs.JobsView.java
License:Open Source License
@Override public void createPartControl(final Composite parent) { initImages();//from w w w . jav a2 s. co m this.treeViewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.VIRTUAL); treeViewer.getTree().setHeaderVisible(true); initColumns(); this.contentProvider = new JobsContentProvider(getViewSite()); this.treeViewer.setContentProvider(this.contentProvider); this.treeViewer.setSorter(new JobSorter(JobSorter.JOB)); this.treeViewer.setInput(getViewSite()); this.treeViewer.addOpenListener(new IOpenListener() { @Override public void open(final OpenEvent event) { ISelection sel = event.getSelection(); if (sel instanceof IStructuredSelection) { Object el = ((IStructuredSelection) sel).getFirstElement(); if (el instanceof JobHolder && ((JobHolder) el).job instanceof Job) { Job job = (Job) ((JobHolder) el).job; //assuming it's a folder.. if (job.isFolderOrView()) { JobsView.this.toggle(el); return; // do nothing } else { CloudBeesDevUiPlugin.getDefault().showBuildForJob(job); } } if (el instanceof JobHolder && ((JobHolder) el).job instanceof View) { JobsView.this.toggle(el); return; // do nothing } } } }); makeActions(); contributeToActionBars(); MenuManager popupMenu = new MenuManager(); popupMenu.add(this.actionOpenLastBuildDetails); popupMenu.add(this.actionOpenLog); popupMenu.add(this.actionOpenBuildHistory); popupMenu.add(new Separator()); popupMenu.add(this.actionOpenJobInBrowser); popupMenu.add(this.actionInvokeBuild); popupMenu.add(new Separator()); popupMenu.add(this.actionDeleteJob); popupMenu.add(new Separator()); popupMenu.add(this.actionReloadJobs); Menu menu = popupMenu.createContextMenu(treeViewer.getTree()); treeViewer.getTree().setMenu(menu); treeViewer.getTree().setSortDirection(SWT.DOWN); treeViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { } @Override public void treeCollapsed(TreeExpansionEvent event) { // if something was collapsed make sure it won't be expanded by deferred loaders contentProvider.removeDeferredExpanders(event.getElement()); } }); this.treeViewer.addPostSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { StructuredSelection sel = (StructuredSelection) event.getSelection(); if (sel.getFirstElement() instanceof JobHolder) { setSelectedJob((JobHolder) sel.getFirstElement()); } } }); this.jenkinsChangeListener = new CBRemoteChangeAdapter() { public void activeAccountChanged(String email, String newAccountName) { // if cloud-hosted view and account changed, close this view boolean closeView = false; if (viewUrl == null || viewUrl.length() == 0) { closeView = true; } if (!closeView) { JenkinsService ss = CloudBeesUIPlugin.getDefault().getJenkinsServiceForUrl(viewUrl); if (ss == null || ss.isCloud()) { closeView = true; } } if (closeView) { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); page.hideView(JobsView.this); } }); } } public void activeJobViewChanged(final JenkinsJobsResponse newView) { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { JobsView.this.setInput(newView); } }); } public void jenkinsStatusUpdate(String viewUrl, boolean online) { if (!isCurrentView(viewUrl)) { return; // nothing to do, same view } // For now server status change is only relevant when it's offline if (!online) { final JenkinsService s = CloudBeesUIPlugin.getDefault().getJenkinsServiceForUrl(viewUrl); PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { setPartName("Build Jobs [" + s.getLabel() + "] (offline)"); setContentDescription(" " + s.getLabel() + " (" + s.getUrl() + ") not available (" + new Date() + ")"); } }); } } }; CloudBeesUIPlugin.getDefault().addCBRemoteChangeListener(this.jenkinsChangeListener); }
From source file:com.clustercontrol.repository.dialog.NodeCreateDialog.java
License:Open Source License
/** * ????//from w w w.ja va 2 s . c o m * * @param parent * ? */ @Override protected void customizeDialog(Composite parent) { Shell shell = this.getShell(); // shell.setText(Messages.getString("dialog.repository.node.create.modify")); // GridLayout layout = new GridLayout(1, true); layout.marginWidth = 10; layout.marginHeight = 10; parent.setLayout(layout); this.comp = parent; GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 1; this.comp.setLayoutData(gridData); //SNMP??(SNMP) groupAuto = new Group(parent, SWT.RIGHT); WidgetTestUtil.setTestId(this, "auto", groupAuto); groupAuto.setLayoutData(gridData); layout = new GridLayout(5, false); groupAuto.setLayout(layout); if (isModifyDialog) { groupAuto.setText(Messages.getString("device.search") + " " + Messages.getString("repository.find.by.snmp.modify")); } else { groupAuto.setText(Messages.getString("device.search")); } //IP this.ipAddressText = new Label(groupAuto, SWT.NONE); WidgetTestUtil.setTestId(this, "ipaddress", ipAddressText); this.ipAddressText.setText(Messages.getString("ip.address") + " : "); this.ipAddressBox = new Text(groupAuto, SWT.BORDER | SWT.SINGLE); WidgetTestUtil.setTestId(this, "ipaddress", ipAddressBox); GridData grid = new GridData(GridData.FILL_HORIZONTAL); grid.minimumWidth = 120; this.ipAddressBox.setLayoutData(grid); // ? if (this.isModifyDialog) { GetNodeProperty getNodeProperty = new GetNodeProperty(this.managerName, this.facilityId, PropertyDefineConstant.MODE_MODIFY); propertyOld = getNodeProperty.getProperty(); nodeInfoOld = getNodeProperty.getNodeInfo(); } else { GetNodeProperty getNodeProperty = new GetNodeProperty(this.managerName, this.facilityId, PropertyDefineConstant.MODE_ADD); propertyOld = getNodeProperty.getProperty(); nodeInfoOld = getNodeProperty.getNodeInfo(); } propertyChild = PropertyUtil.getProperty(propertyOld, NodeConstant.IP_ADDRESS_VERSION).get(0); String ipAddressVersion = propertyChild.getValue().toString(); String ipAddress = null; if ("6".equals(ipAddressVersion)) { propertyChild = (Property) PropertyUtil.getProperty(propertyOld, NodeConstant.IP_ADDRESS_V6).get(0); ipAddress = propertyChild.getValue().toString(); } else { propertyChild = (Property) PropertyUtil.getProperty(propertyOld, NodeConstant.IP_ADDRESS_V4).get(0); ipAddress = propertyChild.getValue().toString(); } if ("".equals(ipAddress)) { this.ipAddressBox.setText(NodeSearchUtil.generateDefaultIp("192.168.0.")); } else { this.ipAddressBox.setText(ipAddress); } //??? this.portText = new Label(groupAuto, SWT.NONE); WidgetTestUtil.setTestId(this, "portnumber", portText); this.portText.setText(Messages.getString("port.number") + " : "); this.portBox = new Text(groupAuto, SWT.BORDER | SWT.SINGLE); WidgetTestUtil.setTestId(this, "port", portBox); grid = new GridData(GridData.FILL_HORIZONTAL); grid.minimumWidth = 50; this.portBox.setLayoutData(grid); propertyChild = (Property) PropertyUtil.getProperty(propertyOld, NodeConstant.SNMP_PORT).get(0); String snmpPort = propertyChild.getValue().toString(); if ("".equals(snmpPort)) { this.portBox.setText("161"); } else { this.portBox.setText(snmpPort); } // ????? Label label = new Label(groupAuto, SWT.NONE); WidgetTestUtil.setTestId(this, "dummy", label); //?? this.communityText = new Label(groupAuto, SWT.NONE); WidgetTestUtil.setTestId(this, "communityname", communityText); this.communityText.setText(Messages.getString("community.name") + " : "); this.communityBox = new Text(groupAuto, SWT.BORDER | SWT.SINGLE); WidgetTestUtil.setTestId(this, "community", communityBox); this.communityBox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); propertyChild = (Property) PropertyUtil.getProperty(propertyOld, NodeConstant.SNMP_COMMUNITY).get(0); String snmpCommunity = propertyChild.getValue().toString(); if ("".equals(snmpCommunity)) { this.communityBox.setText("public"); } else { this.communityBox.setText(snmpCommunity); } //? this.versionText = new Label(groupAuto, SWT.NONE); WidgetTestUtil.setTestId(this, "snmpversion", versionText); this.versionText.setText(Messages.getString("snmp.version") + " : "); this.versionBox = new Combo(groupAuto, SWT.DROP_DOWN | SWT.READ_ONLY); WidgetTestUtil.setTestId(this, "version", versionBox); this.versionBox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); this.versionBox.add("1", INDEX_VERSION_BOX_0); this.versionBox.add("2c", INDEX_VERSION_BOX_1); this.versionBox.add("3", INDEX_VERSION_BOX_2); // v2c?? propertyChild = (Property) PropertyUtil.getProperty(propertyOld, NodeConstant.SNMP_VERSION).get(0); String snmpVersion = propertyChild.getValue().toString(); if ("1".equals(snmpVersion)) { this.versionBox.select(INDEX_VERSION_BOX_0); } else if ("2c".equals(snmpVersion)) { this.versionBox.select(INDEX_VERSION_BOX_1); } else { this.versionBox.select(INDEX_VERSION_BOX_2); setVersion3Item(); } oldVersion = versionBox.getText(); this.versionBox.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String version = versionBox.getText(); if (oldVersion.equals(version)) { return; } if (version.equals("3")) { setVersion3Item(); } else if (oldVersion.equals("3")) { empty_label_version.dispose(); empty_label_user.dispose(); empty_label_auth.dispose(); empty_label_security.dispose(); securityLevelText.dispose(); securityLevelBox.dispose(); userText.dispose(); userBox.dispose(); authPassText.dispose(); authPassBox.dispose(); privPassText.dispose(); privPassBox.dispose(); authProtocolText.dispose(); authProtocolBox.dispose(); privProtocolText.dispose(); privProtocolBox.dispose(); groupAuto.layout(); NodeCreateDialog.this.comp.layout(); } oldVersion = version; } }); if (SnmpVersionConstant.STRING_V3.equals(snmpVersion) == false) { setAutoButton(); } ///////////////////////////////////////////////////////////// // ? Label labelManager = new Label(parent, SWT.LEFT); WidgetTestUtil.setTestId(this, "manager", labelManager); gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; labelManager.setLayoutData(gridData); labelManager.setText(Messages.getString("facility.manager") + " : "); if (!this.isModifyDialog()) { this.m_managerComposite = new ManagerListComposite(parent, SWT.NONE, true); } else { this.m_managerComposite = new ManagerListComposite(parent, SWT.NONE, false); } WidgetTestUtil.setTestId(this, "managerComposite", this.m_managerComposite); gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; this.m_managerComposite.setLayoutData(gridData); if (this.managerName != null) { this.m_managerComposite.setText(this.managerName); } if (isModifyDialog == false) { this.m_managerComposite.getComboManagerName().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String managerName = m_managerComposite.getText(); m_ownerRoleId.createRoleIdList(managerName); } }); } // ID Label labelRoleId = new Label(parent, SWT.LEFT); WidgetTestUtil.setTestId(this, "roleid", labelRoleId); gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; labelRoleId.setLayoutData(gridData); labelRoleId.setText(Messages.getString("owner.role.id") + " : "); if (!this.isModifyDialog()) { this.m_ownerRoleId = new RoleIdListComposite(parent, SWT.NONE, this.managerName, true, Mode.OWNER_ROLE); } else { this.m_ownerRoleId = new RoleIdListComposite(parent, SWT.NONE, this.managerName, false, Mode.OWNER_ROLE); } WidgetTestUtil.setTestId(this, "roleidlist", m_ownerRoleId); if (nodeInfoOld != null && nodeInfoOld.getOwnerRoleId() != null) { m_ownerRoleId.setText(nodeInfoOld.getOwnerRoleId()); } gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; m_ownerRoleId.setLayoutData(gridData); /* * */ // Label labelAttribute = new Label(parent, SWT.LEFT); WidgetTestUtil.setTestId(this, "attribute", labelAttribute); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 1; labelAttribute.setLayoutData(gridData); labelAttribute.setText(Messages.getString("attribute") + " : "); // tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); WidgetTestUtil.setTestId(this, null, tree); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.verticalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.heightHint = SWT.MIN; gridData.horizontalSpan = 1; tree.setLayoutData(gridData); tree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // ?? update(); } }); this.propertySheet = new PropertySheet(tree); this.propertySheet.setSize(230, 300); this.propertySheet.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { // ?? update(); } @Override public void treeCollapsed(TreeExpansionEvent event) { // ?? update(); } }); // this.propertySheet.setInput(propertyOld); // ?? Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); WidgetTestUtil.setTestId(this, "line", line); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 1; line.setLayoutData(gridData); // ?? Display display = shell.getDisplay(); shell.setLocation((display.getBounds().width - shell.getSize().x) / 2, (display.getBounds().height - shell.getSize().y) / 2); //?pack:resize to be its preferred size shell.pack(); shell.setSize(new Point(shell.getSize().x, sizeY)); this.expand(); this.update(); }