List of usage examples for org.eclipse.jface.viewers TreeViewer expandToLevel
public void expandToLevel(int level)
From source file:org.axdt.swc.ui.SwcEditorView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { Composite base = new Composite(parent, SWT.NONE); base.setLayout(new FillLayout()); TreeViewer treeViewer = new TreeViewer(base); treeViewer.setLabelProvider(new SwcLabelProvider()); treeViewer.setContentProvider(new SwcContentProvider()); IEditorInput input = getEditorInput(); SwcInfo info = new SwcInfo(); if (input instanceof IFileEditorInput) { IFileEditorInput fileInput = (IFileEditorInput) input; info.readFile(fileInput.getFile()); }/*from w w w . ja va 2s. co m*/ treeViewer.setInput(info.getModel()); treeViewer.expandToLevel(3); }
From source file:org.drools.eclipse.editors.outline.RuleContentOutlinePage.java
License:Apache License
/** * Updates the outline page./*w ww.j a v a 2s . com*/ */ public void update() { TreeViewer viewer = getTreeViewer(); if (viewer != null) { Control control = viewer.getControl(); if (control != null && !control.isDisposed()) { initRules(); populatePackageTreeNode(); viewer.refresh(); control.setRedraw(false); viewer.expandToLevel(2); control.setRedraw(true); } } }
From source file:org.dyno.visual.swing.editors.VisualSwingOutline.java
License:Open Source License
public void createControl(Composite parent) { super.createControl(parent); TreeViewer treeView = getTreeViewer(); getSite().setSelectionProvider(treeView); treeView.setContentProvider(new ComponentTreeContentProvider()); treeView.setLabelProvider(new ComponentTreeLabelProvider()); treeView.setInput(input);// ww w. j av a 2 s .com treeView.expandToLevel(2); Tree tree = (Tree) treeView.getTree(); tree.addMenuDetectListener(new MenuDetectListener() { public void menuDetected(MenuDetectEvent e) { _showMenu(e); } }); tree.addMouseListener(new MouseAdapter() { public void mouseDoubleClick(MouseEvent e) { _mouseDoubleClicked(e); } }); tree.addListener(SWT.MeasureItem, new org.eclipse.swt.widgets.Listener() { public void handleEvent(org.eclipse.swt.widgets.Event event) { event.height = 18; } }); new OutlineViewDnD(designer).attach(treeView); }
From source file:org.eclipse.birt.report.designer.ui.lib.explorer.LibraryExplorerTreeViewPage.java
License:Open Source License
private void handleTreeViewerRefresh() { TreeViewer treeViewer = getTreeViewer(); if (libraryBackup != null) { libraryBackup.restoreBackup(treeViewer); } else {// w w w .ja v a2 s .c o m libraryBackup = new TreeViewerBackup(); treeViewer.expandToLevel(2); libraryBackup.updateStatus(treeViewer); } }
From source file:org.eclipse.bpel.ui.wizards.NewBpelFilePortTypePage.java
License:Open Source License
@Override public void createControl(Composite parent) { // Create the container final Composite container = new Composite(parent, SWT.NONE); container.setFont(parent.getFont()); initializeDialogUnits(parent);/*from w w w . j a v a 2 s. c om*/ container.setLayout(new GridLayout(2, false)); container.setLayoutData(new GridData(GridData.FILL_BOTH)); setControl(container); // WSDL location (as an URL) Label l = new Label(container, SWT.NONE); l.setText("WSDL URL:"); l.setToolTipText("The URL of the service description (WSDL)"); l.setLayoutData(new GridData(SWT.TOP, SWT.DEFAULT, false, false)); final Text wsdlUrlText = new Text(container, SWT.SINGLE | SWT.BORDER); wsdlUrlText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); wsdlUrlText.setToolTipText("Press the 'Tab' key to parse this WSDL"); if (this.wsdlUrl != null) wsdlUrlText.setText(this.wsdlUrl); wsdlUrlText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { NewBpelFilePortTypePage.this.wsdlUrl = ((Text) e.widget).getText(); updateStatus(); } }); final ControlDecoration wsdlTextDecoration = new ControlDecoration(wsdlUrlText, SWT.LEFT | SWT.BOTTOM); wsdlTextDecoration .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK)); wsdlTextDecoration.setDescriptionText(wsdlUrlText.getToolTipText()); wsdlTextDecoration.hide(); // Helpers to browse for WSDL files new Label(container, SWT.NONE); // Bad but so convenient! Composite subContainer = new Composite(container, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.marginHeight = 0; layout.marginWidth = 0; layout.marginBottom = 13; subContainer.setLayout(layout); subContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(subContainer, SWT.NONE).setImage(this.fileSystemImg); Link browseFileSystemLink = new Link(subContainer, SWT.NONE); browseFileSystemLink.setText("<A>Browse the file system...</A>"); new Label(subContainer, SWT.NONE).setImage(this.workspaceImg); Link browseWorkspaceLink = new Link(subContainer, SWT.NONE); browseWorkspaceLink.setText("<A>Browse the workspace...</A>"); new Label(subContainer, SWT.NONE).setImage(this.parseImg); Link parseWsdlLink = new Link(subContainer, SWT.NONE); parseWsdlLink.setText("<A>Parse the given WSDL</A>"); // Port type to use for the generation l = new Label(container, SWT.NONE); l.setText("Service Contract:"); l.setToolTipText("The port type (service contract) to implement with BPEL"); final ComboViewer portTypeCombo = new ComboViewer(container, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY); portTypeCombo.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); portTypeCombo.setContentProvider(new ArrayContentProvider()); portTypeCombo.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { QName name = ((PortType) element).getQName(); return name.getLocalPart() + " - " + name.getNamespaceURI(); } }); // The button to import the WSDL new Label(container, SWT.NONE); Button importButton = new Button(container, SWT.CHECK); importButton.setText("Import the WSDL file with its dependencies"); importButton.setSelection(this.importWsdl); importButton.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { widgetDefaultSelected(e); } @Override public void widgetDefaultSelected(SelectionEvent e) { NewBpelFilePortTypePage.this.importWsdl = ((Button) e.widget).getSelection(); } }); // The viewer for a quick overview of the operations subContainer = new Composite(container, SWT.NONE); layout = new GridLayout(); layout.marginWidth = 0; layout.marginTop = 11; subContainer.setLayout(layout); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.horizontalSpan = 2; subContainer.setLayoutData(layoutData); l = new Label(subContainer, SWT.NONE); l.setText("Select a service contract (port type) and see its operations below."); final TreeViewer operationsViewer = new TreeViewer(subContainer, SWT.BORDER); operationsViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); operationsViewer.setLabelProvider(new LabelProvider() { @Override public Image getImage(Object element) { Image result = null; if (element instanceof Operation) result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_OPERATION_16); else if (element instanceof Input) result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_INPUT_16); else if (element instanceof Output) result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_OUTPUT_16); else if (element instanceof Fault) result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_FAULT_16); return result; } @Override public String getText(Object element) { String result = ""; if (element instanceof Operation) { result = ((Operation) element).getName(); result = result == null || result.trim().length() == 0 ? "?" : result; } else if (element instanceof Input) { result = ((Input) element).getName(); result = result == null || result.trim().length() == 0 ? "Input" : result; } else if (element instanceof Output) { result = ((Output) element).getName(); result = result == null || result.trim().length() == 0 ? "Output" : result; } else if (element instanceof Fault) { result = ((Fault) element).getName(); result = result == null || result.trim().length() == 0 ? "Fault" : result; } return result; } }); operationsViewer.setContentProvider(new ITreeContentProvider() { @Override public void dispose() { // nothing } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // nothing } @Override public Object[] getElements(Object inputElement) { return ((PortType) inputElement).getOperations().toArray(); } @SuppressWarnings("unchecked") @Override public Object[] getChildren(Object pa) { List<Object> result = new ArrayList<Object>(); if (pa instanceof Operation) { Operation op = (Operation) pa; if (op.getInput() != null) result.add(op.getInput()); if (op.getOutput() != null) result.add(op.getOutput()); if (op.getFaults() != null) result.addAll(op.getFaults().values()); } return result.toArray(); } @Override public Object getParent(Object element) { return null; } @Override public boolean hasChildren(Object element) { return element instanceof Operation; } }); // Listeners portTypeCombo.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { NewBpelFilePortTypePage.this.portType = (PortType) ((IStructuredSelection) portTypeCombo .getSelection()).getFirstElement(); operationsViewer.setInput(NewBpelFilePortTypePage.this.portType); operationsViewer.refresh(); if (NewBpelFilePortTypePage.this.portType != null) { if (NewBpelFilePortTypePage.this.portType.getOperations().size() < 4) operationsViewer.expandAll(); else operationsViewer.expandToLevel(2); } updateStatus(); } }); // WSDL parsing final List<PortType> portTypes = new ArrayList<PortType>(); final IRunnableWithProgress wsdlParsingOperation = new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { monitor.beginTask("Parsing the WSDL...", 5); try { portTypes.clear(); monitor.worked(1); URI emfUri = URI.createURI(NewBpelFilePortTypePage.this.wsdlUrl); Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions(emfUri, WsdlParser.createBasicResourceSetForWsdl()); for (Definition def : definitions) { for (Object o : def.getPortTypes().values()) portTypes.add((PortType) o); } monitor.worked(3); } finally { monitor.done(); } } }; wsdlUrlText.addTraverseListener(new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (NewBpelFilePortTypePage.this.wsdlUrl == null) return; try { // Parse getContainer().run(true, false, wsdlParsingOperation); // Update the UI portTypeCombo.setInput(portTypes); portTypeCombo.refresh(); if (portTypes.size() > 0) portTypeCombo.getCombo().select(0); portTypeCombo.getCombo().notifyListeners(SWT.Selection, new Event()); } catch (InvocationTargetException e1) { BPELUIPlugin.log(e1); } catch (InterruptedException e1) { BPELUIPlugin.log(e1); } } }); wsdlUrlText.addFocusListener(new FocusListener() { @Override public void focusLost(FocusEvent e) { wsdlTextDecoration.hide(); } @Override public void focusGained(FocusEvent e) { wsdlTextDecoration.show(); } }); // "Browse" call-backs browseFileSystemLink.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { widgetDefaultSelected(e); } @Override public void widgetDefaultSelected(SelectionEvent e) { FileDialog dlg = new FileDialog(getShell()); dlg.setFilterExtensions(new String[] { "*.wsdl" }); dlg.setFilterNames(new String[] { "WSDL (*.wsdl)" }); dlg.setText("Select a service description (WSDL)."); String path = dlg.open(); if (path != null) { File f = new File(path); wsdlUrlText.setText(f.toURI().toString()); wsdlUrlText.notifyListeners(SWT.Traverse, new Event()); } } }); parseWsdlLink.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { wsdlUrlText.notifyListeners(SWT.Traverse, new Event()); } @Override public void widgetDefaultSelected(SelectionEvent e) { wsdlUrlText.notifyListeners(SWT.Traverse, new Event()); } }); browseWorkspaceLink.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { widgetDefaultSelected(e); } @Override public void widgetDefaultSelected(SelectionEvent e) { // Prepare the initial selection IFile currentWsdl = null; if (NewBpelFilePortTypePage.this.wsdlUrl != null) { try { java.net.URI uri = UriAndUrlHelper.urlToUri(NewBpelFilePortTypePage.this.wsdlUrl); File f = new File(uri); IPath path = new Path(f.getAbsolutePath()); currentWsdl = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path); } catch (Exception e1) { BPELUIPlugin.log(e1, IStatus.WARNING); } } // Open a dialog that only shows the WSDL files in the workspace - and their ancestors/containers final List<IFile> workspaceWsdlFiles = getFiles("wsdl", Arrays.asList(ResourcesPlugin.getWorkspace().getRoot())); ElementTreeSelectionDialog dlg = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider() { @Override public Object[] getChildren(Object element) { Object[] result = super.getChildren(element); if (result == null) result = new Object[0]; List<Object> filteredResult = new ArrayList<Object>(); for (Object o : result) { if (o instanceof IFile && workspaceWsdlFiles.contains(o)) filteredResult.add(o); else if (o instanceof IContainer) { IPath containerPath = ((IContainer) o).getFullPath(); for (IFile wsdlFile : workspaceWsdlFiles) { if (containerPath.isPrefixOf(wsdlFile.getFullPath())) { filteredResult.add(o); break; } } } } return filteredResult.toArray(); } }); dlg.setInput(ResourcesPlugin.getWorkspace().getRoot()); dlg.setTitle("WSDL Selection"); dlg.setMessage("Select a WSDL file located in the workspace."); if (currentWsdl != null) dlg.setInitialElementSelections(Arrays.asList(currentWsdl)); // Open it and update the text widget if necessary if (dlg.open() == Window.OK) { IFile selectedFile = (IFile) dlg.getResult()[0]; wsdlUrlText.setText(selectedFile.getLocation().toFile().toURI().toString()); wsdlUrlText.notifyListeners(SWT.Traverse, new Event()); } } }); // Initialize the port type... if (this.portType != null) portTypeCombo.setSelection(new StructuredSelection(this.portType)); else if (portTypeCombo.getCombo().getItemCount() > 0) { portTypeCombo.getCombo().select(0); portTypeCombo.getCombo().notifyListeners(SWT.Selection, new Event()); } // ... and the page's state updateStatus(); if (getErrorMessage() != null) { setPageComplete(false); setErrorMessage(null); } }
From source file:org.eclipse.cdt.debug.ui.breakpoints.CBreakpointPropertyDialogAction.java
License:Open Source License
public void run() { CBreakpointContext bpContext = getCBreakpointContext(); if (bpContext != null) { PreferenceDialog dialog = createDialog(bpContext); if (dialog != null) { TreeViewer viewer = dialog.getTreeViewer(); if (viewer != null) { viewer.setComparator(new ViewerComparator() { @Override//from www . j av a 2 s. c om public int category(Object element) { if (element instanceof IPreferenceNode) { IPreferenceNode node = (IPreferenceNode) element; if (PAGE_ID_COMMON.equals(node.getId())) { return 0; } else if (node.getSubNodes() == null || node.getSubNodes().length == 0) { // Pages without children (not categories) return super.category(element) + 1; } } // Categories last. return super.category(element) + 2; } }); // Expand all categories viewer.expandToLevel(TreeViewer.ALL_LEVELS); } dialog.open(); } } }
From source file:org.eclipse.contribution.xref.internal.ui.utils.XRefUIUtils.java
License:Open Source License
public static void evaluateXReferences(IDeferredXReference xr, TreeViewer viewer, Shell shell) { try {/*from w w w . j a v a2s .c o m*/ new ProgressMonitorDialog(shell).run(true, true, xr); if (!(viewer.getContentProvider() instanceof XReferenceContentProvider)) { return; } ((XReferenceContentProvider) viewer.getContentProvider()).refresh(); viewer.refresh(); viewer.expandToLevel(3); } catch (InterruptedException intEx) { // user cancelled - this is ok... } catch (InvocationTargetException invEx) { System.err.println("Something nasty here, " + xr + " could not be evaluated: " + invEx); //$NON-NLS-1$ //$NON-NLS-2$ } }
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;//w w w. j a v a 2s .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.e4.tools.emf.ui.internal.common.uistructure.UIViewer.java
License:Open Source License
public TreeViewer createViewer(Composite parent, EStructuralFeature feature, final IObservableValue master, IResourcePool resourcePool, final Messages messages) { final TreeViewer viewer = new TreeViewer(parent); viewer.setContentProvider(new WidgetContentProvider()); viewer.setLabelProvider(new WidgetLabelProvider(resourcePool)); IEMFValueProperty property = EMFProperties.value(feature); IObservableValue value = property.observeDetail(master); value.addValueChangeListener(new IValueChangeListener() { @Override/* w w w.j a v a 2 s. c o m*/ public void handleValueChange(ValueChangeEvent event) { if (event.diff.getNewValue() != null) { viewer.setInput(Collections.singleton(event.diff.getNewValue())); viewer.expandToLevel(2); } else { viewer.setInput(Collections.emptyList()); } } }); final MenuManager mgr = new MenuManager(); mgr.setRemoveAllWhenShown(true); mgr.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(IMenuManager manager) { final Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (o instanceof Control) { manager.add(new Action(messages.ModelEditor_ShowControl) { @Override public void run() { ControlHighlighter.show((Control) o); } }); } IExtensionRegistry registry = RegistryFactory.getRegistry(); IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$ final IConfigurationElement[] elements = extPoint.getConfigurationElements(); final IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (elements.length > 0 && !s.isEmpty()) { MenuManager scriptExecute = new MenuManager(messages.ModelEditor_Script); manager.add(scriptExecute); for (IConfigurationElement e : elements) { final IConfigurationElement le = e; scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$ @Override public void run() { try { MApplicationElement o = (MApplicationElement) master.getValue(); IScriptingSupport support = (IScriptingSupport) le .createExecutableExtension("class"); //$NON-NLS-1$ support.openEditor(viewer.getControl().getShell(), s.getFirstElement(), ModelUtils.getContainingContext(o)); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } } } }); viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl())); return viewer; }
From source file:org.eclipse.e4.xwt.tools.ui.designer.dialogs.ImageDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { Composite dialogArea = (Composite) super.createDialogArea(parent); GridLayout layout = (GridLayout) dialogArea.getLayout(); layout.numColumns = 2;// ww w .jav a 2 s .c o m Group leftComp = new Group(dialogArea, SWT.NONE); leftComp.setText("types"); layout = new GridLayout(2, false); leftComp.setLayout(layout); leftComp.setLayoutData(new GridData(GridData.FILL_BOTH)); final Button projRadio = new Button(leftComp, SWT.RADIO); projRadio.setText("Project"); projRadio.setSelection(true); projRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER)); new Label(leftComp, SWT.NONE)/* .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)) */; final Button fileRadio = new Button(leftComp, SWT.RADIO); fileRadio.setText("File System"); fileRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER)); final Button browserButton = new Button(leftComp, SWT.PUSH); browserButton.setText("Browser"); // browserButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)); browserButton.setEnabled(false); Group previewer = new Group(dialogArea, SWT.NONE); previewer.setText("Preview"); previewer.setLayout(new FillLayout()); previewLable = new Label(previewer, SWT.CENTER | SWT.SHADOW_IN); GridData gd = new GridData(GridData.FILL_BOTH); // gd.heightHint = 50; // gd.widthHint = 50; // gd.horizontalSpan = 2; previewer.setLayoutData(gd); final TreeViewer viewer = new TreeViewer(dialogArea, SWT.BORDER); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.horizontalSpan = 2; viewer.getControl().setLayoutData(layoutData); viewer.setContentProvider(new ImageContentProvider()); JavaElementLabelProvider labelProvider = new JavaElementLabelProvider() { public String getText(Object element) { // Need a slight override, for source roots, want to show the entire path so that the project shows up. // It doesn't look as good because you can't tell what project the root is in when there are required projects. String result = super.getText(element); if (element instanceof IPackageFragmentRoot) result = MessageFormat.format("{0} - {1}", new Object[] { result, ((IPackageFragmentRoot) element).getJavaProject().getElementName() }); return result; } }; viewer.setLabelProvider(labelProvider); if (project != null) { viewer.setInput(JavaCore.create(project)); } viewer.expandToLevel(2); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); Object firstElement = selection.getFirstElement(); if (firstElement instanceof IFile) { IPath fullPath = ((IFile) firstElement).getLocation(); String path = fullPath.toString(); if (file != null) { String sourcePath = file.getLocation().toString(); path = PathHelper.getRelativePath(sourcePath, path); } setImagePath(path); } } }); Listener listener = new Listener() { public void handleEvent(Event event) { setImagePath(null); if (event.widget == projRadio) { viewer.getControl().setEnabled(true); browserButton.setEnabled(false); } else if (event.widget == fileRadio) { viewer.getControl().setEnabled(false); browserButton.setEnabled(true); } else if (event.widget == browserButton) { chooseImage(); } } }; projRadio.addListener(SWT.Selection, listener); fileRadio.addListener(SWT.Selection, listener); browserButton.addListener(SWT.Selection, listener); Composite bottomComp = new Composite(dialogArea, SWT.NONE); layout = new GridLayout(2, false); layout.marginWidth = 0; layout.marginHeight = 0; bottomComp.setLayout(layout); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; bottomComp.setLayoutData(gd); new Label(bottomComp, SWT.NONE).setText("Image:"); imageLabel = new Label(bottomComp, SWT.NONE); imageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); return dialogArea; }