List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn
public TreeViewerColumn(TreeViewer viewer, TreeColumn column)
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()); } } } }; }