List of usage examples for org.eclipse.jface.viewers ViewerCell setImage
public void setImage(Image image)
From source file:de.bmw.yamaica.common.ui.internal.dialogs.LaunchConfigurationSelectionPage.java
License:Mozilla Public License
protected IBaseLabelProvider getLabelProvider() { return new CellLabelProvider() { @Override/*from w w w. j ava 2s . c om*/ public void update(ViewerCell cell) { ILaunchConfiguration launchConfiguration = (ILaunchConfiguration) cell.getElement(); cell.setText(launchConfiguration.getName()); cell.setImage(DebugUITools.getDefaultImageDescriptor(launchConfiguration).createImage()); } }; }
From source file:de.bmw.yamaica.common.ui.internal.dialogs.LaunchConfigurationTypeSelectionPage.java
License:Mozilla Public License
protected IBaseLabelProvider getLabelProvider() { return new CellLabelProvider() { @Override// w w w . j a va 2s .com public void update(ViewerCell cell) { ILaunchConfigurationType launchConfigurationType = ((LaunchConfigurationTypeData) cell .getElement()).launchConfigurationType; cell.setText(launchConfigurationType.getName()); cell.setImage(DebugUITools.getDefaultImageDescriptor(launchConfigurationType).createImage()); } }; }
From source file:de.bmw.yamaica.common.ui.internal.dialogs.YamaicaWizardSelectionPage.java
License:Mozilla Public License
protected IBaseLabelProvider getLabelProvider() { return new CellLabelProvider() { @Override/*from ww w. j a va 2 s. c o m*/ public void update(ViewerCell cell) { Object cellElement = cell.getElement(); if (cellElement instanceof TreeNode) cellElement = ((TreeNode) cellElement).getValue(); if (cellElement instanceof IWizardDescriptor) { IWizardDescriptor wizardDescriptor = (IWizardDescriptor) cellElement; ImageDescriptor imageDescriptor = wizardDescriptor.getImageDescriptor(); if (null != imageDescriptor) { cell.setImage(imageDescriptor.createImage()); } cell.setText(wizardDescriptor.getLabel()); } else if (cellElement instanceof WizardCategory) { WizardCategory wizardCategory = (WizardCategory) cellElement; cell.setText(wizardCategory.getLabel()); if (wizardCategory.getImageDescriptor() != null) { cell.setImage(wizardCategory.getImageDescriptor().createImage()); } } else cell.setText(cellElement.toString()); } }; }
From source file:de.byteholder.geoclipse.mapprovider.DialogMPProfile.java
License:Open Source License
/** * create columns for the tree viewer/*from w w w .j av a2s .c o m*/ * * @param pixelConverter */ private void createUI116ViewerColumns(final TreeColumnLayout treeLayout, final PixelConverter pixelConverter) { TreeViewerColumn tvc; TreeColumn tc; /* * column: map provider */ tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Dialog_MapProfile_Column_MapProvider); tc.setToolTipText(Messages.Dialog_MapProfile_Column_MapProvider_Tooltip); tvc.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(final ViewerCell cell) { final StyledString styledString = new StyledString(); final Object element = cell.getElement(); if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); final MP mapProvider = mpWrapper.getMP(); styledString.append(mapProvider.getName()); cell.setImage(mpWrapper.isDisplayedInMap() ? _imageMap : _imagePlaceholder); } else if (element instanceof TVIWmsLayer) { final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer(); styledString.append(mtLayer.getGeoLayer().getTitle()); styledString.append(" (", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$ styledString.append(mtLayer.getGeoLayer().getName(), StyledString.QUALIFIER_STYLER); styledString.append(")", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$ cell.setImage(mtLayer.isDisplayedInMap() ? _imageLayer : _imagePlaceholder); } else { styledString.append(element.toString()); } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); treeLayout.setColumnData(tc, new ColumnWeightData(100, true)); /* * column: is visible */ tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Dialog_MapProfile_Column_IsVisible); tc.setToolTipText(Messages.Dialog_MapProfile_Column_IsVisible_Tooltip); tvc.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); cell.setText(Boolean.toString(mpWrapper.isDisplayedInMap())); } else if (element instanceof TVIWmsLayer) { final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer(); cell.setText(Boolean.toString(mtLayer.isDisplayedInMap())); } else { cell.setText(UI.EMPTY_STRING); } } }); tvc.setEditingSupport(new EditingSupport(_treeViewer) { private final CheckboxCellEditor fCellEditor = new CheckboxCellEditor(_treeViewer.getTree()); @Override protected boolean canEdit(final Object element) { if (element instanceof TVIMapProvider) { final TVIMapProvider tvi = (TVIMapProvider) element; final MP mapProvider = tvi.getMapProviderWrapper().getMP(); if (mapProvider instanceof MPWms) { // wms can be toggled when at least one layer is displayed return canWmsBeDisplayed((MPWms) mapProvider); } } return true; } @Override protected CellEditor getCellEditor(final Object element) { return fCellEditor; } @Override protected Object getValue(final Object element) { if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); return mpWrapper.isDisplayedInMap(); } else if (element instanceof TVIWmsLayer) { final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer(); return mtLayer.isDisplayedInMap(); } return null; } @Override protected void setValue(final Object element, final Object value) { final boolean isChecked = ((Boolean) value); if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); mpWrapper.setIsDisplayedInMap(isChecked); if (isChecked) { /* * remove parent tiles from loading cache because they can have loading * errors (from their children) which prevents them to be loaded again */ _mpProfile.resetParentTiles(); } enableProfileMapButton(); } else if (element instanceof TVIWmsLayer) { final TVIWmsLayer tviLayer = (TVIWmsLayer) element; final MtLayer mtLayer = tviLayer.getMtLayer(); mtLayer.setIsDisplayedInMap(isChecked); updateMVMapProvider(tviLayer); } // update viewer getViewer().update(element, null); updateLiveView(); } }); treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10))); /* * column: alpha */ tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Dialog_MapProfile_Column_Alpha); tc.setToolTipText(Messages.Dialog_MapProfile_Column_Alpha_Tooltip); tvc.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); cell.setText(Integer.toString(mpWrapper.getAlpha())); } else { cell.setText(UI.EMPTY_STRING); } } }); treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10))); /* * column: brightness */ tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD); tc = tvc.getColumn(); tc.setText(Messages.Dialog_MapProfile_Column_Brightness); tc.setToolTipText(Messages.Dialog_MapProfile_Column_Brightness_Tooltip); tvc.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); if (element instanceof TVIMapProvider) { final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper(); cell.setText(mpWrapper.isBrightnessForNextMp() ? Integer.toString(mpWrapper.getBrightnessValueForNextMp()) : UI.EMPTY_STRING); } else { cell.setText(UI.EMPTY_STRING); } } }); treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10))); /* * column: empty to prevent scrolling to the right when the right column is selected */ tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { /* * !!! label provider is necessary to prevent a NPE !!! */ } }); tc = tvc.getColumn(); treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4))); }
From source file:de.instanttouch.ui.scaffolding.swt.viewer.lazy.SnakeLazyTableViewer.java
License:Open Source License
private String handleTextOrImage(final ViewerCell cell, SnakeType dataItem, final TableViewerColumn viewerColumn) { ColumnInfo info = presenter.getVisibleColumns().get(cell.getColumnIndex()); String urlStr = dataItem.toString(); Image image = SnakeSwtUtils.createImage(urlStr); if (image != null) { cell.setImage(image); }/*ww w . j a v a2s . c om*/ String converted = layoutText(cell, dataItem, viewerColumn); final SnakeType resizeCell = dataItem; viewerColumn.getColumn().addControlListener(new ControlListener() { @Override public void controlResized(ControlEvent e) { layoutText(cell, resizeCell, viewerColumn); } @Override public void controlMoved(ControlEvent e) { } }); return converted; }
From source file:de.topicmapslab.onotoa.wordlisteditor.editor.WordListEditor.java
License:Open Source License
/** * Creates the table viewer and columns. * //from w w w . ja v a2 s .co m * @param table * the table which will be used by the wrapper */ private void initTable(final Table table) { TableColumnLayout layout = (TableColumnLayout) table.getParent().getLayout(); table.setLinesVisible(true); table.setHeaderVisible(true); table.setMenu(new Menu(table)); table.addKeyListener(new KeyAdapter() { /** * {@inheritDoc} */ @Override public void keyPressed(KeyEvent e) { if ((e.keyCode == (int) 'c') && ((e.stateMask & SWT.CTRL) != 0)) { Clipboard clipboard = new Clipboard(e.widget.getDisplay()); StringBuilder builder = new StringBuilder(); String lineSeparator = System.getProperty("line.separator"); IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); Iterator<?> it = sel.iterator(); while (it.hasNext()) { Word w = (Word) it.next(); builder.append("\""); builder.append(w.getWord()); builder.append("\""); builder.append(";"); builder.append(w.getType().getName()); if (it.hasNext()) { builder.append(lineSeparator); } } clipboard.setContents(new Object[] { builder.toString() }, new Transfer[] { TextTransfer.getInstance() }); clipboard.dispose(); } } }); viewer = new CheckboxTableViewer(table); viewer.setContentProvider(ArrayContentProvider.getInstance()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { removeButton.setEnabled(viewer.getCheckedElements().length != 0); } }); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, null, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); // word column TableViewerColumn tvc = new TableViewerColumn(viewer, SWT.NONE); layout.setColumnData(tvc.getColumn(), new ColumnWeightData(1)); tvc.getColumn().setText("Word"); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((Word) cell.getElement()).getWord()); } }); tvc.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { WordListContainer wlc = (WordListContainer) viewer.getInput(); Word w = (Word) element; if (w.getWord().equals(value)) return; if (wlc.containsWord((String) value)) { MessageDialog.openInformation(table.getShell(), "Word already entered", "The word <" + value + "> was already entered"); return; } AbstractCommand cmd = null; cmd = new ModifyWordCommand(w, (String) value); commandStack.execute(cmd); viewer.refresh(element); } @Override protected Object getValue(Object element) { Word w = (Word) element; return w.getWord(); } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(table); } @Override protected boolean canEdit(Object element) { return true; } }); // create column sorter new AbstractColumnViewerSorter(viewer, tvc) { @Override public String getText(Object element) { return ((Word) element).getWord(); } }; // type column tvc = new TableViewerColumn(viewer, SWT.NONE); tvc.getColumn().setText("Type"); layout.setColumnData(tvc.getColumn(), new ColumnWeightData(1)); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { String name = ((Word) cell.getElement()).getType().getName(); cell.setText(name); cell.setImage(ImageProvider.getImageOfKindOfTopic(KindOfTopicType.getByName(name))); } }); tvc.setEditingSupport(new EditingSupport(viewer) { final String[] ITEMS = { KindOfTopicType.TOPIC_TYPE.getName(), KindOfTopicType.OCCURRENCE_TYPE.getName(), KindOfTopicType.NAME_TYPE.getName(), KindOfTopicType.ROLE_TYPE.getName(), KindOfTopicType.ASSOCIATION_TYPE.getName(), KindOfTopicType.NO_TYPE.getName() }; @Override protected void setValue(Object element, Object value) { int val = (Integer) value; // jump from scope to no type index if (val == 5) val = 6; KindOfTopicType type = KindOfTopicType.get(val); WordListContainer wlc = (WordListContainer) viewer.getInput(); Word w = (Word) element; AbstractCommand cmd = null; if (wlc.contains(w)) { cmd = new ModifyWordTypeCommand((Word) element, type); commandStack.execute(cmd); viewer.refresh(element); } else { cmd = new AddWordCommand(wlc, w.getWord(), type); commandStack.execute(cmd); viewer.refresh(); } } @Override protected Object getValue(Object element) { int val = ((Word) element).getType().getValue(); // switching from scope to no type if (val == 6) val = 5; return val; } @Override protected CellEditor getCellEditor(Object element) { ComboBoxCellEditor comboBoxCellEditor = new ComboBoxCellEditor(table, ITEMS, SWT.READ_ONLY); return comboBoxCellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); // create column sorter new AbstractColumnViewerSorter(viewer, tvc) { @Override public String getText(Object element) { if (((WordListContainer) viewer.getInput()).contains(element)) return ((Word) element).getType().getName(); // hack so hopefully the new element is always the last else return "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZ"; } }; tvc = new TableViewerColumn(viewer, SWT.NONE); layout.setColumnData(tvc.getColumn(), new ColumnWeightData(2)); tvc.getColumn().setText("Comment"); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { String tmp = ((Word) cell.getElement()).getComment(); if (tmp == null) tmp = ""; cell.setText(tmp); } }); tvc.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { AbstractCommand cmd = null; cmd = new ModifyWordCommentCommand((Word) element, (String) value); commandStack.execute(cmd); viewer.refresh(element); } @Override protected Object getValue(Object element) { String tmp = ((Word) element).getComment(); if (tmp == null) return ""; return tmp; } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(table); } @Override protected boolean canEdit(Object element) { return true; } }); }
From source file:de.walware.docmlet.tex.ui.TexLabelProvider.java
License:Open Source License
@Override public void update(final ViewerCell cell) { final Object cellElement = cell.getElement(); if (cellElement instanceof IModelElement) { final IModelElement element = (IModelElement) cellElement; cell.setImage(getImage(element)); final StyledString styledText = getStyledText(element); cell.setText(styledText.getString()); cell.setStyleRanges(styledText.getStyleRanges()); super.update(cell); } else {/*from ww w . j a v a 2 s .co m*/ cell.setImage(null); cell.setText(cellElement.toString()); cell.setStyleRanges(null); super.update(cell); } }
From source file:de.walware.statet.r.internal.console.ui.launching.RRemoteConsoleSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { // page group final Composite area = (Composite) super.createDialogArea(parent); createMessageArea(area);/*www . jav a 2 s .c o m*/ final IDialogSettings dialogSettings = getDialogSettings(); { final Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); composite.setLayout(LayoutUtil.applyCompositeDefaults(new GridLayout(), 3)); final Label label = new Label(composite, SWT.NONE); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); label.setText(RConsoleMessages.RRemoteConsoleSelectionDialog_Hostname_label); fHostAddressControl = new Combo(composite, SWT.DROP_DOWN); final GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false); gd.widthHint = LayoutUtil.hintWidth(fHostAddressControl, 50); fHostAddressControl.setLayoutData(gd); final String[] history = dialogSettings.getArray(SETTINGS_HOST_HISTORY_KEY); if (history != null) { fHistoryAddress.addAll(Arrays.asList(history)); } fHostAddressControl.addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(final SelectionEvent e) { update(); } }); final Button goButton = new Button(composite, SWT.PUSH); goButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); goButton.setText(RConsoleMessages.RRemoteConsoleSelectionDialog_Update_label); goButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { update(); } }); } { final TreeComposite composite = new TreeComposite(area, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.heightHint = LayoutUtil.hintHeight(composite.tree, 10); composite.setLayoutData(gd); fRServerViewer = composite.viewer; composite.tree.setHeaderVisible(true); ColumnViewerToolTipSupport.enableFor(composite.viewer); { final TreeViewerColumn column = new TreeViewerColumn(fRServerViewer, SWT.NONE); column.getColumn().setText(RConsoleMessages.RRemoteConsoleSelectionDialog_Table_UserOrEngine_label); composite.layout.setColumnData(column.getColumn(), new ColumnWeightData(1)); column.setLabelProvider(new RemoteRLabelProvider() { @Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); String text = null; Image image = null; if (element instanceof String) { text = (String) element; image = SharedUIResources.getImages().get(SharedUIResources.OBJ_USER_IMAGE_ID); } else if (element instanceof RemoteR) { text = getText((RemoteR) element); } cell.setText(text); cell.setImage(image); } @Override public String getText(final RemoteR r) { return r.info.getName(); } }); } { final TreeViewerColumn column = new TreeViewerColumn(fRServerViewer, SWT.NONE); column.getColumn().setText(RConsoleMessages.RRemoteConsoleSelectionDialog_Table_Host_label); composite.layout.setColumnData(column.getColumn(), new ColumnWeightData(1)); column.setLabelProvider(new RemoteRLabelProvider() { @Override public String getText(final RemoteR r) { return r.hostName; } }); } fRServerViewer.setContentProvider(new RemoteRContentProvider()); fRServerViewer.getTree().addSelectionListener(new SelectionListener() { @Override public void widgetSelected(final SelectionEvent e) { updateState(); } @Override public void widgetDefaultSelected(final SelectionEvent e) { updateState(); if (getOkButton().isEnabled()) { buttonPressed(IDialogConstants.OK_ID); } } }); } Dialog.applyDialogFont(area); updateInput(); if (fRServerList != null) { updateStatus(new Status(IStatus.OK, RConsoleUIPlugin.PLUGIN_ID, RConsoleMessages.RRemoteConsoleSelectionDialog_info_ListRestored_message)); } return area; }
From source file:de.walware.statet.r.internal.debug.ui.preferences.REnvLocalConfigDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { final Composite area = new Composite(parent, SWT.NONE); area.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); area.setLayout(LayoutUtil.createDialogGrid(2)); { // Name://from w w w . ja va 2s . com final Label label = new Label(area, SWT.LEFT); label.setText(Messages.REnv_Detail_Name_label + ':'); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); fNameControl = new Text(area, SWT.BORDER); final GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false); gd.widthHint = LayoutUtil.hintWidth(fNameControl, 60); fNameControl.setLayoutData(gd); fNameControl.setEditable(fConfigModel.isEditable()); } if (fConfigModel.isEditable()) { // Location: final Label label = new Label(area, SWT.LEFT); label.setText(Messages.REnv_Detail_Location_label + ':'); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); fRHomeControl = new RHomeComposite(area); fRHomeControl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); } LayoutUtil.addSmallFiller(area, false); { // Architecture / Bits: final Label label = new Label(area, SWT.LEFT); label.setText(Messages.REnv_Detail_Arch_label + ':'); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); final Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); composite.setLayout(LayoutUtil.createCompositeGrid(3)); { fRArchControl = new Combo(composite, SWT.DROP_DOWN); final GridData gd = new GridData(SWT.FILL, SWT.FILL, false, false); gd.widthHint = LayoutUtil.hintWidth(fRArchControl, 8); fRArchControl.setLayoutData(gd); fRArchControl.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { final int selectionIdx; if (!fRArchControl.getListVisible() && (selectionIdx = fRArchControl.getSelectionIndex()) >= 0) { final String item = fRArchControl.getItem(selectionIdx); } } }); fRArchControl.setEnabled(fConfigModel.isEditable()); } if (fConfigModel.isEditable()) { fLoadButton = new Button(composite, SWT.PUSH); fLoadButton.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, false, 2, 1)); fLoadButton.setText(Messages.REnv_Detail_DetectSettings_label); fLoadButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { detectSettings(); } }); } else { LayoutUtil.addGDDummy(composite, true, 2); } } { // Libraries: final Label label = new Label(area, SWT.LEFT); label.setText(Messages.REnv_Detail_Libraries_label + ":"); //$NON-NLS-1$ label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false)); final Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(LayoutUtil.createCompositeGrid(2)); final TreeComposite treeComposite = new ViewerUtil.TreeComposite(composite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); fRLibrariesViewer = treeComposite.viewer; final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = LayoutUtil.hintWidth(fNameControl, 80); gd.heightHint = LayoutUtil.hintHeight(treeComposite.tree, 10); treeComposite.setLayoutData(gd); treeComposite.viewer.setContentProvider(new ITreeContentProvider() { @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } @Override public void dispose() { } @Override public Object[] getElements(final Object inputElement) { return fConfigModel.getRLibraryGroups().toArray(); } @Override public Object getParent(final Object element) { if (element instanceof RLibraryContainer) { return ((RLibraryContainer) element).parent; } return null; } @Override public boolean hasChildren(final Object element) { if (element instanceof IRLibraryGroup.WorkingCopy) { return !((IRLibraryGroup.WorkingCopy) element).getLibraries().isEmpty(); } return false; } @Override public Object[] getChildren(final Object parentElement) { if (parentElement instanceof IRLibraryGroup.WorkingCopy) { final IRLibraryGroup.WorkingCopy group = (IRLibraryGroup.WorkingCopy) parentElement; final List<? extends IRLibraryLocation.WorkingCopy> libs = group.getLibraries(); final RLibraryContainer[] array = new RLibraryContainer[libs.size()]; for (int i = 0; i < libs.size(); i++) { array[i] = new RLibraryContainer(group, libs.get(i)); } return array; } return null; } }); final TreeViewerColumn column = treeComposite.addColumn(SWT.LEFT, new ColumnWeightData(100)); column.setLabelProvider(new REnvLabelProvider() { @Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); if (element instanceof RLibraryContainer) { final IRLibraryLocation lib = ((RLibraryContainer) element).library; cell.setImage(RUI.getImage(RUI.IMG_OBJ_LIBRARY_LOCATION)); if (lib.getSource() != IRLibraryLocation.USER && lib.getLabel() != null) { cell.setText(lib.getLabel()); } else { cell.setText(lib.getDirectoryPath()); } finishUpdate(cell); return; } super.update(cell); } }); column.setEditingSupport(new EditingSupport(treeComposite.viewer) { @Override protected boolean canEdit(final Object element) { if (element instanceof RLibraryContainer) { final RLibraryContainer container = ((RLibraryContainer) element); return (container.library.getSource() == IRLibraryLocation.USER); } return false; } @Override protected void setValue(final Object element, final Object value) { final RLibraryContainer container = (RLibraryContainer) element; container.library.setDirectoryPath((String) value); getViewer().refresh(container, true); getDataBinding().updateStatus(); } @Override protected Object getValue(final Object element) { final RLibraryContainer container = (RLibraryContainer) element; return container.library.getDirectoryPath(); } @Override protected CellEditor getCellEditor(final Object element) { return new ExtensibleTextCellEditor(treeComposite.tree) { @Override protected Control createCustomControl(final Composite parent) { final ResourceInputComposite chooseResourceComposite = new ResourceInputComposite( parent, ResourceInputComposite.STYLE_TEXT, ResourceInputComposite.MODE_DIRECTORY | ResourceInputComposite.MODE_OPEN, Messages.REnv_Detail_LibraryLocation_label) { @Override protected void beforeMenuAction() { getFocusGroup().discontinueTracking(); } @Override protected void afterMenuAction() { getFocusGroup().continueTracking(); } }; chooseResourceComposite.setShowInsertVariable(true, DialogUtil.DEFAULT_NON_ITERACTIVE_FILTERS, null); fText = (Text) chooseResourceComposite.getTextControl(); return chooseResourceComposite; } }; } }); treeComposite.viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS); treeComposite.viewer.setInput(fConfigModel); ViewerUtil.installDefaultEditBehaviour(treeComposite.viewer); ViewerUtil.scheduleStandardSelection(treeComposite.viewer); fRLibrariesButtons = new ButtonGroup<IRLibraryLocation.WorkingCopy>(composite) { @Override protected IRLibraryLocation.WorkingCopy edit1(final IRLibraryLocation.WorkingCopy item, final boolean newItem, final Object parent) { if (newItem) { return ((IRLibraryGroup.WorkingCopy) parent).newLibrary(""); //$NON-NLS-1$ } return item; } @Override public void updateState() { super.updateState(); if (getDataAdapter().isDirty()) { getDataBinding().updateStatus(); } } }; fRLibrariesButtons.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true)); fRLibrariesButtons.addAddButton(null); fRLibrariesButtons.addDeleteButton(null); // fRLibrariesButtons.addSeparator(); // fRLibrariesButtons.addUpButton(); // fRLibrariesButtons.addDownButton(); final DataAdapter<IRLibraryLocation.WorkingCopy> adapter = new DataAdapter.ListAdapter<IRLibraryLocation.WorkingCopy>( (ITreeContentProvider) fRLibrariesViewer.getContentProvider(), null, null) { private IRLibraryGroup.WorkingCopy getGroup(final Object element) { if (element instanceof IRLibraryGroup.WorkingCopy) { return (IRLibraryGroup.WorkingCopy) element; } else { return ((RLibraryContainer) element).parent; } } @Override public IRLibraryLocation.WorkingCopy getModelItem(final Object element) { if (element instanceof RLibraryContainer) { return ((RLibraryContainer) element).library; } return (IRLibraryLocation.WorkingCopy) element; } @Override public Object getViewerElement(final IRLibraryLocation.WorkingCopy item, final Object parent) { return new RLibraryContainer((IRLibraryGroup.WorkingCopy.WorkingCopy) parent, item); } @Override public boolean isAddAllowed(final Object element) { return !getGroup(element).getId().equals(IRLibraryGroup.R_DEFAULT); } @Override public boolean isModifyAllowed(final Object element) { return (element instanceof RLibraryContainer && ((RLibraryContainer) element).library.getSource() == IRLibraryLocation.USER); } @Override public Object getAddParent(final Object element) { return getGroup(element); } @Override public List<? super IRLibraryLocation.WorkingCopy> getContainerFor(final Object element) { if (element instanceof IRLibraryGroup.WorkingCopy) { return ((IRLibraryGroup.WorkingCopy) element).getLibraries(); } else { return ((RLibraryContainer) element).parent.getLibraries(); } } }; fRLibrariesButtons.connectTo(fRLibrariesViewer, adapter); } if (fConfigModel.isEditable()) { final Composite group = createInstallDirGroup(area); if (group != null) { group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); } } LayoutUtil.addSmallFiller(area, true); applyDialogFont(area); return area; }
From source file:de.walware.statet.r.internal.ui.dataeditor.RDataLabelProvider.java
License:Open Source License
@Override public void update(final ViewerCell cell) { Image image;/*from w w w . ja va 2 s . co m*/ final StyledString text = new StyledString(); final Object element = cell.getElement(); if (element instanceof RDataTableContentDescription) { final RDataTableContentDescription description = (RDataTableContentDescription) element; if (description.getRElementStruct() instanceof ICombinedRElement) { fRLabelProvider.update(cell, (IModelElement) description.getRElementStruct()); super.update(cell); return; } switch (description.getRElementStruct().getRObjectType()) { case RObject.TYPE_VECTOR: image = RUI.getImage(RUI.IMG_OBJ_VECTOR); break; case RObject.TYPE_ARRAY: image = RUI.getImage(RUI.IMG_OBJ_VECTOR); break; case RObject.TYPE_DATAFRAME: image = RUI.getImage(RUI.IMG_OBJ_VECTOR); break; default: image = null; break; } text.append(description.getElementName().toString()); } else if (element instanceof IRDataTableVariable) { final IRDataTableVariable variable = (IRDataTableVariable) element; image = getImage(variable); text.append(variable.getName()); if (element instanceof RDataTableColumn) { final RDataTableColumn column = (RDataTableColumn) variable; text.append(" : ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ final List<String> classNames = column.getClassNames(); text.append(classNames.get(0), StyledString.DECORATIONS_STYLER); for (int i = 1; i < classNames.size(); i++) { text.append(", ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ text.append(classNames.get(i), StyledString.DECORATIONS_STYLER); } if (!classNames.contains(RDataUtil.getStoreClass(column.getDataStore()))) { text.append(" (", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ text.append(RDataUtil.getStoreAbbr(column.getDataStore()), StyledString.DECORATIONS_STYLER); text.append(")", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } } } else if (element instanceof VariablePropertyItem) { final VariablePropertyItem item = (VariablePropertyItem) element; image = null; text.append(item.getName()); final int count = item.getCount(); if (count >= 0) { text.append(" (", StyledString.COUNTER_STYLER); //$NON-NLS-1$ text.append(Integer.toString(count), StyledString.COUNTER_STYLER); text.append(")", StyledString.COUNTER_STYLER); //$NON-NLS-1$ } } else { image = null; text.append(element.toString()); } cell.setText(text.getString()); cell.setStyleRanges(text.getStyleRanges()); cell.setImage(image); super.update(cell); }