Example usage for org.eclipse.jface.viewers ComboBoxCellEditor setItems

List of usage examples for org.eclipse.jface.viewers ComboBoxCellEditor setItems

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ComboBoxCellEditor setItems.

Prototype

public void setItems(String[] items) 

Source Link

Document

Sets the list of choices for the combo box

Usage

From source file:com.microsoft.tfs.client.common.ui.wit.qe.QueryEditorCellModifier.java

License:Open Source License

public void hookCellEditors() {
    /*//from   www.  j av  a2s. co m
     * Hook all column combo boxes so we can later retrieve the typed text.
     */
    hookComboBoxCellEditor(QueryEditorControl.LOGICAL_OPERATOR_COLUMN);
    hookComboBoxCellEditor(QueryEditorControl.FIELD_NAME_COLUMN);
    hookComboBoxCellEditor(QueryEditorControl.OPERATOR_COLUMN);
    hookComboBoxCellEditor(QueryEditorControl.VALUE_COLUMN);

    /*
     * Set the items and visible item count for the logical operator column
     * - these items are the same for every row.
     */
    ComboBoxCellEditor comboBoxCellEditor = (ComboBoxCellEditor) getCellEditorForProperty(
            QueryEditorControl.LOGICAL_OPERATOR_COLUMN);
    comboBoxCellEditor.setItems(getItemsForLogicalOperatorCombo());
    setVisibleItemCount(QueryEditorControl.LOGICAL_OPERATOR_COLUMN);

    /*
     * Set the items and visible item count for the field column - these
     * items are the same for every row.
     */
    comboBoxCellEditor = (ComboBoxCellEditor) getCellEditorForProperty(QueryEditorControl.FIELD_NAME_COLUMN);
    comboBoxCellEditor.setItems(getItemsForFieldCombo());
    setVisibleItemCount(QueryEditorControl.FIELD_NAME_COLUMN);

    normalValueCellEditor = getCellEditorForProperty(QueryEditorControl.VALUE_COLUMN);
}

From source file:com.microsoft.tfs.client.common.ui.wit.qe.QueryEditorCellModifier.java

License:Open Source License

/**
 * Sets the given array of items on the ComboBoxCellEditor indicated by the
 * given column property./*  w  w  w  . j ava2  s  . c  om*/
 */
private void setComboBoxCellEditorItems(final String property, final String[] items) {
    final ComboBoxCellEditor comboBoxCellEditor = (ComboBoxCellEditor) getCellEditorForProperty(property);
    comboBoxCellEditor.setItems(items);
}

From source file:com.ociweb.gmf.EnumDirectEdit.EnumDirectEditManager.java

License:Open Source License

protected void initCellEditor() {
    committed = false;/*from   ww  w . ja v  a2  s. co  m*/

    ComboBoxCellEditor cellEditor = (ComboBoxCellEditor) getCellEditor();
    cellEditor.setItems(enumNames);

    ITextAwareEditPart textEP = (ITextAwareEditPart) getEditPart();

    IFigure label = textEP.getFigure();
    Assert.isNotNull(label);
    CCombo combo = (CCombo) cellEditor.getControl();
    // scale the font accordingly to the zoom level
    combo.setFont(getScaledFont(label));

    combo.pack();

}

From source file:eu.geclipse.ui.widgets.TabComponent.java

License:Open Source License

protected void addComboEditor(final ComboBoxCellEditor editor, final String[] types, final boolean readOnly) {
    editor.create(this.table.getTable());
    editor.setItems(types);
    if (readOnly) {
        editor.setStyle(SWT.READ_ONLY);//from www.j a v  a 2s  .  c o m
    }
    this.cellEditors.add(editor);
}

From source file:ext.org.eclipse.jdt.internal.ui.refactoring.PullUpMemberPage.java

License:Open Source License

private void setupCellEditors(final Table table) {
    final ComboBoxCellEditor editor = new ComboBoxCellEditor();
    editor.setStyle(SWT.READ_ONLY);//from   w w w. j av  a  2 s  . c o  m
    fTableViewer.setCellEditors(new CellEditor[] { null, editor });
    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            if (editor.getControl() == null & !table.isDisposed())
                editor.create(table);
            final ISelection sel = event.getSelection();
            if (!(sel instanceof IStructuredSelection))
                return;
            final IStructuredSelection structured = (IStructuredSelection) sel;
            if (structured.size() != 1)
                return;
            final MemberActionInfo info = (MemberActionInfo) structured.getFirstElement();
            editor.setItems(info.getAllowedLabels());
            editor.setValue(new Integer(info.getAction()));
        }
    });

    final ICellModifier cellModifier = new MemberActionCellModifier();
    fTableViewer.setCellModifier(cellModifier);
    fTableViewer.setColumnProperties(new String[] { MEMBER_PROPERTY, ACTION_PROPERTY });
}

From source file:org.eclipse.cdt.embsysregview.views.EmbSysRegView.java

License:Open Source License

/**
 * This is a callback that creates the viewer and initialize it.
 *//*  ww  w . j a v  a2 s  .c  om*/
public void createPartControl(final Composite parent) {
    Bundle bundle = Platform.getBundle("org.eclipse.cdt.embsysregview");
    URL fileURL = bundle.getEntry("icons/selected_register.png");
    URL fileURL2 = bundle.getEntry("icons/unselected_register.png");
    URL fileURL3 = bundle.getEntry("icons/selected_field.png");
    URL fileURL4 = bundle.getEntry("icons/unselected_field.png");
    URL fileURL5 = bundle.getEntry("icons/info.png");
    URL fileURL6 = bundle.getEntry("icons/interpretation.png");
    URL fileURL7 = bundle.getEntry("icons/config.png");

    try {
        selectedImage = new Image(parent.getDisplay(), fileURL.openStream());
        unselectedImage = new Image(parent.getDisplay(), fileURL2.openStream());
        selectedFieldImage = new Image(parent.getDisplay(), fileURL3.openStream());
        unselectedFieldImage = new Image(parent.getDisplay(), fileURL4.openStream());
        infoImage = new Image(parent.getDisplay(), fileURL5.openStream());
        interpretationImage = new Image(parent.getDisplay(), fileURL6.openStream());
        configButtonImage = new Image(parent.getDisplay(), fileURL7.openStream());
    } catch (Exception e) {
        selectedImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        unselectedImage = PlatformUI.getWorkbench().getSharedImages()
                .getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        selectedFieldImage = PlatformUI.getWorkbench().getSharedImages()
                .getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        unselectedFieldImage = PlatformUI.getWorkbench().getSharedImages()
                .getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        infoImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        interpretationImage = PlatformUI.getWorkbench().getSharedImages()
                .getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
        configButtonImage = PlatformUI.getWorkbench().getSharedImages()
                .getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
    }

    TreeViewerColumn column;
    parent.setLayout(new MigLayout("fill", "", ""));

    header = new Composite(parent, SWT.NONE);
    /*header.setLayout(new MigLayout("fill","",""));*/
    header.setLayoutData("dock north,height 16px,width 100%,wmin 0,hmin 16,gap 0 0 -5 0");
    RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);

    rowLayout.marginLeft = -1;
    rowLayout.marginRight = 0;
    rowLayout.marginTop = -1;
    rowLayout.marginBottom = 0;
    rowLayout.fill = true;
    rowLayout.wrap = false;
    rowLayout.spacing = 5;
    header.setLayout(rowLayout);

    configButton = new Button(header, SWT.FLAT);
    configButton.setImage(configButtonImage);
    configButton.setSize(17, 17);
    RowData data = new RowData();
    data.width = 17;
    data.height = 17;
    configButton.setLayoutData(data);
    configButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            if (e.type == SWT.Selection) {
                IPreferencePage page = new PreferencePageEmbSys();
                page.setTitle("EmbSysRegView");
                IPreferencePage page2 = new PreferencePageEmbSysBehavior();
                page2.setTitle("Behavior");
                PreferenceManager mgr = new PreferenceManager();
                IPreferenceNode node = new PreferenceNode("1", page);
                node.add(new PreferenceNode("2", page2));
                mgr.addToRoot(node);
                PreferenceDialog dialog = new PreferenceDialog(
                        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), mgr);
                dialog.create();
                dialog.setMessage(page.getTitle());
                dialog.open();
            }
        }
    });

    collapseButton = new Button(header, SWT.FLAT);
    collapseButton.setLayoutData(new RowData(17, 17));
    collapseButton
            .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ELCL_COLLAPSEALL));
    collapseButton.setToolTipText("Collapse all open tree nodes");
    collapseButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            if (e.type == SWT.Selection) {
                viewer.collapseAll();
            }
        }
    });

    activateAllButton = new Button(header, SWT.FLAT);
    activateAllButton.setLayoutData(new RowData(17, 17));
    activateAllButton.setText("*"); // Not very clear, should/could be some custom graphics featuring the color green, perhaps?
    activateAllButton.setToolTipText(
            "Activate all registers (or none, if Control is pressed); press Shift to only affect visible registers");
    activateAllButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            if (e.type == SWT.Selection) {
                activateAll((e.stateMask & SWT.CONTROL) == 0, (e.stateMask & SWT.SHIFT) != 0);
            }
        }
    });

    copyButton = new Button(header, SWT.FLAT);
    copyButton.setLayoutData(new RowData(17, 17));
    copyButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_COPY));
    copyButton.setToolTipText("Copy active (green) register values to clipboard");
    copyButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            if (e.type == SWT.Selection) {
                final StringBuilder sb = new StringBuilder();
                copyRegisters(sb);
                if (sb.length() > 0) {
                    final Clipboard cb = new Clipboard(Display.getCurrent());
                    final TextTransfer tt = TextTransfer.getInstance();
                    cb.setContents(new Object[] { sb.toString() }, new Transfer[] { tt });
                }
            }
        }
    });

    infoLabel = new Label(header, SWT.NONE);

    viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.getControl().setLayoutData("height 100%,width 100%,hmin 0,wmin 0");
    viewer.getTree().setLinesVisible(true);
    viewer.getTree().setHeaderVisible(true);

    // Registername
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(250);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Register");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public Color getForeground(Object element) {
            if (element instanceof TreeRegister)
                if (((TreeRegister) element).isRetrievalActive())
                    return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN);
            if (element instanceof TreeField)
                if (((TreeRegister) ((TreeField) element).getParent()).isRetrievalActive())
                    return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN);

            return null;
        }

        public String getText(Object element) {
            if (element instanceof TreeField) {
                final int bitOffset = ((TreeField) element).getBitOffset();
                final int bitLength = ((TreeField) element).getBitLength();

                if (bitLength == 1)
                    return element.toString() + " (bit " + String.valueOf(bitOffset) + ")";
                else
                    return element.toString() + " (bits " + String.valueOf(bitOffset + bitLength - 1) + "-"
                            + String.valueOf(bitOffset) + ")";
            } else
                return element.toString();
        }

        public Image getImage(Object obj) {
            if (obj instanceof TreeParent) {
                if (obj instanceof TreeRegister)
                    if (((TreeRegister) obj).isRetrievalActive())
                        return selectedImage;
                    else
                        return unselectedImage;
            }
            if (obj instanceof TreeField) {
                if (((TreeRegister) ((TreeField) obj).getParent()).isRetrievalActive())
                    return selectedFieldImage;
                else
                    return unselectedFieldImage;
            }
            return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
        }

    });

    // Hex Value
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(80);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Hex");
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public Color getForeground(Object element) {
            if (element instanceof TreeRegister)
                if (!((TreeRegister) element).isWriteOnly())
                    if (((TreeRegister) element).hasValueChanged())
                        return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_RED);
            if (element instanceof TreeField)
                if (!((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())
                    if (((TreeField) element).hasValueChanged())
                        return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_RED);
            return null;
        }

        public String getText(Object element) {
            if (element instanceof TreeGroup)
                return "";
            if (element instanceof TreeRegisterGroup)
                return "";
            if (element instanceof TreeRegister)
                if (((TreeRegister) element).getValue() == -1)
                    return "";
                else if (((TreeRegister) element).isWriteOnly())
                    return "- write only -";
                else
                    return Utils.longtoHexString(((TreeRegister) element).getValue(),
                            ((TreeRegister) element).getBitSize());
            if (element instanceof TreeField)
                if (((TreeRegister) ((TreeField) element).getParent()).getValue() == -1)
                    return "";
                else if (((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())
                    return "- write only -";
                else
                    return Utils.longtoHexString(((TreeField) element).getValue(),
                            ((TreeField) element).getBitLength());
            else
                return element.toString();
        }

    });

    final TextCellEditor textCellEditor = new TextCellEditor(viewer.getTree());
    textCellEditor.setValidator(new HexCellEditorValidator(viewer));
    final ComboBoxCellEditor comboBoxCellEditor = new ComboBoxCellEditor(viewer.getTree(), new String[0],
            SWT.NONE);

    comboBoxCellEditor.setValidator(new HexCellEditorValidator(viewer));

    ((CCombo) comboBoxCellEditor.getControl()).addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            int selectionIndex = ((CCombo) comboBoxCellEditor.getControl()).getSelectionIndex();

            TreeElement obj = currentEditedElement;
            if (obj instanceof TreeField) {
                long value = -1;

                if (selectionIndex != -1) {
                    value = ((TreeField) obj).getInterpretations()
                            .getValue(((CCombo) comboBoxCellEditor.getControl()).getItem(selectionIndex));
                } else {
                    String svalue = ((CCombo) comboBoxCellEditor.getControl()).getText();
                    if (svalue.startsWith("0x"))
                        value = Long.valueOf(svalue.substring(2, svalue.length()), 16);

                }
                if (value != -1)
                    ((TreeField) obj).setValue(value);

            }

            if (((TreeRegister) obj.getParent()).isWriteOnly())
                updateTreeFields(invisibleRoot);
            viewer.refresh();

        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    comboBoxCellEditor.addListener(new ICellEditorListener() {

        @Override
        public void applyEditorValue() {
            int selectionIndex = ((CCombo) comboBoxCellEditor.getControl()).getSelectionIndex();

            TreeElement obj = currentEditedElement;
            if (obj instanceof TreeField) {
                long value = -1;

                if (selectionIndex != -1) {
                    value = ((TreeField) obj).getInterpretations()
                            .getValue(((CCombo) comboBoxCellEditor.getControl()).getItem(selectionIndex));
                } else {
                    String svalue = ((CCombo) comboBoxCellEditor.getControl()).getText();
                    if (svalue.startsWith("0x"))
                        value = Long.valueOf(svalue.substring(2, svalue.length()), 16);

                }
                if (value != -1)
                    ((TreeField) obj).setValue(value);

            }

            if (((TreeRegister) obj.getParent()).isWriteOnly())
                updateTreeFields(invisibleRoot);
            viewer.refresh();
        }

        @Override
        public void cancelEditor() {
        }

        @Override
        public void editorValueChanged(boolean oldValidState, boolean newValidState) {
        }
    });

    column.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected boolean canEdit(Object element) {
            if (element instanceof TreeField
                    && ((((TreeRegister) ((TreeField) element).getParent()).isReadWrite())
                            || (((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())))
                return true;
            if (element instanceof TreeRegister
                    && (((TreeRegister) element).isReadWrite() || ((TreeRegister) element).isWriteOnly()))
                return true;
            return false;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            if (element instanceof TreeField && ((TreeField) element).hasInterpretations()) {
                comboBoxCellEditor.setItems(((TreeField) element).getInterpretations().getInterpretations());
                IPreferenceStore store = Activator.getDefault().getPreferenceStore();
                int store_combolength = store.getInt("combolength");
                if (store_combolength > 0)
                    ((CCombo) comboBoxCellEditor.getControl()).setVisibleItemCount(store_combolength);
                currentEditedElement = (TreeElement) element;
                return comboBoxCellEditor;
            } else
                return textCellEditor;
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof TreeField && ((TreeField) element).hasInterpretations()) {
                // TODO: check if the Integer is for index in the combobox
                return new Integer((int) ((TreeField) element).getValue()); // TODO: what to do on large bitfield ?
            } else {
                if (element instanceof TreeField && ((TreeField) element).getValue() != -1)
                    return Utils.longtoHexString(((TreeField) element).getValue(),
                            ((TreeField) element).getBitLength());

                if (element instanceof TreeRegister && ((TreeRegister) element).getValue() != -1)
                    return Utils.longtoHexString(((TreeRegister) element).getValue(),
                            ((TreeRegister) element).getBitSize());
            }
            return null;
        }

        @Override
        protected void setValue(Object element, Object value) {
            if (value == null)
                return;
            if (value instanceof String) {
                if (element instanceof TreeRegister && ((String) value).startsWith("0x")) {
                    String svalue = ((String) value);
                    long lvalue = Long.valueOf(svalue.substring(2, svalue.length()), 16);

                    TreeRegister treeRegister = ((TreeRegister) element);
                    if (treeRegister.getValue() != -1 && treeRegister.getValue() != lvalue) {
                        // Update Value on device
                        treeRegister.setAndWriteValue(lvalue);
                        if (((TreeRegister) element).isWriteOnly())
                            updateTreeFields(invisibleRoot);
                        viewer.refresh();
                    }
                }

                if (element instanceof TreeField && ((String) value).startsWith("0x")) {
                    String svalue = ((String) value);
                    long fvalue = Long.valueOf(svalue.substring(2, svalue.length()), 16);

                    TreeField treeField = ((TreeField) element);
                    if (treeField.getValue() != -1 && treeField.getValue() != fvalue) {
                        TreeRegister treeRegister = ((TreeRegister) treeField.getParent());

                        // calculate register value + modified field to write into register
                        long rvalue = treeRegister.getValue();
                        int bitLength = treeField.getBitLength();
                        int bitOffset = treeField.getBitOffset();
                        long mask;

                        mask = (0xFFFFFFFFL >> (32 - bitLength)) << bitOffset;
                        rvalue = rvalue & (~mask); // clear field bits in register value
                        fvalue = fvalue << bitOffset; // shift field value into its position in the register
                        fvalue = fvalue & mask; // just to be sure, cut everything but the field
                        rvalue = rvalue | fvalue; // blend the field value into the register value

                        // Update Value in Target
                        treeRegister.setAndWriteValue(rvalue);
                        if (((TreeRegister) (((TreeField) element).getParent())).isWriteOnly())
                            updateTreeFields(invisibleRoot);
                        viewer.refresh(treeRegister);
                    }
                }
            }
            //TODO: why...what for...
            //viewer.refresh(element);
        }
    });

    // Binary Value
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Bin");
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public Color getForeground(Object element) {
            if (element instanceof TreeRegister)
                if (!((TreeRegister) element).isWriteOnly())
                    if (((TreeRegister) element).hasValueChanged())
                        return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_RED);
            if (element instanceof TreeField)
                if (!((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())
                    if (((TreeField) element).hasValueChanged())
                        return parent.getShell().getDisplay().getSystemColor(SWT.COLOR_RED);

            return null;
        }

        public String getText(Object element) {
            if (element instanceof TreeGroup)
                return "";
            if (element instanceof TreeRegisterGroup)
                return "";
            if (element instanceof TreeRegister)
                if (((TreeRegister) element).getValue() == -1)
                    return "";
                else if (((TreeRegister) element).isWriteOnly())
                    return "------------- write only -------------";
                else
                    return Utils.longtobinarystring(((TreeRegister) element).getValue(),
                            ((TreeRegister) element).getBitSize());
            if (element instanceof TreeField)
                if (((TreeRegister) ((TreeField) element).getParent()).getValue() == -1)
                    return "";
                else if (((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())
                    return "------------- write only -------------";
                else
                    return Utils.longtobinarystring(((TreeField) element).getValue(),
                            ((TreeField) element).getBitLength());
            else
                return element.toString();
        }

    });

    column.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected boolean canEdit(Object element) {
            if (element instanceof TreeField
                    && ((((TreeRegister) ((TreeField) element).getParent()).isReadWrite())
                            || (((TreeRegister) ((TreeField) element).getParent()).isWriteOnly())))
                return true;
            if (element instanceof TreeRegister
                    && (((TreeRegister) element).isReadWrite() || ((TreeRegister) element).isWriteOnly()))
                return true;
            return false;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new BinaryButtonsCellEditor(viewer.getTree(), viewer);
        }

        @Override
        protected Object getValue(Object element) {
            return element;
        }

        @Override
        protected void setValue(Object element, Object value) {
            viewer.refresh(element);
        }
    });

    // Register Reset Value (hex)
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(80);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Reset");
    column.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            if (element instanceof TreeGroup)
                return "";
            if (element instanceof TreeRegisterGroup)
                return "";
            if (element instanceof TreeRegister)
                return Utils.longtoHexString(((TreeRegister) element).getResetValue(),
                        ((TreeRegister) element).getBitSize());
            if (element instanceof TreeField)
                return "";
            else
                return "";
        }

    });

    // Register Access
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setAlignment(SWT.CENTER);
    column.getColumn().setWidth(50);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Access");
    column.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            if (element instanceof TreeGroup)
                return "";
            if (element instanceof TreeRegisterGroup)
                return "";
            if (element instanceof TreeRegister)
                return ((TreeRegister) element).getType().toUpperCase();
            if (element instanceof TreeField)
                return "";
            else
                return "";
        }

    });

    // Register Address (hex)
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(80);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Address");
    column.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            if (element instanceof TreeGroup)
                return "";
            if (element instanceof TreeRegisterGroup)
                return "";
            if (element instanceof TreeRegister)
                return Utils.longtoHexString(((TreeRegister) element).getRegisterAddress(), 32); //TODO: get address width from xml ...
            if (element instanceof TreeField)
                return "";
            else
                return "";
        }

    });

    // Description
    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setWidth(300);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Description");
    ColumnViewerToolTipSupport.enableFor(viewer);

    column.setLabelProvider(new CellLabelProvider() {

        public String getToolTipText(Object element) {
            if (element instanceof TreeRegister) { // only display if more than one line is found
                if (org.eclipse.cdt.embsysregview.views.Utils
                        .countTextLines(((TreeRegister) element).getDescription()) > 1)
                    return ((TreeRegister) element).getDescription();
                else
                    return null;
            }
            if (element instanceof TreeField) { // display tooltip if more than one line is found, or an interpretation is shown instead of this one line
                if (org.eclipse.cdt.embsysregview.views.Utils
                        .countTextLines(((TreeField) element).getDescription()) > 1
                        || ((TreeField) element).hasInterpretation())
                    return ((TreeField) element).getDescription();
                else
                    return null;
            }
            return null;
        }

        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        public int getToolTipDisplayDelayTime(Object object) {
            return 200;
        }

        public int getToolTipTimeDisplayed(Object object) {
            return 0;
        }

        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            if (element instanceof TreeGroup)
                cell.setText(((TreeGroup) element).getDescription());
            if (element instanceof TreeRegisterGroup)
                cell.setText(((TreeRegisterGroup) element).getDescription());
            if (element instanceof TreeRegister) {
                cell.setText(org.eclipse.cdt.embsysregview.views.Utils
                        .getFirstNotEmptyTextLine(((TreeRegister) element).getDescription()).trim());
            }

            if (element instanceof TreeField)
                if (((TreeField) element).hasInterpretation()) {
                    cell.setText(((TreeField) element).getInterpretation());
                    cell.setImage(interpretationImage);
                } else {
                    // Display first line
                    cell.setText(org.eclipse.cdt.embsysregview.views.Utils
                            .getFirstNotEmptyTextLine(((TreeField) element).getDescription()).trim());
                    // Display Icon if there are more than one line
                    if (org.eclipse.cdt.embsysregview.views.Utils
                            .countTextLines(((TreeField) element).getDescription()) > 1)
                        cell.setImage(infoImage);
                }
        }
    });

    doubleClickAction = new Action() {
        public void run() {
            ISelection selection = viewer.getSelection();

            Object obj = ((IStructuredSelection) selection).getFirstElement();

            int selectedColumn = -1;

            Tree tree = viewer.getTree();
            Point pt = tree.toControl(Display.getCurrent().getCursorLocation());
            viewer.getTree().getColumnCount();
            for (int i = 0; i < tree.getColumnCount(); i++) {
                TreeItem item = tree.getItem(pt);
                if (item != null) {
                    if (item.getBounds(i).contains(pt)) {
                        selectedColumn = i;
                    }
                }
            }

            if (obj instanceof TreeRegisterGroup && selectedColumn == 0) {
                TreeRegisterGroup treeRegisterGroup = ((TreeRegisterGroup) obj);
                TreeElement[] treeElements = treeRegisterGroup.getChildren();
                for (TreeElement treeElement : treeElements) {
                    TreeRegister treeRegister = ((TreeRegister) treeElement);
                    if (!treeRegister.isWriteOnly()) {
                        treeRegister.toggleRetrieval();
                        treeRegister.readValue();
                    }
                }
                viewer.refresh(obj);
            }

            if (obj instanceof TreeRegister && selectedColumn == 0) {
                TreeRegister treeRegister = ((TreeRegister) obj);
                if (!treeRegister.isWriteOnly()) {
                    treeRegister.toggleRetrieval();
                    treeRegister.readValue();
                    viewer.refresh(obj);
                }
            }
            if (obj instanceof TreeField && selectedColumn == 0) {
                TreeField treeField = ((TreeField) obj);
                TreeRegister treeRegister = ((TreeRegister) treeField.getParent());
                if (!treeRegister.isWriteOnly()) {
                    treeRegister.toggleRetrieval();
                    treeRegister.readValue();
                    viewer.refresh(treeField.getParent());
                }
            }
        }
    };

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            doubleClickAction.run();
        }
    });

    viewer.setContentProvider(new ViewContentProvider());
    updateInfoLabel();
    viewer.setInput(invisibleRoot);
}

From source file:org.eclipse.edt.ide.rui.visualeditor.internal.util.TableCellEditorComboBox.java

License:Open Source License

/**
 *  //from w w w  . j  a v a  2  s.c  o m
 */
public void activate(Table table, TableEditor tableEditor, int iColumn, TableItem tableItemSelected,
        String[] straOptions) {

    _straOptions = straOptions;

    ComboBoxCellEditor cellEditor = new ComboBoxCellEditor();
    cellEditor.setStyle(SWT.READ_ONLY);

    super.activate(table, tableEditor, cellEditor, iColumn, tableItemSelected);

    cellEditor.setItems(straOptions);

    _strOriginalValue = tableItemSelected.getText(iColumn);

    if (_strOriginalValue != null) {
        int iIndex = -1;

        for (int i = 0; i < straOptions.length; ++i) {
            if (straOptions[i].equals(_strOriginalValue) == true) {
                iIndex = i;
                break;
            }
        }

        if (iIndex > -1)
            cellEditor.setValue(new Integer(iIndex));
    }
}

From source file:org.eclipse.egit.ui.internal.synchronize.GitSynchronizeWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout(1, false);
    layout.marginWidth = 0;/*from  ww  w  .  j ava 2  s. co  m*/
    layout.marginHeight = 0;
    composite.setLayout(layout);

    repositories = new HashMap<Repository, Set<IProject>>();
    for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
        RepositoryMapping mapping = RepositoryMapping.getMapping(project);
        if (mapping != null) {
            Repository repository = mapping.getRepository();
            Set<IProject> set = repositories.get(repository);
            if (set == null) {
                set = new HashSet<IProject>();
                repositories.put(repository, set);
            }
            set.add(project);
        }
    }

    treeViewer = new ContainerCheckedTreeViewer(composite,
            SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
    treeViewer.getTree().setLinesVisible(true);
    treeViewer.getTree().setHeaderVisible(true);
    treeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    TreeViewerColumn repositoriesColumn = new TreeViewerColumn(treeViewer, SWT.LEAD);
    repositoriesColumn.getColumn().setText(UIText.GitBranchSynchronizeWizardPage_repositories);
    repositoriesColumn.getColumn().setImage(repositoryImage);
    repositoriesColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof Repository) {
                return ((Repository) element).getDirectory().getAbsolutePath();
            }
            return ((IProject) element).getName();
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof Repository) {
                return repositoryImage;
            }
            return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
        }
    });

    TreeViewerColumn branchesColumn = new TreeViewerColumn(treeViewer, SWT.LEAD);
    branchesColumn.getColumn().setText(UIText.GitBranchSynchronizeWizardPage_branches);
    branchesColumn.getColumn().setImage(branchesImage);
    branchesColumn.getColumn().setWidth(200);
    final ComboBoxCellEditor branchesEditor = new ComboBoxCellEditor(treeViewer.getTree(), new String[0]);
    branchesColumn.setEditingSupport(new EditingSupport(treeViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            int intValue = ((Integer) value).intValue();
            if (intValue == -1) {
                return;
            }

            CCombo combo = (CCombo) branchesEditor.getControl();
            String branch = combo.getItem(intValue);

            if (element instanceof IProject) {
                RepositoryMapping mapping = RepositoryMapping.getMapping((IResource) element);
                Repository repository = mapping.getRepository();
                selectedBranches.put(repository, branch);
                treeViewer.refresh(repository, true);
            } else {
                selectedBranches.put((Repository) element, branch);
                treeViewer.refresh(element, true);
            }

            setPageComplete(selectedBranches.size() == selectedRepositories.size());
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof IProject) {
                RepositoryMapping mapping = RepositoryMapping.getMapping((IResource) element);
                String branch = selectedBranches.get(mapping.getRepository());
                CCombo combo = (CCombo) branchesEditor.getControl();
                int index = branch == null ? 0 : combo.indexOf(branch);
                return Integer.valueOf(index);
            } else {
                String branch = selectedBranches.get(element);
                CCombo combo = (CCombo) branchesEditor.getControl();
                int index = branch == null ? 0 : combo.indexOf(branch);
                return Integer.valueOf(index);
            }
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            if (element instanceof IProject) {
                RepositoryMapping mapping = RepositoryMapping.getMapping((IResource) element);
                Set<String> refs = mapping.getRepository().getAllRefs().keySet();
                branchesEditor.setItems(refs.toArray(new String[refs.size()]));
            } else {
                Set<String> refs = ((Repository) element).getAllRefs().keySet();
                branchesEditor.setItems(refs.toArray(new String[refs.size()]));
            }
            return branchesEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    branchesColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof IProject) {
                RepositoryMapping mapping = RepositoryMapping.getMapping((IResource) element);
                String branch = selectedBranches.get(mapping.getRepository());
                return branch == null ? "" : branch; //$NON-NLS-1$
            } else {
                String branch = selectedBranches.get(element);
                return branch == null ? "" : branch; //$NON-NLS-1$
            }
        }
    });

    treeViewer.setContentProvider(new ITreeContentProvider() {
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // nothing to do
        }

        public void dispose() {
            // nothing to do
        }

        public Object[] getElements(Object inputElement) {
            return (Object[]) inputElement;
        }

        public boolean hasChildren(Object element) {
            if (element instanceof Repository) {
                return !repositories.get(element).isEmpty();
            }
            return false;
        }

        public Object getParent(Object element) {
            return null;
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof Repository) {
                return repositories.get(parentElement).toArray();
            }
            return new Object[0];
        }
    });

    final Object[] array = repositories.keySet().toArray();
    treeViewer.setInput(array);
    treeViewer.setCheckedElements(array);
    repositoriesColumn.getColumn().pack();

    save();

    treeViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            selectedRepositories.clear();
            selectedProjects.clear();

            save();

            if (event.getChecked()) {
                setPageComplete(selectedBranches.size() == selectedRepositories.size());
            } else if (treeViewer.getCheckedElements().length == 0) {
                setPageComplete(false);
            }
        }
    });

    Composite buttonsComposite = new Composite(composite, SWT.NONE);
    layout = new GridLayout(2, true);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    buttonsComposite.setLayout(layout);
    buttonsComposite.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));

    Button selectAllBtn = new Button(buttonsComposite, SWT.PUSH);
    selectAllBtn.setText(UIText.GitBranchSynchronizeWizardPage_selectAll);
    selectAllBtn.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            treeViewer.setCheckedElements(array);
            save();
            setPageComplete(selectedBranches.size() == selectedRepositories.size());
        }
    });
    selectAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));

    Button deselectAllBtn = new Button(buttonsComposite, SWT.PUSH);
    deselectAllBtn.setText(UIText.GitBranchSynchronizeWizardPage_deselectAll);
    deselectAllBtn.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            // uncheck everything
            treeViewer.setCheckedElements(new Object[0]);
            // clear all selection
            selectedRepositories.clear();
            selectedProjects.clear();
            // mark page as being incomplete
            setPageComplete(false);
        }
    });
    deselectAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));

    Dialog.applyDialogFont(composite);
    setPageComplete(false);
    setControl(composite);
}

From source file:org.talend.designer.mapper.ui.visualmap.table.DataMapTableView.java

License:Open Source License

/**
 * DOC ycbai Comment method "getSchemaSettingValueAccess".
 * /*from   w  w  w. jav  a2  s . c  o m*/
 * @param functComboBox
 * @return
 */
protected IBeanPropertyAccessors<GlobalMapEntry, Object> getSchemaSettingValueAccess(
        final ComboBoxCellEditor functComboBox) {
    return new IBeanPropertyAccessors<GlobalMapEntry, Object>() {

        public Object get(GlobalMapEntry bean) {
            functComboBox.setItems(new String[] { BUILT_IN, REPOSITORY });
            IDataMapTable parent = bean.getParent();
            AbstractInOutTable table = (AbstractInOutTable) parent;
            if (SCHEMA_TYPE.equals(bean.getName())) {
                if (bean.getExpression() == null) {
                    return table.getId() == null ? BUILT_IN : REPOSITORY;
                }
                return bean.getExpression();
            }

            return "";
        }

        public void set(GlobalMapEntry bean, Object value) {
            if (value == null) {
                return;
            }
            if (SCHEMA_TYPE.equals(bean.getName())) {
                bean.setExpression(String.valueOf(value));
                showSchemaIDSetting(REPOSITORY.equals(value));
            }
        }
    };
}

From source file:org.talend.designer.mapper.ui.visualmap.table.InputDataMapTableView.java

License:Open Source License

@Override
protected IBeanPropertyAccessors<GlobalMapEntry, Object> getMapSettingValueAccess(final CellEditor cellEditor) {
    return new IBeanPropertyAccessors<GlobalMapEntry, Object>() {

        public Object get(GlobalMapEntry bean) {
            IDataMapTable parent = bean.getParent();
            InputTable inputTable = (InputTable) parent;
            if (cellEditor instanceof ComboBoxCellEditor) {
                ComboBoxCellEditor functComboBox = (ComboBoxCellEditor) cellEditor;
                if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
                    IUILookupMode[] availableJoins = { TMAP_LOOKUP_MODE.LOAD_ONCE, TMAP_LOOKUP_MODE.RELOAD,
                            TMAP_LOOKUP_MODE.CACHE_OR_RELOAD };
                    List<String> names = new ArrayList<String>();
                    for (IUILookupMode availableJoin : availableJoins) {
                        names.add(availableJoin.getLabel());
                    }/*  w w  w  .j  ava2s  . co m*/
                    functComboBox.setItems(names.toArray(new String[names.size()]));
                    final IUILookupMode lookupMode = ((InputTable) parent).getLookupMode();
                    if (lookupMode != null) {
                        return lookupMode.getLabel();
                    }
                } else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
                    IUIMatchingMode[] matchModel = getMatchModel();
                    List<String> names = new ArrayList<String>();
                    for (IUIMatchingMode element : matchModel) {
                        names.add(element.getLabel());
                    }
                    functComboBox.setItems(names.toArray(new String[names.size()]));
                    IUIMatchingMode matchingMode = ((InputTable) parent).getMatchingMode();
                    if (names.contains(matchingMode.getLabel())) {
                        return matchingMode.getLabel();
                    }

                } else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
                    String[] items = new String[] { INNER_JOIN, LEFT_OUTER_JOIN };
                    functComboBox.setItems(items);
                    boolean innerJoin = ((InputTable) parent).isInnerJoin();
                    if (innerJoin) {
                        return items[0];
                    }
                    return items[1];
                } else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
                    functComboBox.setItems(new String[] { "true", "false" });
                    boolean persistent = ((InputTable) parent).isPersistent();
                    return String.valueOf(persistent);
                }
            } else if (cellEditor instanceof CustomDialogCellEditor) {
                CustomDialogCellEditor customDialogCellEditor = (CustomDialogCellEditor) cellEditor;
                if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.LOOKUP_MODEL);
                    final IUILookupMode lookupMode = inputTable.getLookupMode();
                    if (lookupMode != null) {
                        return lookupMode.getLabel();
                    }
                } else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.MATCH_MODEL);
                    IUIMatchingMode matchingMode = inputTable.getMatchingMode();
                    if (matchingMode != null) {
                        return matchingMode.getLabel();
                    }
                } else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.JOIN_MODEL);
                    boolean innerJoin = inputTable.isInnerJoin();
                    return innerJoin ? INNER_JOIN : LEFT_OUTER_JOIN;
                } else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.BOOL);
                    boolean persistent = inputTable.isPersistent();
                    return String.valueOf(persistent);
                } else if (SCHEMA_TYPE.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.SCHEMA_TYPE);
                    enableDiaplayViewer(inputTable.isRepository());
                    return inputTable.isRepository() ? REPOSITORY : BUILT_IN;
                } else if (SCHEMA_ID.equals(bean.getName())) {
                    customDialogCellEditor.setType(CellValueType.SCHEMA_ID);
                    return getSchemaDisplayName(inputTable.getId());
                }
            }

            return "";
        }

        public void set(GlobalMapEntry bean, Object value) {
            IDataMapTable parent = bean.getParent();
            InputTable inputTable = (InputTable) parent;
            Object previousValue = null;
            if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
                previousValue = inputTable.getLookupMode();
                IUILookupMode[] availableJoins = { TMAP_LOOKUP_MODE.LOAD_ONCE, TMAP_LOOKUP_MODE.RELOAD,
                        TMAP_LOOKUP_MODE.CACHE_OR_RELOAD };
                for (final IUILookupMode lookupMode : availableJoins) {
                    if (value != null && value.equals(lookupMode.getLabel())) {
                        inputTable.setLookupMode(lookupMode);
                        if (TMAP_LOOKUP_MODE.CACHE_OR_RELOAD == lookupMode) {
                            persistentCheckEditable = false;
                        } else {
                            persistentCheckEditable = true;
                        }
                        if (lookupMode == TMAP_LOOKUP_MODE.RELOAD
                                || lookupMode == TMAP_LOOKUP_MODE.CACHE_OR_RELOAD) {
                            showTableGlobalMap(true);
                        } else {
                            showTableGlobalMap(false);
                        }
                        enableDisablePersistentMode((TMAP_LOOKUP_MODE) lookupMode);
                        mapperManager.getProblemsManager().checkProblemsForTableEntry(bean, true);
                        checkChangementsAfterEntryModifiedOrAdded(true);

                    }
                }

            } else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
                previousValue = inputTable.getMatchingMode();
                for (IUIMatchingMode model : TMAP_MATCHING_MODE.values()) {
                    if (value != null && value.equals(model.getLabel())) {
                        inputTable.setMatchingMode(model);
                        previousMatchingModeSelected = model;
                    }
                }
            } else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
                previousValue = inputTable.isInnerJoin();
                if (LEFT_OUTER_JOIN.equals(value)) {
                    ((InputTable) parent).setInnerJoin(false);
                    previousInnerJoinSelection = false;
                } else {
                    ((InputTable) parent).setInnerJoin(true);
                    previousInnerJoinSelection = true;
                }
            } else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
                previousValue = inputTable.isPersistent();
                if ("true".equals(value) || "false".equals(value)) {
                    ((InputTable) parent).setPersistent(Boolean.valueOf(value.toString()));
                    previousValidPersistentMode = Boolean.valueOf(value.toString());
                }
            } else if (SCHEMA_TYPE.equals(bean.getName())) {
                previousValue = inputTable.isRepository();
                inputTable.setRepository(REPOSITORY.equals(value));
                showSchemaIDSetting(REPOSITORY.equals(value));
                enableDiaplayViewer(REPOSITORY.equals(value));
            } else if (SCHEMA_ID.equals(bean.getName())) {
                previousValue = inputTable.getId();
                inputTable.setId(String.valueOf(value));
            }

            refreshCondensedImage((InputTable) bean.getParent(), bean.getName(), previousValue);

        }
    };
}