List of usage examples for org.eclipse.jface.viewers TreeViewer getAutoExpandLevel
public int getAutoExpandLevel()
From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java
License:Open Source License
private TreeViewer createTreeViewerArea(Composite parent) { final Composite treeArea = new Composite(parent, SWT.BORDER); treeArea.setLayout(new FillLayout()); treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$ treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT); TreeViewer tempViewer = null;//from w ww.jav a2 s. c o m String property = System.getProperty(ORG_ECLIPSE_E4_TOOLS_MODELEDITOR_FILTEREDTREE_ENABLED_XMITAB_DISABLED); if (property != null || preferences.getBoolean("tab-form-search-show", false)) { //$NON-NLS-1$ FilteredTree viewParent = new FilteredTree(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true); tempViewer = viewParent.getViewer(); } else { tempViewer = new TreeViewerEx(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, emfDocumentProvider, modelProvider); } final TreeViewer viewer = tempViewer; viewer.setLabelProvider(new ComponentLabelProvider(this, messages)); ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider( new ObservableFactoryImpl(), new TreeStructureAdvisor() { }); viewer.setContentProvider(contentProvider); final WritableSet clearedSet = new WritableSet(); contentProvider.getKnownElements().addSetChangeListener(new ISetChangeListener() { @Override public void handleSetChange(SetChangeEvent event) { for (Object o : event.diff.getAdditions()) { if (o instanceof EObject) { clearedSet.add(o); } } for (Object o : event.diff.getRemovals()) { if (o instanceof EObject) { clearedSet.remove(o); } } } }); for (FeaturePath p : labelFeaturePaths) { IObservableMap map = EMFProperties.value(p).observeDetail(clearedSet); map.addMapChangeListener(new IMapChangeListener() { @Override public void handleMapChange(MapChangeEvent event) { viewer.update(event.diff.getChangedKeys().toArray(), null); } }); } viewer.setInput(modelProvider.getRoot()); viewer.setAutoExpandLevel(2); viewer.expandToLevel(viewer.getAutoExpandLevel()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { TreeViewer viewer = (TreeViewer) event.getViewer(); IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection(); Object selectedNode = thisSelection.getFirstElement(); if (mod1Down) { if (viewer.getExpandedState(selectedNode)) viewer.setExpandedState(selectedNode, false); else viewer.expandToLevel(selectedNode, AbstractTreeViewer.ALL_LEVELS); } else { viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } } }); // Effect of filtered tree implementation (bug 391086) viewer.getTree().addTreeListener(new TreeAdapter() { @Override public void treeCollapsed(TreeEvent e) { viewer.expandToLevel(viewer.getAutoExpandLevel()); } }); int ops = DND.DROP_MOVE; viewer.addDragSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DragListener(viewer)); viewer.addDropSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DropListener(viewer, modelProvider.getEditingDomain())); return viewer; }
From source file:org.eclipse.jubula.client.ui.controllers.TreeViewContainerGUIController.java
License:Open Source License
/** * collapse or expand the give TreeViewer * //from w w w .j av a2 s . c om * @param treeCont * ITreeViewerContainer */ public static void collapseExpandTree(ITreeViewerContainer treeCont) { TreeViewer tv = treeCont.getTreeViewer(); try { tv.getTree().setRedraw(false); tv.collapseAll(); int autoExpandLevel = tv.getAutoExpandLevel(); tv.expandToLevel(autoExpandLevel); } finally { tv.getTree().setRedraw(true); } }
From source file:org.eclipse.tcf.te.tcf.processes.ui.editor.ProcessMonitorEventListener.java
License:Open Source License
@Override public void eventFired(EventObject event) { if (event instanceof ChangeEvent) { final ChangeEvent changeEvent = (ChangeEvent) event; final Object source = changeEvent.getSource(); if (treeControl.getViewer() != null) { if (treeControl.getViewer().getControl() == null || treeControl.getViewer().getControl().isDisposed()) { EventManager.getInstance().removeEventListener(this); return; }//from w w w . j av a 2 s. c o m // Property changes for the runtime model refreshes the whole tree. if (source instanceof IRuntimeModel) { treeControl.getViewer().refresh(); } // Property changes for individual context nodes refreshes the node only else if (source instanceof IProcessContextNode) { if ("expanded".equals(changeEvent.getEventId())) { //$NON-NLS-1$ // Expansion state of the node changed. boolean expanded = ((Boolean) changeEvent.getNewValue()).booleanValue(); // Update the nodes expansion state ((TreeViewer) treeControl.getViewer()).setExpandedState(source, expanded); } else { ((TreeViewer) treeControl.getViewer()).refresh(source, true); } } else if (source instanceof IPeerNode && source == getPeerNode()) { if (IPeerNodeProperties.PROPERTY_CONNECT_STATE.equals(changeEvent.getEventId())) { // Peer node connect state changed to connected if (changeEvent.getNewValue().equals(Integer.valueOf(IConnectable.STATE_CONNECTED))) { // Get the new runtime model final IRuntimeModel model = ModelManager.getRuntimeModel(getPeerNode()); // Update the tree viewer input element if (treeControl.getViewer().getInput() != model) { treeControl.getViewer().setInput(model); } // Refresh the model Protocol.invokeLater(new Runnable() { @Override public void run() { model.getService(IRuntimeModelRefreshService.class).refresh(new Callback() { @Override protected void internalDone(Object caller, IStatus status) { // Apply the auto expand level to the tree final TreeViewer treeViewer = (TreeViewer) treeControl.getViewer(); DisplayUtil.safeAsyncExec(new Runnable() { @Override public void run() { treeViewer.expandToLevel(treeViewer.getAutoExpandLevel()); } }); } }); } }); } else { // Trigger a refresh on the whole viewer to show the "Please connect ..." text treeControl.getViewer().refresh(); } } } } } }