List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn
public TreeViewerColumn(TreeViewer viewer, TreeColumn column)
From source file:edu.washington.cs.cupid.views.BulletinBoardView.java
License:Open Source License
private TreeViewerColumn createColumn(final String title, final int bound, final int colNumber) { final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.LEFT); final TreeColumn column = viewerColumn.getColumn(); column.setText(title);/* ww w.j ava 2 s. c o m*/ column.setWidth(bound); column.setResizable(true); column.setMoveable(false); return viewerColumn; }
From source file:eu.aniketos.wp1.ststool.analysis.dialog.internal.ConsoleForResultsTree.java
License:Open Source License
public Composite getComposite(final Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setBackground(ColorConstants.red); composite.setLayout(new FillLayout()); treeViewer = new TreeViewer(composite, SWT.BORDER | SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS) { };/*from w w w . j a v a2s .c o m*/ treeViewer.getTree().addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~SWT.HOT; event.detail &= ~SWT.SELECTED; event.detail &= ~SWT.FOREGROUND; } }); treeViewer.getTree().addListener(SWT.PaintItem, new Listener() { public void handleEvent(Event event) { TreeItem it = (TreeItem) event.item; ConsoleObject obj = (ConsoleObject) (((TreeNode) it.getData()).getValue()); String text = null; Image img = null; Color c = null; if (event.index == 0) { text = obj.text; img = obj.image; c = obj.foreColor1; } else { text = obj.text2; c = obj.foreColor2; } if (c == null) c = ColorConstants.black; event.gc.setForeground(c); int xOffset = 3; if (img != null && event.index == 0) { int yOffset = Math.max(0, (event.height - img.getImageData().height) / 2); event.gc.drawImage(img, event.x + xOffset, event.y + yOffset); xOffset += img.getImageData().width; } else if (it.getParentItem() != null) { xOffset += 16; } int yOffset = 0; Point size = event.gc.textExtent(text); yOffset = Math.max(0, (event.height - size.y) / 2); event.gc.drawText(text, event.x + xOffset + 3, event.y + yOffset, true); /*if(event.index==0 && obj.isSubline){ xOffset+= event.x+size.x; event.gc.setLineStyle(SWT.LINE_DOT); event.gc.drawLine(xOffset+5, event.y + yOffset+size.y-4, xOffset+1000, event.y + yOffset+size.y-4); }*/ } }); treeViewer.getTree().setCursor(new Cursor(Display.getCurrent(), SWT.CURSOR_ARROW)); TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS); TreeColumn trclmnNewColumn = treeViewerColumn.getColumn(); trclmnNewColumn.setWidth(270); TreeViewerColumn treeViewerColumn_1 = new TreeViewerColumn(treeViewer, SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS); TreeColumn trclmnNewColumn_1 = treeViewerColumn_1.getColumn(); trclmnNewColumn_1.setWidth(100); composite.addControlListener(new TableCompositeAdapter(composite, treeViewer.getTree(), treeViewerColumn.getColumn(), treeViewerColumn_1.getColumn())); CellLabelProvider lp = new CellLabelProvider() { @Override public void update(ViewerCell cell) { } }; treeViewerColumn.setLabelProvider(lp); treeViewerColumn_1.setLabelProvider(lp); treeViewer.setContentProvider(new ContentProvider()); return composite; }
From source file:eu.aniketos.wp1.ststool.analysis.ui.ResultView.java
License:Open Source License
/** * Create contents of the view part.//from www .j av a 2s .c o m * * @param parent */ @Override public void createPartControl(Composite parent) { parent.addDisposeListener(this); Composite container = toolkit.createComposite(parent, SWT.NONE); toolkit.paintBordersFor(container); container.setLayout(new FormLayout()); Composite compositeResults = new Composite(container, SWT.NONE); FormData fd_composite = new FormData(); fd_composite.left = new FormAttachment(0); fd_composite.top = new FormAttachment(0); fd_composite.bottom = new FormAttachment(100, -30); fd_composite.right = new FormAttachment(100); compositeResults.setLayoutData(fd_composite); compositeResults.setLayout(new FillLayout()); Composite compositeStatusBar = new Composite(container, SWT.BORDER); FormData fd_composite_1 = new FormData(); fd_composite_1.right = new FormAttachment(100); fd_composite_1.left = new FormAttachment(0); fd_composite_1.bottom = new FormAttachment(100); fd_composite_1.top = new FormAttachment(compositeResults); compositeStatusBar.setLayoutData(fd_composite_1); compositeStatusBar.setLayout(new FormLayout()); SashForm sashForm = new SashForm(compositeResults, SWT.SMOOTH | SWT.VERTICAL); sashForm.setSashWidth(2); toolkit.paintBordersFor(sashForm); TreeViewer treeViewer = new TreeViewer(sashForm, SWT.BORDER | SWT.FULL_SELECTION); treeViewer.addPostSelectionChangedListener(this); Tree tree = treeViewer.getTree(); tree.setLinesVisible(true); tree.setHeaderVisible(true); tree.setSortDirection(SWT.UP); toolkit.paintBordersFor(tree); Composite composite_1 = new Composite(sashForm, SWT.NONE); composite_1.setLayout(new FormLayout()); Label lblDescription = new Label(composite_1, SWT.NONE); FormData fd_lblDescription = new FormData(); fd_lblDescription.right = new FormAttachment(100, -10); fd_lblDescription.top = new FormAttachment(0, 10); fd_lblDescription.left = new FormAttachment(0, 10); lblDescription.setLayoutData(fd_lblDescription); lblDescription.setText("Description:"); Composite composite_2 = new Composite(composite_1, SWT.NONE); FormData fd_composite_2 = new FormData(); fd_composite_2.bottom = new FormAttachment(100, -10); fd_composite_2.right = new FormAttachment(100, -10); fd_composite_2.top = new FormAttachment(lblDescription, 6); fd_composite_2.left = new FormAttachment(0, 10); composite_2.setLayoutData(fd_composite_2); composite_2.setLayout(new FormLayout()); composite_2.addPaintListener(new BorderPainter()); descriptionText = new Text(composite_2, SWT.NONE | SWT.WRAP | SWT.V_SCROLL); descriptionText.setBackground(descriptionText.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); FormData fd_text = new FormData(); int x = 3; fd_text.bottom = new FormAttachment(100, -x); fd_text.right = new FormAttachment(100, -x); fd_text.top = new FormAttachment(0, x); fd_text.left = new FormAttachment(0, x); descriptionText.setLayoutData(fd_text); descriptionText.setEditable(false); sashForm.setWeights(new int[] { 55, 45 }); TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.CENTER); treeViewerColumn.getColumn().setText(getMessage(ResultView_Column_1_Titile)); treeViewerColumn.getColumn().setWidth(700); TreeViewerColumn treeViewerColumn2 = new TreeViewerColumn(treeViewer, SWT.LEFT); treeViewerColumn2.getColumn().setText(getMessage(ResultView_Column_2_Titile)); treeViewerColumn2.getColumn().setWidth(500); statusLabel = new Label(compositeStatusBar, SWT.HORIZONTAL | SWT.SHADOW_NONE); FormData fd_lblNewLabel = new FormData(); fd_lblNewLabel.right = new FormAttachment(100, -3); fd_lblNewLabel.top = new FormAttachment(0, 6); fd_lblNewLabel.left = new FormAttachment(3); statusLabel.setLayoutData(fd_lblNewLabel); statusLabel.setForeground(ColorConstants.red); container.addControlListener(new TableCompositeAdapter(container, treeViewer.getTree(), treeViewerColumn.getColumn(), treeViewerColumn2.getColumn())); new ResultViewDataProvider(treeViewer, treeViewerColumn, treeViewerColumn2, statusLabel); createActions(); initializeToolBar(); initializeMenu(); }
From source file:eu.artist.premigration.tft.tft.views.InventoryView.java
License:Open Source License
/** * Creates the TreeViewerColumn for the given index * //w w w . ja v a 2s .co m * @param columnIndex The index number of the column * @return TreeViewerColumn */ private TreeViewerColumn createTreeViewerColumn(int columnIndex) { final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE); final TreeColumn column = viewerColumn.getColumn(); column.setText(COLUMN_TITLES[columnIndex]); column.setWidth(COLUMN_WIDTH[columnIndex]); column.setResizable(true); column.setMoveable(true); return viewerColumn; }
From source file:eu.esdihumboldt.hale.ui.templates.webtemplates.WebTemplatesDialog.java
License:Open Source License
@Override protected void setupViewer(final TreeViewer viewer, WebTemplate initialSelection) { // this label provider is used for filtering (I guess) viewer.setLabelProvider(new LabelProvider() { @Override//from w ww.ja v a2 s. c o m public String getText(Object element) { if (element instanceof WebTemplate) { return ((WebTemplate) element).getName(); } return super.getText(element); } }); viewer.getTree().setHeaderVisible(true); // viewer.getTree().setLinesVisible(true); // main column TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE); mainColumn.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString text = new StyledString(); if (element instanceof WebTemplate) { WebTemplate template = (WebTemplate) element; text.append(template.getName()); } else { text.append(element.toString()); } cell.setText(text.getString()); cell.setStyleRanges(text.getStyleRanges()); super.update(cell); } }); mainColumn.getColumn().setText("Template"); layout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(7)); // link column if (Desktop.isDesktopSupported()) { TreeViewerColumn linkColumn = new TreeViewerColumn(viewer, SWT.CENTER); linkColumn.setLabelProvider(new LinkLabels()); // listener that reacts on link cell clicks viewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { if (e.button == 1) { ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); if (cell != null && cell.getColumnIndex() == 1 && cell.getTextBounds().contains(e.x, e.y)) { Object element = cell.getElement(); if (element instanceof WebTemplate) { try { Desktop.getDesktop().browse(((WebTemplate) element).getSite()); } catch (IOException e1) { log.error("Could not launch browser", e1); } } } } } }); layout.setColumnData(linkColumn.getColumn(), new ColumnWeightData(1)); } viewer.setComparator(new ViewerComparator()); viewer.setContentProvider(new WebTemplatesContentProvider()); viewer.setInput(templates); }
From source file:eu.esdihumboldt.hale.ui.util.groovy.ast.viewer.ASTViewer.java
License:Open Source License
/** * Constructor./* ww w.java2 s . c o m*/ * * @param parent the parent composite * @param textViewer a text viewer where the code for an AST node should be * selected on double click, or <code>null</code> */ public ASTViewer(Composite parent, ITextViewer textViewer) { this.textViewer = textViewer; page = new Composite(parent, SWT.NONE); TreeColumnLayout layout = new TreeColumnLayout(); page.setLayout(layout); treeViewer = new TreeViewer(page, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); // new DrillDownAdapter(viewer); treeViewer.setContentProvider(new ViewContentProvider()); treeViewer.setLabelProvider(new ViewLabelProvider()); treeViewer.getTree().setHeaderVisible(true); TreeViewerColumn mainColumn = new TreeViewerColumn(treeViewer, SWT.NONE); mainColumn.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString text = new StyledString(); text.append(element.getClass().getSimpleName()); cell.setText(text.getString()); cell.setStyleRanges(text.getStyleRanges()); super.update(cell); } }); mainColumn.getColumn().setText("Node"); layout.setColumnData(mainColumn.getColumn(), new ColumnPixelData(200)); TreeViewerColumn infoColumn = new TreeViewerColumn(treeViewer, SWT.NONE); infoColumn.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString text = new StyledString(); if (element instanceof Parameter) { // getText not implemented for Parameter Parameter param = (Parameter) element; text.append(param.getName()); } else if (element instanceof ExpressionStatement) { // getText not properly implemented for ExpressionStatement text.append(((ExpressionStatement) element).getExpression().getText()); } else if (element instanceof ASTNode) { ASTNode node = (ASTNode) element; text.append(node.getText()); } else if (element instanceof Variable) { Variable var = (Variable) element; text.append(var.getName()); } else { text.append(element.toString()); } cell.setText(text.getString()); cell.setStyleRanges(text.getStyleRanges()); super.update(cell); } }); infoColumn.getColumn().setText("Text"); layout.setColumnData(infoColumn.getColumn(), new ColumnPixelData(300)); TreeViewerColumn propertiesColumn = new TreeViewerColumn(treeViewer, SWT.NONE); propertiesColumn.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { Object element = cell.getElement(); StyledString text = new StyledString(); if (element instanceof Variable || element instanceof ASTNode || element instanceof VariableScope) { ASTNodeUtil.addProperties(element, text); } cell.setText(text.getString()); cell.setStyleRanges(text.getStyleRanges()); super.update(cell); } }); propertiesColumn.getColumn().setText("Properties"); layout.setColumnData(propertiesColumn.getColumn(), new ColumnPixelData(1600)); makeActions(); if (textViewer != null) { addDoubleClickAction(); } }
From source file:eu.esdihumboldt.hale.ui.views.data.internal.compare.DefinitionInstanceTreeViewer.java
License:Open Source License
/** * @see InstanceViewer#setInput(TypeDefinition, Iterable) *//*from w ww. j a v a2 s. c o m*/ @Override public void setInput(TypeDefinition type, Iterable<Instance> instances) { // remove old columns TreeColumn[] columns = treeViewer.getTree().getColumns(); if (columns != null) { for (TreeColumn column : columns) { column.dispose(); } labelProviders.clear(); } // create row defs for metadata // if (features != null) { // boolean displayLineage = false; // int lineageLength = 0; // int featuresSize = 0; // for (Feature f : features) { // featuresSize++; // Lineage l = (Lineage) f.getUserData().get("METADATA_LINEAGE"); //$NON-NLS-1$ // if (l != null && l.getProcessSteps().size() > 0) { // displayLineage = true; // if (lineageLength < l.getProcessSteps().size()) { // lineageLength = l.getProcessSteps().size(); // } // } // } // // if (displayLineage) { // Object[][] processStepsText = new Object[lineageLength][featuresSize + 1]; // int featureIndex = 0; // for (Feature f : features) { // Lineage l = (Lineage) f.getUserData().get("METADATA_LINEAGE"); //$NON-NLS-1$ // if (l != null && l.getProcessSteps().size() > 0) { // int psIndex = 0; // for (ProcessStep ps : l.getProcessSteps()) { // processStepsText[psIndex][featureIndex + 1] = ps.getDescription().toString(); // psIndex++; // } // } // featureIndex++; // } // // DefaultTreeNode lineage = new DefaultTreeNode(Messages.DefinitionFeatureTreeViewer_5); //$NON-NLS-1$ // metadata.addChild(lineage); // for (int i = 0; i < lineageLength; i++) { // processStepsText[i][0] = Messages.DefinitionFeatureTreeViewer_6 + (i + 1); //$NON-NLS-1$ // DefaultTreeNode processStep = new DefaultTreeNode(processStepsText[i]); // lineage.addChild(processStep); // } // } // set input if (type != null) { // pass metadatas to the treeviewer, if instances contain metadatas Set<String> completeMetaNames = new HashSet<String>(); for (Instance inst : instances) { for (String name : inst.getMetaDataNames()) { completeMetaNames.add(name); } } Pair<TypeDefinition, Set<String>> pair = new Pair<TypeDefinition, Set<String>>(type, completeMetaNames); treeViewer.setInput(pair); } else treeViewer.setInput(Collections.emptySet()); Layout layout = treeViewer.getTree().getParent().getLayout(); // add type column if (type != null) { TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT); column.getColumn().setText(type.getDisplayName()); column.setLabelProvider(new TreeColumnViewerLabelProvider(new DefinitionMetaCompareLabelProvider())); if (layout instanceof TreeColumnLayout) { ((TreeColumnLayout) layout).setColumnData(column.getColumn(), new ColumnWeightData(1)); } } // add columns for features int index = 1; if (instances != null) { // // sort features // List<Feature> sortedFeatures = new ArrayList<Feature>(); // for (Feature f : features) { // sortedFeatures.add(f); // } // Collections.sort(sortedFeatures, new Comparator<Feature>() { // // @Override // public int compare(Feature o1, Feature o2) { // FeatureId id1 = FeatureBuilder.getSourceID(o1); // if (id1 == null) { // id1 = o1.getIdentifier(); // } // // FeatureId id2 = FeatureBuilder.getSourceID(o2); // if (id2 == null) { // id2 = o2.getIdentifier(); // } // // return id1.getID().compareTo(id2.getID()); // } // // }); List<Instance> insts = new ArrayList<Instance>(); for (Instance instance : instances) { // sortedFeatures) { final TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT); // FeatureId id = FeatureBuilder.getSourceID(feature); // if (id == null) { // id = feature.getIdentifier(); // } // column.getColumn().setText(id.toString()); column.getColumn().setText(String.valueOf(index)); // XXX // identifier? DefinitionInstanceLabelProvider labelProvider = new DefinitionInstanceLabelProvider(instance); labelProviders.put(index, labelProvider); column.setLabelProvider(labelProvider); if (layout instanceof TreeColumnLayout) { ((TreeColumnLayout) layout).setColumnData(column.getColumn(), new ColumnWeightData(1)); } // add tool tip // new ColumnBrowserTip(treeViewer, 400, 300, true, index, null); insts.add(instance); index++; } ((MetadataCompareActionProvider) maep).setInput(insts, labelProviders); } treeViewer.refresh(); treeViewer.getTree().getParent().layout(true, true); selectionProvider.updateSelection(instances); // auto-expand attributes/metadata treeViewer.expandToLevel(2); }
From source file:eu.esdihumboldt.hale.ui.views.data.internal.explore.InstanceExplorer.java
License:Open Source License
/** * @see InstanceViewer#createControls(Composite, SchemaSpaceID) *//*from ww w . j a v a 2 s . c o m*/ @Override public void createControls(Composite parent, SchemaSpaceID schemaSpace) { main = new Composite(parent, SWT.NONE); main.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).create()); // selector composite selectorComposite = new Composite(main, SWT.NONE); selectorComposite.setLayoutData(GridDataFactory.swtDefaults().create()); selectorComposite.setLayout(GridLayoutFactory.fillDefaults().create()); // viewer composite Composite viewerComposite = new Composite(main, SWT.NONE); viewerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); TreeColumnLayout layout = new TreeColumnLayout(); viewerComposite.setLayout(layout); viewer = new TreeViewer(viewerComposite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER); viewer.getTree().setLinesVisible(true); // set content provider viewer.setContentProvider(new InstanceContentProvider()); viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS); // TODO set label provider? // add definition columns TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("Definition"); column.setLabelProvider(new TreeColumnViewerLabelProvider( new PairLabelProvider(true, new DefinitionMetaLabelProvider(false, true)))); layout.setColumnData(column.getColumn(), new ColumnWeightData(1)); // add value column column = new TreeViewerColumn(viewer, SWT.LEFT); column.getColumn().setText("Value"); final InstanceValueLabelProvider instanceLabelProvider = new InstanceValueLabelProvider(); column.setLabelProvider(instanceLabelProvider); // new PairLabelProvider(false, new LabelProvider()))); ColumnViewerToolTipSupport.enableFor(viewer); layout.setColumnData(column.getColumn(), new ColumnWeightData(1)); MetadataActionProvider maep = new MetadataExploreActionProvider(viewer); maep.setup(); // Add an editor for copying instance values editor = new TreeEditor(viewer.getTree()); editor.horizontalAlignment = SWT.RIGHT; viewer.getTree().addMouseMoveListener(new MouseMoveListener() { @Override public void mouseMove(MouseEvent e) { final ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); // Selected cell changed? if (cell == null || editor.getItem() != cell.getItem() || editor.getColumn() != cell.getColumnIndex()) { // Clean up any previous editor control Control oldEditor = editor.getEditor(); if (oldEditor != null) { oldEditor.dispose(); editor.setEditor(null, null, 0); } } // No valid selected cell if (cell == null || cell.getColumnIndex() == 0) { return; } // cell didn't change if ((editor.getItem() == cell.getItem() && editor.getColumn() == cell.getColumnIndex())) { return; } // determine instance value Object value = ((Pair<?, ?>) cell.getViewerRow().getTreePath().getLastSegment()).getSecond(); if (value instanceof Instance) { value = ((Instance) value).getValue(); } // copy button if (value != null) { final String textValue = value.toString(); if (!textValue.isEmpty()) { // empty string invalid for // clipboard Button button = new Button(viewer.getTree(), SWT.PUSH | SWT.FLAT); button.setImage( PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_COPY)); button.setToolTipText("Copy string value"); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // copy content to clipboard Clipboard clipBoard = new Clipboard(Display.getCurrent()); clipBoard.setContents(new Object[] { textValue }, new Transfer[] { TextTransfer.getInstance() }); clipBoard.dispose(); } }); // calculate editor size Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT); editor.minimumHeight = size.y; editor.minimumWidth = size.x; editor.setEditor(button, (TreeItem) cell.getItem(), cell.getColumnIndex()); } } } }); update(); }
From source file:eu.esdihumboldt.hale.ui.views.report.ReportList.java
License:Open Source License
/** * Create contents of the view part./*from w w w . java 2 s. co m*/ * * @param parent parent element */ @Override public void createViewControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); TreeColumnLayout layout = new TreeColumnLayout(); composite.setLayout(layout); { _treeViewer = new TreeViewer(composite, SWT.BORDER); final Tree tree = _treeViewer.getTree(); tree.setHeaderVisible(false); tree.setLinesVisible(false); // create column for reports TreeViewerColumn col1 = new TreeViewerColumn(_treeViewer, SWT.NONE); // add the label provider col1.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelProvider())); // and layout layout.setColumnData(col1.getColumn(), new ColumnWeightData(3)); // create column for reports TreeViewerColumn col2 = new TreeViewerColumn(_treeViewer, SWT.NONE); // add the label provider col2.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelDateProvider())); // create column for reports layout.setColumnData(col2.getColumn(), new ColumnWeightData(1)); new ReportListMenu(getSite(), _treeViewer); } createActions(); initializeToolBar(); initializeMenu(); // set label provider // _treeViewer.setLabelProvider(new ReportListLabelProvider()); // set content provider _treeViewer.setContentProvider(new ReportListContentProvider()); // disable this if it uses too much memory // but should maintain the list much faster _treeViewer.setUseHashlookup(true); // order the sessions from latest to oldest _treeViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { if (e1 instanceof ReportSession && e2 instanceof ReportSession) { long first = ((ReportSession) e1).getId(); long second = ((ReportSession) e2).getId(); if (first > second) { return -1; } else if (first < second) { return 1; } else { return 0; } } else if (e1 instanceof Report<?> && e2 instanceof Report<?>) { Report<?> first = (Report<?>) e1; Report<?> second = (Report<?>) e2; if (first.getStartTime().getTime() > second.getStartTime().getTime()) { return -1; } else if (first.getStartTime().getTime() < second.getStartTime().getTime()) { return 1; } else { return 0; } } return 0; } }); // set selection provider getSite().setSelectionProvider(_treeViewer); _treeViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { OpenPropertiesHandler .unpinAndOpenPropertiesView(PlatformUI.getWorkbench().getActiveWorkbenchWindow()); } }); // load all added reports this.loadReports(); }
From source file:eu.esdihumboldt.hale.ui.views.tasks.TaskTreeView.java
License:Open Source License
/** * @see WorkbenchPart#createPartControl(Composite) *//*from w w w .j a v a2 s. c o m*/ @Override public void createPartControl(Composite parent) { Composite page = new Composite(parent, SWT.NONE); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); page.setLayoutData(data); // tree column layout TreeColumnLayout layout = new TreeColumnLayout(); page.setLayout(layout); // tree viewer tree = new TreeViewer(page, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER); tree.setContentProvider(new CollectionTreeNodeContentProvider()); tree.setUseHashlookup(true); tree.getTree().setHeaderVisible(true); tree.getTree().setLinesVisible(true); tree.setComparator(new TaskTreeComparator()); schemaService = (SchemaService) PlatformUI.getWorkbench().getService(SchemaService.class); taskService = (TaskService) PlatformUI.getWorkbench().getService(TaskService.class); // columns IColorProvider colorProvider = new TaskColorProvider(Display.getCurrent()); // title/description TreeViewerColumn description = new TreeViewerColumn(tree, SWT.LEFT); description.getColumn().setText(Messages.TaskTreeView_TitleDescriptionText); description.getColumn().setToolTipText(Messages.TaskTreeView_description_tooltip); TreeColumnViewerLabelProvider descriptionLabelProvider = new TreeColumnViewerLabelProvider( new TaskDescriptionLabelProvider(0)); descriptionLabelProvider.setProviders(colorProvider); description.setLabelProvider(descriptionLabelProvider); layout.setColumnData(description.getColumn(), new ColumnWeightData(4)); // value TreeViewerColumn value = new TreeViewerColumn(tree, SWT.CENTER); value.getColumn().setText("!"); //$NON-NLS-1$ value.getColumn().setToolTipText(Messages.TaskTreeView_value_tooltip); TreeColumnViewerLabelProvider valueLabelProvider = new TreeColumnViewerLabelProvider( new TaskValueLabelProvider(0)); valueLabelProvider.setProviders(colorProvider); value.setLabelProvider(valueLabelProvider); layout.setColumnData(value.getColumn(), new ColumnWeightData(0, 20)); // number of tasks TreeViewerColumn number = new TreeViewerColumn(tree, SWT.RIGHT); number.getColumn().setText("#"); //$NON-NLS-1$ number.getColumn().setToolTipText(Messages.TaskTreeView_NumberText); TreeColumnViewerLabelProvider numberLabelProvider = new TreeColumnViewerLabelProvider( new TaskCountLabelProvider(0)); numberLabelProvider.setProviders(colorProvider); number.setLabelProvider(numberLabelProvider); layout.setColumnData(number.getColumn(), new ColumnWeightData(0, 48)); // user data: status TreeViewerColumn status = new TreeViewerColumn(tree, SWT.LEFT); status.getColumn().setText(Messages.TaskTreeView_StatusText); TreeColumnViewerLabelProvider statusLabelProvider = new TreeColumnViewerLabelProvider( new TaskStatusLabelProvider(0)); statusLabelProvider.setProviders(colorProvider); status.setLabelProvider(statusLabelProvider); layout.setColumnData(status.getColumn(), new ColumnWeightData(1)); status.setEditingSupport(new TaskStatusEditingSupport(tree, taskService)); // user data: comment TreeViewerColumn comment = new TreeViewerColumn(tree, SWT.LEFT); comment.getColumn().setText(Messages.TaskTreeView_CommentText); TreeColumnViewerLabelProvider commentLabelProvider = new TreeColumnViewerLabelProvider( new TaskCommentLabelProvider(0)); commentLabelProvider.setProviders(colorProvider); comment.setLabelProvider(commentLabelProvider); layout.setColumnData(comment.getColumn(), new ColumnWeightData(4)); comment.setEditingSupport(new TaskCommentEditingSupport(tree, taskService)); // listeners taskService.addListener(taskListener = new TaskServiceAdapter() { @Override public void tasksRemoved(final Iterable<Task> tasks) { if (Display.getCurrent() != null) { removeTasks(tasks); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { removeTasks(tasks); } }); } } @Override public void tasksAdded(final Iterable<Task> tasks) { if (Display.getCurrent() != null) { addTasks(tasks); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { addTasks(tasks); } }); } } @Override public void taskUserDataChanged(final ResolvedTask task) { if (Display.getCurrent() != null) { updateNode(task); } else { final Display display = PlatformUI.getWorkbench().getDisplay(); display.syncExec(new Runnable() { @Override public void run() { updateNode(task); } }); } } }); createInput(); configureActions(); // interaction tree.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { ISelection selection = event.getSelection(); if (!selection.isEmpty() && selection instanceof IStructuredSelection) { Object selected = ((IStructuredSelection) selection).getFirstElement(); if (selected instanceof TreeNode) { // determine value Object tmp = ((TreeNode) selected).getValue(); Object value; if (tmp.getClass().isArray()) { value = ((Object[]) tmp)[0]; } else { value = tmp; } if (value instanceof Task) { // node is task node Task task = (Task) value; onDoubleClick(task.getMainContext().getIdentifier()); } else if (value instanceof SchemaElement) { SchemaElement type = (SchemaElement) value; onDoubleClick(type.getIdentifier()); } } } } }); }