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.jkiss.dbeaver.ui.ViewerColumnController.java

License:Open Source License

private void createVisibleColumns() {
    boolean hasLazyColumns = false;
    for (final ColumnInfo columnInfo : getVisibleColumns()) {
        final Item colItem;
        if (viewer instanceof TreeViewer) {
            final TreeViewerColumn item = new TreeViewerColumn((TreeViewer) viewer, columnInfo.style);
            final TreeColumn column = item.getColumn();
            colItem = column;/*from   w  ww.j av  a 2s .c  om*/
            column.setText(columnInfo.name);
            column.setMoveable(true);
            column.setWidth(columnInfo.width);
            if (!CommonUtils.isEmpty(columnInfo.description)) {
                column.setToolTipText(columnInfo.description);
            }
            item.setLabelProvider(columnInfo.labelProvider);
            column.addControlListener(new ControlAdapter() {
                @Override
                public void controlResized(ControlEvent e) {
                    columnInfo.width = column.getWidth();
                    saveColumnConfig();
                }
            });
            columnInfo.column = column;
        } else if (viewer instanceof TableViewer) {
            final TableViewerColumn item = new TableViewerColumn((TableViewer) viewer, columnInfo.style);
            final TableColumn column = item.getColumn();
            colItem = column;
            column.setText(columnInfo.name);
            column.setMoveable(true);
            column.setWidth(columnInfo.width);
            if (!CommonUtils.isEmpty(columnInfo.description)) {
                column.setToolTipText(columnInfo.description);
            }
            item.setLabelProvider(columnInfo.labelProvider);
            column.addControlListener(new ControlAdapter() {
                @Override
                public void controlResized(ControlEvent e) {
                    columnInfo.width = column.getWidth();
                    saveColumnConfig();
                }
            });
            columnInfo.column = column;
        } else {
            continue;
        }
        colItem.setData(columnInfo);
        if (columnInfo.labelProvider instanceof ILazyLabelProvider) {
            hasLazyColumns = true;
        } else if (columnInfo.labelProvider instanceof ILabelProvider) {
            columnInfo.sortListener = new SortListener(columnInfo);
            columnInfo.column.addListener(SWT.Selection, columnInfo.sortListener);
        }
    }
    if (hasLazyColumns) {
        viewer.getControl().addListener(SWT.PaintItem, new Listener() {
            public void handleEvent(Event event) {
                if (viewer instanceof TreeViewer) {
                    TreeColumn column = ((TreeViewer) viewer).getTree().getColumn(event.index);
                    if (((ColumnInfo) column.getData()).labelProvider instanceof ILazyLabelProvider
                            && CommonUtils.isEmpty(((TreeItem) event.item).getText(event.index))) {
                        final String lazyText = ((ILazyLabelProvider) ((ColumnInfo) column
                                .getData()).labelProvider).getLazyText(event.item.getData());
                        if (!CommonUtils.isEmpty(lazyText)) {
                            ((TreeItem) event.item).setText(event.index, lazyText);
                        }
                    }
                } else {
                    TableColumn column = ((TableViewer) viewer).getTable().getColumn(event.index);
                    if (((ColumnInfo) column.getData()).labelProvider instanceof ILazyLabelProvider
                            && CommonUtils.isEmpty(((TableItem) event.item).getText(event.index))) {
                        final String lazyText = ((ILazyLabelProvider) ((ColumnInfo) column
                                .getData()).labelProvider).getLazyText(event.item.getData());
                        if (!CommonUtils.isEmpty(lazyText)) {
                            ((TableItem) event.item).setText(event.index, lazyText);
                        }
                    }
                }
            }
        });
    }

}

From source file:org.kalypso.contribs.eclipse.jface.viewers.ColumnViewerUtil.java

License:Open Source License

public static ViewerColumn createViewerColumn(final ColumnViewer viewer, final int style) {
    if (viewer instanceof TreeViewer)
        return new TreeViewerColumn((TreeViewer) viewer, style);
    if (viewer instanceof TableViewer)
        return new TableViewerColumn((TableViewer) viewer, style);

    throw new IllegalArgumentException();
}

From source file:org.kalypso.simulation.ui.calccase.jface.CalcCaseTableTreeViewer.java

License:Open Source License

public static void configureTreeViewer(final TreeViewer viewer, final IFolder markedCalcCase) {
    final Tree tree = viewer.getTree();
    tree.setHeaderVisible(true);//from   w  w  w. j  av  a  2s.c  om

    final Color markedColor = tree.getDisplay().getSystemColor(SWT.COLOR_YELLOW);
    viewer.setContentProvider(new CalcCaseTreeContentProvider());

    final TreeViewerColumn forecastColumn = new TreeViewerColumn(viewer, SWT.NONE);
    final String forecastLabel = Messages
            .getString("org.kalypso.simulation.ui.calccase.jface.CalcCaseTableTreeViewer.1"); //$NON-NLS-1$
    forecastColumn.getColumn().setText(forecastLabel);

    ColumnViewerSorter.registerSorter(forecastColumn, new FolderNameSorter());

    final TreeViewerColumn timeColumn = new TreeViewerColumn(viewer, SWT.NONE);
    final String timeLabel = Messages
            .getString("org.kalypso.simulation.ui.calccase.jface.CalcCaseTableTreeViewer.2"); //$NON-NLS-1$
    timeColumn.getColumn().setText(timeLabel);
    ColumnViewerSorter.registerSorter(timeColumn, new FolderModifiedSorter());

    // Always sort by time initially
    ColumnViewerSorter.setSortState(timeColumn, Boolean.TRUE);

    viewer.setLabelProvider(new CalcCaseTableLabelProvider(markedCalcCase, markedColor));
}

From source file:org.kalypso.ui.rrm.internal.scenarios.MergeScenariosWizardPage.java

License:Open Source License

/**
 * This function creates the columns in the tree viewer.
 * /*ww  w. j a  v a2s .  c  o m*/
 * @param treeViewer
 *          The tree viewer.
 */
private void configureTreeViewer(final TreeViewer treeViewer) {
    /* Configure the tree. */
    final Tree tree = treeViewer.getTree();
    tree.setLayout(new TableLayout());
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);

    /* Create the scenarios column. */
    final TreeViewerColumn scenariosViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    scenariosViewerColumn
            .setLabelProvider(new ScenariosColumnLabelProvider(m_scenariosData.getTargetScenario()));
    final TreeColumn scenariosColumn = scenariosViewerColumn.getColumn();
    scenariosColumn.setText(Messages.getString("MergeScenariosWizardPage_4")); //$NON-NLS-1$
    scenariosColumn.setWidth(200);
    scenariosColumn.setAlignment(SWT.LEAD);

    /* Create the model column. */
    final TreeViewerColumn modelViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    modelViewerColumn.setLabelProvider(new ScenarioCompareStatusLabelProvider(m_compareStatus,
            ScenarioCompareStatus.KEY_MODEL, m_scenariosData.getTargetScenario()));
    final TreeColumn modelColumn = modelViewerColumn.getColumn();
    modelColumn.setText(Messages.getString("MergeScenariosWizardPage_5")); //$NON-NLS-1$
    modelColumn.setWidth(125);
    modelColumn.setAlignment(SWT.LEAD);

    /* Create the parameter column. */
    final TreeViewerColumn parameterViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    parameterViewerColumn.setLabelProvider(new ScenarioCompareStatusLabelProvider(m_compareStatus,
            ScenarioCompareStatus.KEY_PARAMETER, m_scenariosData.getTargetScenario()));
    final TreeColumn parameterColumn = parameterViewerColumn.getColumn();
    parameterColumn.setText(Messages.getString("MergeScenariosWizardPage_6")); //$NON-NLS-1$
    parameterColumn.setWidth(125);
    parameterColumn.setAlignment(SWT.LEAD);

    /* Create the hydrotopes column. */
    final TreeViewerColumn hydrotopesViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    hydrotopesViewerColumn.setLabelProvider(new ScenarioCompareStatusLabelProvider(m_compareStatus,
            ScenarioCompareStatus.KEY_HYDROTOPES, m_scenariosData.getTargetScenario()));
    final TreeColumn hydrotopesColumn = hydrotopesViewerColumn.getColumn();
    hydrotopesColumn.setText(Messages.getString("MergeScenariosWizardPage_7")); //$NON-NLS-1$
    hydrotopesColumn.setWidth(125);
    hydrotopesColumn.setAlignment(SWT.LEAD);
}

From source file:org.kalypso.util.themes.legend.controls.LegendComposite.java

License:Open Source License

/**
 * This function creates the legend group.
 * //from  w ww. ja v a  2  s  .  c o m
 * @param parent
 *          The parent composite.
 * @return The legend group.
 */
private Group createLegendGroup(final Composite parent) {
    /* Create a group. */
    final Group legendGroup = new Group(parent, SWT.NONE);
    legendGroup.setLayout(new GridLayout(3, false));
    legendGroup.setText(Messages.getString("LegendComposite_0")); //$NON-NLS-1$

    /* Create a label. */
    final Label backgroundColorLabel = new Label(legendGroup, SWT.NONE);
    backgroundColorLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    backgroundColorLabel.setText(Messages.getString("LegendComposite_1")); //$NON-NLS-1$
    backgroundColorLabel.setAlignment(SWT.LEFT);

    /* Create a label. */
    final Label backgroundLabel = new Label(legendGroup, SWT.BORDER);
    backgroundLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    backgroundLabel.setText(Messages.getString("LegendComposite_2")); //$NON-NLS-1$
    backgroundLabel.setBackground(new Color(parent.getDisplay(), m_backgroundColor));

    backgroundColorLabel.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(final DisposeEvent e) {
            backgroundLabel.getBackground().dispose();
        }
    });

    /* Create a button. */
    final Button backgroundColorButton = new Button(legendGroup, SWT.PUSH);
    backgroundColorButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    backgroundColorButton.setText("..."); //$NON-NLS-1$
    backgroundColorButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Shell shell = LegendComposite.this.getShell();

            final ColorDialog dialog = new ColorDialog(shell);
            dialog.setRGB(m_backgroundColor);
            final RGB rgb = dialog.open();
            if (rgb == null)
                return;

            m_backgroundColor = rgb;

            backgroundLabel.getBackground().dispose();
            backgroundLabel.setBackground(new Color(parent.getDisplay(), m_backgroundColor));

            fireLegendPropertyChanged(getProperties(), m_horizontal, m_vertical, m_backgroundColor, m_insets,
                    m_themeIds.toArray(new String[] {}), m_fontSize);
        }
    });

    /* Create a label. */
    final Label fontSizeLabel = new Label(legendGroup, SWT.NONE);
    fontSizeLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    fontSizeLabel.setText(Messages.getString("LegendComposite_4")); //$NON-NLS-1$
    fontSizeLabel.setAlignment(SWT.LEFT);

    /* Create a spinner. */
    final Spinner fontSizeSpinner = new Spinner(legendGroup, SWT.BORDER);
    fontSizeSpinner.setValues(m_fontSize, 1, 25, 0, 1, 5);
    fontSizeSpinner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    fontSizeSpinner.addSelectionListener(new SelectionAdapter() {
        /**
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            m_fontSize = fontSizeSpinner.getSelection();
            fireLegendPropertyChanged(getProperties(), m_horizontal, m_vertical, m_backgroundColor, m_insets,
                    m_themeIds.toArray(new String[] {}), m_fontSize);
        }
    });

    /* Create a label. */
    final Label insetsLabel = new Label(legendGroup, SWT.NONE);
    insetsLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    insetsLabel.setText(Messages.getString("LegendComposite_5")); //$NON-NLS-1$
    insetsLabel.setAlignment(SWT.LEFT);

    /* Create a spinner. */
    final Spinner insetsSpinner = new Spinner(legendGroup, SWT.BORDER);
    insetsSpinner.setValues(m_insets, 1, 25, 0, 1, 5);
    insetsSpinner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    insetsSpinner.addSelectionListener(new SelectionAdapter() {
        /**
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            m_insets = insetsSpinner.getSelection();
            fireLegendPropertyChanged(getProperties(), m_horizontal, m_vertical, m_backgroundColor, m_insets,
                    m_themeIds.toArray(new String[] {}), m_fontSize);
        }
    });

    /* Create a label. */
    final Label availableThemesLabel = new Label(legendGroup, SWT.NONE);
    availableThemesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
    availableThemesLabel.setText(Messages.getString("LegendComposite_6")); //$NON-NLS-1$
    availableThemesLabel.setAlignment(SWT.LEFT);

    /* Create a table viewer. */
    final CheckboxTreeViewer availableThemesViewer = new CheckboxTreeViewer(legendGroup,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL);
    final GridData availableThemeData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
    availableThemeData.heightHint = 250;
    availableThemesViewer.getTree().setLayoutData(availableThemeData);
    availableThemesViewer.getTree().setLayout(new TableLayout());
    availableThemesViewer.getTree().setLinesVisible(true);
    availableThemesViewer.getTree().setHeaderVisible(true);

    /* Create a column. */
    final TreeViewerColumn nameColumn = new TreeViewerColumn(availableThemesViewer, SWT.LEFT);
    nameColumn.setLabelProvider(new ThemeNameLabelProvider());
    nameColumn.getColumn().setText(Messages.getString("LegendComposite_7")); //$NON-NLS-1$
    nameColumn.getColumn().setWidth(250);

    /* Create a column. */
    final TreeViewerColumn typeColumn = new TreeViewerColumn(availableThemesViewer, SWT.LEFT);
    typeColumn.setLabelProvider(new ThemeTypeLabelProvider());
    typeColumn.getColumn().setText(Messages.getString("LegendComposite_8")); //$NON-NLS-1$
    typeColumn.getColumn().setWidth(200);

    /* Set a content provider. */
    availableThemesViewer.setContentProvider(new ThemeTableContentProvider());

    /* Set the check state provider. */
    availableThemesViewer.setCheckStateProvider(new ThemeCheckStateProvider(m_themeIds));

    /* Set the input. */
    availableThemesViewer.setInput(m_mapModel);

    /* Add a listener. */
    availableThemesViewer.addCheckStateListener(new ICheckStateListener() {
        /**
         * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final IKalypsoTheme element = (IKalypsoTheme) event.getElement();

            final String id = element.getId();
            if (event.getChecked() && !m_themeIds.contains(id))
                m_themeIds.add(id);
            else
                m_themeIds.remove(id);

            fireLegendPropertyChanged(getProperties(), m_horizontal, m_vertical, m_backgroundColor, m_insets,
                    m_themeIds.toArray(new String[] {}), m_fontSize);
        }
    });

    return legendGroup;
}

From source file:org.modelio.mda.infra.catalog.ModuleCatalogPanel.java

License:Open Source License

@objid("e53a50b6-ab02-4300-b9f6-0b2e2a199ad6")
@Override//  ww  w  . j  a va2s  .  c o m
public Object createPanel(Composite parent) {
    // top level container
    this.top = new Composite(parent, SWT.BORDER);
    this.top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    this.top.setLayout(new FormLayout());

    this.loading = new Label(this.top, SWT.CENTER);
    this.loading.setImage(MdaInfra.getImageDescriptor("icons/hourglass.png").createImage());

    // List of modules from catalog
    this.treeViewer = new TreeViewer(this.top,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    Tree tree = this.treeViewer.getTree();
    tree.setHeaderVisible(true);
    this.treeViewer.getTree().setLinesVisible(true);

    // The first column displays the module name and version (or the
    // category)
    TreeViewerColumn col1 = new TreeViewerColumn(this.treeViewer, SWT.NONE);

    col1.getColumn().setWidth(200);
    col1.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.Module.label"));
    col1.getColumn().setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.Module.tooltip"));
    col1.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof IModuleHandle) {
                // display a module
                IModuleHandle mh = (IModuleHandle) element;
                return mh.getName() + " " + mh.getVersion().toString("V.R.C");
            } else {
                // display a category
                CatalogModulesProvider cp = (CatalogModulesProvider) ModuleCatalogPanel.this.treeViewer
                        .getContentProvider();
                int totalNb = cp.getAllVersionsOfModule((String) element).size();
                return element.toString() + " [" + totalNb + "]";
            }

        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof IModuleHandle) {
                return MdaInfra.getImageDescriptor("icons/module.png").createImage();
            } else {
                return MdaInfra.getImageDescriptor("icons/modulelist.png").createImage();
            }
        }
    });

    // The second column display the minimal version of Modelio that is
    // required to run the module
    TreeViewerColumn col2 = new TreeViewerColumn(this.treeViewer, SWT.CENTER);
    col2.getColumn().setWidth(200);
    col2.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ModelioRequiredVersion.label"));
    col2.getColumn()
            .setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.ModelioRequiredVersion.tooltip"));
    col2.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof IModuleHandle) {
                IModuleHandle mh = (IModuleHandle) element;
                return mh.getBinaryVersion().toString("V.R.C");
            }
            return "";
        }
    });

    // The third column displays the predictable compatibility of the module
    // with the current Modelio version
    TreeViewerColumn col3 = new TreeViewerColumn(this.treeViewer, SWT.NONE);
    col3.getColumn().setWidth(200);
    col3.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.Compatibility.label"));
    col3.getColumn().setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.Compatibility.tooltip"));
    col3.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof IModuleHandle) {
                IModuleHandle mh = (IModuleHandle) element;
                switch (CompatibilityHelper.getCompatibilityLevel(ModuleCatalogPanel.this.modelioEnv, mh)) {
                case COMPATIBLE:
                    return MdaInfra.I18N.getString("ModuleCatalogPanel.message.Compatible");
                case FULLYCOMPATIBLE:
                    return MdaInfra.I18N.getString("ModuleCatalogPanel.message.FullyCompatible");
                case MODELIO_TOO_OLD:
                    return MdaInfra.I18N.getString("ModuleCatalogPanel.message.ModelioTooOld");
                case MODULE_TOO_OLD:
                    return MdaInfra.I18N.getString("ModuleCatalogPanel.message.ModuleTooOld");
                default:
                    break;
                }
            }
            return "";
        }

        @Override
        public Color getForeground(Object element) {
            if (element instanceof IModuleHandle) {
                IModuleHandle mh = (IModuleHandle) element;
                switch (CompatibilityHelper.getCompatibilityLevel(ModuleCatalogPanel.this.modelioEnv, mh)) {
                case COMPATIBLE:
                    return Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
                case FULLYCOMPATIBLE:
                    return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN);
                case MODELIO_TOO_OLD:
                case MODULE_TOO_OLD:
                    return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
                default:
                    break;
                }
            }
            return super.getForeground(element);
        }
    });

    // Activate the tooltip support for the viewer
    // ColumnViewerToolTipSupport.enableFor(treeViewer,
    // org.eclipse.jface.window.ToolTip.NO_RECREATE);

    // Option 'show only latest version'
    final Button latestOnly = new Button(this.top, SWT.CHECK);
    latestOnly.setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ShowLatestVersions"));
    latestOnly.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ModuleCatalogPanel.this.controller.onShowLatestOnly(latestOnly.getSelection());
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            //
        }
    });

    // Option 'show only compatible versions'
    final Button compatibleOnly = new Button(this.top, SWT.CHECK);
    compatibleOnly.setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ShowCompatibleVersions"));
    compatibleOnly.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ModuleCatalogPanel.this.controller.onShowCompatibleOnly(compatibleOnly.getSelection());
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            //
        }
    });

    // Carry out attachments (as the different widgets are attached
    // together, can only set their attachements here, when they all have
    // been created)
    FormData fd = new FormData();
    fd.left = new FormAttachment(0, 0);
    fd.right = new FormAttachment(100, 0);
    fd.bottom = new FormAttachment(100, 0);
    compatibleOnly.setLayoutData(fd);

    fd = new FormData();
    fd.left = new FormAttachment(0, 0);
    fd.bottom = new FormAttachment(compatibleOnly, 0, SWT.TOP);
    fd.right = new FormAttachment(100, 0);
    latestOnly.setLayoutData(fd);

    fd = new FormData();
    fd.top = new FormAttachment(0, 0);
    fd.left = new FormAttachment(0, 0);
    fd.bottom = new FormAttachment(latestOnly, -4);
    fd.right = new FormAttachment(100, 0);
    tree.setLayoutData(fd);
    this.loading.setLayoutData(fd); // FIXME

    // GUI is available, init the contents
    this.controller = new ModuleCatalogPanelController(this, this.modelioEnv);
    this.controller.init();

    // Init checkbox states
    latestOnly.setSelection(this.controller.isShowLatestOnly());
    compatibleOnly.setSelection(this.controller.isShowCompatibleOnly());

    this.treeViewer.getTree().setVisible(false);
    return this;
}

From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java

License:MIT License

/**
 * Creates the tab item of Components.//from   w ww . j a v  a2s. co m
 */
private void createComponentsTabItem() {

    tbtmComponents = new TabItem(tabFolder, SWT.NONE);
    tbtmComponents.setText("Components");

    compositeComponent = new Composite(tabFolder, SWT.NONE);
    tbtmComponents.setControl(compositeComponent);
    compositeComponent.setLayout(new BorderLayout(0, 0));
    {
        compositeStackComponent = new Composite(compositeComponent, SWT.NONE);
        compositeStackComponent.setLayoutData(BorderLayout.CENTER);
        compositeStackComponent.setLayout(new StackLayout());

        inputPanelMasterComponent = new MasterComponentInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelSlaveComponent = new SlaveComponentInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelComponentSet = new ComponentSetInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelCache = new CacheInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelAccessTypeSet = new AccessTypeSetInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelAccessType = new AccessTypeInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelClockFrequency = new ClockFrequencyInputPanel(compositeStackComponent, SWT.NONE);

        inputPanelCommonInstructionSet = new CommonInstructionSetInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelInstruction = new InstructionInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelPerformance_2 = new PerformanceInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelLatency_2 = new LatencyInputPanel(compositeStackComponent, SWT.NONE);
        inputPanelPitch_2 = new PitchInputPanel(compositeStackComponent, SWT.NONE);
    }
    composite_2 = new Composite(compositeComponent, SWT.NONE);
    composite_2.setLayoutData(BorderLayout.WEST);
    composite_2.setLayout(new BorderLayout(0, 0));

    shimComponentTreeViewer = new ShimComponentTreeViewer(composite_2);
    shimComponentTreeViewer.setExpandPreCheckFilters(true);
    shimComponentTreeViewer.setAutoExpandLevel(4);
    Tree treeComponentSet = shimComponentTreeViewer.getTree();
    treeComponentSet.setLinesVisible(true);
    treeComponentSet.setHeaderVisible(true);
    treeComponentSet.setLayoutData(BorderLayout.CENTER);
    {
        TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimComponentTreeViewer, SWT.NONE);
        TreeColumn treeColumn = treeViewerColumn.getColumn();
        treeColumn.setWidth(300);
        treeColumn.setText("ComponentSetTree");
    }
    {
        composite = new Composite(composite_2, SWT.NONE);
        composite.setLayoutData(BorderLayout.SOUTH);
        composite.setLayout(new GridLayout(1, false));
        {
            btnRenumber = new Button(composite, SWT.NONE);
            btnRenumber.addSelectionListener(this);
            btnRenumber.setText("Re-number nodes");
        }
    }
    shimComponentTreeViewer.setLabelProvider(new ComponentTreeLabelProvider());
    shimComponentTreeViewer.setContentProvider(new ComponentTreeItemProvider());

    TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeComponentSet, new int[] { 300 });

    SelectionListener selectionListener = new SelectionListener() {

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            // NOOP
        }

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent event) {
            TreeItem item = (TreeItem) event.item;
            componentSelectedItem = item;

            log.finest("TreeViewer:Components " + item.getText() + " selected");

            InputPanelBase inputPanel = null;
            Object selectedObject = item.getData();
            if (selectedObject instanceof MasterComponent) {
                inputPanel = inputPanelMasterComponent;
            } else if (selectedObject instanceof SlaveComponent) {
                inputPanel = inputPanelSlaveComponent;
            } else if (selectedObject instanceof ComponentSet) {
                inputPanel = inputPanelComponentSet;
            } else if (selectedObject instanceof Cache) {
                inputPanel = inputPanelCache;
            } else if (selectedObject instanceof AccessTypeSet) {
                inputPanel = inputPanelAccessTypeSet;
            } else if (selectedObject instanceof AccessType) {
                inputPanel = inputPanelAccessType;
            } else if (selectedObject instanceof CommonInstructionSet) {
                inputPanel = inputPanelCommonInstructionSet;
            } else if (selectedObject instanceof Instruction) {
                inputPanel = inputPanelInstruction;
            } else if (selectedObject instanceof Performance) {
                inputPanel = inputPanelPerformance_2;
            } else if (selectedObject instanceof Latency) {
                inputPanel = inputPanelLatency_2;
            } else if (selectedObject instanceof Pitch) {
                inputPanel = inputPanelPitch_2;
            } else if (selectedObject instanceof ClockFrequency) {
                inputPanel = inputPanelClockFrequency;
            }
            currentComponentsPanel = inputPanel;

            changeInputPanel(item, inputPanel, compositeStackComponent, shimComponentTreeViewer);
        }
    };
    treeComponentSet.addSelectionListener(selectionListener);

    // If notifies the selection event in tabFolder, refreshes all
    // tree viewers.
    tabFolder.addSelectionListener(new SelectionListener() {

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            // NOOP
        }

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent event) {
            refresh();
        }
    });

    // creates an empty input
    ObjectFactory of = ShimModelManager.getObjectFactory();

    ComponentSet croot = of.createComponentSet();

    croot.setName("rootCompo");
    ComponentSet cs1 = of.createComponentSet();
    cs1.setName("cs1");

    MasterComponent cpu1 = of.createMasterComponent();
    cpu1.setName("cpu1");
    SlaveComponent mem1 = of.createSlaveComponent();
    mem1.setName("mem1");
    ComponentSet cs11 = of.createComponentSet();
    cs11.setName("cs11");

    croot.getComponentSet().add(cs1);

    cs1.getComponentSet().add(cs11);

    cs1.getMasterComponent().add(cpu1);
    cs1.getSlaveComponent().add(mem1);

    MasterComponent cpu11 = of.createMasterComponent();
    cpu11.setName("cpu11");
    MasterComponent cpu12 = of.createMasterComponent();
    cpu12.setName("cpu12");

    cs11.getMasterComponent().add(cpu11);
    cs11.getMasterComponent().add(cpu12);

    shimComponentTreeViewer.setInput(croot.getComponentSet().toArray());
}

From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java

License:MIT License

/**
 * Creates the tab item of AddressSpace.
 *//*from w w  w .  j  a  va2s . c o  m*/
private void createAddressSpaceTabItem() {
    TabItem tbtmAddressSpace = new TabItem(tabFolder, SWT.NONE);
    tbtmAddressSpace.setText("AddressSpace");

    Composite compositeAddressSpaces = new Composite(tabFolder, SWT.NONE);
    tbtmAddressSpace.setControl(compositeAddressSpaces);
    compositeAddressSpaces.setLayout(new BorderLayout(0, 0));
    {
        shimAddressSpaceTreeViewer = new ShimAddressSpaceTreeViewer(compositeAddressSpaces);
        shimAddressSpaceTreeViewer.setAutoExpandLevel(3);
        shimAddressSpaceTreeViewer.setExpandPreCheckFilters(true);
        treeAddressSpaceSet = shimAddressSpaceTreeViewer.getTree();
        treeAddressSpaceSet.setHeaderVisible(true);
        treeAddressSpaceSet.setLinesVisible(true);
        treeAddressSpaceSet.setLayoutData(BorderLayout.WEST);
        {
            TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimAddressSpaceTreeViewer, SWT.NONE);
            TreeColumn trclmnAddressSpaceName = treeViewerColumn.getColumn();
            trclmnAddressSpaceName.setWidth(295);
            trclmnAddressSpaceName.setText("AddressSpaceName");
        }
        shimAddressSpaceTreeViewer.setLabelProvider(new AddressSpaceTreeLabelProvider());
        shimAddressSpaceTreeViewer.setContentProvider(new AddressSpaceTreeItemProvider());

        TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeAddressSpaceSet,
                new int[] { 295 });

    }
    compositeStackAddressSpace = new Composite(compositeAddressSpaces, SWT.NONE);
    compositeStackAddressSpace.setLayoutData(BorderLayout.CENTER);
    compositeStackAddressSpace.setLayout(new StackLayout());
    {
        inputPanelAddressSpaceSet = new AddressSpaceSetInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelAddressSpace = new AddressSpaceInputPanel(compositeStackAddressSpace, SWT.NONE, false);
        inputPanelSubSpace = new SubSpaceInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelMasterSlaveBindingSet = new MasterSlaveBindingSetInputPanel(compositeStackAddressSpace,
                SWT.NONE);
        inputPanelMasterSlaveBinding = new MasterSlaveBindingInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelPerformanceSet = new PerformanceSetInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelPerformance_1 = new PerformanceInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelAccessor = new AccessorInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelLatency_1 = new LatencyInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelPitch_1 = new PitchInputPanel(compositeStackAddressSpace, SWT.NONE);
        inputPanelMemoryConsistencyModel = new MemoryConsistencyModelInputPanel(compositeStackAddressSpace,
                SWT.NONE);

        SelectionAdapter selectionAdapter = new SelectionAdapter() {
            /**
             * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
             */
            @Override
            public void widgetSelected(SelectionEvent event) {
                Accessor accessor = (Accessor) inputPanelAccessor.getInput();

                MasterComponent masterComponentRef = (MasterComponent) accessor.getMasterComponentRef();
                List<ShimObject> objectsList = ShimModelAdapter.getObjectsList(AccessType.class,
                        masterComponentRef);

                boolean dialogFlag = false;

                // Confirms whether invalid reference occurs or not.
                List<PerformanceSet> performanceSetList = accessor.getPerformanceSet();
                for (PerformanceSet performanceSet : performanceSetList) {
                    List<Performance> performanceList = performanceSet.getPerformance();
                    for (Performance performance : performanceList) {
                        AccessType accessTypeRef = (AccessType) performance.getAccessTypeRef();
                        if (accessTypeRef == null) {
                            continue;
                        }

                        boolean isFound = false;
                        AccessType replace = null;
                        for (ShimObject objects : objectsList) {
                            AccessType type = (AccessType) objects.getObj();
                            if (accessTypeRef.getId().equals(type.getId())) {
                                isFound = true;
                                break;
                            } else if (accessTypeRef.getName().equals(type.getName())) {
                                replace = type;
                            }
                        }

                        if (!isFound) {
                            // If there is the AccessType which has the same
                            // name,
                            // replaces with it.
                            performance.setAccessTypeRef(replace);
                            if (replace == null) {
                                dialogFlag = true;
                            }
                        }
                    }
                }

                // If some invalid reference occurs, notifies users.
                if (dialogFlag) {
                    MessageDialog.openWarning(rootShell, "Warning", CommonConstants.MESSAGE_INVALID_IDREF);
                }
            }
        };
        inputPanelAccessor.getBtnApply().addSelectionListener(selectionAdapter);
    }

    SelectionListener listener = new SelectionListener() {

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            // NOOP
        }

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent event) {
            TreeItem item = (TreeItem) event.item;
            log.finest("TreeViewer:AddressSpace " + item.getText() + " selected");

            addressSpaceSelectedItem = item;

            InputPanelBase inputPanel = null;
            Object selectedObject = item.getData();

            if (selectedObject instanceof AddressSpaceSet) {
                inputPanel = inputPanelAddressSpaceSet;
            } else if (selectedObject instanceof AddressSpace) {
                inputPanel = inputPanelAddressSpace;
            } else if (selectedObject instanceof SubSpace) {
                inputPanel = inputPanelSubSpace;
            } else if (selectedObject instanceof MasterSlaveBindingSet) {
                inputPanel = inputPanelMasterSlaveBindingSet;
            } else if (selectedObject instanceof MasterSlaveBinding) {
                inputPanel = inputPanelMasterSlaveBinding;
            } else if (selectedObject instanceof PerformanceSet) {
                inputPanel = inputPanelPerformanceSet;
            } else if (selectedObject instanceof Performance) {
                inputPanel = inputPanelPerformance_1;
            } else if (selectedObject instanceof Latency) {
                inputPanel = inputPanelLatency_1;
            } else if (selectedObject instanceof Pitch) {
                inputPanel = inputPanelPitch_1;
            } else if (selectedObject instanceof Accessor) {
                inputPanel = inputPanelAccessor;
            } else if (selectedObject instanceof MemoryConsistencyModel) {
                inputPanel = inputPanelMemoryConsistencyModel;
            }

            currentAddressSpacePanel = inputPanel;

            changeInputPanel(item, inputPanel, compositeStackAddressSpace, shimAddressSpaceTreeViewer);
        }
    };
    treeAddressSpaceSet.addSelectionListener(listener);
}

From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java

License:MIT License

/**
 * Creates the tab item of CommunicationSet.
 */// w  w w. j  av  a  2  s.com
private void createCommunicationTabItem() {
    TabItem tbtmCommunications = new TabItem(tabFolder, SWT.NONE);
    tbtmCommunications.setText("Communications");

    Composite composite_Communications = new Composite(tabFolder, SWT.NONE);
    tbtmCommunications.setControl(composite_Communications);
    composite_Communications.setLayout(new BorderLayout(0, 0));

    compositeCommunicationTree = new Composite(composite_Communications, SWT.NONE);
    compositeCommunicationTree.setLayoutData(BorderLayout.WEST);
    compositeCommunicationTree.setLayout(new BorderLayout(0, 0));

    shimCommunicationTreeViewer = new ShimCommunicationTreeViewer(compositeCommunicationTree);
    shimCommunicationTreeViewer.setAutoExpandLevel(2);
    treeCommunicationSet = shimCommunicationTreeViewer.getTree();
    treeCommunicationSet.setLinesVisible(true);
    treeCommunicationSet.setHeaderVisible(true);
    {
        TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimCommunicationTreeViewer, SWT.NONE);
        TreeColumn trclmnCommunicationset = treeViewerColumn.getColumn();
        trclmnCommunicationset.setWidth(304);
        trclmnCommunicationset.setText("CommunicationSet");
    }
    shimCommunicationTreeViewer.setLabelProvider(new CommunicationSetTreeLabelProvider());
    shimCommunicationTreeViewer.setContentProvider(new CommunicationSetTreeItemProvider());

    TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeCommunicationSet, new int[] { 304 });

    compositeStackCommunications = new Composite(composite_Communications, SWT.NONE);

    // creates InputPanels for each element
    compositeStackCommunications.setLayout(new StackLayout());
    {
        inputPanelCommunicationSet = new CommunicationSetInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelSharedRegisterCommunication = new SharedRegisterCommunicationInputPanel(
                compositeStackCommunications, SWT.NONE);
        inputPanelLLSCCommunication = new SharedMemoryCommunicationInputPanel(compositeStackCommunications,
                SWT.NONE);
        inputPanelEventCommunication = new EventCommunicationInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelFIFOCommunication = new FIFOCommunicationInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelInterruptCommunication = new InterruptCommunicationInputPanel(compositeStackCommunications,
                SWT.NONE);
        inputPanelConnectionSet = new ConnectionSetInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelConnection = new ConnectionInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelPitch = new PitchInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelLatency = new LatencyInputPanel(compositeStackCommunications, SWT.NONE);
        inputPanelPerformance = new PerformanceInputPanel(compositeStackCommunications, SWT.NONE);
    }

    SelectionListener selectionListener = new SelectionListener() {

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            // NOOP
        }

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent event) {
            TreeItem item = (TreeItem) event.item;
            communicationSelectedItem = item;

            log.finest("TreeViewer:CommunicationSet " + item.getText() + " selected");

            InputPanelBase inputPanel = null;
            Object selectedObject = item.getData();
            if (selectedObject instanceof CommunicationSet) {
                inputPanel = inputPanelCommunicationSet;
            } else if (selectedObject instanceof EventCommunication) {
                inputPanel = inputPanelEventCommunication;
            } else if (selectedObject instanceof SharedRegisterCommunication) {
                inputPanel = inputPanelSharedRegisterCommunication;
            } else if (selectedObject instanceof SharedMemoryCommunication) {
                inputPanel = inputPanelLLSCCommunication;
            } else if (selectedObject instanceof FIFOCommunication) {
                inputPanel = inputPanelFIFOCommunication;
            } else if (selectedObject instanceof InterruptCommunication) {
                inputPanel = inputPanelInterruptCommunication;
            } else if (selectedObject instanceof ConnectionSet) {
                inputPanel = inputPanelConnectionSet;
            } else if (selectedObject instanceof Connection) {
                inputPanel = inputPanelConnection;
            } else if (selectedObject instanceof Pitch) {
                inputPanel = inputPanelPitch;
            } else if (selectedObject instanceof Latency) {
                inputPanel = inputPanelLatency;
            } else if (selectedObject instanceof Performance) {
                inputPanel = inputPanelPerformance;
            }
            currentCommunicationsPanel = inputPanel;

            changeInputPanel(item, inputPanel, compositeStackCommunications, shimCommunicationTreeViewer);
        }

    };
    treeCommunicationSet.addSelectionListener(selectionListener);
}

From source file:org.multicore_association.shim.edit.gui.jface.wizard.AddressSpaceEditorWizardPage.java

License:MIT License

/**
 * Creates contents of this page.//from w  w w  .  j  a v a2  s . c  o  m
 * 
 * @param parent
 *            the parent composite
 */
@Override
public void createControl(Composite parent) {

    log.finest("In ShimWizardPage_AddressSpace::createControl()----");
    Composite container = new Composite(parent, SWT.NULL);

    setControl(container);
    container.setLayout(new BorderLayout(0, 0));

    composite = new Composite(container, SWT.NONE);
    composite.setLayoutData(BorderLayout.SOUTH);
    composite.setLayout(new GridLayout(1, false));

    btnReNumber = new Button(composite, SWT.NONE);
    btnReNumber.addSelectionListener(this);
    btnReNumber.setText("Re-number nodes");

    addressSpaceTreeViewer = new ShimAddressSpaceTreeViewer(container, false);
    addressSpaceTreeViewer.setAutoExpandLevel(3);
    addressSpaceTreeViewer.setExpandPreCheckFilters(true);

    tree = addressSpaceTreeViewer.getTree();
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    tree.setLayoutData(BorderLayout.WEST);

    treeViewerColumn = new TreeViewerColumn(addressSpaceTreeViewer, SWT.NONE);
    trclmnAddressspacename = treeViewerColumn.getColumn();
    trclmnAddressspacename.setWidth(150);
    trclmnAddressspacename.setText("AddressSpaceName");

    compositeAddressSpace = new Composite(container, SWT.NONE);
    compositeAddressSpace.setLayoutData(BorderLayout.CENTER);
    compositeAddressSpace.setLayout(new BorderLayout(0, 0));

    {
        inputPanelAddressSpace = new AddressSpaceInputPanel(compositeAddressSpace, SWT.NONE, true);
        inputPanelAddressSpace.setLayoutData(BorderLayout.CENTER);
    }

    // ShimSubSpaceTableViewer send error message into wizard page.
    addressSpaceTreeViewer.setLabelProvider(new AddressSpaceTreeLabelProvider());
    addressSpaceTreeViewer.setContentProvider(new AddressSpaceTreeItemProviderWiz());

    ErrorMessageWriter errorMassageWriter = (ErrorMessageWriter) this;
    inputPanelAddressSpace.setErrorMassageWriterForWizard(errorMassageWriter);
    inputPanelAddressSpace.setSelectableItem((ShimSelectableItem) this);

    SelectionListener listener = new SelectionListener() {

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            // NOOP
        }

        /**
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent event) {
            TreeItem item = (TreeItem) event.item;

            if (selectedItem == item) {
                selectedItem = null;

            } else {
                selectedItem = item;
                tableRefresh();
            }
            addressSpaceTreeViewer.refresh();
        }

    };

    tree.addSelectionListener(listener);

    MenuManager menuMgr = new MenuManager();
    Menu menu = menuMgr.createContextMenu(addressSpaceTreeViewer.getControl());
    menuMgr.setRemoveAllWhenShown(true);
    addressSpaceTreeViewer.getControl().setMenu(menu);
    menuMgr.addMenuListener(new IMenuListener() {

        /**
         * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
         */
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            final ShimAddressSpaceTreeViewer viewer = addressSpaceTreeViewer;
            if (viewer.getSelection() instanceof IStructuredSelection) {
                if (selectedItem == null || viewer.getSelection().isEmpty()) {
                    return;
                }

                Object node = selectedItem.getData();
                if (node instanceof AddressSpace && viewer.getTree().getSelectionCount() == 1) {
                    AddChildAction act_add_sb = new AddChildAction(viewer, node, SubSpace.class);
                    manager.add(act_add_sb);

                    manager.add(new Separator());
                }

                TreeItem parentItem = selectedItem.getParentItem();
                if (parentItem != null) {
                    manager.add(new DeleteSelectedItemAction(viewer));
                }

                manager.add(new CutSelectedItemAction(viewer));
                manager.add(new CopySelectedItemAction(viewer));
                if (MyClipboard.canPaste()) {
                    manager.add(new PasteChildAction(viewer));
                }
            }
        }
    });
}