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.goko.controller.grbl.v08.element.PropertyTable.java

License:Open Source License

private TreeViewerColumn createTableViewerColumn(String title, int width, final int colNumber) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(this, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/*from w  ww  . j  a  v a2s  .  c  o  m*/
    column.setWidth(width);
    column.setResizable(true);
    column.setMoveable(true);
    return viewerColumn;
}

From source file:org.hawk.service.emf.dt.editors.EffectiveMetamodelFormPage.java

License:Open Source License

@Override
protected void createFormContent(IManagedForm managedForm) {
    super.createFormContent(managedForm);
    managedForm.getForm().setText("Effective Metamodel");

    clrIncludes = new Color(managedForm.getForm().getDisplay(), new RGB(180, 255, 255));
    clrExcludes = new Color(managedForm.getForm().getDisplay(), new RGB(255, 200, 255));
    clrPartial = new Color(managedForm.getForm().getDisplay(), new RGB(255, 255, 220));

    final FormToolkit toolkit = managedForm.getToolkit();
    final TableWrapLayout layout = new TableWrapLayout();
    layout.numColumns = 1;//  w  w  w .  jav  a2s  .  c o  m
    final Composite formBody = managedForm.getForm().getBody();
    formBody.setLayout(layout);

    final FormText formText = toolkit.createFormText(formBody, true);
    formText.setText("<p>"
            + "<p>This page allows for limiting the types and slots that should be retrieved through the Hawk API.</p>"
            + "<p>With everything set to 'Default', all metamodels, types and slots are retrieved.</p>"
            + "<p>With everything set to 'Default' or 'Includes', only the included elements are retrieved.</p>"
            + "<p>With everything set to 'Default' or 'Excludes', everything but the excluded elements is retrieved.</p>"
            + "<p>Using all three values, only the elements which are 1. included and 2. not excluded are retrieved.</p>"
            + "<p>The shown metamodels are those registered in the Hawk server: please make sure the Instance section of the descriptor has been setup correctly before using this page.</p>"
            + "</p>", true, false);

    final Composite cTable = toolkit.createComposite(formBody, SWT.NONE);
    cTable.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB));
    cTable.setLayout(Utils.createTableWrapLayout(2));

    final Composite cTree = new Composite(cTable, SWT.NONE);
    final TableWrapData cTreeLayoutData = new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB);
    cTreeLayoutData.maxHeight = 500;
    cTree.setLayoutData(cTreeLayoutData);
    TreeColumnLayout tcl_cTree = new TreeColumnLayout();
    cTree.setLayout(tcl_cTree);

    treeViewer = new TreeViewer(cTree, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL);
    treeViewer.getTree().setHeaderVisible(true);
    final MetamodelContentProvider contentProvider = new MetamodelContentProvider();
    treeViewer.setUseHashlookup(true);
    treeViewer.setContentProvider(contentProvider);

    final MetamodelEditingSupport editingSupport = new MetamodelEditingSupport(treeViewer);
    final TreeViewerColumn labelColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    labelColumn.getColumn().setText("Element");
    labelColumn.setLabelProvider(new MetamodelCellLabelProvider(editingSupport, 0));
    tcl_cTree.setColumnData(labelColumn.getColumn(), new ColumnWeightData(100, 0, true));

    final TreeViewerColumn stateColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    stateColumn.getColumn().setText("State");
    stateColumn.setLabelProvider(new MetamodelCellLabelProvider(editingSupport, 1));
    stateColumn.setEditingSupport(editingSupport);
    tcl_cTree.setColumnData(stateColumn.getColumn(), new ColumnPixelData(100));

    final Composite cButtons = toolkit.createComposite(cTable, SWT.WRAP);
    final FillLayout cButtonsLayout = new FillLayout(SWT.VERTICAL);
    cButtonsLayout.spacing = 7;
    cButtonsLayout.marginWidth = 3;
    cButtons.setLayout(cButtonsLayout);

    final Button btnIncludeAll = new Button(cButtons, SWT.NONE);
    btnIncludeAll.setText("Include all");
    btnIncludeAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setEffectiveMetamodel(new EffectiveMetamodelRuleset());
            treeViewer.refresh();
            getEditor().setDirty(true);
        }
    });

    final Button btnExcludeAll = new Button(cButtons, SWT.NONE);
    btnExcludeAll.setText("Exclude all");
    btnExcludeAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            final EffectiveMetamodelRuleset ruleset = new EffectiveMetamodelRuleset();
            for (Object on : contentProvider.roots) {
                final MetamodelNode mn = (MetamodelNode) on;
                ruleset.exclude(mn.label);
            }
            setEffectiveMetamodel(ruleset);
            treeViewer.refresh();
            getEditor().setDirty(true);
        }
    });

    final Button btnExclude = new Button(cButtons, SWT.NONE);
    btnExclude.setText("Exclude");
    btnExclude.addSelectionListener(new SetStateSelectionListener(editingSupport, RowState.EXCLUDED));
    btnExclude.setEnabled(false);

    final Button btnInclude = new Button(cButtons, SWT.NONE);
    btnInclude.setText("Include");
    btnInclude.addSelectionListener(new SetStateSelectionListener(editingSupport, RowState.INCLUDED));
    btnInclude.setEnabled(false);

    final Button btnReset = new Button(cButtons, SWT.NONE);
    btnReset.setText("Reset");
    btnReset.addSelectionListener(new SetStateSelectionListener(editingSupport, RowState.DEFAULT));
    btnReset.setEnabled(false);

    final Button btnImport = new Button(cButtons, SWT.NONE);
    btnImport.setText("Import...");
    btnImport.addSelectionListener(new ImportEMMSelectionListener());

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            final boolean isAnySelected = !event.getSelection().isEmpty();
            btnExclude.setEnabled(isAnySelected);
            btnInclude.setEnabled(isAnySelected);
            btnReset.setEnabled(isAnySelected);
        }
    });

    treeViewer.setInput(store);
    treeViewer.expandToLevel(2);
}

From source file:org.jboss.tools.openshift.express.internal.ui.server.CommitDialog.java

License:Open Source License

private Section createFileSection(Composite container) {
    Section filesSection = toolkit.createSection(container,
            ExpandableComposite.TITLE_BAR | ExpandableComposite.CLIENT_INDENT);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(filesSection);
    Composite filesArea = toolkit.createComposite(filesSection);
    filesSection.setClient(filesArea);//  ww w  .  j  a  va  2 s .  c  o  m
    toolkit.paintBordersFor(filesArea);
    GridLayoutFactory.fillDefaults().extendedMargins(2, 2, 2, 2).applyTo(filesArea);

    ToolBar filesToolbar = new ToolBar(filesSection, SWT.FLAT);

    filesSection.setTextClient(filesToolbar);

    PatternFilter patternFilter = new PatternFilter() {
        @Override
        protected boolean isLeafMatch(Viewer viewer, Object element) {
            if (element instanceof CommitItem) {
                CommitItem commitItem = (CommitItem) element;
                return wordMatches(commitItem.path);
            }
            return super.isLeafMatch(viewer, element);
        }
    };
    patternFilter.setIncludeLeadingWildcard(true);
    FilteredCheckboxTree resourcesTreeComposite = new FilteredCheckboxTree(filesArea, toolkit,
            SWT.FULL_SELECTION, patternFilter) {
        @Override
        protected WorkbenchJob doCreateRefreshJob() {
            // workaround for file filter not having an explicit change
            // listener
            WorkbenchJob filterJob = super.doCreateRefreshJob();
            filterJob.addJobChangeListener(new JobChangeAdapter() {
                @Override
                public void done(IJobChangeEvent event) {
                    if (event.getResult().isOK()) {
                        getDisplay().asyncExec(new Runnable() {
                            @Override
                            public void run() {
                                updateFileSectionText();
                            }
                        });
                    }
                }
            });
            return filterJob;
        }
    };
    Tree resourcesTree = resourcesTreeComposite.getViewer().getTree();
    resourcesTree.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
    resourcesTreeComposite
            .setLayoutData(GridDataFactory.fillDefaults().hint(600, 200).grab(true, true).create());

    resourcesTree.addSelectionListener(new CommitItemSelectionListener());
    resourcesTree.setHeaderVisible(true);

    TreeColumn statCol = new TreeColumn(resourcesTree, SWT.LEFT);
    statCol.setText(UIText.CommitDialog_Status);
    statCol.setWidth(150);
    statCol.addSelectionListener(new HeaderSelectionListener(CommitItem.Order.ByStatus));

    TreeColumn resourceCol = new TreeColumn(resourcesTree, SWT.LEFT);
    resourceCol.setText(UIText.CommitDialog_Path);
    resourceCol.setWidth(415);
    resourceCol.addSelectionListener(new HeaderSelectionListener(CommitItem.Order.ByFile));

    filesViewer = resourcesTreeComposite.getCheckboxTreeViewer();
    new TreeViewerColumn(filesViewer, statCol).setLabelProvider(createStatusLabelProvider());
    new TreeViewerColumn(filesViewer, resourceCol).setLabelProvider(new CommitPathLabelProvider());
    ColumnViewerToolTipSupport.enableFor(filesViewer);
    filesViewer.setContentProvider(new CommitFileContentProvider());
    filesViewer.setUseHashlookup(true);
    IDialogSettings settings = org.eclipse.egit.ui.Activator.getDefault().getDialogSettings();
    if (settings.get(SHOW_UNTRACKED_PREF) != null) {
        // note, no matter how the dialog settings are, if
        // the preferences force us to include untracked files
        // we must show them
        showUntracked = Boolean.valueOf(settings.get(SHOW_UNTRACKED_PREF)).booleanValue()
                || getPreferenceStore().getBoolean(UIPreferences.COMMIT_DIALOG_INCLUDE_UNTRACKED);
    }

    filesViewer.addFilter(new CommitItemFilter());
    filesViewer.setInput(items.toArray());
    MenuManager menuManager = new MenuManager();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.addMenuListener(createContextMenuListener());
    filesViewer.getTree().setMenu(menuManager.createContextMenu(filesViewer.getTree()));
    filesViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateFileSectionText();
        }
    });

    showUntrackedItem = new ToolItem(filesToolbar, SWT.CHECK);
    Image showUntrackedImage = UIIcons.UNTRACKED_FILE.createImage();
    UIUtils.hookDisposal(showUntrackedItem, showUntrackedImage);
    showUntrackedItem.setImage(showUntrackedImage);
    showUntrackedItem.setToolTipText(UIText.CommitDialog_ShowUntrackedFiles);
    showUntrackedItem.setSelection(showUntracked);
    showUntrackedItem.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            showUntracked = showUntrackedItem.getSelection();
            filesViewer.refresh(true);
            updateFileSectionText();
            updateMessage();
        }

    });

    ToolItem checkAllItem = new ToolItem(filesToolbar, SWT.PUSH);
    Image checkImage = UIIcons.CHECK_ALL.createImage();
    UIUtils.hookDisposal(checkAllItem, checkImage);
    checkAllItem.setImage(checkImage);
    checkAllItem.setToolTipText(UIText.CommitDialog_SelectAll);
    checkAllItem.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            filesViewer.setAllChecked(true);
            updateFileSectionText();
            updateMessage();
        }

    });

    ToolItem uncheckAllItem = new ToolItem(filesToolbar, SWT.PUSH);
    Image uncheckImage = UIIcons.UNCHECK_ALL.createImage();
    UIUtils.hookDisposal(uncheckAllItem, uncheckImage);
    uncheckAllItem.setImage(uncheckImage);
    uncheckAllItem.setToolTipText(UIText.CommitDialog_DeselectAll);
    uncheckAllItem.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            filesViewer.setAllChecked(false);
            updateFileSectionText();
            updateMessage();
        }

    });

    if (!allowToChangeSelection) {
        amendingItem.setSelection(false);
        amendingItem.setEnabled(false);
        showUntrackedItem.setSelection(false);
        showUntrackedItem.setEnabled(false);
        checkAllItem.setEnabled(false);
        uncheckAllItem.setEnabled(false);

        filesViewer.addCheckStateListener(new ICheckStateListener() {

            @Override
            public void checkStateChanged(CheckStateChangedEvent event) {
                if (!event.getChecked())
                    filesViewer.setAllChecked(true);
                updateFileSectionText();
            }
        });
        filesViewer.setAllChecked(true);
    } else {
        final boolean includeUntracked = getPreferenceStore()
                .getBoolean(UIPreferences.COMMIT_DIALOG_INCLUDE_UNTRACKED);
        for (CommitItem item : items) {
            if (!preselectAll && !preselectedFiles.contains(item.path))
                continue;
            if (item.status == Status.ASSUME_UNCHANGED)
                continue;
            if (!includeUntracked && item.status == Status.UNTRACKED)
                continue;
            filesViewer.setChecked(item, true);
        }
    }
    statCol.pack();
    resourceCol.pack();
    return filesSection;
}

From source file:org.jboss.tools.openshift.express.internal.ui.wizard.application.details.ApplicationDetailsDialog.java

License:Open Source License

private void createTreeColumn(String name, int weight, CellLabelProvider cellLabelProvider,
        TreeViewer treeViewer, TreeColumnLayout layout) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(name);/*from w ww. j a v a  2s .c  om*/
    column.setResizable(true);
    viewerColumn.setLabelProvider(cellLabelProvider);
    layout.setColumnData(column, new ColumnWeightData(weight, weight * 200, true));
}

From source file:org.jboss.tools.runtime.ui.internal.dialogs.RuntimeCheckboxTreeViewer.java

License:Open Source License

public RuntimeCheckboxTreeViewer(Composite parent, final RuntimePath[] runtimePaths2, int heightHint) {
    super(parent, SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);

    GridData gd;//  w  ww. j  a v  a  2  s .co m
    Tree tree = getTree();
    gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();
    gd.minimumHeight = Dialog.convertHeightInCharsToPixels(fontMetrics, heightHint);
    tree.setLayoutData(gd);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    String[] columnNames = new String[] { Messages.RuntimeCheckboxTreeViewer_Name,
            Messages.RuntimeCheckboxTreeViewer_Type, Messages.RuntimeCheckboxTreeViewer_Version,
            Messages.RuntimeCheckboxTreeViewer_Errors, Messages.RuntimeCheckboxTreeViewer_Location };
    int[] columnWidths = new int[] { 200, 70, 60, 150, 150 };

    for (int i = 0; i < columnNames.length; i++) {
        TreeViewerColumn tc = new TreeViewerColumn(this, SWT.NONE);
        tc.getColumn().setText(columnNames[i]);
        tc.getColumn().setWidth(columnWidths[i]);
    }

    setLabelProvider(new RuntimeLabelProvider());
    List<RuntimeDefinition> runtimeDefinitions = new ArrayList<RuntimeDefinition>();
    for (RuntimePath runtimePath : runtimePaths2) {
        runtimeDefinitions.addAll(Arrays.asList(runtimePath.getRuntimeDefinitions()));
    }
    setContentProvider(new RuntimeContentProvider(runtimeDefinitions));
    setInput(runtimeDefinitions);
    for (RuntimeDefinition definition : runtimeDefinitions) {
        setChecked(definition, definition.isEnabled());
    }

    addContentAssist();
}

From source file:org.jkiss.dbeaver.tools.transfer.database.DatabaseConsumerPageMapping.java

License:Open Source License

private void createMappingsTree(Composite composite) {
    // Mapping table
    mappingViewer = new TreeViewer(composite, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    mappingViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    mappingViewer.getTree().setLinesVisible(true);
    mappingViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn columnSource = new TreeViewerColumn(mappingViewer, SWT.LEFT);
    columnSource.setLabelProvider(new MappingLabelProvider() {
        @Override//  w  w  w  .  j  a va  2  s .c om
        public void update(ViewerCell cell) {
            DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement();
            cell.setText(DBUtils.getObjectFullName(mapping.getSource()));
            if (mapping.getIcon() != null) {
                cell.setImage(DBeaverIcons.getImage(mapping.getIcon()));
            }
            super.update(cell);
        }
    });
    columnSource.getColumn().setText("Source");

    TreeViewerColumn columnTarget = new TreeViewerColumn(mappingViewer, SWT.LEFT);
    columnTarget.setLabelProvider(new MappingLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement();
            cell.setText(mapping.getTargetName());
            if (mapping.getMappingType() == DatabaseMappingType.unspecified) {
                cell.setBackground(DBeaverUI.getSharedTextColors().getColor(SharedTextColors.COLOR_WARNING));
            } else {
                cell.setBackground(null);
            }
            super.update(cell);
        }
    });
    columnTarget.getColumn().setText("Target");
    columnTarget.setEditingSupport(new EditingSupport(mappingViewer) {
        @Override
        protected CellEditor getCellEditor(Object element) {
            try {
                CellEditor targetEditor = createTargetEditor(element);
                setErrorMessage(null);
                return targetEditor;
            } catch (DBException e) {
                setErrorMessage(e.getMessage());
                return null;
            }
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @Override
        protected Object getValue(Object element) {
            DatabaseMappingObject mapping = (DatabaseMappingObject) element;
            if (mapping.getMappingType() == DatabaseMappingType.unspecified) {
                return mapping.getSource().getName();
            }
            if (mapping instanceof DatabaseMappingContainer) {
                if (mapping.getMappingType() == DatabaseMappingType.existing) {
                    return ((DatabaseMappingContainer) mapping).getTarget();
                }
                return mapping.getTargetName();
            } else {
                if (mapping.getMappingType() == DatabaseMappingType.existing) {
                    return ((DatabaseMappingAttribute) mapping).getTarget();
                }
                return mapping.getTargetName();
            }
        }

        @Override
        protected void setValue(Object element, Object value) {
            try {
                final DatabaseConsumerSettings settings = getWizard()
                        .getPageSettings(DatabaseConsumerPageMapping.this, DatabaseConsumerSettings.class);
                String name = CommonUtils.toString(value);
                DBPDataSource dataSource = settings.getTargetDataSource((DatabaseMappingObject) element);
                if (!name.equals(DatabaseMappingAttribute.TARGET_NAME_SKIP) && !name.equals(TARGET_NAME_BROWSE)
                        && dataSource != null) {
                    name = DBObjectNameCaseTransformer.transformName(dataSource, name);
                }
                setMappingTarget((DatabaseMappingObject) element, name);
                mappingViewer.refresh();
                mappingViewer.setSelection(mappingViewer.getSelection());
                updatePageCompletion();
                setErrorMessage(null);
            } catch (DBException e) {
                setErrorMessage(e.getMessage());
            }
        }
    });
    //TreeViewerEditor.create(mappingViewer, new TreeViewerFocusCellManager(), ColumnViewerEditor.TABBING_CYCLE_IN_ROW);

    TreeViewerColumn columnMapping = new TreeViewerColumn(mappingViewer, SWT.LEFT);
    columnMapping.setLabelProvider(new MappingLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement();
            String text = "";
            switch (mapping.getMappingType()) {
            case unspecified:
                text = "?";
                break;
            case existing:
                text = "existing";
                break;
            case create:
                text = "new";
                break;
            case skip:
                text = "skip";
                break;
            }
            cell.setText(text);
            super.update(cell);
        }
    });
    columnMapping.getColumn().setText("Mapping");

    mappingViewer.setContentProvider(new TreeContentProvider() {
        @Override
        public boolean hasChildren(Object element) {
            return element instanceof DatabaseMappingContainer;
        }

        @Override
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof DatabaseMappingContainer) {
                return ((DatabaseMappingContainer) parentElement).getAttributeMappings(getContainer())
                        .toArray();
            }
            return null;
        }
    });
}

From source file:org.jkiss.dbeaver.ui.controls.itemlist.ObjectListControl.java

License:Open Source License

protected void createColumn(ObjectPropertyDescriptor prop) {
    ObjectColumn objectColumn = null;//from   w w w . j a  v  a2s  . c om
    for (ObjectColumn col : columns) {
        if (col.id.equals(prop.getId())) {
            objectColumn = col;
            break;
        }
    }
    // Use prop class from top parent
    Class<?> propClass = prop.getParent() == null ? prop.getDeclaringClass()
            : prop.getParent().getDeclaringClass();
    if (objectColumn == null) {
        Item columnItem;
        ViewerColumn newColumn;
        boolean numeric = prop.isNumeric();
        if (renderer.isTree()) {
            TreeViewerColumn viewerColumn = new TreeViewerColumn((TreeViewer) itemsViewer,
                    numeric ? SWT.RIGHT : SWT.NONE);
            viewerColumn.getColumn().setText(prop.getDisplayName());
            viewerColumn.getColumn().setToolTipText(prop.getDescription());
            viewerColumn.getColumn().addListener(SWT.Selection, renderer.getSortListener());
            newColumn = viewerColumn;
            columnItem = viewerColumn.getColumn();
        } else {
            TableViewerColumn viewerColumn = new TableViewerColumn((TableViewer) itemsViewer,
                    numeric ? SWT.RIGHT : SWT.NONE);
            viewerColumn.getColumn().setText(prop.getDisplayName());
            viewerColumn.getColumn().setToolTipText(prop.getDescription());
            //column.setData(prop);
            viewerColumn.getColumn().addListener(SWT.Selection, renderer.getSortListener());
            newColumn = viewerColumn;
            columnItem = viewerColumn.getColumn();
        }
        newColumn.setLabelProvider(getColumnLabelProvider(columns.size()));
        final EditingSupport editingSupport = makeEditingSupport(newColumn, columns.size());
        if (editingSupport != null) {
            newColumn.setEditingSupport(editingSupport);
        }
        objectColumn = new ObjectColumn(newColumn, columnItem, CommonUtils.toString(prop.getId()));
        objectColumn.addProperty(propClass, prop);
        this.columns.add(objectColumn);
        columnItem.setData(DATA_OBJECT_COLUMN, objectColumn);
    } else {
        objectColumn.addProperty(propClass, prop);
        String oldTitle = objectColumn.item.getText();
        if (!oldTitle.contains(prop.getDisplayName())) {
            objectColumn.item.setText(CommonUtils.capitalizeWord(objectColumn.id));
        }
    }
}

From source file:org.jkiss.dbeaver.ui.controls.ViewerColumnController.java

License:Apache License

private void createVisibleColumns() {
    boolean hasLazyColumns = false;
    List<ColumnInfo> visibleColumns = getVisibleColumns();
    for (int i = 0; i < visibleColumns.size(); i++) {
        final ColumnInfo columnInfo = visibleColumns.get(i);
        columnInfo.order = i;/*from  w w w .  j  a v a  2  s. co  m*/
        final Item colItem;
        ViewerColumn viewerColumn;
        if (viewer instanceof TreeViewer) {
            final TreeViewerColumn item = new TreeViewerColumn((TreeViewer) viewer, columnInfo.style);
            viewerColumn = item;
            final TreeColumn 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);
            }
            column.addControlListener(new ControlAdapter() {
                @Override
                public void controlResized(ControlEvent e) {
                    columnInfo.width = column.getWidth();
                    saveColumnConfig();
                }

                @Override
                public void controlMoved(ControlEvent e) {
                    if (!isInitializing && e.getSource() instanceof TreeColumn) {
                        updateColumnOrder(column, column.getParent().getColumnOrder());
                    }
                }
            });
            columnInfo.column = column;
        } else if (viewer instanceof TableViewer) {
            final TableViewerColumn item = new TableViewerColumn((TableViewer) viewer, columnInfo.style);
            viewerColumn = item;
            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);
            }
            column.addControlListener(new ControlAdapter() {
                @Override
                public void controlResized(ControlEvent e) {
                    columnInfo.width = column.getWidth();
                    saveColumnConfig();
                }

                @Override
                public void controlMoved(ControlEvent e) {
                    if (!isInitializing && e.getSource() instanceof TableColumn) {
                        updateColumnOrder(column, column.getParent().getColumnOrder());
                    }
                }
            });
            columnInfo.column = column;
        } else {
            continue;
        }
        viewerColumn.setLabelProvider(columnInfo.labelProvider);
        viewerColumn.setEditingSupport(columnInfo.editingSupport);
        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.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   ww w .j a v  a 2 s  . c o m
    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;//from  w w w .j  ava  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());
                }
            }
        }
    };
}