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

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

Introduction

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

Prototype

public TreeColumn getColumn() 

Source Link

Usage

From source file:eu.artist.premigration.tft.tft.views.InventoryView.java

License:Open Source License

/**
 * Creates the TreeViewerColumn for the given index
 * /*from w w  w  . j a va2s. c  o m*/
 * @param columnIndex The index number of the column
 * @return TreeViewerColumn
 */
private TreeViewerColumn createTreeViewerColumn(int columnIndex) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);

    final TreeColumn column = viewerColumn.getColumn();
    column.setText(COLUMN_TITLES[columnIndex]);
    column.setWidth(COLUMN_WIDTH[columnIndex]);
    column.setResizable(true);
    column.setMoveable(true);

    return viewerColumn;
}

From source file:eu.esdihumboldt.hale.ui.templates.webtemplates.WebTemplatesDialog.java

License:Open Source License

@Override
protected void setupViewer(final TreeViewer viewer, WebTemplate initialSelection) {
    // this label provider is used for filtering (I guess)
    viewer.setLabelProvider(new LabelProvider() {

        @Override/* w  w w . jav a2s  .  c  o m*/
        public String getText(Object element) {
            if (element instanceof WebTemplate) {
                return ((WebTemplate) element).getName();
            }
            return super.getText(element);
        }

    });

    viewer.getTree().setHeaderVisible(true);
    //      viewer.getTree().setLinesVisible(true);

    // main column
    TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE);
    mainColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof WebTemplate) {
                WebTemplate template = (WebTemplate) element;

                text.append(template.getName());
            } else {
                text.append(element.toString());
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    mainColumn.getColumn().setText("Template");
    layout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(7));

    // link column
    if (Desktop.isDesktopSupported()) {
        TreeViewerColumn linkColumn = new TreeViewerColumn(viewer, SWT.CENTER);
        linkColumn.setLabelProvider(new LinkLabels());

        // listener that reacts on link cell clicks
        viewer.getTree().addMouseListener(new MouseAdapter() {

            @Override
            public void mouseDown(MouseEvent e) {
                if (e.button == 1) {
                    ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
                    if (cell != null && cell.getColumnIndex() == 1 && cell.getTextBounds().contains(e.x, e.y)) {
                        Object element = cell.getElement();
                        if (element instanceof WebTemplate) {
                            try {
                                Desktop.getDesktop().browse(((WebTemplate) element).getSite());
                            } catch (IOException e1) {
                                log.error("Could not launch browser", e1);
                            }
                        }
                    }
                }
            }
        });

        layout.setColumnData(linkColumn.getColumn(), new ColumnWeightData(1));
    }

    viewer.setComparator(new ViewerComparator());

    viewer.setContentProvider(new WebTemplatesContentProvider());
    viewer.setInput(templates);
}

From source file:eu.esdihumboldt.hale.ui.util.groovy.ast.viewer.ASTViewer.java

License:Open Source License

/**
 * Constructor.//from   w w w  .java 2  s. c om
 * 
 * @param parent the parent composite
 * @param textViewer a text viewer where the code for an AST node should be
 *            selected on double click, or <code>null</code>
 */
public ASTViewer(Composite parent, ITextViewer textViewer) {
    this.textViewer = textViewer;

    page = new Composite(parent, SWT.NONE);
    TreeColumnLayout layout = new TreeColumnLayout();
    page.setLayout(layout);

    treeViewer = new TreeViewer(page, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    //      new DrillDownAdapter(viewer);
    treeViewer.setContentProvider(new ViewContentProvider());
    treeViewer.setLabelProvider(new ViewLabelProvider());

    treeViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn mainColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    mainColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            text.append(element.getClass().getSimpleName());

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    mainColumn.getColumn().setText("Node");
    layout.setColumnData(mainColumn.getColumn(), new ColumnPixelData(200));

    TreeViewerColumn infoColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    infoColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof Parameter) {
                // getText not implemented for Parameter
                Parameter param = (Parameter) element;
                text.append(param.getName());
            } else if (element instanceof ExpressionStatement) {
                // getText not properly implemented for ExpressionStatement
                text.append(((ExpressionStatement) element).getExpression().getText());
            } else if (element instanceof ASTNode) {
                ASTNode node = (ASTNode) element;
                text.append(node.getText());
            } else if (element instanceof Variable) {
                Variable var = (Variable) element;
                text.append(var.getName());
            } else {
                text.append(element.toString());
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    infoColumn.getColumn().setText("Text");
    layout.setColumnData(infoColumn.getColumn(), new ColumnPixelData(300));

    TreeViewerColumn propertiesColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    propertiesColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof Variable || element instanceof ASTNode || element instanceof VariableScope) {
                ASTNodeUtil.addProperties(element, text);
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    propertiesColumn.getColumn().setText("Properties");
    layout.setColumnData(propertiesColumn.getColumn(), new ColumnPixelData(1600));

    makeActions();
    if (textViewer != null) {
        addDoubleClickAction();
    }
}

From source file:eu.esdihumboldt.hale.ui.views.data.internal.explore.InstanceExplorer.java

License:Open Source License

/**
 * @see InstanceViewer#createControls(Composite, SchemaSpaceID)
 *//*www  . j ava 2  s.c  o  m*/
@Override
public void createControls(Composite parent, SchemaSpaceID schemaSpace) {
    main = new Composite(parent, SWT.NONE);
    main.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).create());

    // selector composite
    selectorComposite = new Composite(main, SWT.NONE);
    selectorComposite.setLayoutData(GridDataFactory.swtDefaults().create());
    selectorComposite.setLayout(GridLayoutFactory.fillDefaults().create());

    // viewer composite
    Composite viewerComposite = new Composite(main, SWT.NONE);
    viewerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    TreeColumnLayout layout = new TreeColumnLayout();
    viewerComposite.setLayout(layout);
    viewer = new TreeViewer(viewerComposite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    viewer.getTree().setLinesVisible(true);

    // set content provider
    viewer.setContentProvider(new InstanceContentProvider());
    viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);
    // TODO set label provider?

    // add definition columns
    TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Definition");
    column.setLabelProvider(new TreeColumnViewerLabelProvider(
            new PairLabelProvider(true, new DefinitionMetaLabelProvider(false, true))));
    layout.setColumnData(column.getColumn(), new ColumnWeightData(1));

    // add value column
    column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Value");
    final InstanceValueLabelProvider instanceLabelProvider = new InstanceValueLabelProvider();
    column.setLabelProvider(instanceLabelProvider);
    // new PairLabelProvider(false, new LabelProvider())));

    ColumnViewerToolTipSupport.enableFor(viewer);

    layout.setColumnData(column.getColumn(), new ColumnWeightData(1));

    MetadataActionProvider maep = new MetadataExploreActionProvider(viewer);
    maep.setup();

    // Add an editor for copying instance values
    editor = new TreeEditor(viewer.getTree());
    editor.horizontalAlignment = SWT.RIGHT;
    viewer.getTree().addMouseMoveListener(new MouseMoveListener() {

        @Override
        public void mouseMove(MouseEvent e) {
            final ViewerCell cell = viewer.getCell(new Point(e.x, e.y));

            // Selected cell changed?
            if (cell == null || editor.getItem() != cell.getItem()
                    || editor.getColumn() != cell.getColumnIndex()) {
                // Clean up any previous editor control
                Control oldEditor = editor.getEditor();
                if (oldEditor != null) {
                    oldEditor.dispose();
                    editor.setEditor(null, null, 0);
                }
            }

            // No valid selected cell
            if (cell == null || cell.getColumnIndex() == 0) {
                return;
            }

            // cell didn't change
            if ((editor.getItem() == cell.getItem() && editor.getColumn() == cell.getColumnIndex())) {
                return;
            }

            // determine instance value
            Object value = ((Pair<?, ?>) cell.getViewerRow().getTreePath().getLastSegment()).getSecond();
            if (value instanceof Instance) {
                value = ((Instance) value).getValue();
            }

            // copy button
            if (value != null) {
                final String textValue = value.toString();

                if (!textValue.isEmpty()) { // empty string invalid for
                    // clipboard
                    Button button = new Button(viewer.getTree(), SWT.PUSH | SWT.FLAT);
                    button.setImage(
                            PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_COPY));
                    button.setToolTipText("Copy string value");
                    button.addSelectionListener(new SelectionAdapter() {

                        @Override
                        public void widgetSelected(SelectionEvent e) {
                            // copy content to clipboard
                            Clipboard clipBoard = new Clipboard(Display.getCurrent());
                            clipBoard.setContents(new Object[] { textValue },
                                    new Transfer[] { TextTransfer.getInstance() });
                            clipBoard.dispose();
                        }
                    });

                    // calculate editor size
                    Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                    editor.minimumHeight = size.y;
                    editor.minimumWidth = size.x;

                    editor.setEditor(button, (TreeItem) cell.getItem(), cell.getColumnIndex());
                }
            }
        }
    });

    update();
}

From source file:eu.esdihumboldt.hale.ui.views.report.ReportList.java

License:Open Source License

/**
 * Create contents of the view part.//w  ww .  ja v  a 2 s  .c om
 * 
 * @param parent parent element
 */
@Override
public void createViewControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    TreeColumnLayout layout = new TreeColumnLayout();
    composite.setLayout(layout);
    {
        _treeViewer = new TreeViewer(composite, SWT.BORDER);
        final Tree tree = _treeViewer.getTree();
        tree.setHeaderVisible(false);
        tree.setLinesVisible(false);

        // create column for reports
        TreeViewerColumn col1 = new TreeViewerColumn(_treeViewer, SWT.NONE);

        // add the label provider
        col1.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelProvider()));

        // and layout
        layout.setColumnData(col1.getColumn(), new ColumnWeightData(3));

        // create column for reports
        TreeViewerColumn col2 = new TreeViewerColumn(_treeViewer, SWT.NONE);

        // add the label provider
        col2.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelDateProvider()));

        // create column for reports
        layout.setColumnData(col2.getColumn(), new ColumnWeightData(1));

        new ReportListMenu(getSite(), _treeViewer);
    }

    createActions();
    initializeToolBar();
    initializeMenu();

    // set label provider
    // _treeViewer.setLabelProvider(new ReportListLabelProvider());

    // set content provider
    _treeViewer.setContentProvider(new ReportListContentProvider());

    // disable this if it uses too much memory
    // but should maintain the list much faster
    _treeViewer.setUseHashlookup(true);

    // order the sessions from latest to oldest
    _treeViewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof ReportSession && e2 instanceof ReportSession) {
                long first = ((ReportSession) e1).getId();
                long second = ((ReportSession) e2).getId();
                if (first > second) {
                    return -1;
                } else if (first < second) {
                    return 1;
                } else {
                    return 0;
                }
            } else if (e1 instanceof Report<?> && e2 instanceof Report<?>) {
                Report<?> first = (Report<?>) e1;
                Report<?> second = (Report<?>) e2;
                if (first.getStartTime().getTime() > second.getStartTime().getTime()) {
                    return -1;
                } else if (first.getStartTime().getTime() < second.getStartTime().getTime()) {
                    return 1;
                } else {
                    return 0;
                }
            }

            return 0;
        }
    });

    // set selection provider
    getSite().setSelectionProvider(_treeViewer);

    _treeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            OpenPropertiesHandler
                    .unpinAndOpenPropertiesView(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
        }
    });

    // load all added reports
    this.loadReports();
}

From source file:eu.esdihumboldt.hale.ui.views.tasks.TaskTreeView.java

License:Open Source License

/**
 * @see WorkbenchPart#createPartControl(Composite)
 *//*  ww  w .  ja v  a2  s.co  m*/
@Override
public void createPartControl(Composite parent) {
    Composite page = new Composite(parent, SWT.NONE);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    page.setLayoutData(data);

    // tree column layout
    TreeColumnLayout layout = new TreeColumnLayout();
    page.setLayout(layout);

    // tree viewer
    tree = new TreeViewer(page, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tree.setContentProvider(new CollectionTreeNodeContentProvider());
    tree.setUseHashlookup(true);

    tree.getTree().setHeaderVisible(true);
    tree.getTree().setLinesVisible(true);

    tree.setComparator(new TaskTreeComparator());

    schemaService = (SchemaService) PlatformUI.getWorkbench().getService(SchemaService.class);
    taskService = (TaskService) PlatformUI.getWorkbench().getService(TaskService.class);

    // columns
    IColorProvider colorProvider = new TaskColorProvider(Display.getCurrent());

    // title/description
    TreeViewerColumn description = new TreeViewerColumn(tree, SWT.LEFT);
    description.getColumn().setText(Messages.TaskTreeView_TitleDescriptionText);
    description.getColumn().setToolTipText(Messages.TaskTreeView_description_tooltip);
    TreeColumnViewerLabelProvider descriptionLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskDescriptionLabelProvider(0));
    descriptionLabelProvider.setProviders(colorProvider);
    description.setLabelProvider(descriptionLabelProvider);
    layout.setColumnData(description.getColumn(), new ColumnWeightData(4));

    // value
    TreeViewerColumn value = new TreeViewerColumn(tree, SWT.CENTER);
    value.getColumn().setText("!"); //$NON-NLS-1$
    value.getColumn().setToolTipText(Messages.TaskTreeView_value_tooltip);
    TreeColumnViewerLabelProvider valueLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskValueLabelProvider(0));
    valueLabelProvider.setProviders(colorProvider);
    value.setLabelProvider(valueLabelProvider);
    layout.setColumnData(value.getColumn(), new ColumnWeightData(0, 20));

    // number of tasks
    TreeViewerColumn number = new TreeViewerColumn(tree, SWT.RIGHT);
    number.getColumn().setText("#"); //$NON-NLS-1$
    number.getColumn().setToolTipText(Messages.TaskTreeView_NumberText);
    TreeColumnViewerLabelProvider numberLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskCountLabelProvider(0));
    numberLabelProvider.setProviders(colorProvider);
    number.setLabelProvider(numberLabelProvider);
    layout.setColumnData(number.getColumn(), new ColumnWeightData(0, 48));

    // user data: status
    TreeViewerColumn status = new TreeViewerColumn(tree, SWT.LEFT);
    status.getColumn().setText(Messages.TaskTreeView_StatusText);
    TreeColumnViewerLabelProvider statusLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskStatusLabelProvider(0));
    statusLabelProvider.setProviders(colorProvider);
    status.setLabelProvider(statusLabelProvider);
    layout.setColumnData(status.getColumn(), new ColumnWeightData(1));
    status.setEditingSupport(new TaskStatusEditingSupport(tree, taskService));

    // user data: comment
    TreeViewerColumn comment = new TreeViewerColumn(tree, SWT.LEFT);
    comment.getColumn().setText(Messages.TaskTreeView_CommentText);
    TreeColumnViewerLabelProvider commentLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskCommentLabelProvider(0));
    commentLabelProvider.setProviders(colorProvider);
    comment.setLabelProvider(commentLabelProvider);
    layout.setColumnData(comment.getColumn(), new ColumnWeightData(4));
    comment.setEditingSupport(new TaskCommentEditingSupport(tree, taskService));

    // listeners
    taskService.addListener(taskListener = new TaskServiceAdapter() {

        @Override
        public void tasksRemoved(final Iterable<Task> tasks) {
            if (Display.getCurrent() != null) {
                removeTasks(tasks);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        removeTasks(tasks);
                    }

                });
            }
        }

        @Override
        public void tasksAdded(final Iterable<Task> tasks) {
            if (Display.getCurrent() != null) {
                addTasks(tasks);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        addTasks(tasks);
                    }

                });
            }
        }

        @Override
        public void taskUserDataChanged(final ResolvedTask task) {
            if (Display.getCurrent() != null) {
                updateNode(task);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        updateNode(task);
                    }

                });
            }
        }

    });

    createInput();

    configureActions();

    // interaction
    tree.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                Object selected = ((IStructuredSelection) selection).getFirstElement();
                if (selected instanceof TreeNode) {
                    // determine value
                    Object tmp = ((TreeNode) selected).getValue();
                    Object value;
                    if (tmp.getClass().isArray()) {
                        value = ((Object[]) tmp)[0];
                    } else {
                        value = tmp;
                    }
                    if (value instanceof Task) {
                        // node is task node
                        Task task = (Task) value;
                        onDoubleClick(task.getMainContext().getIdentifier());
                    } else if (value instanceof SchemaElement) {
                        SchemaElement type = (SchemaElement) value;
                        onDoubleClick(type.getIdentifier());
                    }
                }
            }
        }
    });
}

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);//from   ww  w .j a  va2s.c om
    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: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);//from w w  w . ja  v  a2  s  . c om

    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  ww  w  . j a va2 s  . com*/
    };
    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  w ww .j  a v a 2  s . com*/
        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);
}