List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn
public TreeViewerColumn(TreeViewer viewer, TreeColumn column)
From source file:eu.numberfour.n4js.ui.viewer.TreeViewerBuilder.java
License:Open Source License
@Override protected TreeViewer createViewer(final Composite parent, final AbstractColumnLayout columnLayout, final int style) { final TreeViewer viewer = new TreeViewer(parent, virual ? (style | VIRTUAL) : style); final Tree tree = viewer.getTree(); tree.setLinesVisible(linesVisible);//w w w. j a v a2 s . c o m tree.setHeaderVisible(headerVisible); int columnIndex = 0; for (final String columnLabel : columnLabels) { final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, NONE); final TreeColumn column = viewerColumn.getColumn(); columnLayout.setColumnData(column, createColumnLayoutData(columnIndex)); column.setText(columnLabel); column.setMoveable(moveable); columnIndex++; } return viewer; }
From source file:eu.scasefp7.eclipse.servicecomposition.views.ServiceCompositionView.java
public void updateRightComposite(edu.uci.ics.jung.graph.Graph jungGraph) { final Display display = Display.getCurrent(); final Graph graph = viewer.getGraphControl(); if (sc != null) { sc.dispose();//w ww . ja va 2 s . co m } // Create the ScrolledComposite to scroll horizontally and vertically sc = new ScrolledComposite(sashForm, SWT.H_SCROLL | SWT.V_SCROLL); sc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); rightComposite.dispose(); rightComposite = new Composite(sc, SWT.FILL); sc.setContent(rightComposite); sc.setExpandHorizontal(true); sc.setExpandVertical(true); sc.setMinSize(300, 600); // runWorkflowAction.setEnabled(false); Listener inputListener = new Listener() { @Override public void handleEvent(Event event) { TreeItem treeItem = (TreeItem) event.item; final TreeColumn[] treeColumns = treeItem.getParent().getColumns(); // final Display display = Display.getCurrent(); display.asyncExec(new Runnable() { @Override public void run() { for (TreeColumn treeColumn : treeColumns) { treeColumn.pack(); } } }); } }; // create inputs composite rightComposite.setLayout(new GridLayout()); Composite inputsLabelComposite = new Composite(rightComposite, SWT.FILL); inputsLabelComposite.setLayout(new GridLayout(1, false)); Label label1 = new Label(inputsLabelComposite, SWT.NONE); label1.setText("Workflow Inputs:"); label1.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label1.setFont(JFaceResources.getFontRegistry().getBold("")); inputsComposite = new Tree(rightComposite, SWT.BORDER | SWT.FILL | SWT.MULTI); inputsComposite.setLayout(new GridLayout(2, false)); inputsTreeViewer = new TreeViewer(inputsComposite); TreeViewerEditor.create(inputsTreeViewer, new ColumnViewerEditorActivationStrategy(inputsTreeViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION; } }, ColumnViewerEditor.TABBING_HORIZONTAL); columna = new TreeViewerColumn(inputsTreeViewer, SWT.NONE); columna.getColumn().setWidth(200); columna.getColumn().setText("Columna"); columna.getColumn().setResizable(true); columnb = new TreeViewerColumn(inputsTreeViewer, SWT.NONE); columnb.getColumn().setText("Columnb"); columnb.getColumn().setWidth(300); columnb.getColumn().setResizable(true); Vector<Node> InputNodes = new Vector<Node>(); // get matched io Object[] vertices1 = (Object[]) jungGraph.getVertices().toArray(); ArrayList<OwlService> matchedNodes = new ArrayList<OwlService>(); for (int i = 0; i < vertices1.length; i++) { final OwlService node = (OwlService) vertices1[i]; if (node.getisMatchedIO()) { matchedNodes.add(node); } } // get all inputs Object[] vertices = (Object[]) jungGraph.getVertices().toArray(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action")) { Node n = new Node(node.getName().toString(), null, node, null); Collection<OwlService> predecessors = (Collection<OwlService>) jungGraph.getPredecessors(node); for (OwlService predecessor : predecessors) { if (predecessor.getType().contains("Property")) { showInputs(predecessor, n, InputNodes, jungGraph, matchedNodes); } } InputNodes.add(n); } } inputsComposite.setSize(300, 200); inputsTreeViewer.setContentProvider(new MyTreeContentProvider()); columna.setLabelProvider(new MyLabelProvider()); columnb.setLabelProvider(createColumnLabelProvider()); final TextCellEditor cellEditor = new MyTextCellEditor(inputsTreeViewer.getTree()); columnb.setEditingSupport(new EditingSupport(inputsTreeViewer) { @Override protected void setValue(Object element, Object value) { if (((Node) element).getOwlService().getArgument() != null && ((Node) element).getOwlService().getArgument().getSubtypes().isEmpty()) ((Node) element).setValue(value.toString()); getViewer().update(element, null); } @Override protected Object getValue(Object element) { return ((Node) element).getValue(); } @Override protected TextCellEditor getCellEditor(Object element) { return cellEditor; } @Override protected boolean canEdit(Object element) { if (((Node) element).getOwlService().getArgument() != null && ((Node) element).getOwlService().getArgument().getSubtypes().isEmpty() && !((Node) element).getOwlService().getisMatchedIO()) return true; else return false; } }); inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.expandToLevel(2); final Action a = new Action("Add new element") { public void run() { try { int length = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getSubCategories() .size(); addTreeNode(((Node) ((TreeSelection) inputSelection).getFirstElement()).getOwlService(), ((Node) ((TreeSelection) inputSelection).getFirstElement()), length); // Updating the display in the view // inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.refresh(); } catch (Exception e) { Activator.log("Error while running the workflow", e); e.printStackTrace(); } } }; final Action b = new Action("Remove element") { public void run() { try { Node n = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getParent(); n.getSubCategories().remove(((Node) ((TreeSelection) inputSelection).getFirstElement())); // Updating the display in the view // inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.refresh(); } catch (Exception e) { Activator.log("Error while running the workflow", e); e.printStackTrace(); } } }; final MenuManager mgr = new MenuManager(); mgr.setRemoveAllWhenShown(true); mgr.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(IMenuManager manager) { inputSelection = inputsTreeViewer.getSelection(); Node n = ((Node) ((TreeSelection) inputSelection).getFirstElement()); if (!inputSelection.isEmpty()) { if (n.getOwlService().getArgument() != null && n.getOwlService().getArgument().isArray() && n.getName().toString().replaceAll("[^\\d.]", "").isEmpty()) { boolean notMatched = true; // check if the array of primitive or array of objects // is matched if (n.getSubCategories().get(0).getValue().equals("matched") || (!n.getOwlService().getArgument().getSubtypes().isEmpty() && (n.getOwlService().getArgument().getSubtypes().get(0)).getOwlService() .getisMatchedIO())) { notMatched = false; } if (notMatched) { a.setText("Add new element for " + ((Node) ((TreeSelection) inputSelection).getFirstElement()).getName() .toString()); a.setToolTipText("Right click to add new element"); a.setEnabled(true); mgr.add(a); } } if (n.getOwlService().getArgument() != null && n.getOwlService().getArgument().isArray() && !n.getName().toString().replaceAll("[^\\d.]", "").isEmpty()) { int nodeNum = Integer.parseInt(n.getName().toString().replaceAll("[^\\d.]", "")); Node parent = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getParent(); if (nodeNum == parent.getSubCategories().size() - 1 && nodeNum != 0) { b.setText( "Remove element " + ((Node) ((TreeSelection) inputSelection).getFirstElement()) .getName().toString()); b.setToolTipText("Right click to remove element"); b.setEnabled(true); mgr.add(b); } } } } }); inputsTreeViewer.getControl().setMenu(mgr.createContextMenu(inputsTreeViewer.getControl())); inputsComposite.addListener(SWT.Collapse, inputListener); inputsComposite.addListener(SWT.Expand, inputListener); inputsTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() != null) { for (int i = 0; i < graph.getNodes().size(); i++) { GraphNode graphNode = (GraphNode) graph.getNodes().get(i); if (((OwlService) ((MyNode) graphNode.getData()).getObject()) .equals(((Node) selection.getFirstElement()).getOwlService())) { graphNode.highlight(); } else graphNode.unhighlight(); } } } } }); // create authentication Params composite rightComposite.setLayout(new GridLayout()); Composite authenticationLabelComposite = new Composite(rightComposite, SWT.FILL); authenticationLabelComposite.setLayout(new GridLayout()); Label label4 = new Label(authenticationLabelComposite, SWT.FILL); label4.setText("Workflow Authentication Parameters:"); label4.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label4.setFont(JFaceResources.getFontRegistry().getBold("")); authParamsComposite = new Composite(rightComposite, SWT.FILL); authParamsComposite.setLayout(new GridLayout(2, false)); // get all authParams ArrayList<String> baseURIs = new ArrayList<String>(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action") && node.getOperation().getDomain() != null) { if (node.getOperation().getDomain().getSecurityScheme() != null) { if (node.getOperation().getDomain().getSecurityScheme().equalsIgnoreCase("Basic Authentication") && !baseURIs.contains(node.getOperation().getDomain().getURI())) { showBasicAuthenticationParams(); baseURIs.add(node.getOperation().getDomain().getURI()); } } } } // create authentication Params composite rightComposite.setLayout(new GridLayout()); Composite requestHeaderLabelComposite = new Composite(rightComposite, SWT.FILL); requestHeaderLabelComposite.setLayout(new GridLayout()); Label label5 = new Label(requestHeaderLabelComposite, SWT.FILL); label5.setText("Workflow Request Headers:"); label5.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label5.setFont(JFaceResources.getFontRegistry().getBold("")); requestHeadersComposite = new Composite(rightComposite, SWT.FILL); requestHeadersComposite.setLayout(new GridLayout(2, false)); // get all request headers for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action") && node.getOperation().getRequestHeaders() != null) { for (RequestHeader header : node.getOperation().getRequestHeaders()) { showRequestHeaders(node.getName().toString(), header.getName()); } } } Listener outputListener = new Listener() { @Override public void handleEvent(Event event) { TreeItem treeItem = (TreeItem) event.item; final TreeColumn[] treeColumns = treeItem.getParent().getColumns(); display.asyncExec(new Runnable() { @Override public void run() { for (TreeColumn treeColumn : treeColumns) treeColumn.pack(); } }); } }; // create outputs composite Composite outputsLabelComposite = new Composite(rightComposite, SWT.FILL); outputsLabelComposite.setLayout(new GridLayout(1, false)); Label label2 = new Label(outputsLabelComposite, SWT.NONE); label2.setText("Workflow Outputs:"); label2.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label2.setFont(JFaceResources.getFontRegistry().getBold("")); outputsComposite = new Tree(rightComposite, SWT.BORDER | SWT.FILL | SWT.MULTI); outputsComposite.setLayout(new GridLayout(2, false)); treeViewer = new TreeViewer(outputsComposite); column1 = new TreeViewerColumn(treeViewer, SWT.NONE); column1.getColumn().setWidth(300); column1.getColumn().setText("Column1"); column1.getColumn().setResizable(true); // column1.getColumn().pack(); column2 = new TreeViewerColumn(treeViewer, SWT.NONE); column2.getColumn().setText("Column2"); column2.getColumn().setWidth(300); column2.getColumn().setResizable(true); // column2.getColumn().pack(); // get all outputs Vector<Node> nodes = new Vector<Node>(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action")) { Collection<OwlService> successors = (Collection<OwlService>) jungGraph.getSuccessors(node); for (OwlService successor : successors) { if (successor.getType().contains("Property")) { showOutputs(successor, null, nodes, jungGraph); } } } } treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); outputsComposite.setSize(300, 200); treeViewer.setContentProvider(new MyTreeContentProvider()); // sort alphabetically based on operation name treeViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { Node t1 = (Node) e1; Node t2 = (Node) e2; int order = ((t1.getOwlService().getArgument().getBelongsToOperation().getName().toString()) .compareTo(t2.getOwlService().getArgument().getBelongsToOperation().getName().toString())); return order; }; }); column1.setLabelProvider(new MyLabelProvider()); column2.setLabelProvider(createColumnLabelProvider()); treeViewer.setInput(nodes); // // outputsComposite.setSize(300, nodes.size() * 10); // treeViewer.expandAll(); // outputsComposite.addListener(SWT.Collapse, outputListener); outputsComposite.addListener(SWT.Expand, outputListener); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() != null) { for (int i = 0; i < graph.getNodes().size(); i++) { GraphNode graphNode = (GraphNode) graph.getNodes().get(i); if (((OwlService) ((MyNode) graphNode.getData()).getObject()) .equals(((Node) selection.getFirstElement()).getOwlService())) { graphNode.highlight(); } else graphNode.unhighlight(); } } } } }); graph.update(); graph.redraw(); inputsLabelComposite.redraw(); outputsLabelComposite.redraw(); treeViewer.refresh(); inputsTreeViewer.refresh(); outputsComposite.redraw(); inputsComposite.redraw(); rightComposite.layout(); rightComposite.update(); rightComposite.redraw(); sc.update(); sc.redraw(); sashForm.update(); sashForm.redraw(); sashForm.layout(true); this.showBusy(false); }
From source file:fr.inria.atlanmod.emftocsp.ui.wizards.impl.ModelElementDomainPage.java
License:Open Source License
public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new FormLayout()); setControl(container);/*ww w . j a v a 2 s . co m*/ FormData formData = new FormData(); formData.left = new FormAttachment(0, 0); formData.top = new FormAttachment(0, 0); formData.right = new FormAttachment(100, -5); formData.bottom = new FormAttachment(100, 0); treeViewer = new TreeViewer(container, SWT.BORDER | SWT.FULL_SELECTION); treeViewer.getControl().setLayoutData(formData); treeViewer.getTree().setLinesVisible(true); treeViewer.getTree().setHeaderVisible(true); TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer, new FocusCellOwnerDrawHighlighter(treeViewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(treeViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(treeViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); final TextCellEditor textCellEditor = new TextCellEditor(treeViewer.getTree()); TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Model Elements"); //$NON-NLS-1$ column.setLabelProvider(new ColumnLabelProvider() { @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public String getText(Object element) { if (element instanceof StructuralNode) return ((StructuralNode) element).getNodeType() == CLASS ? "Classes" : "Associations"; //$NON-NLS-1$ //$NON-NLS-2$ if (element instanceof EClass) return ((EClass) element).getName(); if (element instanceof Class) return ((Class) element).getName(); if (element instanceof Association) { IModelReader modelReader = modelSolver.getModelReader(); return modelReader.getAssociationName(((Association) element)); } if (element instanceof EAssociation) { IModelReader modelReader = modelSolver.getModelReader(); return modelReader.getAssociationName(((EAssociation) element)); } if (element instanceof EAttribute) { EAttribute a = (EAttribute) element; return ((EAttribute) element).getName() + ": " //$NON-NLS-1$ + ((EAttribute) element).getEAttributeType().getName(); } if (element instanceof StringAttributeContainer) { StringAttributeContainer c = (StringAttributeContainer) element; String base = c.attribute.getName() + ": " + c.attribute.getEAttributeType().getName(); //$NON-NLS-1$ if (c.kind == StringAttributeContainer.Kind.LENGTH) { return base + " (length)"; } if (c.kind == StringAttributeContainer.Kind.DOMAIN) { return base + " (domain)"; } } if (element instanceof Property) return ((Property) element).getName() + ": " + ((Property) element).getType().getName(); //$NON-NLS-1$ return ""; //$NON-NLS-1$ } public Image getImage(Object element) { return null; } }); column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Value"); //$NON-NLS-1$ column.setLabelProvider(new ColumnLabelProvider() { @SuppressWarnings({ "rawtypes", "unchecked" }) public String getText(Object element) { String result = ""; //$NON-NLS-1$ if (element instanceof StringAttributeContainer) result = modelElementsDomain.get(((StringAttributeContainer) element).getKey()); if (element instanceof EAttribute) result = modelElementsDomain.get(((EAttribute) element).getEContainingClass().getName() + "." //$NON-NLS-1$ + ((EAttribute) element).getName()); if (element instanceof EClass) result = modelElementsDomain .get(((EClass) element).getEPackage().getName() + "." + ((EClass) element).getName()); //$NON-NLS-1$ if (element instanceof Class) result = modelElementsDomain .get(((Class) element).getPackage().getName() + "." + ((Class) element).getName()); //$NON-NLS-1$ if (element instanceof Property) result = modelElementsDomain .get(((Property) element).getClass_().getName() + "." + ((Property) element).getName()); //$NON-NLS-1$ if (element instanceof Association) { IModelReader modelReader = modelSolver.getModelReader(); return modelElementsDomain.get(modelReader.getAssociationName(((Association) element))); } if (element instanceof EAssociation) { IModelReader modelReader = modelSolver.getModelReader(); return modelElementsDomain.get(modelReader.getAssociationName(((EAssociation) element))); } return result != null ? result : ""; //$NON-NLS-1$ } }); column.setEditingSupport(new EditingSupport(treeViewer) { protected boolean canEdit(Object element) { return !(element instanceof StructuralNode); } protected CellEditor getCellEditor(Object element) { return textCellEditor; } @SuppressWarnings({ "rawtypes", "unchecked" }) protected Object getValue(Object element) { String result = ""; //$NON-NLS-1$ if (element instanceof EAttribute) result = modelElementsDomain.get(((EAttribute) element).getEContainingClass().getName() + "." //$NON-NLS-1$ + ((EAttribute) element).getName()); if (element instanceof StringAttributeContainer) result = modelElementsDomain.get(((StringAttributeContainer) element).getKey()); if (element instanceof EClass) result = modelElementsDomain .get(((EClass) element).getEPackage().getName() + "." + ((EClass) element).getName()); //$NON-NLS-1$ if (element instanceof Class) result = modelElementsDomain .get(((Class) element).getPackage().getName() + "." + ((Class) element).getName()); //$NON-NLS-1$ if (element instanceof Property) result = modelElementsDomain .get(((Property) element).getClass_().getName() + "." + ((Property) element).getName()); //$NON-NLS-1$ if (element instanceof Association) { IModelReader modelReader = modelSolver.getModelReader(); return modelElementsDomain.get(modelReader.getAssociationName(((Association) element))); } if (element instanceof EAssociation) { IModelReader modelReader = modelSolver.getModelReader(); return modelElementsDomain.get(modelReader.getAssociationName(((EAssociation) element))); } return result != null ? result : ""; //$NON-NLS-1$ } @SuppressWarnings({ "rawtypes", "unchecked" }) protected void setValue(Object element, Object value) { String key = ""; //$NON-NLS-1$ if (element instanceof EAttribute) key = ((EAttribute) element).getEContainingClass().getName() + "." //$NON-NLS-1$ + ((EAttribute) element).getName(); if (element instanceof StringAttributeContainer) key = ((StringAttributeContainer) element).getKey(); if (element instanceof EClass) key = ((EClass) element).getEPackage().getName() + "." + ((EClass) element).getName(); //$NON-NLS-1$ if (element instanceof Class) key = ((Class) element).getPackage().getName() + "." + ((Class) element).getName(); //$NON-NLS-1$ if (element instanceof Property) key = ((Property) element).getClass_().getName() + "." + ((Property) element).getName(); //$NON-NLS-1$ if (element instanceof Association) { IModelReader modelReader = modelSolver.getModelReader(); key = modelReader.getAssociationName(((Association) element)); } if (element instanceof EAssociation) { IModelReader modelReader = modelSolver.getModelReader(); key = modelReader.getAssociationName(((EAssociation) element)); } modelElementsDomain.remove(key); modelElementsDomain.put(key, (String) value); treeViewer.update(element, null); modelSolver.setModelElementsDomain(modelElementsDomain); } }); }
From source file:fr.inria.linuxtools.internal.tmf.ui.project.wizards.importtrace.ImportTraceWizardScanPage.java
License:Open Source License
@Override public void createControl(Composite parent) { super.createControl(parent); final Composite control = (Composite) this.getControl(); setTitle(Messages.ImportTraceWizardScanPageTitle); traceTypeViewer = new CheckboxTreeViewer(control, SWT.CHECK); traceTypeViewer.setContentProvider(getBatchWizard().getScannedTraces()); traceTypeViewer.getTree().setHeaderVisible(true); traceTypeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); traceTypeViewer.setInput(getBatchWizard().getScannedTraces()); traceTypeViewer.addCheckStateListener(new ImportTraceCheckStateListener()); TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(traceTypeViewer, new FocusCellOwnerDrawHighlighter(traceTypeViewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy( traceTypeViewer) {//from w w w .j a v a 2 s . co m }; TreeViewerEditor.create(traceTypeViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); final TextCellEditor textCellEditor = new TextCellEditor(traceTypeViewer.getTree()); // -------------------- // Column 1 // -------------------- TreeViewerColumn column = new TreeViewerColumn(traceTypeViewer, SWT.NONE); column.getColumn().setWidth(COL_WIDTH); column.getColumn().setText(Messages.ImportTraceWizardTraceDisplayName); column.setLabelProvider(new FirstColumnLabelProvider()); column.setEditingSupport(new ColumnEditorSupport(traceTypeViewer, textCellEditor)); // -------------------- // Column 2 // -------------------- column = new TreeViewerColumn(traceTypeViewer, SWT.NONE); column.getColumn().setWidth(500); column.getColumn().setText(Messages.ImportTraceWizardImportCaption); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof FileAndName) { FileAndName elem = (FileAndName) element; return elem.getFile().getPath(); } return null; } }); // -------------------- // Column 3 // -------------------- column = new TreeViewerColumn(traceTypeViewer, SWT.NONE); column.getColumn().setWidth(80); column.getColumn().setText(Messages.ImportTraceWizardScanPageSize); column.getColumn().setAlignment(SWT.RIGHT); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof FileAndName) { FileAndName elem = (FileAndName) element; long len = recurseSize(elem.getFile()); if (len > 0) { double sizeb10 = Math.log10(len); DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(2); df.setMinimumFractionDigits(0); if (sizeb10 > 12) { final double tbSize = len / 1024.0 / 1024 / 1024 / 1024; return df.format(tbSize) + Messages.ImportTraceWizardScanPageTerabyte; } if (sizeb10 > 9) { final double gbSize = len / 1024.0 / 1024 / 1024; return df.format(gbSize) + Messages.ImportTraceWizardScanPageGigabyte; } if (sizeb10 > 6) { final double mbSize = len / 1024.0 / 1024; return df.format(mbSize) + Messages.ImportTraceWizardScanPageMegabyte; } if (sizeb10 > 3) { final double kbSize = len / 1024.0; return df.format(kbSize) + Messages.ImportTraceWizardScanPageKilobyte; } } return Long.toString(len) + Messages.ImportTraceWizardScanPagebyte; } return null; } private long recurseSize(File file) { if (file.isFile() && file.canRead()) { return file.length(); } long size = 0; if (file.exists() && file.isDirectory() && file.canRead()) { final File[] listFiles = file.listFiles(); if (listFiles != null) { for (File child : listFiles) { if (child.isFile() && child.canRead()) { size += child.length(); } else if (child.isDirectory()) { size += recurseSize(child); } else { Activator.getDefault() .logError("Unknown \"file\" type for " + child + ' ' + child.toString()); //$NON-NLS-1$ } } } } return size; } }); init(); getBatchWizard().setTracesToScan(fTracesToScan); getBatchWizard().setTraceFolder(fTargetFolder); fRunnable.schedule(); setErrorMessage(Messages.ImportTraceWizardScanPageSelectAtleastOne); }
From source file:fr.inria.linuxtools.internal.tmf.ui.project.wizards.tracepkg.importexport.ExportTracePackageWizardPage.java
License:Open Source License
@Override protected void createElementViewer(Composite parent) { super.createElementViewer(parent); CheckboxTreeViewer elementViewer = getElementViewer(); elementViewer.getTree().setHeaderVisible(true); // Content column TreeViewerColumn column = new TreeViewerColumn(elementViewer, SWT.NONE); column.getColumn().setWidth(CONTENT_COL_WIDTH); column.getColumn().setText(Messages.ExportTracePackageWizardPage_ContentColumnName); column.setLabelProvider(new TracePackageLabelProvider()); // Size column column = new TreeViewerColumn(elementViewer, SWT.NONE); column.getColumn().setWidth(SIZE_COL_WIDTH); column.getColumn().setText(Messages.ExportTracePackageWizardPage_SizeColumnName); column.setLabelProvider(new ColumnLabelProvider() { @Override/*from ww w. java2 s .c om*/ public String getText(Object element) { TracePackageElement tracePackageElement = (TracePackageElement) element; long size = tracePackageElement.getSize(false); if (size == 0) { return null; } int level = 0; TracePackageElement curElement = tracePackageElement.getParent(); while (curElement != null) { curElement = curElement.getParent(); ++level; } return indent(getHumanReadable(size), level); } private String indent(String humanReadable, int level) { StringBuilder s = new StringBuilder(humanReadable); for (int i = 0; i < level; ++i) { final String indentStr = " "; //$NON-NLS-1$ s.insert(0, indentStr); } return s.toString(); } }); elementViewer.setInput(createElementViewerInput()); elementViewer.expandToLevel(2); setAllChecked(elementViewer, false, true); }
From source file:fr.inria.linuxtools.tmf.ui.viewers.statistics.TmfStatisticsViewer.java
License:Open Source License
/** * Initialize the content that will be drawn in this viewer * * @param parent/* w w w. j a v a 2 s.co m*/ * The parent of the control to create */ protected void initContent(Composite parent) { final List<TmfBaseColumnData> columnDataList = getColumnDataProvider().getColumnData(); fTreeViewer = new TreeViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); fTreeViewer.setContentProvider(new TmfTreeContentProvider()); fTreeViewer.getTree().setHeaderVisible(true); fTreeViewer.setUseHashlookup(true); // Creates the columns defined by the column data provider for (final TmfBaseColumnData columnData : columnDataList) { final TreeViewerColumn treeColumn = new TreeViewerColumn(fTreeViewer, columnData.getAlignment()); treeColumn.getColumn().setText(columnData.getHeader()); treeColumn.getColumn().setWidth(columnData.getWidth()); treeColumn.getColumn().setToolTipText(columnData.getTooltip()); // If is dummy column if (columnData == columnDataList.get(TmfBaseColumnDataProvider.StatsColumn.DUMMY.getIndex())) { treeColumn.getColumn().setResizable(false); } // A comparator is defined. if (columnData.getComparator() != null) { // Adds a listener on the columns header for sorting purpose. treeColumn.getColumn().addSelectionListener(new SelectionAdapter() { private ViewerComparator reverseComparator; @Override public void widgetSelected(SelectionEvent e) { // Initializes the reverse comparator once. if (reverseComparator == null) { reverseComparator = new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.getComparator().compare(viewer, e1, e2); } }; } if (fTreeViewer.getTree().getSortDirection() == SWT.UP || fTreeViewer.getTree().getSortColumn() != treeColumn.getColumn()) { /* * Puts the descendant order if the old order was up * or if the selected column has changed. */ fTreeViewer.setComparator(columnData.getComparator()); fTreeViewer.getTree().setSortDirection(SWT.DOWN); } else { /* * Puts the ascendant ordering if the selected * column hasn't changed. */ fTreeViewer.setComparator(reverseComparator); fTreeViewer.getTree().setSortDirection(SWT.UP); } fTreeViewer.getTree().setSortColumn(treeColumn.getColumn()); } }); } treeColumn.setLabelProvider(columnData.getLabelProvider()); } // Handler that will draw the percentages and the bar charts. fTreeViewer.getTree().addListener(SWT.EraseItem, new Listener() { @Override public void handleEvent(Event event) { if (columnDataList.get(event.index).getPercentageProvider() != null) { TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) event.item.getData(); // If node is hidden, exit immediately. if (TmfBaseColumnDataProvider.HIDDEN_FOLDER_LEVELS.contains(node.getName())) { return; } // Otherwise, get percentage and draw bar and text if applicable. double percentage = columnDataList.get(event.index).getPercentageProvider().getPercentage(node); // The item is selected. if ((event.detail & SWT.SELECTED) > 0) { // Draws our own background to avoid overwriting the bar. event.gc.fillRectangle(event.x, event.y, event.width, event.height); event.detail &= ~SWT.SELECTED; } // Drawing the percentage text // if events are present in top node // and the current node is not the top node // and if is total or partial events column. // If not, exit the method. if (!((event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex() || event.index == TmfBaseColumnDataProvider.StatsColumn.PARTIAL.getIndex()) && node != node.getTop())) { return; } long eventValue = event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex() ? node.getTop().getValues().getTotal() : node.getTop().getValues().getPartial(); if (eventValue != 0) { int oldAlpha = event.gc.getAlpha(); Color oldForeground = event.gc.getForeground(); Color oldBackground = event.gc.getBackground(); // Bar to draw if (percentage != 0) { /* * Draws a transparent gradient rectangle from the * color of foreground and background. */ int barWidth = (int) ((fTreeViewer.getTree().getColumn(event.index).getWidth() - 8) * percentage); event.gc.setAlpha(64); event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_BLUE)); event.gc.setBackground( event.item.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); event.gc.fillGradientRectangle(event.x, event.y, barWidth, event.height, true); event.gc.drawRectangle(event.x, event.y, barWidth, event.height); // Restore old values event.gc.setBackground(oldBackground); event.gc.setAlpha(oldAlpha); event.detail &= ~SWT.BACKGROUND; } String percentageText = TmfStatisticsFormatter.toPercentageText(percentage); String absoluteNumberText = TmfStatisticsFormatter.toColumnData(node, TmfBaseColumnDataProvider.StatsColumn.getColumn(event.index)); if (event.width > event.gc.stringExtent(percentageText).x + event.gc.stringExtent(absoluteNumberText).x) { int textHeight = event.gc.stringExtent(percentageText).y; event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); event.gc.drawText(percentageText, event.x, event.y + (event.height - textHeight) / 2, true); } // Restores old values event.gc.setForeground(oldForeground); } } } }); // Initializes the comparator parameters fTreeViewer.setComparator(columnDataList.get(0).getComparator()); fTreeViewer.getTree().setSortColumn(fTreeViewer.getTree().getColumn(0)); fTreeViewer.getTree().setSortDirection(SWT.DOWN); }
From source file:fr.inria.linuxtools.tmf.ui.viewers.tree.TmfTreeColumnData.java
License:Open Source License
/** * Create a TreeColumn with this column's data and adds it to a {@link Tree} * * @param treeViewer/* ww w.j a v a 2 s . c om*/ * The {@link TreeViewer} object to add the column to * @return The newly created {@link TreeViewerColumn} */ @NonNull public TreeViewerColumn createColumn(final TreeViewer treeViewer) { final TreeViewerColumn column = new TreeViewerColumn(treeViewer, getAlignment()); final TmfTreeColumnData columnData = this; column.getColumn().setText(getText()); if (getWidth() != -1) { column.getColumn().setWidth(getWidth()); } if (getTooltip() != null) { column.getColumn().setToolTipText(getTooltip()); } column.getColumn().setMoveable(isMovable()); /* Add the comparator to sort the column */ if (getComparator() != null) { column.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getTree().getSortDirection() == SWT.UP || treeViewer.getTree().getSortColumn() != column.getColumn()) { /* * Puts the descendant order if the old order was up * or if the selected column has changed. */ treeViewer.setComparator(columnData.getComparator()); treeViewer.getTree().setSortDirection(SWT.DOWN); } else { ViewerComparator reverseComparator; /* Initializes the reverse comparator. */ reverseComparator = new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.getComparator().compare(viewer, e1, e2); } }; /* * Puts the ascendant ordering if the selected * column hasn't changed. */ treeViewer.setComparator(reverseComparator); treeViewer.getTree().setSortDirection(SWT.UP); } treeViewer.getTree().setSortColumn(column.getColumn()); } }); } return column; }
From source file:fr.inria.soctrace.framesoc.ui.piechart.view.StatisticsPieChartView.java
License:Open Source License
private void createColumns() { for (final StatisticsTableColumn col : StatisticsTableColumn.values()) { TreeViewerColumn elemsViewerCol = new TreeViewerColumn(tableTreeViewer, SWT.NONE); if (col.equals(StatisticsTableColumn.NAME)) { // add a filter for this column nameFilter = new StatisticsTableRowFilter(col); tableTreeViewer.addFilter(nameFilter); // the label provider puts also the image StatisticsTableRowLabelProvider p = new StatisticsTableRowLabelProvider(col); nameProviders.add(p);//from ww w . j av a 2s .c o m elemsViewerCol.setLabelProvider(p); } else if (col.equals(StatisticsTableColumn.VALUE)) { elemsViewerCol.setLabelProvider(new ValueLabelProvider(col, this)); } else { elemsViewerCol.setLabelProvider(new TableRowLabelProvider(col)); } final TreeColumn elemsTableCol = elemsViewerCol.getColumn(); elemsTableCol.setWidth(col.getWidth()); elemsTableCol.setText(col.getHeader()); elemsTableCol.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { comparator.setColumn(col); tableTreeViewer.getTree().setSortDirection(comparator.getDirection()); tableTreeViewer.getTree().setSortColumn(elemsTableCol); tableTreeViewer.refresh(); } }); } }
From source file:fr.lip6.move.coloane.core.ui.panels.ResultsView.java
License:Open Source License
/** {@inheritDoc} */ @Override/* w w w.jav a 2 s . c o m*/ public final void createPartControl(final Composite parent) { viewer = new CheckboxTreeViewer(parent, SWT.MULTI | SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION); viewer.getTree().setLinesVisible(true); viewer.setContentProvider(new ResultContentProvider()); // Add the first column new TreeViewerColumn(viewer, SWT.LEFT).setLabelProvider(new ResultColumnLabelProvider(0)); new TreeViewerColumn(viewer, SWT.LEFT).setLabelProvider(new ResultColumnLabelProvider(1)); ResultManager resultsManager = null; if (MANAGER.getCurrentSession() != null) { resultsManager = MANAGER.getCurrentSession().getResultManager(); } // Build an observer. It will observe a ResultTreeList. final Observer resultObserver = new Observer() { // Something has been updated ! @Override public void update(final Observable o, Object arg) { final Integer width = (Integer) arg; // Update the UI... Take care !! parent.getDisplay().syncExec(new Runnable() { @Override public void run() { // Add columns if necessary for (int i = viewer.getTree().getColumnCount(); i < width; i++) { TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT); column.setLabelProvider(new ResultColumnLabelProvider(i)); } updateColumnsWidth(); // Update the view viewer.refresh(); } }); } }; // Add the observer to the result list if (resultsManager != null) { viewer.setInput(new MultiResultManager(MANAGER.getGlobalSession().getResultManager(), resultsManager)); resultsManager.addObserver(resultObserver); } else { viewer.setInput(MANAGER.getGlobalSession().getResultManager()); } MANAGER.getGlobalSession().getResultManager().addObserver(resultObserver); // Allow the user to delete a result that has been selected (activate the action) viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { delete.setEnabled(true); } }); // When a result is selected... Add a listener to this checkbox checkStateListener = new CheckStateListener(viewer, checkStateMap); viewer.addCheckStateListener(checkStateListener); // Add an observer to observe session switch MANAGER.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(ISessionManager.PROP_CURRENT_SESSION)) { final ISession previous = (ISession) evt.getOldValue(); final ISession current = (ISession) evt.getNewValue(); if (!parent.isDisposed() && !parent.getDisplay().isDisposed()) { parent.getDisplay().asyncExec(new Runnable() { @Override public void run() { if (previous != null) { previous.getResultManager().deleteObserver(resultObserver); } if (current != null) { viewer.setInput( new MultiResultManager(MANAGER.getGlobalSession().getResultManager(), current.getResultManager())); current.getResultManager().addObserver(resultObserver); viewer.refresh(); } else { viewer.setInput(MANAGER.getGlobalSession().getResultManager()); viewer.refresh(); } } }); } } } }); createToolbar(); updateColumnsWidth(); Tree tree = viewer.getTree(); tree.setHeaderVisible(true); tree.setLayoutData(new GridData(GridData.FILL_BOTH)); }
From source file:fr.openpeople.rdal.ide.view.traceability.navigator.AbstractShowHideOutlineCoverageActionDelegate.java
License:Open Source License
protected void setCoverageColumnVisible(final boolean pb_value) { final TreeViewer viewer = getTreeViewer(outlineView.getCurrentPage()); if (viewer != null) { final Tree tree = viewer.getTree(); if (pb_value) { if (tree.getColumnCount() != 2) { parentLayout = tree.getParent().getLayout(); final TreeColumnLayout colLayout = new TreeColumnLayoutFixed(); tree.getParent().setLayout(colLayout); final TreeColumn resourceColumn = new TreeColumn(tree, SWT.NONE); resourceColumn.setText("Resources"); resourceColumn.setWidth(150); final ColumnWeightData colDataRes = new ColumnWeightData(50, 200); colLayout.setColumnData(resourceColumn, colDataRes); resourceColumn.setWidth(colDataRes.minimumWidth); final TreeViewerColumn coverageViewerColumn = new TreeViewerColumn(viewer, SWT.NONE); coverageViewerColumn.setLabelProvider(new CoverageLabelProvider(coverageViewerColumn, viewer, RdalIdePlugin.getDefault().getDefinedCoverageListers(), RdalIdePlugin.getDefault().getExceptionHandler())); final TreeColumn coverageColumn = coverageViewerColumn.getColumn(); coverageColumn.setText("Verif. Rate"); final ColumnWeightData colDataCov = new ColumnWeightData(50, 80); colLayout.setColumnData(coverageColumn, colDataCov); // DB 30/05/2011 Set width now seems necessary. Change in JFace? coverageColumn.setWidth(colDataCov.minimumWidth); }/*from w ww . ja v a 2s . co m*/ } else { for (final TreeColumn column : tree.getColumns()) { column.dispose(); } tree.getParent().setLayout(parentLayout); } tree.setHeaderVisible(pb_value); tree.getParent().layout(); viewer.refresh(); } }