Example usage for org.eclipse.jface.viewers ViewerCell setImage

List of usage examples for org.eclipse.jface.viewers ViewerCell setImage

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerCell setImage.

Prototype

public void setImage(Image image) 

Source Link

Document

Set the Image for the cell.

Usage

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);
}