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.eclipse.sirius.ui.business.internal.viewpoint.ViewpointSelectionDialog.java

License:Open Source License

/**
 * {@inheritDoc}/*from w w  w . j av a  2  s .  c  o m*/
 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    composite.setLayout(new GridLayout(1, false));

    table = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);
    ColumnViewerToolTipSupport.enableFor(table, ToolTip.NO_RECREATE);
    table.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    table.setContentProvider(new TableContentProvider());
    table.setLabelProvider(new TableLabelProvider());
    table.addCheckStateListener(new TableCheckStateListener());
    table.setInput(input);

    for (Item item : input) {
        item.computeState();
    }

    return composite;
}

From source file:org.eclipse.ui.internal.handlers.SpyHandler.java

License:Open Source License

/**
 * @param control//w w w .j av a  2  s . co  m
 * @param offset
 * @param contributionInfo
 */
protected void doShowTooltip(Control control, Point offset, final ContributionInfo contributionInfo) {
    ToolTip toolTip = new ToolTip(control, ToolTip.NO_RECREATE, true) {

        protected Composite createToolTipContentArea(Event event, Composite parent) {
            // Create the content area
            Composite composite = new Composite(parent, SWT.NONE);
            Color fg = parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND);
            Color bg = parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND);
            composite.setForeground(fg);
            composite.setBackground(bg);
            Text text = new Text(composite, SWT.READ_ONLY);
            text.setForeground(fg);
            text.setBackground(bg);
            String info = NLS.bind(ContributionInfoMessages.ContributionInfo_ContributedBy,
                    contributionInfo.getElementType(), contributionInfo.getBundleId());
            text.setText(info);
            GridLayoutFactory.fillDefaults().margins(2, 2).generateLayout(composite);
            return composite;
        }
    };
    toolTip.setHideOnMouseDown(false);
    toolTip.setHideDelay(3000);
    toolTip.show(offset);
}

From source file:org.eclipse.ui.internal.ide.dialogs.PathVariablesGroup.java

License:Open Source License

/**
 * Creates the widget group.//from   w  w w.jav  a 2  s  .c o m
 * Callers must call <code>dispose</code> when the group is no 
 * longer needed.
 * 
 * @param parent the widget parent
 * @return container of the widgets 
 */
public Control createContents(Composite parent) {
    Font font = parent.getFont();

    if (imageUnkown == null) {
        ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
                IDEWorkbenchPlugin.IDE_WORKBENCH, "$nl$/icons/full/obj16/warning.gif"); //$NON-NLS-1$
        imageUnkown = descriptor.createImage();
    }
    initializeDialogUnits(parent);
    shell = parent.getShell();

    // define container & its layout
    Composite pageComponent = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    pageComponent.setLayout(layout);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = SIZING_SELECTION_PANE_WIDTH;
    pageComponent.setLayoutData(data);
    pageComponent.setFont(font);

    // layout the table & its buttons
    variableLabel = new Label(pageComponent, SWT.LEFT);
    if (currentResource == null)
        variableLabel.setText(IDEWorkbenchMessages.PathVariablesBlock_variablesLabel);
    else
        variableLabel.setText(NLS.bind(IDEWorkbenchMessages.PathVariablesBlock_variablesLabelForResource,
                currentResource.getName()));

    data = new GridData();
    data.horizontalAlignment = GridData.FILL;
    data.horizontalSpan = 2;
    variableLabel.setLayoutData(data);
    variableLabel.setFont(font);

    int tableStyle = SWT.BORDER | SWT.FULL_SELECTION;
    if (multiSelect) {
        tableStyle |= SWT.MULTI;
    }

    Composite tableComposite = new Composite(pageComponent, SWT.NONE);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    tableComposite.setLayoutData(data);

    variableTable = new TableViewer(tableComposite, tableStyle);
    variableTable.getTable().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            updateEnabledState();
            if (selectionListener != null) {
                selectionListener.handleEvent(new Event());
            }
        }
    });

    variableTable.getTable().setFont(font);
    ColumnViewerToolTipSupport.enableFor(variableTable, ToolTip.NO_RECREATE);

    TableViewerColumn nameColumn = new TableViewerColumn(variableTable, SWT.NONE);
    nameColumn.setLabelProvider(new NameLabelProvider());
    nameColumn.getColumn().setText(IDEWorkbenchMessages.PathVariablesBlock_nameColumn);

    TableViewerColumn valueColumn = new TableViewerColumn(variableTable, SWT.NONE);
    valueColumn.setLabelProvider(new ValueLabelProvider());
    valueColumn.getColumn().setText(IDEWorkbenchMessages.PathVariablesBlock_valueColumn);

    TableColumnLayout tableLayout = new TableColumnLayout();
    tableComposite.setLayout(tableLayout);

    tableLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(150));
    tableLayout.setColumnData(valueColumn.getColumn(), new ColumnWeightData(280));

    variableTable.getTable().setHeaderVisible(true);
    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = variableTable.getTable().getItemHeight() * 7;
    variableTable.getTable().setLayoutData(data);
    variableTable.getTable().setFont(font);

    variableTable.getTable().addMouseListener(new MouseListener() {
        public void mouseDoubleClick(MouseEvent e) {
            int itemsSelectedCount = variableTable.getTable().getSelectionCount();
            if (itemsSelectedCount == 1 && canChangeSelection())
                editSelectedVariable();
        }

        public void mouseDown(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }
    });
    variableTable.getTable().addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            updateEnabledState();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            updateEnabledState();
        }
    });

    variableTable.getTable().setToolTipText(null);
    variableTable.setContentProvider(new ContentProvider());
    variableTable.setInput(this);
    createButtonGroup(pageComponent);
    return pageComponent;
}

From source file:org.eclipsetrader.ui.charts.DecoratorToolTip.java

License:Open Source License

public DecoratorToolTip(Control control) {
    super(control, ToolTip.NO_RECREATE, true);
    this.parent = control;
}

From source file:org.jboss.tools.maven.ui.wizard.ConfigureMavenRepositoriesWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    composite.setLayoutData(gd);/*from w  w  w. j  a  v  a 2  s.c o m*/
    Dialog.applyDialogFont(composite);
    setControl(composite);

    Label userSettingsLabel = new Label(composite, SWT.NONE);
    gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    userSettingsLabel.setLayoutData(gd);

    String userSettings = getUserSettings();
    userSettingsLabel.setText("User settings: " + userSettings);//$NON-NLS-1$

    File settingsFile = new File(userSettings);
    try {
        if (!settingsFile.exists()) {
            createDefaultSettings();
            maven.reloadSettings();
            oldSettings = ""; //$NON-NLS-1$
        } else {
            oldSettings = readFile(settingsFile);
            newSettings = oldSettings;
        }
    } catch (Exception e) {
        Activator.log(e);
        MessageDialog.openError(getShell(), ERROR_TITLE, e.getMessage());
        throw new RuntimeException(e);
    }
    DocumentBuilder builder;
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        builder = factory.newDocumentBuilder();
    } catch (ParserConfigurationException e) {
        Activator.log(e);
        MessageDialog.openError(getShell(), ERROR_TITLE, e.getMessage());
        throw new RuntimeException(e);
    }
    try {
        document = builder.parse(new InputSource(new StringReader(newSettings)));
    } catch (Exception e) {
        Activator.log(e);
        try {
            createDefaultSettings();
        } catch (Exception e1) {
            Activator.log(e1);
            MessageDialog.openError(getShell(), ERROR_TITLE, e1.getMessage());
            throw new RuntimeException(e1);
        }
        try {
            document = builder.parse(new InputSource(new StringReader(newSettings)));
        } catch (Exception e1) {
            Activator.log(e1);
            MessageDialog.openError(getShell(), ERROR_TITLE, e1.getMessage());
            throw new RuntimeException(e1);
        }
    }

    Group repositoriesGroup = new Group(composite, SWT.NONE);
    gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    GridLayout layout = new GridLayout(3, false);
    repositoriesGroup.setLayout(layout);
    repositoriesGroup.setLayoutData(gd);
    repositoriesGroup.setText("Repositories"); //$NON-NLS-1$

    Composite includedRepositoriesComposite = new Composite(repositoriesGroup, SWT.NONE);
    gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    includedRepositoriesComposite.setLayoutData(gd);
    includedRepositoriesComposite.setLayout(new GridLayout(1, false));

    includedRepositoriesViewer = new TableViewer(includedRepositoriesComposite,
            SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    gd.widthHint = 500;
    gd.heightHint = 150;
    includedRepositoriesViewer.getTable().setLayoutData(gd);
    includedRepositoriesViewer.getTable().setLinesVisible(false);
    includedRepositoriesViewer.getTable().setHeaderVisible(false);
    TableViewerColumn c = new TableViewerColumn(includedRepositoriesViewer, SWT.NONE);
    c.getColumn().setText("Repository"); //$NON-NLS-1$
    c.getColumn().setResizable(true);
    TableLayout includedLayout = new AutoResizeTableLayout(includedRepositoriesViewer.getTable());
    ColumnLayoutData columnLayoutData = new ColumnWeightData(350, 350);
    includedLayout.addColumnData(columnLayoutData);

    includedRepositoriesViewer.setContentProvider(new ArrayContentProvider());
    includedRepositoriesViewer.setLabelProvider(new RepositoryLabelProvider());
    ColumnViewerToolTipSupport.enableFor(includedRepositoriesViewer, ToolTip.NO_RECREATE);

    createButtons(repositoriesGroup);

    includedRepositories = getIncludedRepositories();
    availableRepositories = getAvailableRepositories();
    List<RepositoryWrapper> remove = new ArrayList<RepositoryWrapper>();
    for (RepositoryWrapper availableRepository : availableRepositories) {
        if (includedRepositories.contains(availableRepository)) {
            remove.add(availableRepository);
        }
    }
    for (RepositoryWrapper repository : remove) {
        availableRepositories.remove(repository);
    }

    includedRepositoriesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            ISelection sel = event.getSelection();
            selectedIncludedRepositories.clear();
            if (sel instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) sel;
                Iterator iterator = selection.iterator();
                while (iterator.hasNext()) {
                    Object object = iterator.next();
                    if (object instanceof RepositoryWrapper) {
                        selectedIncludedRepositories.add((RepositoryWrapper) object);
                    }
                }
            }
            configureButtons();
        }
    });
    removeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean ok = getMessageDialog(selectedIncludedRepositories);
            if (ok) {
                for (RepositoryWrapper wrapper : selectedIncludedRepositories) {
                    includedRepositories.remove(wrapper);
                    availableRepositories.add(wrapper);
                    removeRepository(wrapper);
                }
                setPageComplete(true);
                refreshRepositories();
            }
        }

    });
    removeAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean ok = getMessageDialog(includedRepositories);
            if (!ok) {
                return;
            }
            List<RepositoryWrapper> list = new ArrayList<RepositoryWrapper>();
            for (RepositoryWrapper wrapper : includedRepositories) {
                list.add(wrapper);
                removeRepository(wrapper);
            }
            includedRepositories.removeAll(list);
            availableRepositories.addAll(list);
            setPageComplete(true);
            refreshRepositories();
        }

    });
    addRepositoryButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            openAddRepositoryDialog();
        }

    });

    Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
    separator.setVisible(false);

    Label previewLabel = new Label(composite, SWT.NULL);
    previewLabel.setText("Preview:"); //$NON-NLS-1$

    createPreviewer(composite);

    refreshRepositories();
    setPageComplete(false);
}

From source file:org.jboss.tools.modeshape.rest.views.ServerView.java

License:Open Source License

/**
 * @param parent the viewer's parent// w w  w .j ava2s  .com
 */
private void constructTreeViewer(Composite parent) {
    this.viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.VIRTUAL);
    this.viewer.setUseHashlookup(true);
    this.provider = new ModeShapeContentProvider();
    this.provider.setViewer(this.viewer);

    this.viewer.setContentProvider(this.provider);
    ILabelDecorator decorator = Activator.getDefault().getWorkbench().getDecoratorManager().getLabelDecorator();
    this.viewer.setLabelProvider(new DecoratingLabelProvider(this.provider, decorator));
    ColumnViewerToolTipSupport.enableFor(this.viewer, ToolTip.NO_RECREATE);

    this.viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        /**
         * {@inheritDoc}
         * 
         * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
         */
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged(event);
        }
    });
    this.viewer.addDoubleClickListener(new IDoubleClickListener() {
        /**
         * {@inheritDoc}
         * 
         * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
         */
        @Override
        public void doubleClick(DoubleClickEvent arg0) {
            handleDoubleClick();
        }
    });

    // need to call this to populate tree
    this.viewer.setInput(getServerManager());

    // need to do this so that properties page will work
    getSite().setSelectionProvider(this.viewer);
}

From source file:org.jboss.tools.openshift.internal.ui.webhooks.WebHooksComponent.java

License:Open Source License

private void notifyCopied(final Text uriText) {
    DefaultToolTip copiedNotification = new DefaultToolTip(uriText, ToolTip.NO_RECREATE, true);
    copiedNotification.setText("Webhook copied to clipboard");
    copiedNotification.setHideDelay(COPIED_NOTIFICATION_SHOW_DURATION);
    copiedNotification.show(uriText.getLocation());
    copiedNotification.deactivate();//from w w  w .j a  v  a  2 s  . c  om
}

From source file:org.jboss.tools.openshift.internal.ui.wizard.newapp.fromtemplate.NewApplicationSummaryFromTemplateDialog.java

License:Open Source License

private void notifyCopied(Control control, String notification) {
    DefaultToolTip copiedNotification = new DefaultToolTip(control, ToolTip.NO_RECREATE, true);
    copiedNotification.setText(notification);
    copiedNotification.setHideDelay(COPIED_NOTIFICATION_SHOW_DURATION);
    copiedNotification.show(control.getLocation());
    copiedNotification.deactivate();//from  w  w w  .jav  a  2s  .c  o m
}

From source file:org.jkiss.dbeaver.ui.dialogs.data.ComplexObjectEditor.java

License:Open Source License

public ComplexObjectEditor(IValueController parentController, IValueEditor editor, int style) {
    super(parentController.getEditPlaceholder(), style | SWT.SINGLE | SWT.FULL_SELECTION);
    this.parentController = parentController;
    this.editor = editor;

    ITheme currentTheme = parentController.getValueSite().getWorkbenchWindow().getWorkbench().getThemeManager()
            .getCurrentTheme();/*from  w  w  w .ja  v a 2 s  .  c  om*/
    this.backgroundAdded = currentTheme.getColorRegistry().get(ThemeConstants.COLOR_SQL_RESULT_CELL_NEW_BACK);
    this.backgroundDeleted = currentTheme.getColorRegistry()
            .get(ThemeConstants.COLOR_SQL_RESULT_CELL_DELETED_BACK);
    this.backgroundModified = currentTheme.getColorRegistry()
            .get(ThemeConstants.COLOR_SQL_RESULT_CELL_MODIFIED_BACK);

    final Tree treeControl = super.getTree();
    treeControl.setHeaderVisible(true);
    treeControl.setLinesVisible(true);

    treeControl.addControlListener(new ControlAdapter() {
        private boolean packing = false;

        @Override
        public void controlResized(ControlEvent e) {
            if (!packing) {
                packing = true;
                UIUtils.packColumns(treeControl, true, new float[] { 0.2f, 0.8f });
                if (treeControl.getColumn(0).getWidth() < 100) {
                    treeControl.getColumn(0).setWidth(100);
                }
                treeControl.removeControlListener(this);
            }
        }
    });

    ColumnViewerToolTipSupport.enableFor(this, ToolTip.NO_RECREATE);

    {
        TreeViewerColumn column = new TreeViewerColumn(this, SWT.NONE);
        column.getColumn().setWidth(200);
        column.getColumn().setMoveable(true);
        column.getColumn().setText(CoreMessages.ui_properties_name);
        column.setLabelProvider(new PropsLabelProvider(true));
    }

    {
        TreeViewerColumn column = new TreeViewerColumn(this, SWT.NONE);
        column.getColumn().setWidth(120);
        column.getColumn().setMoveable(true);
        column.getColumn().setText(CoreMessages.ui_properties_value);
        column.setLabelProvider(new PropsLabelProvider(false));
    }

    treeEditor = new TreeEditor(treeControl);
    treeEditor.horizontalAlignment = SWT.RIGHT;
    treeEditor.verticalAlignment = SWT.CENTER;
    treeEditor.grabHorizontal = true;
    treeEditor.minimumWidth = 50;

    treeControl.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            TreeItem item = treeControl.getItem(new Point(e.x, e.y));
            if (item != null && UIUtils.getColumnAtPos(item, e.x, e.y) == 1) {
                showEditor(item, false);
            }
        }
    });

    treeControl.addTraverseListener(new TraverseListener() {
        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN) {
                final TreeItem[] selection = treeControl.getSelection();
                if (selection.length == 0) {
                    return;
                }
                if (treeEditor.getEditor() != null && !treeEditor.getEditor().isDisposed()) {
                    // Give a chance to catch it in editor handler
                    e.doit = true;
                    return;
                }
                showEditor(selection[0], (e.stateMask & SWT.SHIFT) == SWT.SHIFT);
                e.doit = false;
                e.detail = SWT.TRAVERSE_NONE;
            }
        }
    });

    super.setContentProvider(new StructContentProvider());

    this.copyNameAction = new CopyAction(true);
    this.copyValueAction = new CopyAction(false);
    this.addElementAction = new AddElementAction();
    this.removeElementAction = new RemoveElementAction();

    addElementAction.setEnabled(true);
    removeElementAction.setEnabled(false);

    addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection == null || selection.isEmpty()) {
                copyNameAction.setEnabled(false);
                copyValueAction.setEnabled(false);
                removeElementAction.setEnabled(false);
                addElementAction.setEnabled(getInput() instanceof DBDCollection);
            } else {
                copyNameAction.setEnabled(true);
                copyValueAction.setEnabled(true);
                final Object element = selection.getFirstElement();
                if (element instanceof ArrayItem) {
                    removeElementAction.setEnabled(true);
                    addElementAction.setEnabled(true);
                }
            }
        }
    });

    createContextMenu();
}

From source file:org.jkiss.dbeaver.ui.properties.PropertyTreeViewer.java

License:Open Source License

public PropertyTreeViewer(Composite parent, int style) {
    super(parent, style | SWT.SINGLE | SWT.FULL_SELECTION);

    //colorBlue = parent.getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE);
    //this.setLayout(new GridLayout(1, false));
    //GridData gd = new GridData(GridData.FILL_BOTH);
    //this.setLayoutData(gd);

    super.setContentProvider(new PropsContentProvider());
    final Tree treeControl = super.getTree();
    if (parent.getLayout() instanceof GridLayout) {
        GridData gd = new GridData(GridData.FILL_BOTH);
        gd.grabExcessHorizontalSpace = true;
        gd.grabExcessVerticalSpace = true;
        gd.minimumHeight = 120;// www .  j  a va  2  s  .c  o  m
        gd.heightHint = 120;
        gd.widthHint = 300;
        treeControl.setLayoutData(gd);
    }
    treeControl.setHeaderVisible(true);
    treeControl.setLinesVisible(true);

    treeControl.addControlListener(new ControlAdapter() {
        private boolean packing = false;

        @Override
        public void controlResized(ControlEvent e) {
            if (!packing) {
                packing = true;
                UIUtils.packColumns(treeControl, true, new float[] { 0.2f, 0.8f });
                //packing = false;
                //treeControl.removeControlListener(this);
            }
        }
    });
    treeControl.addListener(SWT.PaintItem, new PaintListener());
    this.boldFont = UIUtils.makeBoldFont(treeControl.getFont());

    ColumnViewerToolTipSupport.enableFor(this, ToolTip.NO_RECREATE);

    TreeViewerColumn column = new TreeViewerColumn(this, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText(CoreMessages.ui_properties_name);
    column.setLabelProvider(new PropsLabelProvider(true));
    column.getColumn().addListener(SWT.Selection, new SortListener());

    column = new TreeViewerColumn(this, SWT.NONE);
    column.getColumn().setWidth(120);
    column.getColumn().setMoveable(true);
    column.getColumn().setText(CoreMessages.ui_properties_value);
    column.setLabelProvider(new PropsLabelProvider(false));

    /*
        List<? extends DBPProperty> props = ((DBPPropertyGroup) parent).getProperties();
        Collections.sort(props, new Comparator<DBPProperty>() {
            public int compare(DBPProperty o1, DBPProperty o2)
            {
                return o1.getName().compareTo(o2.getName());
            }
        });
        return props.toArray();
            
    */
    registerEditor();
    registerContextMenu();

    renderer = new ObjectViewerRenderer(this) {
        @Override
        protected Object getCellValue(Object element, int columnIndex) {
            final TreeNode node = (TreeNode) element;
            if (columnIndex == 0) {
                return node.category != null ? node.category : node.property.getDisplayName();
            }

            return getPropertyValue(node);
        }

        @Override
        public boolean isHyperlink(Object cellValue) {
            return cellValue instanceof DBSObject;
        }

        @Override
        public void navigateHyperlink(Object cellValue) {
            if (cellValue instanceof DBSObject) {
                DBNDatabaseNode node = NavigatorHandlerObjectOpen.getNodeByObject((DBSObject) cellValue);
                if (node != null) {
                    NavigatorHandlerObjectOpen.openEntityEditor(node, null,
                            DBeaverUI.getActiveWorkbenchWindow());
                }
            }
        }
    };
}