List of usage examples for org.eclipse.jface.viewers LabelProvider LabelProvider
public LabelProvider()
From source file:com.nokia.tools.theme.s60.ui.cstore.AcquireFilterTagsDialog.java
License:Open Source License
public AcquireFilterTagsDialog(Shell parentShell, IComponentStore store, boolean custom, List<String> initial, String message) {//w ww .ja v a 2 s .c o m super(parentShell, store.getAvailableTags(), new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return ((java.util.List) inputElement).toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }, new LabelProvider(), message == null ? "Please select filter tags for elements being added:" : message); setTitle("Component Store"); this.initial = initial; if (initial != null) { setInitialElementSelections(initial); } this.custom = custom; }
From source file:com.nokia.tools.theme.s60.ui.cstore.ComponentStoreWidget.java
License:Open Source License
protected void doShowAdjustFiltersDialog() { ListSelectionDialog dialog = new ListSelectionDialog(getShell(), ComponentStore.SINGLETON.getAvailableTags(), new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return ((List) inputElement).toArray(); }// ww w.j a v a 2s . co m public void dispose() { }; public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }, new LabelProvider(), Messages.cstore_filterDlgLblb); dialog.setInitialElementSelections(filterTags); dialog.setTitle(Messages.cstore_filterDlgMsg); if (dialog.open() == Window.OK) { filterTags.clear(); Object results[] = dialog.getResult(); if (results != null && results.length > 0) { for (Object result : results) { filterTags.add(result.toString()); } } refreshContents(); } }
From source file:com.nokia.tools.theme.s60.ui.cstore.CStoreManageContentDialog.java
License:Open Source License
/** * @see org.eclipse.jface.dialogs.Dialog# * createDialogArea(org.eclipse.swt.widgets.Composite) Here we fill the * center area of the dialog/*from w ww .j a v a 2s. c om*/ */ protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite root = new Composite(area, SWT.None); root.setLayout(new GridLayout(2, false)); { //filter bar Composite searchRoot = new Composite(root, SWT.None); GridData gd = new GridData(); gd.horizontalIndent = gd.verticalIndent = 0; GridLayout gridl = new GridLayout(3, false); searchRoot.setLayout(gridl); Label searchLabel = new Label(searchRoot, SWT.None); searchLabel.setText("Find:"); searchText = new Text(searchRoot, SWT.BORDER); gd = new GridData(GridData.FILL_HORIZONTAL); gd.widthHint = 150; searchText.setLayoutData(gd); searchText.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { handleSearchTextKeyPress(e); } }); //filter button Button filterButton = new Button(searchRoot, SWT.PUSH); filterButton.setText("Filters.."); filterButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleFilterButtonSelected(e); } }); } { //right composite rightComposite = new Composite(root, SWT.None); rightComposite.setLayout(new GridLayout()); GridData gd = new GridData(); gd.verticalSpan = 5; gd.verticalAlignment = SWT.TOP; gd.widthHint = 400; gd.heightHint = 400; rightComposite.setLayoutData(gd); org.eclipse.swt.widgets.Group preview = new org.eclipse.swt.widgets.Group(rightComposite, SWT.None); preview.setText("Preview"); gd = new GridData(GridData.FILL_HORIZONTAL); gd.heightHint = 160; preview.setLayoutData(gd); preview.setLayout(new GridLayout()); imagePreview = new Label(preview, SWT.BORDER); gd = new GridData(); //gd.heightHint = 150; //gd.widthHint = 150; imagePreview.setLayoutData(gd); org.eclipse.swt.widgets.Group tagsGroup = new org.eclipse.swt.widgets.Group(rightComposite, SWT.None); tagsGroup.setText("Filter Tags"); gd = new GridData(GridData.FILL_BOTH); tagsGroup.setLayoutData(gd); tagsGroup.setLayout(new FillLayout()); Composite tagsRootComposite = new Composite(tagsGroup, SWT.None); } list = new ListViewer(root, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); GridData gd = new GridData(GridData.FILL_VERTICAL); gd.widthHint = gd.minimumWidth = 250; gd.heightHint = gd.minimumHeight = 300; list.getList().setLayoutData(gd); list.setContentProvider(new IStructuredContentProvider() { public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public Object[] getElements(Object inputElement) { if (StringUtils.isEmpty(searchString)) return ((List) inputElement).toArray(); else { List<StoredElement> result = new ArrayList<StoredElement>(); for (Object item : (List) inputElement) { StoredElement elem = (StoredElement) item; if (elem.name.toLowerCase().startsWith(searchString)) result.add(elem); } return result.toArray(); } } }); list.setLabelProvider(new LabelProvider() { @Override public String getText(Object e) { StoredElement element = (StoredElement) e; return element.name; } }); deleteButton = new Button(root, SWT.PUSH); deleteButton.setText("Delete"); deleteButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { performDeletePressed(e); } }); deleteButton.setEnabled(false); list.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updatePreview(); } }); list.setInput(store.getContents()); return area; }
From source file:com.nsand.gravity.internal.ProjectNaturePropertyPage.java
License:MIT License
@Override protected Control createContents(Composite parent) { project = (IProject) getElement().getAdapter(IProject.class); final Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); if (project != null) { try {//from ww w. j a v a 2 s . c o m initializeDefaults(); final IProjectDescription description = project.getDescription(); final IProjectNatureDescriptor[] descriptors = ResourcesPlugin.getWorkspace() .getNatureDescriptors(); Arrays.sort(descriptors, new Comparator<IProjectNatureDescriptor>() { @Override public int compare(IProjectNatureDescriptor desc1, IProjectNatureDescriptor desc2) { return ((IProjectNatureDescriptor) desc1).getLabel() .compareTo(((IProjectNatureDescriptor) desc2).getLabel()); } }); Label label = new Label(composite, SWT.NONE); label.setText("&Natures:"); viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER); viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); viewer.setContentProvider(ArrayContentProvider.getInstance()); viewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((IProjectNatureDescriptor) element).getLabel(); } }); viewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { if (event.getChecked()) { enableDependencies((IProjectNatureDescriptor) event.getElement(), false); } } }); viewer.setInput(descriptors); setChecked(description.getNatureIds()); } catch (CoreException e) { } } return composite; }
From source file:com.photon.phresco.ui.internal.controls.PhrescoConfigControl.java
License:Apache License
public PhrescoConfigControl(Composite parent, int style, IPath configFilePath, String projectCode) { super(parent, style); GridLayout layout = new GridLayout(1, false); setLayout(layout);/* w w w. j a v a 2 s . c om*/ GridData data = new GridData(GridData.FILL_BOTH); setLayoutData(data); Composite envComposite = new Composite(this, SWT.NONE); envComposite.setLayout(new GridLayout(3, false)); envComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); Label lblEnviroments = new Label(envComposite, SWT.NONE); lblEnviroments.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblEnviroments.setText("Enviroments"); configPath = configFilePath; ComboViewer comboViewer = new ComboViewer(envComposite, SWT.NONE | SWT.READ_ONLY); Combo combo = comboViewer.getCombo(); combo.setLayoutData(new GridData(SWT.DEFAULT, SWT.CENTER, false, false, 1, 1)); comboViewer.setContentProvider(new ArrayContentProvider()); comboViewer.setLabelProvider(new LabelProvider()); comboViewer.setInput(new String[] { configPath.toOSString(), "production" }); Button envManageBtn = new Button(envComposite, SWT.PUSH); envManageBtn.setText("Manage Environments"); envManageBtn.setLayoutData(new GridData(SWT.DEFAULT, SWT.CENTER, false, false, 1, 1)); final ManageEnvironmentsDialog environmentsDialog = new ManageEnvironmentsDialog(null, projectCode); envManageBtn.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { environmentsDialog.create(); environmentsDialog.open(); } }); Button addConfigBtn = new Button(envComposite, SWT.PUSH); addConfigBtn.setText("Add..."); final Composite ConfigComposite = new Composite(this, SWT.NONE); ConfigComposite.setLayout(new GridLayout(1, false)); ConfigComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); final CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(ConfigComposite, SWT.BORDER | SWT.FULL_SELECTION); table = checkboxTableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); TableColumn tblNameColumn = new TableColumn(table, SWT.NONE); tblNameColumn.setWidth(100); tblNameColumn.setText("Name"); TableColumn tblValueColumn = new TableColumn(table, SWT.NONE); tblValueColumn.setWidth(100); tblValueColumn.setText("Description"); TableColumn tblDescColumn = new TableColumn(table, SWT.NONE); tblDescColumn.setWidth(200); tblDescColumn.setText("Environment"); TableColumn tblStatusColumn = new TableColumn(table, SWT.NONE); tblStatusColumn.setWidth(100); tblStatusColumn.setText("Status"); settingsInfoList = getConfigValues(projectCode); checkboxTableViewer.setContentProvider(new ArrayContentProvider()); checkboxTableViewer.setLabelProvider(new ITableLabelProvider() { @Override public void removeListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } @Override public boolean isLabelProperty(Object element, String property) { // TODO Auto-generated method stub return false; } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void addListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } @Override public String getColumnText(Object element, int columnIndex) { SettingsInfo settingsInfo = (SettingsInfo) element; switch (columnIndex) { case 0: return settingsInfo.getName(); case 1: return settingsInfo.getDescription(); case 2: return settingsInfo.getType() + " [" + settingsInfo.getEnvName() + "]"; } return ""; } @Override public Image getColumnImage(Object element, int columnIndex) { return null; } }); checkboxTableViewer.setInput(settingsInfoList); final ConfigDialog dialog = new ConfigDialog(null, projectCode); addConfigBtn.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { dialog.create(); if (dialog.open() == Window.OK) { // dialog.addSave(); checkboxTableViewer.add(dialog.getSettingsInfo()); } } }); }
From source file:com.planetmayo.debrief.satc_rcp.views.MaintainContributionsView.java
License:Open Source License
private void initPreferencesGroup(Composite parent) { GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; Group group = new Group(parent, SWT.SHADOW_ETCHED_IN); GridLayout layout = new GridLayout(1, false); group.setLayoutData(gridData);/*from w w w . j a va 2 s . c om*/ group.setLayout(layout); group.setText("Preferences"); final ScrolledComposite scrolled = new ScrolledComposite(group, SWT.H_SCROLL); scrolled.setLayoutData(new GridData(GridData.FILL_BOTH)); final Composite preferencesComposite = UIUtils.createScrolledBody(scrolled, SWT.NONE); preferencesComposite.setLayout(new GridLayout(6, false)); scrolled.addListener(SWT.Resize, new Listener() { @Override public void handleEvent(Event e) { scrolled.setMinSize(preferencesComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); } }); scrolled.setAlwaysShowScrollBars(true); scrolled.setContent(preferencesComposite); scrolled.setMinSize(preferencesComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); scrolled.setExpandHorizontal(true); scrolled.setExpandVertical(true); liveConstraints = new Button(preferencesComposite, SWT.TOGGLE); liveConstraints.setText("Auto-Recalc of Constraints"); liveConstraints.setEnabled(false); liveConstraints .setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER)); recalculate = new Button(preferencesComposite, SWT.DEFAULT); recalculate.setText("Calculate Solution"); recalculate.setEnabled(false); recalculate.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (activeSolver != null) { // ok - make sure the performance tab is open graphTabs.setSelection(performanceTab); activeSolver.run(true, true); main.setSize(0, 0); main.getParent().layout(true, true); } } }); recalculate.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_CENTER)); cancelGeneration = new Button(preferencesComposite, SWT.PUSH); cancelGeneration.setText("Cancel"); cancelGeneration.setVisible(false); cancelGeneration.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (activeSolver != null) { activeSolver.cancel(); } } }); suppressCuts = new Button(preferencesComposite, SWT.CHECK); suppressCuts.setText("Suppress Cuts"); suppressCuts.setVisible(true); suppressCuts.setEnabled(false); suppressCuts.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (activeSolver != null) { boolean doSuppress = suppressCuts.getSelection(); activeSolver.setAutoSuppress(doSuppress); } } }); showOSCourse = new Button(preferencesComposite, SWT.CHECK); showOSCourse.setText("Plot O/S Course"); showOSCourse.setVisible(true); showOSCourse.setEnabled(false); showOSCourse.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (activeSolver != null) { redoOwnshipStates(); } } }); Composite precisionPanel = new Composite(preferencesComposite, SWT.NONE); precisionPanel.setLayoutData(new GridData( GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER)); GridLayout precisionLayout = new GridLayout(2, false); precisionLayout.horizontalSpacing = 5; precisionPanel.setLayout(precisionLayout); Label precisionLabel = new Label(precisionPanel, SWT.NONE); precisionLabel.setText("Precision:"); precisionLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER)); precisionsCombo = new ComboViewer(precisionPanel); precisionsCombo.getCombo().setEnabled(false); precisionsCombo.setContentProvider(new ArrayContentProvider()); precisionsCombo.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((Precision) element).getLabel(); } }); precisionsCombo.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { ISelection sel = precisionsCombo.getSelection(); IStructuredSelection cSel = (IStructuredSelection) sel; Precision precision = (Precision) cSel.getFirstElement(); if (activeSolver != null) { activeSolver.setPrecision(precision); } } }); }
From source file:com.planetmayo.debrief.satc_rcp.views.TestHarnessView.java
License:Open Source License
private void createSolversGroup(Composite parent) { Group solversGroup = new Group(parent, SWT.SHADOW_ETCHED_IN); solversGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); solversGroup.setText("Solvers"); solversGroup.setLayout(new GridLayout(3, false)); UIUtils.createLabel(solversGroup, "Solvers", new GridData()); _solvers = new ComboViewer(solversGroup); _solvers.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); _solvers.setLabelProvider(new LabelProvider() { @Override//from w ww . ja v a 2 s .c o m public String getText(Object element) { return ((ISolver) element).getName(); } }); _solvers.addPostSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent e) { if (_settingActiveSolver) { return; } StructuredSelection selection = (StructuredSelection) e.getSelection(); ISolver solver = (ISolver) selection.getFirstElement(); _solversManager.setActiveSolver(solver); } }); for (ISolver solver : _solversManager.getAvailableSolvers()) { _solvers.add(solver); } Button newSolver = new Button(solversGroup, SWT.PUSH); newSolver.setText("New"); newSolver.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { ISolver newSolver = _solversManager.createSolver("Solver " + solverNumber); solverNumber++; _solvers.setSelection(new StructuredSelection(newSolver)); } }); }
From source file:com.python.pydev.analysis.organizeimports.OrganizeImports.java
License:Open Source License
/** * That's where everything happens./* w ww . j a v a 2s . c o m*/ * * Important: if the document is in a rewrite session, trying to highlight a given session does not work * (so, we cannot be in a rewrite session in this case). */ public boolean beforePerformArrangeImports(final PySelection ps, final PyEdit edit, IFile f) { if ((!AutoImportsPreferencesPage.doAutoImportOnOrganizeImports()) || edit == null) { return true; } didChange = false; ArrayList<MarkerAnnotationAndPosition> undefinedVariablesMarkers = getUndefinedVariableMarkers(edit); //sort them TreeMap<Integer, MarkerAnnotationAndPosition> map = new TreeMap<Integer, MarkerAnnotationAndPosition>(); for (MarkerAnnotationAndPosition marker : undefinedVariablesMarkers) { if (marker.position == null) { continue; } int start = marker.position.offset; map.put(start, marker); } //create the participant that'll help (will not force a reparse) final UndefinedVariableFixParticipant variableFixParticipant = new UndefinedVariableFixParticipant(false); //These are the completions to apply. We must apply them all at once after finishing it because we can't do //it one by one during the processing because that'd make markers change. final List<ICompletionProposalExtension2> completionsToApply = new ArrayList<ICompletionProposalExtension2>(); //keeps the strings we've already treated. final HashSet<String> treatedVars = new HashSet<String>(); //variable to hold whether we should keep on choosing the imports final Boolean[] keepGoing = new Boolean[] { true }; final IDialogSettings dialogSettings = AnalysisPlugin.getDefault().getDialogSettings(); //analyse the markers (one by one) for (final MarkerAnnotationAndPosition marker : map.values()) { if (!keepGoing[0]) { break; } try { final int start = marker.position.offset; final int end = start + marker.position.length; if (start >= 0 && end > start) { IDocument doc = ps.getDoc(); ArrayList<ICompletionProposal> props = new ArrayList<ICompletionProposal>(); try { String string = doc.get(start, end - start); if (treatedVars.contains(string)) { continue; } variableFixParticipant.addProps(marker, null, null, ps, start, edit.getPythonNature(), edit, props); if (props.size() > 0) { edit.selectAndReveal(start, end - start); treatedVars.add(string); Shell activeShell = Display.getCurrent().getActiveShell(); ElementListSelectionDialog dialog = new ElementListSelectionDialog(activeShell, new LabelProvider() { //get the image and text for each completion @Override public Image getImage(Object element) { CtxInsensitiveImportComplProposal comp = ((CtxInsensitiveImportComplProposal) element); return comp.getImage(); } @Override public String getText(Object element) { CtxInsensitiveImportComplProposal comp = ((CtxInsensitiveImportComplProposal) element); return comp.getDisplayString(); } }) { //override things to return the last position of the dialog correctly @Override protected Control createContents(Composite parent) { Control ret = super.createContents(parent); org.python.pydev.plugin.PydevPlugin.setCssId(parent, "py-add-imports-dialog", true); return ret; } @Override public boolean isHelpAvailable() { return false; } @Override protected void updateStatus(IStatus status) { super.updateStatus(status); PydevPlugin.fixSelectionStatusDialogStatusLineColor(this, this.getDialogArea().getBackground()); } /** * @see org.eclipse.ui.dialogs.SelectionDialog#getDialogBoundsSettings() */ @Override protected IDialogSettings getDialogBoundsSettings() { IDialogSettings section = dialogSettings.getSection(DIALOG_SETTINGS); if (section == null) { section = dialogSettings.addNewSection(DIALOG_SETTINGS); } return section; } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#getInitialSize() */ @Override protected Point getInitialSize() { IDialogSettings settings = getDialogBoundsSettings(); if (settings != null) { try { int width = settings.getInt("DIALOG_WIDTH"); //$NON-NLS-1$ int height = settings.getInt("DIALOG_HEIGHT"); //$NON-NLS-1$ if (width > 0 & height > 0) { return new Point(width, height); } } catch (NumberFormatException nfe) { //make the default return } } return new Point(300, 300); } }; dialog.setTitle("Choose import"); dialog.setMessage("Which import should be added?"); dialog.setElements(props.toArray()); int returnCode = dialog.open(); if (returnCode == Window.OK) { ICompletionProposalExtension2 firstResult = (ICompletionProposalExtension2) dialog .getFirstResult(); completionsToApply.add(firstResult); } else if (returnCode == Window.CANCEL) { keepGoing[0] = false; continue; } } } catch (Exception e) { Log.log(e); } } } catch (Exception e) { Log.log(e); } } for (ICompletionProposalExtension2 comp : completionsToApply) { int offset = 0; //the offset is not used in this case, because the actual completion does nothing, //we'll only add the import. comp.apply(edit.getPySourceViewer(), ' ', 0, offset); didChange = true; } return true; }
From source file:com.runwaysdk.manager.widgets.WidgetVisitor.java
License:Open Source License
@Override public void visitEnumeration(MdAttributeEnumerationDAOIF attribute) { if (validateAttribute(attribute)) { boolean enabled = this.isEnabled(attribute); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new FormLayout()); Label label = new Label(composite, SWT.NONE); label.setText(attribute.getDisplayLabel(Localizer.getLocale())); label.setSize(200, 20);// w w w .j a v a 2 s .co m label.setLayoutData(new FormData(200, 20)); FormData data = new FormData(); data.left = new FormAttachment(label); MdEnumerationDAOIF mdEnumeration = attribute.getMdEnumerationDAO(); List<BusinessDAOIF> items = mdEnumeration.getAllEnumItems(); List<LabelValuePair> list = new LinkedList<LabelValuePair>(); for (BusinessDAOIF item : items) { String itemLabel = item.getStructValue(EnumerationMasterInfo.DISPLAY_LABEL, Localizer.DEFAULT_LOCALE); String id = item.getId(); list.add(new LabelValuePair(itemLabel, id)); } final ComboViewer combo = new ComboViewer(composite, SWT.READ_ONLY); combo.setContentProvider(new ArrayContentProvider()); combo.setLabelProvider(new LabelProvider()); combo.setInput(list.toArray(new LabelValuePair[list.size()])); combo.getControl().setLayoutData(data); combo.getControl().setEnabled(enabled); this.controls.put(attribute.definesAttribute(), combo); } }
From source file:com.safi.workshop.sqlexplorer.preview.XmlPreviewer.java
License:Open Source License
public void createControls(Composite parent, final Object data) throws ExplorerException { Element rootElem = getXml(data); if (rootElem == null) return;//from ww w. j a v a 2s . com final Object[] root = new Object[] { rootElem }; TreeViewer tree = new TreeViewer(parent, SWT.SINGLE); tree.setContentProvider(new ITreeContentProvider() { public void dispose() { } /** * Called to get the top level items */ public Object[] getChildren(Object parentElement) { return root; } /** * Called to get the item's children */ public Object[] getElements(Object inputElement) { Element elem = (Element) inputElement; return elem.elements().toArray(); } public boolean hasChildren(Object element) { Element elem = (Element) element; List<Element> list = elem.elements(); return list != null && list.size() > 0; } public Object getParent(Object element) { Element elem = (Element) element; return elem.getParent(); } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // Nothing } }); tree.setLabelProvider(new LabelProvider() { @Override public String getText(Object obj) { Element elem = (Element) obj; StringBuffer result = new StringBuffer(); result.append('<'); result.append(elem.getName()); for (Object o : elem.attributes()) { Attribute attr = (Attribute) o; result.append(' ').append(attr.getName()).append('=').append('\"').append(attr.getValue()) .append('\"'); } if (!elem.hasContent()) result.append('/'); result.append('>'); return result.toString(); } }); tree.expandToLevel(1); }