Example usage for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn

List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn.

Prototype

public TreeViewerColumn(TreeViewer viewer, TreeColumn column) 

Source Link

Document

Creates a new viewer column for the given TreeViewer on the given TreeColumn .

Usage

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();
    }
}