Example usage for org.eclipse.jface.window ToolTip NO_RECREATE

List of usage examples for org.eclipse.jface.window ToolTip NO_RECREATE

Introduction

In this page you can find the example usage for org.eclipse.jface.window ToolTip NO_RECREATE.

Prototype

int NO_RECREATE

To view the source code for org.eclipse.jface.window ToolTip NO_RECREATE.

Click Source Link

Document

Don't recreate the tooltip as long the mouse doesn't leave the area triggering the tooltip creation

Usage

From source file:org.cs3.pdt.analysis.views.AbstractAnalysisView.java

License:Open Source License

protected CheckboxTreeViewer createAnalysisTreeViewer(Composite parent) {
    final CheckboxTreeViewer treeViewer = new CheckboxTreeViewer(parent,
            SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    gridData.verticalAlignment = GridData.FILL;

    final Tree tree = treeViewer.getTree();
    tree.setLayoutData(gridData);//from  w w  w .ja  va2s.c om
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    Menu menu = new Menu(tree.getShell(), SWT.POP_UP);

    MenuItem mnItemRun = new MenuItem(menu, SWT.PUSH);
    mnItemRun.setText("Run analysis");
    mnItemRun.setImage(ImageRepository.getImage(ImageRepository.ICON_RUN));
    mnItemRun.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent evt) {
            runSelectedAnalyses();
        }
    });

    MenuItem mnItemRemove = new MenuItem(menu, SWT.PUSH);
    mnItemRemove.setText("Clear analysis results");
    mnItemRemove.setImage(ImageRepository.getImage(ImageRepository.ICON_REMOVE));
    mnItemRemove.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            clearSelectedAnalyses();
        }
    });

    new MenuItem(menu, SWT.SEPARATOR);

    MenuItem mnItemSelectAll = new MenuItem(menu, SWT.PUSH);
    mnItemSelectAll.setText("Enable all");
    mnItemSelectAll.setImage(ImageRepository.getImage(ImageRepository.ICON_SELECT_ALL));
    mnItemSelectAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setEnabledOnAll(true);
            analysisCheckStateChanged();
        }
    });

    MenuItem mnItemSelectNone = new MenuItem(menu, SWT.PUSH);
    mnItemSelectNone.setText("Disable all");
    mnItemSelectNone.setImage(ImageRepository.getImage(ImageRepository.ICON_SELECT_NONE));
    mnItemSelectNone.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setEnabledOnAll(false);
            analysisCheckStateChanged();
        }
    });

    MenuItem mnItemExpandAll = new MenuItem(menu, SWT.PUSH);
    mnItemExpandAll.setText("Expand all");
    mnItemExpandAll.setImage(ImageRepository.getImage(ImageRepository.ICON_EXPAND_ALL));
    mnItemExpandAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            treeViewer.expandAll();
        }
    });

    MenuItem mnItemCollapseAll = new MenuItem(menu, SWT.PUSH);
    mnItemCollapseAll.setText("Collapse all");
    mnItemCollapseAll.setImage(ImageRepository.getImage(ImageRepository.ICON_COLLAPSE_ALL));
    mnItemCollapseAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            treeViewer.collapseAll();
        }
    });

    tree.setMenu(menu);
    treeViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            treeViewer.setSubtreeChecked(event.getElement(), event.getChecked());
            checkAncestorPath(event.getElement(), event.getChecked(), false, null);

            analysisCheckStateChanged();
        }
    });
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            analysisSelectionChanged(event.getSelection());
        }
    });

    analysisContentProvider = new AnalysisTableContentProvider(getResultModel());
    analysisContentProvider.setView(this);
    treeViewer.setContentProvider(analysisContentProvider);
    treeViewer.setInput(new Object());

    analysisTreeViewerColumns = new TreeViewerColumn[3];

    for (int i = 0; i < analysisTreeViewerColumns.length; i++) {
        analysisTreeViewerColumns[i] = new TreeViewerColumn(treeViewer, SWT.NONE);
        analysisTreeViewerColumns[i].getColumn().setMoveable(true);
    }

    analysisTreeViewerColumns[0].getColumn().setWidth(200);
    analysisTreeViewerColumns[0].getColumn().setText("Name");
    analysisTreeViewerColumns[0].setLabelProvider(new AnalysisTableNameColumnLabelProvider());

    analysisTreeViewerColumns[1].getColumn().setWidth(300);
    analysisTreeViewerColumns[1].getColumn().setText("Description");
    analysisTreeViewerColumns[1].setLabelProvider(new AnalysisTableDescriptionColumnLabelProvider());

    analysisTreeViewerColumns[2].getColumn().setWidth(100);
    analysisTreeViewerColumns[2].getColumn().setText("# Results");
    analysisTreeViewerColumns[2].setLabelProvider(new AnalysisTableCountColumnLabelProvider());

    ColumnViewerToolTipSupport.enableFor(treeViewer, ToolTip.NO_RECREATE);

    return treeViewer;
}

From source file:org.cs3.pdt.common.search.PrologSearchResultPage.java

License:Open Source License

@Override
protected void configureTreeViewer(TreeViewer viewer) {
    viewer.setLabelProvider(new DecoratingPrologSearchLabelProvider(new PrologSearchLabelProvider()));
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);
    //      viewer.setLabelProvider(new DecoratingLabelProvider(new PrologSearchLabelProvider(), 
    //            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    fContentProvider = new PrologSearchTreeContentProvider(this);
    viewer.setContentProvider(fContentProvider);
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override/*from w  w  w .  j a va2  s.  c o  m*/
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof TreeSelection) {
                Object firstElement = ((TreeSelection) selection).getFirstElement();
                Match m = null;
                if (firstElement instanceof SearchModuleElement) {
                    m = ((SearchModuleElement) firstElement).getMatch();
                } else if (firstElement instanceof SearchPredicateElement) {
                    m = ((SearchPredicateElement) firstElement).getFirstOccurrence();
                } else if (firstElement instanceof SearchFileTreeElement) {
                    m = ((SearchFileTreeElement) firstElement).getFirstMatch();
                }
                if (m != null) {
                    final Match match = m;
                    UIJob job = new UIJob("Show Match") {
                        @Override
                        public IStatus runInUIThread(IProgressMonitor monitor) {
                            try {
                                showMatch(match, match.getOffset(), match.getLength(), true);
                            } catch (PartInitException e) {
                                Debug.report(e);
                            }
                            return Status.OK_STATUS;
                        }
                    };
                    job.schedule();
                }
            }
        }
    });
    viewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            final AbstractTreeViewer treeViewer = event.getTreeViewer();
            PrologSearchTreeContentProvider contentProvider = (PrologSearchTreeContentProvider) treeViewer
                    .getContentProvider();
            final Object element = event.getElement();
            int expandLevel = 1;
            Object[] children = contentProvider.getChildren(element);
            while (children.length == 1) {
                expandLevel++;
                children = contentProvider.getChildren(children[0]);
            }
            if (expandLevel > 1) {
                final int finalExpandLevel = expandLevel;
                treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        treeViewer.expandToLevel(element, finalExpandLevel);
                    }
                });
            }
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
        }
    });
}

From source file:org.csstudio.dal.ui.internal.connectionview.ConnectionStateView.java

License:Open Source License

/**
 * {@inheritDoc}// w  ww .  j av  a2 s  .co  m
 */
@Override
public void createPartControl(final Composite parent) {
    // layout
    parent.setLayout(new GridLayout());

    // create button panel
    final Composite buttons = new Composite(parent, SWT.NONE);
    buttons.setLayout(new FillLayout());
    buttons.setLayoutData(LayoutUtil.createGridDataForHorizontalFillingCell());

    final FilterButton buttonAll = new FilterButton(buttons, SWT.FLAT, "all", ConnectionState.values());
    final FilterButton buttonConnected = new FilterButton(buttons, SWT.FLAT, "connected",
            ConnectionState.CONNECTED);
    final FilterButton buttonNotConnected = new FilterButton(buttons, SWT.FLAT, "not connected",
            ConnectionState.CONNECTION_LOST, ConnectionState.INITIAL, ConnectionState.CONNECTION_FAILED,
            ConnectionState.DISCONNECTED, ConnectionState.UNKNOWN);

    // create the viewer and ...
    _viewer = createChannelTable(parent);

    // .. initialize layout
    _viewer.getControl().setLayoutData(LayoutUtil.createGridDataForFillingCell());

    // .. initialize content provider
    _viewer.setContentProvider(new IStructuredContentProvider() {
        /**
         * {@inheritDoc}
         */
        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {

        }

        /**
         * {@inheritDoc}
         */
        @Override
        public Object[] getElements(final Object parent) {
            final List<IConnector> statistics = ((IProcessVariableConnectionService) parent).getConnectors();

            // refresh the filter button states
            buttonAll.refreshLabel(statistics);
            buttonConnected.refreshLabel(statistics);
            buttonNotConnected.refreshLabel(statistics);

            return statistics.toArray();
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public void dispose() {

        }

    });

    // ... initialize label provider
    _viewer.setLabelProvider(new LabelProvider());
    _viewer.setInput(
            ProcessVariableConnectionServiceFactory.getDefault().getProcessVariableConnectionService());

    // ... initialize comparators (important for sorting)
    _viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            return _sortDirection.getComparator().compare((IConnector) e1, (IConnector) e2);
        }
    });

    // ... initialize tooltip support
    ColumnViewerToolTipSupport.enableFor(_viewer, ToolTip.NO_RECREATE);

    // ... initialize context menu
    final MenuManager menuManager = new MenuManager();
    // menuManager.addMenuListener(new IMenuListener() {
    //
    // public void menuAboutToShow(final IMenuManager manager) {
    // manager.add(new GroupMarker(
    // IWorkbenchActionConstants.MB_ADDITIONS));
    // }
    // });

    menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));

    _viewer.getControl().setMenu(menuManager.createContextMenu(_viewer.getControl()));

    getViewSite().registerContextMenu(menuManager, _viewer);
    getViewSite().setSelectionProvider(_viewer);

    // initialize the update job
    _updateJob = new UIJob("Update Connector State View") {
        @Override
        public IStatus runInUIThread(final IProgressMonitor monitor) {
            _viewer.refresh();
            if (!monitor.isCanceled()) {
                _updateJob.schedule(2000);
                return Status.OK_STATUS;
            } else {
                return Status.CANCEL_STATUS;
            }
        }
    };

    _updateJob.schedule(5000);

}

From source file:org.csstudio.debugging.jmsmonitor.GUI.java

License:Open Source License

/** Create the GUI elements
 *  @param parent Parent widget//from  www. j  a  va 2 s  . c  o  m
 */
private void createGUI(final Composite parent) {
    final GridLayout layout = new GridLayout();
    layout.numColumns = 3;
    parent.setLayout(layout);

    // URL:   ____url ____
    Label l = new Label(parent, 0);
    l.setText(Messages.URLLabel);
    l.setLayoutData(new GridData());

    l = new Label(parent, 0);
    l.setText(NLS.bind(Messages.URLLabelFmt, new Object[] { url, user, password }));
    l.setLayoutData(new GridData(SWT.LEFT, 0, true, false, 2, 1));

    // Topic: ____topic ____ [Clear]
    l = new Label(parent, 0);
    l.setText(Messages.TopicLabel);
    l.setLayoutData(new GridData());

    topic = new Text(parent, SWT.BORDER);
    topic.setToolTipText(Messages.Topic_TT);
    topic.setLayoutData(new GridData(SWT.FILL, 0, true, false));

    clear = new Button(parent, SWT.PUSH);
    clear.setText(Messages.Clear);
    clear.setToolTipText(Messages.ClearTT);
    clear.setLayoutData(new GridData());

    // Server: ____server_name____
    l = new Label(parent, 0);
    l.setText(Messages.Server);
    l.setLayoutData(new GridData());

    server_name = new Label(parent, 0);
    server_name.setText(Messages.Disconnected);
    server_name.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1));

    // Message table
    // TableColumnLayout requires table to be only child of its parent
    final Composite table_parent = new Composite(parent, 0);
    table_parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, layout.numColumns, 1));
    final TableColumnLayout table_layout = new MinSizeTableColumnLayout(10);
    table_parent.setLayout(table_layout);

    table_viewer = new TableViewer(table_parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    // Some tweaks to the underlying table widget
    final Table table = table_viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableViewerColumn view_col = new TableViewerColumn(table_viewer, 0);
    TableColumn col = view_col.getColumn();
    col.setText(Messages.DateColumn);
    col.setMoveable(true);
    table_layout.setColumnData(col, new ColumnWeightData(5, 200));
    view_col.setLabelProvider(new DateLabelProvider());

    view_col = new TableViewerColumn(table_viewer, 0);
    col = view_col.getColumn();
    col.setText(Messages.TypeColumn);
    col.setMoveable(true);
    table_layout.setColumnData(col, new ColumnWeightData(5, 50));
    view_col.setLabelProvider(new TypeLabelProvider());

    view_col = new TableViewerColumn(table_viewer, 0);
    col = view_col.getColumn();
    col.setText(Messages.ContentColumn);
    col.setMoveable(true);
    table_layout.setColumnData(col, new ColumnWeightData(100, 400));
    view_col.setLabelProvider(new ContentLabelProvider());

    table_viewer.setContentProvider(new ReceivedMessageProvider());

    ColumnViewerToolTipSupport.enableFor(table_viewer, ToolTip.NO_RECREATE);

    // Double-click on message opens detail
    table_viewer.getTable().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            new OpenViewAction(IPageLayout.ID_PROP_SHEET).run();
        }
    });

    // Context menu
    final MenuManager manager = new MenuManager();
    manager.add(new OpenViewAction(IPageLayout.ID_PROP_SHEET, Messages.ShowProperties));
    table.setMenu(manager.createContextMenu(table));

    clear();
}

From source file:org.csstudio.display.pace.gui.GUI.java

License:Open Source License

/** Create GUI elements
 *  @param parent Parent widget/*from w  ww.  j  a v a2s . c  o  m*/
 *  @param model Model to display
 */
private void createComponents(final Composite parent, final Model model) {
    // Note: TableColumnLayout requires the TableViewer to be in its
    // own Composite!
    final TableColumnLayout table_layout = new MinSizeTableColumnLayout(10);
    parent.setLayout(table_layout);

    // Create TableViewer that displays Model in Table
    table_viewer = new TableViewer(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.VIRTUAL | SWT.FULL_SELECTION);
    // Some tweaks to the underlying table widget
    final Table table = table_viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    createColumns(table_viewer, table_layout);

    ColumnViewerToolTipSupport.enableFor(table_viewer, ToolTip.NO_RECREATE);

    // Connect TableViewer to the Model: Provide content from model...
    table_viewer.setContentProvider(new ModelInstanceProvider());

    // table viewer is set up to handle data of type Model.
    // Connect to specific model
    table_viewer.setInput(model);
}

From source file:org.csstudio.display.rdbtable.ui.Editor.java

License:Open Source License

/** Create GUI elements (TableViewer hooked to model)
 *  @param parent Parent widget/*from  w  w  w .ja v a  2 s .  c o  m*/
 */
private void createGUI(final Composite parent) {
    // Note: TableColumnLayout requires table to be the only child widget
    final TableColumnLayout table_layout = new TableColumnLayout();
    parent.setLayout(table_layout);

    // Create TableViewer that displays Model in Table
    table_viewer = new TableViewer(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.VIRTUAL | SWT.FULL_SELECTION);

    // Some tweaks to the underlying table widget
    final Table table = table_viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    // Enable tool tips
    ColumnViewerToolTipSupport.enableFor(table_viewer, ToolTip.NO_RECREATE);

    // Connect TableViewer to the Model: Provide content from model...
    table_viewer.setContentProvider(new RDBTableModelContentProvider());

    // Create table columns
    for (int c = 0; c < model.getColumnCount(); ++c) {
        final TableViewerColumn view_col = new TableViewerColumn(table_viewer, 0);
        TableColumn col = view_col.getColumn();
        col.setText(model.getHeader(c));
        col.setMoveable(true);
        col.setResizable(true);
        table_layout.setColumnData(col, new ColumnWeightData(model.getWidth(c), MIN_SIZE));
        // Tell column how to display the model elements
        view_col.setLabelProvider(new RDBTableRowLabelProvider());
        view_col.setEditingSupport(new RDBTableCellEditor(table_viewer, c));
    }
    // table viewer is set up to handle data of Model.
    // Connect to specific model
    table_viewer.setInput(model);
}

From source file:org.csstudio.sds.ui.internal.dynamicswizard.SimpleChannelPage.java

License:Open Source License

/**
 * Creates a table viewer, which enables the user to enter typed input
 * channels./*from w  ww.  j  a va  2  s.  c o  m*/
 *
 * @param parent
 *            the parent composite
 *
 * @return the created viewer
 */
private TableViewer createInputChannelsTable(final Composite parent) {
    final Group group = new Group(parent, SWT.NONE);
    group.setLayout(LayoutUtil.createGridLayout(1, 0, 0, 0));
    group.setText("Input Channels");
    group.setLayoutData(LayoutUtil.createGridDataForHorizontalFillingCell(300));

    final TableViewer viewer = createChannelTable(group);

    // enable Tooltip support
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    // cell modifiers
    final ICellModifier cellModifier = new ChannelTableCellModifier() {
        @Override
        protected void setChannelHook(final ParameterDescriptor descriptor, final String channel) {
            if (_isLinkOutput) {
                if (_dynamicsDescriptor.getOutputChannel() != null
                        && _dynamicsDescriptor.getOutputChannel().equals(descriptor)) {
                    _dynamicsDescriptor.getOutputChannel().setChannel(channel);
                }
            }

            viewer.setSelection(null);
        }

    };

    viewer.setCellModifier(cellModifier);

    viewer.setContentProvider(new ChannelTableContentProvider());
    viewer.setLabelProvider(new ChannelTableLabelProvider());

    // Input aufbereiten
    _inputChannelTableModel = createChannelTableModel(_dynamicsDescriptor);
    viewer.setInput(_inputChannelTableModel);

    createPopupMenu(viewer.getControl());
    return viewer;
}

From source file:org.d3s.alricg.editor.common.widgets.DropTable.java

License:Open Source License

protected Table createTable(Composite parent) {
    // init Table
    tableViewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    tableViewer.getTable().setLinesVisible(false);
    tableViewer.getTable().setHeaderVisible(false);
    ColumnViewerToolTipSupport.enableFor(tableViewer, ToolTip.NO_RECREATE);

    // Drag and Drop
    tableViewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE,
            new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new CharElementDragSourceListener(tableViewer));

    TableViewerColumn tc;/*w  w  w  . j a va  2 s.c  o  m*/
    int colIdx = 0;

    // Columns setzen
    if (regulator.getImageProviderRegulator() != null) {
        tc = new TableViewerColumn(tableViewer, SWT.LEFT, colIdx++);
        tc.getColumn().setToolTipText("Symbol");
        tc.setLabelProvider(new ImageProvider(0, regulator.getImageProviderRegulator()));
        tc.getColumn().setWidth(24);
        tc.getColumn().setMoveable(true);
    }

    tc = new TableViewerColumn(tableViewer, SWT.LEFT, colIdx);
    tc.setLabelProvider(new CustomColumnLabelProvider.NameLabelProvider());
    tc.getColumn().setWidth(150);
    tc.getColumn().setMoveable(true);

    // Inhalt setzen
    tableViewer.setContentProvider(new TableViewContentProvider());
    tableViewer.setInput(new ArrayList());

    // Drop untersttzung
    ViewerDropAdapter viewerDrop = new ViewerDropAdapter(tableViewer) {
        @Override
        public void drop(DropTargetEvent event) {

            if (!performDrop(event.data)) {
                event.feedback = DND.ERROR_INVALID_DATA;
                event.detail = DND.DROP_NONE;
                return;
            }
            final TreeOrTableObject source = (TreeOrTableObject) ((StructuredSelection) event.data)
                    .getFirstElement();

            // Prfen ob doppelt
            for (int i = 0; i < tableViewer.getTable().getItemCount(); i++) {
                if (((TableObject) tableViewer.getElementAt(i)).getValue().equals(source.getValue())) {
                    return; // schon vorhanden!
                }
            }

            final TableObject tablObj = new TableObject(source.getValue());
            tableViewer.add(tablObj);
        }

        @Override
        public boolean performDrop(Object data) {
            return regulator
                    .canDrop(((TreeOrTableObject) ((StructuredSelection) data).getFirstElement()).getValue());
        }

        @Override
        public boolean validateDrop(Object target, int operation, TransferData transferType) {
            return true;
        }
    };

    // Untersttzung fr DROP
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
    tableViewer.addDropSupport(ops, transfers, viewerDrop);

    return tableViewer.getTable();
}

From source file:org.d3s.alricg.editor.editors.composits.AbstractAuswahlPart.java

License:Open Source License

/**
 * Erstellt die TreeTable//from  w w  w . j av a  2s  .  com
 * @param top Parent Composite
 * @param partSite 
 */
public AbstractAuswahlPart(Composite top, IWorkbenchPartSite partSite) {
    parentComp = top;

    treeViewer = new TreeViewer(parentComp, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    treeViewer.getTree().setLinesVisible(true);
    treeViewer.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(treeViewer, ToolTip.NO_RECREATE);

    TreeViewerColumn tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 0);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Name);
    treeViewer.getTree().setSortColumn(tc.getColumn());
    tc.setLabelProvider(new CustomColumnLabelProvider.OptionNameProvider());
    tc.getColumn().setWidth(250);
    tc.getColumn().addSelectionListener(
            new ViewerSelectionListener(new CustomColumnViewerSorter.OptionNameSorter(), treeViewer));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 1);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Klasse);
    tc.getColumn().setWidth(100);
    tc.setLabelProvider(new CustomColumnLabelProvider.CharElementKlassenProvider());
    tc.getColumn().addSelectionListener(
            new ViewerSelectionListener(new CustomColumnViewerSorter.CharElementKlasseSorter(), treeViewer));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 2);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Stufe);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkWertProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    tc.setEditingSupport(new LinkWertEditingSupport(treeViewer, treeViewer.getTree(), -10, 20, true) {

        @Override
        protected boolean canEdit(Object element) {
            if (!super.canEdit(element))
                return false;

            // Nur die Modi "Anzahl" und "Voraussetzung" bentigen Stufe fr Links
            final Option tmpOpt = (Option) ((TreeObject) element).getParent().getValue();
            if (tmpOpt instanceof OptionListe || tmpOpt instanceof OptionVerteilung) {
                return false;
            }
            return true;
        }
    });

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 3);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Text);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkTextProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    tc.setEditingSupport(new LinkTextEditingSupport(treeViewer, treeViewer.getTree()));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 4);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_ZweitZiel);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkZweitZielProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    auswahlDrop = new AuswahlDrop(treeViewer, tc.getColumn(), this.getOptionClass());
    treeViewer.getTree().addMouseMoveListener(auswahlDrop); // wichtig fr Drag & Drop

    // Sortierung setzen
    treeViewer.setSorter(new CustomColumnViewerSorter.NameSorter());

    // Actions erstellen
    makeActions();
    hookContextMenu(partSite);

    // Untersttzung fr DRAG
    treeViewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new AuswahlDrag(treeViewer));

    // Untersttzung fr DROP
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
    treeViewer.addDropSupport(ops, transfers, auswahlDrop);
    // Funzt nur zusammen mit "auswahlDrop" als MouseMoveLister auf dem treeViewer
}

From source file:org.d3s.alricg.editor.editors.composits.IdLinkArrayPart.java

License:Open Source License

public IdLinkArrayPart(Composite top, IWorkbenchPartSite partSite, HerkunftIdLinkRegulator regulator) {
    parentComp = top;/*from  w  w  w  .j ava  2  s .  com*/
    this.regulator = regulator;

    treeViewer = new TreeViewer(parentComp, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    treeViewer.getTree().setLinesVisible(true);
    treeViewer.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(treeViewer, ToolTip.NO_RECREATE);

    TreeViewerColumn tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 0);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Name);
    treeViewer.getTree().setSortColumn(tc.getColumn());
    tc.setLabelProvider(new CustomColumnLabelProvider.OptionNameProvider());
    tc.getColumn().setWidth(250);
    tc.getColumn().addSelectionListener(
            new ViewerSelectionListener(new CustomColumnViewerSorter.OptionNameSorter(), treeViewer));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 1);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Klasse);
    tc.getColumn().setWidth(100);
    tc.setLabelProvider(new CustomColumnLabelProvider.CharElementKlassenProvider());
    tc.getColumn().addSelectionListener(
            new ViewerSelectionListener(new CustomColumnViewerSorter.CharElementKlasseSorter(), treeViewer));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 2);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Stufe);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkWertProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    tc.setEditingSupport(new LinkWertEditingSupport(treeViewer, treeViewer.getTree(), -10, 20, true) {

        @Override
        protected boolean canEdit(Object element) {
            if (!super.canEdit(element))
                return false;

            // Nur die Modi "Anzahl" und "Voraussetzung" bentigen Stufe fr Links
            final Option tmpOpt = (Option) ((TreeObject) element).getParent().getValue();
            if (tmpOpt instanceof OptionListe || tmpOpt instanceof OptionVerteilung) {
                return false;
            }
            return true;
        }
    });

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 3);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_Text);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkTextProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    tc.setEditingSupport(new LinkTextEditingSupport(treeViewer, treeViewer.getTree()));

    tc = new TreeViewerColumn(treeViewer, SWT.LEFT, 4);
    tc.getColumn().setText(EditorMessages.AbstractAuswahlPart_ZweitZiel);
    tc.setLabelProvider(new CustomColumnLabelProvider.LinkZweitZielProvider());
    tc.getColumn().setWidth(100);
    tc.getColumn().setMoveable(true);
    auswahlDrop = new AuswahlDrop(treeViewer, tc.getColumn(), null);
    treeViewer.getTree().addMouseMoveListener(auswahlDrop); // wichtig fr Drag & Drop

    // Sortierung setzen
    treeViewer.setSorter(new CustomColumnViewerSorter.NameSorter());

    // Actions erstellen
    //makeActions();
    //hookContextMenu(partSite);

    // Untersttzung fr DRAG
    treeViewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new AuswahlDrag(treeViewer));

    // Untersttzung fr DROP
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
    treeViewer.addDropSupport(ops, transfers, auswahlDrop);
    // Funzt nur zusammen mit "auswahlDrop" als MouseMoveLister auf dem treeViewer
}