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:org.netxms.ui.eclipse.objectview.objecttabs.ComponentsTab.java

License:Open Source License

/**
 * @param name/*from  w ww  .  j a  va  2s  . c  om*/
 */
private void addColumn(String name, int width) {
    TreeViewerColumn tc = new TreeViewerColumn(viewer, SWT.LEFT);
    tc.getColumn().setText(name);
    tc.getColumn().setWidth(width);
}

From source file:org.obeonetwork.dsl.uml2.profile.design.profiletodsl.MappingsSelectionPage.java

License:Open Source License

/**
 * {@inheritDoc}/*w  w w.jav a  2  s  .c o  m*/
 */
public void createControl(Composite parent) {
    profileToDSLWizard = (ProfileToDSLWizard) this.getWizard();

    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout());

    // Messages for guidance.
    GridData dataFillHorizontal = new GridData(GridData.FILL_HORIZONTAL);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    container.setLayout(gridLayout);

    Label label1 = new Label(container, SWT.NONE);
    label1.setText("Select the mappings to be used in the VSM of the DSL.");
    Label line = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
    line.setLayoutData(dataFillHorizontal);

    containerCheckedTreeViewer = new ContainerCheckedTreeViewer(container, SWT.BORDER);
    containerCheckedTreeViewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            dslEAnnotation.setVSMMappingSelection(event.getElement(), String.valueOf(event.getChecked()));
            if (event.getSource() instanceof ContainerCheckedTreeViewer) {

                dslEAnnotation.setVSMMappingSelectionToFalse(
                        ((ContainerCheckedTreeViewer) event.getSource()).getInput());
                dslEAnnotation.setVSMMappingSelectionToTrue(
                        ((ContainerCheckedTreeViewer) event.getSource()).getCheckedElements());
            }
            refreshPages();
        }
    });

    containerCheckedTreeViewer.setContentProvider(new MyTreeContentProvider());
    containerCheckedTreeViewer.getTree().setVisible(true);

    TreeViewerColumn umlElmentColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    umlElmentColumn.getColumn().setText("UML Element");
    umlElmentColumn.setLabelProvider(new EcoreElementLabelProvider());
    umlElmentColumn.getColumn().setWidth(300);

    TreeViewerColumn mappingNameColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    mappingNameColumn.getColumn().setText("Mapping Name");
    mappingNameColumn.setLabelProvider(new MappingNameLabelProvider());
    mappingNameColumn.getColumn().setWidth(200);

    TreeViewerColumn mappingTypeColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    mappingTypeColumn.getColumn().setText("Mapping Type");
    mappingTypeColumn.setLabelProvider(new MappingTypeLabelProvider());
    mappingTypeColumn.getColumn().setWidth(100);

    containerCheckedTreeViewer.setUseHashlookup(true);
    containerCheckedTreeViewer.getTree().setHeaderVisible(true);
    containerCheckedTreeViewer.getTree().setLinesVisible(true);

    Composite expandCollapseContainer = new Composite(container, SWT.NULL);
    expandCollapseContainer.setLayout(new RowLayout());

    Button checkAll = new Button(expandCollapseContainer, SWT.NONE);
    checkAll.setText(" v ");
    checkAll.setToolTipText("Check All");
    checkAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setAllChecked(containerCheckedTreeViewer, true);
            refreshPages();
        }
    });

    Button unCheckAll = new Button(expandCollapseContainer, SWT.NONE);
    unCheckAll.setText("  ");
    unCheckAll.setToolTipText("Uncheck All");
    unCheckAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setAllChecked(containerCheckedTreeViewer, false);
            refreshPages();
        }
    });

    Button collapseAll = new Button(expandCollapseContainer, SWT.NONE);
    collapseAll.setText(" - ");
    collapseAll.setToolTipText("Collapse All");
    collapseAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            containerCheckedTreeViewer.collapseAll();
        }
    });

    Button expandAll = new Button(expandCollapseContainer, SWT.NONE);
    expandAll.setText("+");
    expandAll.setToolTipText("Expand All");
    expandAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            containerCheckedTreeViewer.expandAll();
        }
    });

    /************************** Edit *****************************/
    // To trigger editing in Tree cells on double click, we need to create TreeViewerEditor.
    TreeViewerEditor.create(containerCheckedTreeViewer,
            new ColumnViewerEditorActivationStrategy(containerCheckedTreeViewer) {
                protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
                    return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
                }
            }, ColumnViewerEditor.DEFAULT);

    final TextCellEditor cellEditor = new MyTextCellEditor(containerCheckedTreeViewer.getTree());

    mappingNameColumn.setEditingSupport(new NameEditingSupport(containerCheckedTreeViewer, cellEditor));
    mappingTypeColumn.setEditingSupport(new ComboBoxEditingSupport(containerCheckedTreeViewer));

    /************************** Edit *****************************/

    containerCheckedTreeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    setControl(container);

}

From source file:org.obeonetwork.dsl.uml2.profile.design.profiletodsl.MetaClassesSelectionPage.java

License:Open Source License

/**
 * {@inheritDoc}/*  w w  w .ja  v a 2s . c o  m*/
 */
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout());

    // Messages for guidance.
    GridData dataFillHorizontal = new GridData(GridData.FILL_HORIZONTAL);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    container.setLayout(gridLayout);

    Label label1 = new Label(container, SWT.NONE);
    label1.setText("Select the meta-classes to be kept in the DSL meta-model.");
    Label line = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
    line.setLayoutData(dataFillHorizontal);

    containerCheckedTreeViewer = new ContainerCheckedTreeViewer(container, SWT.BORDER);
    containerCheckedTreeViewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            dslEAnnotation.setDslFactoryeAnnotation(event.getElement(), String.valueOf(event.getChecked()));
            if (event.getSource() instanceof ContainerCheckedTreeViewer) {

                dslEAnnotation.setDslFactoryeAnnotationToFalse(
                        ((ContainerCheckedTreeViewer) event.getSource()).getInput());
                dslEAnnotation.setDslFactoryeAnnotationToTrue(
                        ((ContainerCheckedTreeViewer) event.getSource()).getCheckedElements());
            }
            refreshPages();
        }
    });

    containerCheckedTreeViewer.setContentProvider(new MyTreeContentProvider());
    containerCheckedTreeViewer.getTree().setVisible(true);

    TreeViewerColumn umlElmentColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    umlElmentColumn.getColumn().setText("UML Element");
    umlElmentColumn.setLabelProvider(new EcoreElementLabelProvider());
    umlElmentColumn.getColumn().setWidth(300);

    TreeViewerColumn nameColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    nameColumn.getColumn().setText("Name");
    nameColumn.setLabelProvider(new EcoreElementNameLabelProvider());
    nameColumn.getColumn().setWidth(200);

    TreeViewerColumn lowerBoundColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    lowerBoundColumn.getColumn().setText("Lower Bound");
    lowerBoundColumn.setLabelProvider(new EAttributeLowerBoundLabelProvider());
    lowerBoundColumn.getColumn().setWidth(90);

    TreeViewerColumn upperBoundColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    upperBoundColumn.getColumn().setText("Upper Bound");
    upperBoundColumn.setLabelProvider(new EAttributeUpperBoundLabelProvider());
    upperBoundColumn.getColumn().setWidth(90);

    TreeViewerColumn typeColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT);
    typeColumn.getColumn().setText("Type");
    typeColumn.setLabelProvider(new TypeLabelProvider());
    typeColumn.getColumn().setWidth(100);

    containerCheckedTreeViewer.setUseHashlookup(true);
    containerCheckedTreeViewer.getTree().setHeaderVisible(true);
    containerCheckedTreeViewer.getTree().setLinesVisible(true);

    Composite expandCollapseContainer = new Composite(container, SWT.NULL);
    expandCollapseContainer.setLayout(new RowLayout());

    Button checkAll = new Button(expandCollapseContainer, SWT.NONE);
    checkAll.setText(" v ");
    checkAll.setToolTipText("Check All");
    checkAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setAllChecked(containerCheckedTreeViewer, true);
        }
    });

    Button unCheckAll = new Button(expandCollapseContainer, SWT.NONE);
    unCheckAll.setText("  ");
    unCheckAll.setToolTipText("Uncheck All");
    unCheckAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setAllChecked(containerCheckedTreeViewer, false);
        }
    });

    Button collapseAll = new Button(expandCollapseContainer, SWT.NONE);
    collapseAll.setText(" - ");
    collapseAll.setToolTipText("Collapse All");
    collapseAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            containerCheckedTreeViewer.collapseAll();
        }
    });

    Button expandAll = new Button(expandCollapseContainer, SWT.NONE);
    expandAll.setText("+");
    expandAll.setToolTipText("Expand All");
    expandAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            containerCheckedTreeViewer.expandAll();
        }
    });

    Button recommendedElements = new Button(expandCollapseContainer, SWT.NONE);
    recommendedElements.setText("&Recommended Elements");
    recommendedElements.setToolTipText("Check Recommended Elements");
    recommendedElements.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            checkRecommendedElements(containerCheckedTreeViewer);
        }
    });

    /************************** Edit *****************************/
    // To trigger editing in Tree cells on double click, we need to create TreeViewerEditor.
    TreeViewerEditor.create(containerCheckedTreeViewer,
            new ColumnViewerEditorActivationStrategy(containerCheckedTreeViewer) {
                protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
                    return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
                }
            }, ColumnViewerEditor.DEFAULT);

    final TextCellEditor cellEditor = new MyTextCellEditor(containerCheckedTreeViewer.getTree());

    nameColumn.setEditingSupport(new NameEditingSupport(containerCheckedTreeViewer, cellEditor));
    upperBoundColumn
            .setEditingSupport(new BoundEditingSupport(containerCheckedTreeViewer, cellEditor, "upper"));

    lowerBoundColumn
            .setEditingSupport(new BoundEditingSupport(containerCheckedTreeViewer, cellEditor, "lower"));
    typeColumn.setEditingSupport(new ComboBoxEditingSupport(containerCheckedTreeViewer));

    /************************** Edit *****************************/

    containerCheckedTreeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    setControl(container);
}

From source file:org.objectstyle.wolips.eomodeler.outline.EOModelContentOutlinePage.java

License:Open Source License

public void createControl(Composite parent) {
    super.createControl(parent);

    TreeViewer treeViewer = getTreeViewer();

    //TreeColumnLayout outlineTreeLayout = new TreeColumnLayout();
    //_treeComposite.setLayout(outlineTreeLayout);

    final TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE);
    column.setLabelProvider(new EOModelOutlineColumnLabelProvider(treeViewer));
    column.setEditingSupport(new EOModelOutlineEditingSupport(treeViewer));
    column.getColumn().setWidth(400);/*ww w  .  j a va2s .  c  om*/
    //outlineTreeLayout.setColumnData(column.getColumn(), new ColumnWeightData(100, true));

    ColumnViewerEditorActivationStrategy strategy = new ColumnViewerEditorActivationStrategy(treeViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
        }
    };
    TreeViewerEditor.create(treeViewer, null, strategy, ColumnViewerEditor.DEFAULT);
    /*
    parent.addControlListener(new ControlAdapter() {
       @Override
       public void controlResized(ControlEvent e) {
    super.controlResized(e);
    Composite widget = (Composite)e.getSource();
    column.getColumn().setWidth(widget.getSize().x);
    System.out.println(".controlResized: " + widget.getSize());
       }
    });
    */

    if (_updater != null) {
        _updater.dispose();
    }
    _updater = new EOModelTreeViewUpdater(treeViewer,
            new EOModelOutlineContentProvider(true, true, true, true, true, true, true, true));
    _updater.setModel(_editor.getModel());
    updateClipboardHandler();
    // AK: commenting prevents an error in swt
    // setFocus();

    IActionBars actionBars = getSite().getActionBars();
    IToolBarManager toolBarManager = actionBars.getToolBarManager();
    _toggleNonClassPropertiesAction = new ToggleNonClassPropertiesAction();
    toolBarManager.add(_toggleNonClassPropertiesAction);
    _toggleModelGroupAction = new ToggleModelGroupAction();
    toolBarManager.add(_toggleModelGroupAction);

    MenuManager menuManager = new MenuManager();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager m) {
            m.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    });
    Tree tree = treeViewer.getTree();
    _contextMenu = menuManager.createContextMenu(treeViewer.getTree());
    tree.setMenu(_contextMenu);
    getSite().registerContextMenu("org.objectstyle.wolips.eomodeler.outline", menuManager, treeViewer);

    if (_editor.getModel() == null) {
        treeViewer.setInput(new EOModelLoading(null));
        treeViewer.expandAll();
    }
}

From source file:org.openehealth.ipf.tools.manager.connection.ui.view.ConnectionView.java

License:Apache License

@Override
public void createPartControl(Composite parent) {
    Activator.getDefault().info("Creating the connection editor");
    IJMXConnectionManager jMXConnectionManager = Activator.getDefault().getJMXConnectionManager();
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    drillDownAdapter = new DrillDownAdapter(viewer);
    // handle the content provider
    contentProvider = new JMXContentProvider(this.getViewSite(), jMXConnectionManager);
    viewer.setContentProvider(contentProvider);

    viewer.setUseHashlookup(true);/*  www  .j av  a  2 s  . c o m*/
    viewer.getTree().setLinesVisible(true);
    viewer.getTree().setHeaderVisible(true);

    TreeViewerColumn tc0 = new TreeViewerColumn(viewer, SWT.CENTER);
    TreeViewerColumn tc1 = new TreeViewerColumn(viewer, SWT.CENTER);
    TreeViewerColumn tc2 = new TreeViewerColumn(viewer, SWT.CENTER);

    tc0.getColumn().setText(Messages.getLabelString("connection.name"));
    tc0.setLabelProvider(new JMXConnectionLabelProvider(0));
    tc0.getColumn().setWidth(140);
    tc1.getColumn().setText(Messages.getLabelString("connection.host"));
    tc1.setLabelProvider(new JMXConnectionLabelProvider(1));
    tc1.getColumn().setWidth(100);
    tc2.getColumn().setText(Messages.getLabelString("connection.port"));
    tc2.setLabelProvider(new JMXConnectionLabelProvider(2));
    tc2.getColumn().setWidth(60);

    new TreeColumnViewerSorter(viewer, tc0) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            IAdaptable adapter1 = (IAdaptable) e1;
            IAdaptable adapter2 = (IAdaptable) e2;
            IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1
                    .getAdapter(IConnectionConfiguration.class);
            IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2
                    .getAdapter(IConnectionConfiguration.class);
            return info1.getName().compareTo(info2.getName());
        }
    };

    new TreeColumnViewerSorter(viewer, tc1) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            IAdaptable adapter1 = (IAdaptable) e1;
            IAdaptable adapter2 = (IAdaptable) e2;
            IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1
                    .getAdapter(IConnectionConfiguration.class);
            IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2
                    .getAdapter(IConnectionConfiguration.class);
            return info1.getHost().compareTo(info2.getHost());
        }
    };
    new TreeColumnViewerSorter(viewer, tc2) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            IAdaptable adapter1 = (IAdaptable) e1;
            IAdaptable adapter2 = (IAdaptable) e2;
            IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1
                    .getAdapter(IConnectionConfiguration.class);
            IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2
                    .getAdapter(IConnectionConfiguration.class);
            return new Integer(info1.getPort()).compareTo(new Integer(info2.getPort()));
        }
    };
    viewer.setInput(getViewSite());
    viewer.getTree().addMouseListener(this);

    this.getSite().setSelectionProvider(viewer);
    viewer.addSelectionChangedListener(this);

    // add a popup menu
    createContextMenu(viewer);
    jMXConnectionManager.addObserver(this);
}

From source file:org.openscada.ca.ui.importer.wizard.PreviewPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final Composite wrapper = new Composite(parent, SWT.NONE);
    wrapper.setLayout(new GridLayout(1, false));

    this.viewer = new TreeViewer(wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL);
    this.viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    final TableLayout layout = new TableLayout();
    this.viewer.getTree().setLayout(layout);

    TreeViewerColumn col;/*from  w w  w. jav  a2 s .  c  o  m*/
    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColFactoryText);
    layout.addColumnData(new ColumnWeightData(10));
    col.setLabelProvider(new DiffEntryLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColConfigurationText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColOperationText);
    layout.addColumnData(new ColumnWeightData(10));
    col.setLabelProvider(new DiffEntryLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColDataText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColCurrentDataText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider());

    this.viewer.getTree().setHeaderVisible(true);

    this.viewer.setContentProvider(new LazyDiffEntryTreeProvider());
    this.viewer.setUseHashlookup(true);

    this.statsLabel = new Label(wrapper, SWT.NONE);
    this.statsLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    setControl(wrapper);
}

From source file:org.openscada.da.ui.widgets.realtime.RealTimeListViewer.java

License:Open Source License

public void createControl(final Composite parent) {
    parent.addDisposeListener(new DisposeListener() {

        @Override//from  ww  w .  j  a  v  a 2  s  .  c o m
        public void widgetDisposed(final DisposeEvent e) {
            dispose();
        }
    });

    this.viewer = new TreeViewer(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    TreeViewerColumn col;

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Id);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_State);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Type);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Value);
    col.setLabelProvider(new ItemCellLabelProvider());

    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout tableLayout = new TableLayout();
    applyInitialColWidth(tableLayout);
    this.viewer.getTree().setLayout(tableLayout);

    this.viewer.setContentProvider(this.contentProvider = new ItemListContentProvider());
    this.viewer.setComparator(new ListEntryComparator());
    this.viewer.setInput(this.list);

    this.viewer.addSelectionChangedListener(this.removeAction);

    addDragSupport();
    addDropSupport();
}

From source file:org.ow2.petals.client.swt.tabs.HistoryTab.java

License:Open Source License

/**
 * Constructor./*ww w  .  ja  v  a 2s.  com*/
 * @param parent
 * @param clientApp
 */
public HistoryTab(Composite parent, final ClientApplication clientApp) {

    // Root elements
    super(parent, SWT.NONE);
    setLayout(new GridLayout());
    setLayoutData(new GridData(GridData.FILL_BOTH));

    SashForm sashForm = new SashForm(this, SWT.VERTICAL);
    sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
    sashForm.setSashWidth(5);

    // Create the bold font
    FontData[] fd = getFont().getFontData();
    fd = SwtUtils.getModifiedFontData(fd, SWT.BOLD);
    this.boldFont = new Font(getDisplay(), fd);

    // The header, with the search bar
    Composite container = new Composite(sashForm, SWT.NONE);
    container.setLayout(new GridLayout());
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    Composite subContainer = new Composite(container, SWT.NONE);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(3).applyTo(subContainer);
    subContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("The Requests that were previously sent to Petals Services.");
    final Text searchText = new Text(subContainer, SWT.SINGLE | SWT.BORDER);
    searchText.setText(SEARCH_TEXT);
    GridDataFactory.swtDefaults().grab(true, false).align(SWT.END, SWT.CENTER).hint(200, SWT.DEFAULT)
            .applyTo(searchText);

    Label l = new Label(subContainer, SWT.NONE);
    l.setImage(JFaceResources.getImage(ImageIds.SEARCH_16x16));
    GridDataFactory.swtDefaults().align(SWT.END, SWT.CENTER).applyTo(l);

    // The history viewer
    this.historyViewer = new TreeViewer(container, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);
    this.historyViewer.setContentProvider(new HistoryContentProvider());

    // Columns
    TreeViewerColumn column = new TreeViewerColumn(this.historyViewer, SWT.BEGINNING);
    column.getColumn().setText("Interface Name");
    column.setLabelProvider(new HistoryFirstColumnLabelProvider(0, this.boldFont));

    column = new TreeViewerColumn(this.historyViewer, SWT.CENTER);
    column.getColumn().setText("Service Name");
    column.setLabelProvider(new HistoryFirstColumnLabelProvider(1, this.boldFont));

    column = new TreeViewerColumn(this.historyViewer, SWT.CENTER);
    column.getColumn().setText("End-point Name");
    column.setLabelProvider(new HistoryFirstColumnLabelProvider(2, this.boldFont));

    column = new TreeViewerColumn(this.historyViewer, SWT.CENTER);
    column.getColumn().setText("Time");
    column.setLabelProvider(new HistorySecondColumnLabelProvider());

    // Remaining properties
    final HistoryViewerFilter historyViewerFilter = new HistoryViewerFilter();
    this.historyViewer.addFilter(historyViewerFilter);
    this.historyViewer.setInput(PreferencesManager.INSTANCE.getHistoryDirectory());
    this.historyViewer.expandAll();

    this.historyViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    this.historyViewer.getTree().setHeaderVisible(true);
    this.historyViewer.getTree().setLinesVisible(true);

    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(30, 75, true));
    layout.addColumnData(new ColumnWeightData(30, 75, true));
    layout.addColumnData(new ColumnWeightData(30, 75, true));
    layout.addColumnData(new ColumnWeightData(10, 75, true));
    this.historyViewer.getTree().setLayout(layout);

    Link clearHistoryLink = new Link(container, SWT.NONE);
    clearHistoryLink.setText("<a>Clear All the History</a>");
    clearHistoryLink.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
    clearHistoryLink.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDown(MouseEvent e) {
            SwtUtils.clearHistoryWithProgressBar(getShell(), -1, clientApp);
            refreshHistory();
        }
    });

    // The preview part
    container = new Composite(sashForm, SWT.NONE);
    GridLayoutFactory.swtDefaults().spacing(15, 5).equalWidth(true).numColumns(2).applyTo(container);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    new Label(container, SWT.NONE).setText("Quick Overview of the XML Payload");
    new Label(container, SWT.NONE).setText("The Request Properties");
    final StyledText xmlPayloadStyledText = SwtUtils.createXmlViewer(container, clientApp.getColorManager(),
            true);

    subContainer = new Composite(container, SWT.NONE);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(2).applyTo(subContainer);
    subContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label sepLabel = new Label(subContainer, SWT.HORIZONTAL | SWT.SEPARATOR);
    GridDataFactory.fillDefaults().span(2, 1).applyTo(sepLabel);

    new Label(subContainer, SWT.NONE).setText("Interface Name:");
    final Label itfNameLabel = new Label(subContainer, SWT.NONE);
    itfNameLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("Service Name:");
    final Label srvNameLabel = new Label(subContainer, SWT.NONE);
    srvNameLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("End-point Name:");
    final Label edptNameLabel = new Label(subContainer, SWT.NONE);
    edptNameLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("Operation Name:");
    final Label opNameLabel = new Label(subContainer, SWT.NONE);
    opNameLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("MEP:");
    final Label mepLabel = new Label(subContainer, SWT.NONE);
    mepLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("Properties Count:");
    final Label propsCountLabel = new Label(subContainer, SWT.NONE);
    propsCountLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("Attachments Count:");
    final Label attCountLabel = new Label(subContainer, SWT.NONE);
    attCountLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setText("Sent On:");
    final Label dateLabel = new Label(subContainer, SWT.NONE);
    dateLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    final Button loadButton = new Button(subContainer, SWT.PUSH);
    loadButton.setText("Load this Request");
    loadButton.setVisible(false);
    GridDataFactory.swtDefaults().span(2, 1).indent(0, 10).grab(true, false).align(SWT.FILL, SWT.CENTER)
            .applyTo(loadButton);
    loadButton.addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(Event e) {
            clientApp.displayRequest(HistoryTab.this.shownRequest);
        }
    });

    // Define the sash weights
    sashForm.setWeights(new int[] { 50, 50 });

    // Add the listeners
    this.historyViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent e) {

            Object o = ((IStructuredSelection) e.getSelection()).getFirstElement();
            String date = null;
            RequestMessageBean req = null;
            if (o instanceof File) {
                try {
                    InputStream is = new FileInputStream((File) o);
                    Properties props = new Properties();
                    props.load(is);

                    req = RequestMessageBeanUtils.read(props);
                    date = HistoryFirstColumnLabelProvider.formatDateStr(((File) o).lastModified(), true);

                } catch (Exception e1) {
                    clientApp.log("Error while reading a history entry.", e1, Level.INFO);

                } finally {
                    HistoryTab.this.shownRequest = req;
                    loadButton.setEnabled(HistoryTab.this.shownRequest != null);
                }
            }

            if (req != null) {
                loadButton.setVisible(true);
                xmlPayloadStyledText.setText(req.getXmlPayload() != null ? req.getXmlPayload() : "");
                itfNameLabel.setText(req.getInterfaceName().getLocalPart() + " - "
                        + req.getInterfaceName().getNamespaceURI());
                edptNameLabel.setText(Utils.isEmptyString(req.getEndpointName()) ? "-" : req.getEndpointName());
                if (req.getServiceName() != null)
                    srvNameLabel.setText(req.getServiceName().getLocalPart() + " - "
                            + req.getServiceName().getNamespaceURI());
                else
                    srvNameLabel.setText("-");

                mepLabel.setText(req.getMep() != null ? req.getMep().toString() : "-");
                dateLabel.setText(date != null ? date : "-");
                propsCountLabel
                        .setText(String.valueOf(req.getProperties() != null ? req.getProperties().size() : 0));
                attCountLabel.setText(
                        String.valueOf(req.getAttachments() != null ? req.getAttachments().size() : 0));
                if (req.getOperation() != null)
                    opNameLabel.setText(
                            req.getOperation().getLocalPart() + " - " + req.getOperation().getNamespaceURI());
                else
                    opNameLabel.setText("-");

            } else {
                xmlPayloadStyledText.setText("");
                itfNameLabel.setText("");
                srvNameLabel.setText("");
                edptNameLabel.setText("");
                opNameLabel.setText("");
                mepLabel.setText("");
                propsCountLabel.setText("");
                attCountLabel.setText("");
                dateLabel.setText("");
                loadButton.setVisible(false);
            }
        }
    });

    searchText.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDown(MouseEvent e) {
            searchText.selectAll();
        }
    });

    searchText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {

            String txt = searchText.getText().trim();
            if (txt.length() == 0) {
                searchText.setText(SEARCH_TEXT);
            } else {
                historyViewerFilter.setSearchText(SEARCH_TEXT.equals(txt) ? null : txt);
                HistoryTab.this.historyViewer.refresh();
            }
        }
    });

    searchText.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {

            Text text = (Text) e.widget;
            if (text.getText().equals(SEARCH_TEXT)) {
                e.doit = false;
                text.setText(String.valueOf(e.character));
                text.setSelection(1);
            }
        }
    });
}

From source file:org.pentaho.ui.xul.swt.tags.SwtTree.java

License:Open Source License

private void setupTree() {

    final Composite parentComposite = ((Composite) parentComponent.getManagedObject());
    parentComposite.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            resizeTreeColumn();/*from  w w  w.  j  a v a2 s. co m*/

        }
    });

    TreeViewerColumn treeCol = new TreeViewerColumn(tree, SWT.LEFT);

    treeCol.getColumn().setMoveable(true);
    treeCol.getColumn().setText("Column 3");
    treeCol.setLabelProvider(new XulTreeCellLabelProvider(this, this.domContainer));
    ColumnViewerToolTipSupport.enableFor(tree);

    tree.setCellEditors(new CellEditor[] { new XulTreeTextCellEditor(tree.getTree()) });
    tree.setCellModifier(new XulTreeColumnModifier(this));

    // tree.setLabelProvider(new XulTreeLabelProvider(this, this.domContainer));
    tree.setContentProvider(new XulTreeContentProvider(this));

    tree.setInput(this);
    tree.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tree.setColumnProperties(new String[] { "0" });

    TreeViewerEditor.create(tree, new ColumnViewerEditorActivationStrategy(tree) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return super.isEditorActivationEvent(event);
        }

    }, ColumnViewerEditor.DEFAULT);

    tree.getTree().addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent event) {
            switch (event.keyCode) {
            case SWT.CTRL:
                SwtTree.this.controlDown = true;
                break;
            case SWT.ESC:
                // End editing session
                tree.getTree().deselectAll();
                setSelectedRows(new int[] {});
                break;
            }
        }

        @Override
        public void keyReleased(KeyEvent event) {
            switch (event.keyCode) {
            case SWT.CTRL:
                SwtTree.this.controlDown = false;
                break;
            }
        }

    });

    // Add a focus listener to clear the contol down selector
    tree.getTree().addFocusListener(new FocusListener() {

        public void focusGained(FocusEvent arg0) {
        }

        public void focusLost(FocusEvent arg0) {
            if (tree.getCellEditors()[0].isActivated() == false) {
                SwtTree.this.controlDown = false;
            }
        }

    });

    tree.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent arg0) {
            if (arg0.getElement() instanceof XulTreeItem) {
                XulTreeItem t = (XulTreeItem) arg0.getElement();
                t.setExpanded(false);
            }
        }

        public void treeExpanded(TreeExpansionEvent arg0) {
            if (arg0.getElement() instanceof XulTreeItem) {
                XulTreeItem t = (XulTreeItem) arg0.getElement();
                t.setExpanded(true);
            }
        }
    });

    tree.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent arg0) {
            if (command != null) {
                if (elements != null) {
                    // Invoke with selected elements as parameter
                    invoke(command, new Object[] { getSelectedItems().toArray() });
                } else {
                    // Invoke with selected indexes as parameter
                    invoke(command, new Object[] { getSelectedRows() });
                }
            }
        }

    });

    tree.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            // if the selection is empty clear the label
            if (event.getSelection().isEmpty()) {
                SwtTree.this.setSelectedIndex(-1);
                return;
            }
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();

                int[] selected = new int[selection.size()];
                List selectedItems = new ArrayList();

                int i = 0;
                for (Object o : selection.toArray()) {
                    XulTreeItem selectedItem = (XulTreeItem) o;
                    SearchBundle b = findSelectedIndex(new SearchBundle(), getRootChildren(), selectedItem);
                    selected[i++] = b.curPos;
                    selectedItems.add(b.selectedItem);
                }

                if (selected.length == 0) {
                    setSelectedIndex(-1);
                } else {
                    setSelectedIndex(selected[0]);
                }

                int[] selectedRows = null;
                if (SwtTree.this.controlDown && Arrays.equals(selected, selectedRows)
                        && tree.getCellEditors()[0].isActivated() == false) {
                    tree.getTree().deselectAll();
                    selectedRows = new int[] {};
                } else {
                    selectedRows = selected;
                }

                changeSupport.firePropertyChange("selectedRows", null, selectedRows);
                changeSupport.firePropertyChange("absoluteSelectedRows", null, selectedRows);
                changeSupport.firePropertyChange("selectedItems", null, selectedItems);
                currentSelectedItems = selectedItems;

                // Single selection binding.
                Object selectedItem = (selectedItems.size() > 0) ? selectedItems.get(0) : null;
                changeSupport.firePropertyChange("selectedItem", null, selectedItem);

            }
        }
    });

    sortProperties.setSortColumn(null);
    sortProperties.setSortable(false);

    for (XulComponent col : this.columns.getChildNodes()) {
        XulTreeCol xulCol = (XulTreeCol) col;

        // Only process the first column that is deemed sortActive,
        // since only one column is allowed sortActive at a time
        if (xulCol.isSortActive() && sortProperties.getSortColumn() == null) {
            sortProperties.setSortColumn(treeCol.getColumn());
            sortProperties.setSortDirection(SortDirection.valueOf(xulCol.getSortDirection()));
        }
        sortProperties.setSortMethod(treeCol.getColumn(), toGetter(xulCol.getComparatorbinding()));
    }

    TreeColumnSorter sorter = new TreeColumnSorter(tree, sortProperties);
}

From source file:org.polymap.rhei.batik.toolkit.md.MdListViewer.java

License:Open Source License

/**
 * /* www  . j av a2  s .c o m*/
 */
protected void customizeTree() {
    if (!customized) {
        customized = true;

        getTree().setLinesVisible(linesVisible.get());

        Template template = new Template();

        // 16dp used for the tree node handle
        dp left = iconProvider.isPresent() ? dp(58) : dp(0);
        dp tileHeight = dp(0);
        int colCount = 0;

        // first line
        if (firstLineLabelProvider.isPresent()) {
            TreeViewerColumn col = new TreeViewerColumn(this, SWT.NONE);
            col.setLabelProvider(firstLineLabelProvider.get());

            TextCell cell = new TextCell(template);
            cell.setName(CELL_FIRSTLINE);
            cell.setLeft(left.pix()).setRight(50).setTop(dp(10).pix()).setHeight(18)
                    .setHorizontalAlignment(SWT.LEFT);
            cell.setBindingIndex(colCount++);
            // this makes text a link, which flickers and does not look very smooth
            //cell.setSelectable( openListenerPresent );
            cell.setFont(MdAppDesign.font(FontStyle.Subhead));

            tileHeight = dp(50);
        }
        // second line
        if (secondLineLabelProvider.isPresent()) {
            TreeViewerColumn col = new TreeViewerColumn(this, SWT.NONE);
            col.setLabelProvider(secondLineLabelProvider.get());

            TextCell cell = new TextCell(template);
            cell.setName(CELL_SECONDLINE);
            cell.setLeft(left.pix()).setRight(50).setTop(dp(37).pix()).setHeight(16);
            cell.setBindingIndex(colCount++);
            cell.setForeground(UIUtils.getColor(150, 150, 150));

            tileHeight = dp(72);
        }
        // third line
        if (thirdLineLabelProvider.isPresent()) {
            TreeViewerColumn col = new TreeViewerColumn(this, SWT.NONE);
            col.setLabelProvider(thirdLineLabelProvider.get());

            TextCell cell = new TextCell(template);
            cell.setName(CELL_THIRDLINE);
            cell.setLeft(30).setRight(30).setTop(30).setHeight(15);
            cell.setBindingIndex(colCount++);
        }
        // primary icon
        if (iconProvider.isPresent()) {
            TreeViewerColumn col = new TreeViewerColumn(this, SWT.NONE);
            col.setLabelProvider(iconProvider.get());

            ImageCell cell = new ImageCell(template);
            cell.setName(CELL_ICON);
            cell.setLeft(1).setWidth(dp(56).pix()).setTop(0).setHeight(tileHeight.pix())
                    .setVerticalAlignment(SWT.CENTER).setHorizontalAlignment(SWT.CENTER);
            cell.setBindingIndex(colCount++);
            cell.setSelectable(true);
        }
        // actions
        int width = 46;
        int actionCount = getActionCount() - 1; // -1 because no expand icon
        if (thirdSecondaryActionProvider.isPresent()) {
            createActionCell(template, thirdSecondaryActionProvider.get(), CELL_THIRDACTION,
                    dp(actionCount-- * width), tileHeight).setBindingIndex(colCount++);
        }
        if (secondSecondaryActionProvider.isPresent()) {
            createActionCell(template, secondSecondaryActionProvider.get(), CELL_SECONDACTION,
                    dp(actionCount-- * width), tileHeight).setBindingIndex(colCount++);
        }
        if (firstSecondaryActionProvider.isPresent()) {
            createActionCell(template, firstSecondaryActionProvider.get(), CELL_FIRSTACTION,
                    dp(actionCount-- * width), tileHeight).setBindingIndex(colCount++);
        }

        //            // expand
        //            TreeViewerColumn col = new TreeViewerColumn( this, SWT.NONE );
        //            col.setLabelProvider( new CellLabelProvider() {
        //                @Override
        //                public void update( ViewerCell cell ) {
        //                    if (cell.getElement() != null) {
        //                        IContentProvider contentProvider = MdListViewer.this.getContentProvider();
        //                        boolean expandable = true;
        //                        if (contentProvider instanceof ITreeContentProvider) {
        //                            expandable = ((ITreeContentProvider)contentProvider).hasChildren( cell.getElement() );
        //                        }
        //                        if (expandable) {
        //                            cell.setImage( getExpandedState( cell.getElement() )
        //                                    ? BatikPlugin.images().svgImage( "close.svg", SvgImageRegistryHelper.DISABLED12 )
        //                                    : BatikPlugin.images().svgImage( "chevron-down.svg", SvgImageRegistryHelper.DISABLED24 ) );
        //                        }
        //                        else {
        //                            cell.setImage( null );
        //                        }
        //                    }
        //                }
        //            });
        //            ImageCell cell = new ImageCell( template );
        //            cell.setName( CELL_EXPAND );
        //            cell.setRight( 1 ).setWidth( dp( 56 ).pix() ).setTop( 0 ).setHeight( tileHeight.pix() )
        //                    .setVerticalAlignment( SWT.CENTER ).setHorizontalAlignment( SWT.CENTER );
        //            cell.setBindingIndex( colCount++ );
        //            cell.setSelectable( true );

        //
        getTree().addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent ev) {
                Object elm = ev.item.getData();
                // expand
                if (CELL_EXPAND.equals(ev.text)) {
                    if (!getExpanded((Item) ev.item)) {
                        expandToLevel(elm, 1);
                    } else {
                        collapseToLevel(elm, 1);
                    }
                }
                //
                else if (CELL_FIRSTACTION.equals(ev.text)
                        && firstSecondaryActionProvider.get() instanceof ActionProvider) {
                    ((ActionProvider) firstSecondaryActionProvider.get()).perform(MdListViewer.this, elm);
                } else if (CELL_SECONDACTION.equals(ev.text)) {
                    secondSecondaryActionProvider.get().perform(MdListViewer.this, elm);
                } else if (CELL_THIRDACTION.equals(ev.text)) {
                    thirdSecondaryActionProvider.get().perform(MdListViewer.this, elm);
                }
                // open
                else {
                    fireOpen(new OpenEvent(MdListViewer.this, new StructuredSelection(elm)));
                }
            }
        });
        super.addSelectionChangedListener(new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent ev) {
                log.debug("selection: " + ev);
            }
        });

        getTree().setData(RWT.ROW_TEMPLATE, template);
        getTree().setData(RWT.CUSTOM_ITEM_HEIGHT, tileHeight.pix());
    }
}