Example usage for org.eclipse.jface.viewers DialogCellEditor DialogCellEditor

List of usage examples for org.eclipse.jface.viewers DialogCellEditor DialogCellEditor

Introduction

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

Prototype

protected DialogCellEditor(Composite parent) 

Source Link

Document

Creates a new dialog cell editor parented under the given control.

Usage

From source file:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java

License:Open Source License

@SuppressWarnings("unused")
private Control createPeerGroup(CTabFolder parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    comp.setLayout(new GridLayout(1, false));
    Composite innerComp = new Composite(comp, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;// ww w  . jav  a 2 s .c o  m
    layout.marginHeight = 20;
    innerComp.setLayout(layout);
    innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Label label = new Label(innerComp, SWT.WRAP);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));
    label.setText(Messages.PeerPreferencePage_network_geography);
    peerViewer = new TableViewer(innerComp, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
    peerViewer.getTable().setLinesVisible(true);
    peerViewer.getTable().setHeaderVisible(true);
    peerViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableViewerColumn col0 = new TableViewerColumn(peerViewer, SWT.NONE);
    col0.getColumn().setWidth(100);
    col0.getColumn().setText(Messages.PeerPreferencePage_nickname);
    col0.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition) {
                String nick = ((PeerDefinition) element).getNickname();
                return nick == null ? "" : nick; //$NON-NLS-1$
            }
            return ""; //$NON-NLS-1$
        }
    });
    EditingSupport editingSupport = new EditingSupport(peerViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost());
                ((PeerDefinition) element).setNickname(((PeerDefinition) value).getNickname());
                ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort());
                peerViewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(peerViewer.getTable()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, true, false, false);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    };
    col0.setEditingSupport(editingSupport);

    TableViewerColumn col1 = new TableViewerColumn(peerViewer, SWT.NONE);
    col1.getColumn().setWidth(250);
    col1.getColumn().setText(Messages.PeerPreferencePage_peer_location);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getLocation();
            return ""; //$NON-NLS-1$
        }
    });
    col1.setEditingSupport(editingSupport);
    TableViewerColumn col2 = new TableViewerColumn(peerViewer, SWT.NONE);
    col2.getColumn().setWidth(150);
    col2.getColumn().setText(Messages.PeerPreferencePage_status);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition)
                return PeerActivator.getDefault().isOnline((PeerDefinition) element)
                        ? Messages.PeerPreferencePage_online
                        : Messages.PeerPreferencePage_offline;
            return ""; //$NON-NLS-1$
        }
    });
    peerViewer.setContentProvider(ArrayContentProvider.getInstance());
    new SortColumnManager(peerViewer, new int[] { SWT.UP, SWT.UP, SWT.NONE }, 0);
    peerViewer.setComparator(ZViewerComparator.INSTANCE);
    Composite buttonGroup = new Composite(innerComp, SWT.NONE);
    buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true));
    buttonGroup.setLayout(new GridLayout());
    Button addButton = new Button(buttonGroup, SWT.PUSH);
    addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addButton.setText(Messages.PeerPreferencePage_add);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            PeerDefinitionDialog dialog = new PeerDefinitionDialog(getShell(), null, true, false, false);
            if (dialog.open() == PeerDefinitionDialog.OK) {
                PeerDefinition newPeer = dialog.getResult();
                @SuppressWarnings("unchecked")
                List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput();
                peers.add(newPeer);
                peerViewer.setInput(peers);
                peerViewer.setSelection(new StructuredSelection(newPeer));
            }
        }
    });
    final Button removeButton = new Button(buttonGroup, SWT.PUSH);
    removeButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    removeButton.setText(Messages.PeerPreferencePage_remove);
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = peerViewer.getStructuredSelection();
            Object firstElement = sel.getFirstElement();
            if (firstElement instanceof PeerDefinition) {
                @SuppressWarnings("unchecked")
                List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput();
                peers.remove(firstElement);
                peerViewer.setInput(peers);
            }
        }
    });
    removeButton.setEnabled(false);
    peerViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            removeButton.setEnabled(!event.getSelection().isEmpty());
        }
    });

    return comp;
}

From source file:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java

License:Open Source License

@SuppressWarnings("unused")
private Control createSharedGroup(CTabFolder parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    comp.setLayout(new GridLayout());
    Composite innerComp = new Composite(comp, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;/*from  w w  w. j  a  v a 2s . c o  m*/
    layout.marginHeight = 20;
    innerComp.setLayout(layout);
    innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Label label = new Label(innerComp, SWT.WRAP);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));
    label.setText(Messages.PeerPreferencePage_shared_cats_msg);

    catViewer = new TreeViewer(innerComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
    catViewer.getTree().setLinesVisible(true);
    catViewer.getTree().setHeaderVisible(true);
    catViewer.getTree().setLayoutData(new GridData(SWT.BEGINNING, SWT.FILL, false, true));
    TreeViewerColumn col1 = new TreeViewerColumn(catViewer, SWT.NONE);
    col1.getColumn().setWidth(400);
    col1.getColumn().setText(Messages.PeerPreferencePage_path);
    col1.setLabelProvider(ZColumnLabelProvider.getDefaultInstance());
    TreeViewerColumn col2 = new TreeViewerColumn(catViewer, SWT.NONE);
    col2.getColumn().setWidth(200);
    col2.getColumn().setText(Messages.PeerPreferencePage_privacy);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof SharedCatalog)
                return translatePrivacy(((SharedCatalog) element).getPrivacy());
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getRightsLabel();
            return ""; //$NON-NLS-1$
        }
    });
    col1.setEditingSupport(new EditingSupport(catViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost());
                ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort());
                catViewer.update(element, null);
                validate();
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(catViewer.getTree()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, true, true, true);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return (element instanceof PeerDefinition);
        }
    });
    col2.setEditingSupport(new EditingSupport(catViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof SharedCatalog && value instanceof Integer) {
                ((SharedCatalog) element).setPrivacy((Integer) value);
                catViewer.update(element, null);
            } else if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setRights(((PeerDefinition) value).getRights());
                catViewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof SharedCatalog)
                return ((SharedCatalog) element).getPrivacy();
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof SharedCatalog) {
                ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(catViewer.getTree());
                editor.setLabelProvider(new LabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return translatePrivacy(((Integer) element));
                    }
                });
                editor.setContentProvider(ArrayContentProvider.getInstance());
                editor.setInput(((SharedCatalog) element).getRestrictions().isEmpty()
                        ? new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE,
                                QueryField.SAFETY_SAFE, QueryField.SAFETY_LOCAL }
                        : new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE,
                                QueryField.SAFETY_SAFE });
                return editor;
            }
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(catViewer.getTree()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, false, true, false);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }

                    @Override
                    protected void updateContents(Object value) {
                        if (value instanceof PeerDefinition)
                            super.updateContents(((PeerDefinition) value).getRightsLabel());
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    catViewer.setContentProvider(new ITreeContentProvider() {

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public void dispose() {
            // do nothing
        }

        public boolean hasChildren(Object element) {
            if (element instanceof SharedCatalog)
                return !((SharedCatalog) element).getRestrictions().isEmpty();
            return false;
        }

        public Object getParent(Object element) {
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getParent();
            return null;
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Collection<?>)
                return ((Collection<?>) inputElement).toArray();
            return EMPTY;
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof SharedCatalog)
                return ((SharedCatalog) parentElement).getRestrictions().toArray();
            return EMPTY;
        }
    });
    new SortColumnManager(catViewer, new int[] { SWT.UP, SWT.NONE }, 0);
    catViewer.setComparator(ZViewerComparator.INSTANCE);
    UiUtilities.installDoubleClickExpansion(catViewer);
    Composite buttonGroup = new Composite(innerComp, SWT.NONE);
    buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true));
    buttonGroup.setLayout(new GridLayout());
    addCurrentButton = new Button(buttonGroup, SWT.PUSH);
    addCurrentButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addCurrentButton.setText(Messages.PeerPreferencePage_add_current);
    addCurrentButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            String catFile = Core.getCore().getDbManager().getFileName();
            SharedCatalog cat = new SharedCatalog(catFile, QueryField.SAFETY_RESTRICTED);
            @SuppressWarnings("unchecked")
            List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
            catalogs.add(cat);
            catViewer.setInput(catalogs);
            catViewer.setSelection(new StructuredSelection(cat));
            updateButtons();
        }
    });

    final Button addButton = new Button(buttonGroup, SWT.PUSH);
    addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addButton.setText(Messages.PeerPreferencePage_add);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
            dialog.setFileName(Core.getCore().getDbManager().getFileName());
            String filename = dialog.open();
            if (filename != null) {
                SharedCatalog cat = new SharedCatalog(filename, QueryField.SAFETY_RESTRICTED);
                @SuppressWarnings("unchecked")
                List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
                catalogs.add(cat);
                catViewer.setInput(catalogs);
                catViewer.setSelection(new StructuredSelection(cat));
            }
        }
    });
    addRestrictionButton = new Button(buttonGroup, SWT.PUSH);
    addRestrictionButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addRestrictionButton.setText(Messages.PeerPreferencePage_add_restriction);
    addRestrictionButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) catViewer.getSelection();
            Object firstElement = selection.getFirstElement();
            if (firstElement instanceof SharedCatalog) {
                PeerDefinitionDialog dialog = new PeerDefinitionDialog(getControl().getShell(), null, true,
                        true, true);
                if (dialog.open() == PeerDefinitionDialog.OK) {
                    PeerDefinition result = dialog.getResult();
                    result.setParent((SharedCatalog) firstElement);
                    catViewer.setInput(catViewer.getInput());
                    catViewer.expandToLevel(firstElement, 1);
                    catViewer.setSelection(new StructuredSelection(result));
                    validate();
                }
            }
        }
    });
    removeCatButton = new Button(buttonGroup, SWT.PUSH);
    removeCatButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    removeCatButton.setText(Messages.PeerPreferencePage_remove);
    removeCatButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = (IStructuredSelection) catViewer.getSelection();
            Object firstElement = sel.getFirstElement();
            if (firstElement instanceof SharedCatalog) {
                @SuppressWarnings("unchecked")
                List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
                catalogs.remove(firstElement);
                catViewer.setInput(catalogs);
                validate();
                updateButtons();
            }
        }
    });
    catViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    return comp;
}

From source file:com.cisco.yangide.ext.model.editor.property.DialogTextPropertyDescriptor.java

License:Open Source License

public DialogCellEditor createPropertyEditor(Composite parent) {
    DialogCellEditor editor = new DialogCellEditor(parent) {

        @Override//w w  w.  j  a v  a 2 s  .  c om
        protected Object openDialogBox(Control cellEditorWindow) {
            Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
            MultilineTextDialog dialog = new MultilineTextDialog(shell, Strings.getAsString(getValue()),
                    id.getName());
            if (IStatus.OK == dialog.open()) {
                setValue(dialog.getValue());
            }
            return null;
        }

    };
    if (getValidator() != null) {
        editor.setValidator(getValidator());
    }
    return editor;
}

From source file:com.hangum.tadpole.manager.core.dialogs.users.SelectUserEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(final Object element) {

    UserDAO dao = (UserDAO) element;//from  w w  w .  j  av  a2s  .co  m

    if (columnIndex == 0) {

        return new CheckboxCellEditor(null, SWT.CHECK);// | SWT.READ_ONLY);

    } else if (columnIndex == 3) {

        return new ComboBoxCellEditor(viewer.getTable(), userRoleNames);

    } else if (columnIndex == 4 || columnIndex == 5) {
        return new DialogCellEditor(viewer.getTable()) {
            @Override
            protected Object openDialogBox(Control cellEditorWindow) {
                Shell shell = Display.getDefault().getActiveShell();

                Timestamp original = (Timestamp) SelectUserEditingSupport.this.getValue(element);

                TimeStampDialog dialog = new TimeStampDialog(shell, original,
                        viewer.getTable().getColumn(columnIndex).getText());
                if (IStatus.OK == dialog.open()) {
                    setValue(dialog.getValue());
                    return dialog.getValue();
                } else {
                    return original;
                }
            }
        };

    } else {
        return null;
    }
}

From source file:com.hangum.tadpole.rdb.core.dialog.export.sqltoapplication.composites.axisj.AxisjEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(final Object element) {
    /*      //from  w  ww  . java2s .c  o m
      key      : "no",        // {String} -- ??   . key ? reservedKey
      label    : "",      // {String} -- ??  .
      width    : 50,          // {Number|String} -- ? ? . ? ? "*" ?   . "*"?   ?  ?? ? ? ? ? .
      align    : "right",     // {String} ["left"] --  ? ? . "left"|"center"|"right" ?   .
      sort     : "asc",       // {String|Boolean} [""] -- ? ? . "asc"|"desc"|false ?   . false ?  ? ?  .
      colHeadTool : true      // {Boolean} --  display   .
      formatter: "money",     // {String|Function} -- ? ?  ?? . "money", "dec", "html", "checkbox", "radio", function?  formatter  .
      tooltip  : "money",     // {String|Function} -- ?? ?  ?? . ??  td div.bodyNode? title ? ? ?.  formatter ??  .
      disabled : function(){},// {Boolean|Function} -- formatter checkbox, radio?  input? disabled ? . disabled(true|flase)   .  disabled  .
      checked  : function(){} // {Boolean|Function} -- formatter checkbox, radio?  input? checked ? . checked(true|flase)   .  checked  .
    */

    final AxisjHeaderDAO dao = (AxisjHeaderDAO) element;

    if (columnIndex == AxisjConsts.ALIGN_IDX) {

        return new ComboBoxCellEditor(viewer.getTable(), AxisjConsts.aligns);

    } else if (columnIndex == AxisjConsts.FORMATTER_IDX) {
        return new DialogCellEditor(viewer.getTable()) {
            @Override
            protected Object openDialogBox(Control cellEditorWindow) {
                Shell shell = Display.getDefault().getActiveShell();
                //String original = dao.getFormatter();
                String original = AxisjEditingSupport.this.getValue(element).toString();

                AxisjFormatterDialog dialog = new AxisjFormatterDialog(shell, original,
                        viewer.getTable().getColumn(columnIndex).getText());
                if (IStatus.OK == dialog.open()) {
                    setValue(dialog.getValue());
                    return dialog.getValue();
                } else {
                    return original;
                }
            }
        };
    } else if (columnIndex == AxisjConsts.TOOLTIP_IDX | columnIndex == AxisjConsts.DISABLE_IDX
            | columnIndex == AxisjConsts.CHECKED_IDX) {
        return new DialogCellEditor(viewer.getTable()) {
            @Override
            protected Object openDialogBox(Control cellEditorWindow) {
                Shell shell = Display.getDefault().getActiveShell();
                //String original = dao.getFormatter();
                String original = AxisjEditingSupport.this.getValue(element).toString();

                MultilineTextDialog dialog = new MultilineTextDialog(shell, original,
                        viewer.getTable().getColumn(columnIndex).getText());
                if (IStatus.OK == dialog.open()) {
                    setValue(dialog.getValue());
                    return dialog.getValue();
                } else {
                    return original;
                }
            }
        };
    } else if (columnIndex == AxisjConsts.HEADTOOL_IDX) {

        return new CheckboxCellEditor(null, SWT.CHECK);// | SWT.READ_ONLY);

    } else if (columnIndex == AxisjConsts.SORT_IDX) {

        return new ComboBoxCellEditor(viewer.getTable(), AxisjConsts.sorts);// | SWT.READ_ONLY);

    } else {

        return new CommentCellEditor(columnIndex, viewer);

    }
}

From source file:com.ibm.etools.mft.conversion.esb.editor.parameter.GlobalOptionsEditor.java

License:Open Source License

protected TableViewer createConverterSection(final ScrolledForm form, String sectionTitle, String sectionDesc,
        String[] columnHeadings, String[] columnProperties, int[] columnWidthes,
        final String classSelectionMessage, ILabelProvider labelProvider, final Class baseClass) {
    Section section = getToolkit().createSection(form.getBody(),
            Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
    TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
    td.colspan = 1;/*from   w w w . j a v a2 s .com*/
    section.setLayoutData(td);
    section.addExpansionListener(new ExpansionAdapter() {
        public void expansionStateChanged(ExpansionEvent e) {
            form.reflow(true);
        }
    });
    section.setText(sectionTitle);
    section.setDescription(sectionDesc);
    Composite sectionClient = getToolkit().createComposite(section);
    sectionClient.setLayout(new GridLayout(2, false));
    section.setClient(sectionClient);

    final TableViewer viewer = new TableViewer(sectionClient, SWT.BORDER | SWT.FULL_SELECTION);
    viewer.getTable().setHeaderVisible(true);
    viewer.getTable().setLinesVisible(true);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 130;
    viewer.getControl().setLayoutData(data);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(labelProvider);
    viewer.addDoubleClickListener(this);
    viewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            Converter c1 = (Converter) e1;
            Converter c2 = (Converter) e2;
            return c1.getType().compareTo(c2.getType());
        }
    });

    for (int i = 0; i < columnHeadings.length; i++) {
        TableColumn column = new TableColumn(viewer.getTable(), SWT.None);
        column.setText(columnHeadings[i]);
        column.setResizable(true);
        column.setWidth(columnWidthes[i]);
    }
    viewer.setColumnProperties(columnProperties);

    viewer.setCellEditors(
            new CellEditor[] { null, null, null, new DialogCellEditor((Composite) viewer.getControl()) {
                @Override
                protected Object openDialogBox(Control cellEditorWindow) {
                    Converter converter = (Converter) ((IStructuredSelection) viewer.getSelection())
                            .getFirstElement();
                    ClassSelectionDialog d = new ClassSelectionDialog(cellEditorWindow.getShell(),
                            (ClassDefinition) getValue(), converter.getType(), classSelectionMessage,
                            baseClass);
                    if (d.open() == ClassSelectionDialog.OK) {
                        if (d.getClazz() == null) {
                            return d.getModel();
                        }
                        if (d.getClazz().length() == 0) {
                            doSetValue(null);
                            return null;
                        }
                        ClassDefinition def = new ClassDefinition();
                        def.setResourceType(d.getResourceType());
                        def.setResourcePath(d.getResourcePath());
                        def.setClazz(d.getClazz());
                        return def;
                    }
                    return d.getModel();
                }

                protected void updateContents(Object value) {
                    if (value != null) {
                        if (value != null && value.toString().length() == 0) {
                            value = WESBConversionMessages.GlobalOptionsEditor_defaultConverter;
                        } else if (value instanceof ClassDefinition) {
                            value = ((ClassDefinition) value).getClazz();
                        }
                    } else {
                        ClassDefinition oldValue = null;
                        if (converterBeingEditted != null) {
                            oldValue = converterBeingEditted.getClazz();
                            converterBeingEditted.setClazz(null);
                        }
                        try {
                            if (converterBeingEditted instanceof PrimitiveConverter) {
                                IPrimitiveConverter ci = PrimitiveManager
                                        .getConverter(converterBeingEditted.getType(), null, getModel());
                                String s = ci.getClass().getName();
                                value = PrimitiveManager.getConverterDisplayName(s);
                            } else if (converterBeingEditted instanceof BindingConverter) {
                                IBindingConverter ci = BindingManager
                                        .getConverter(converterBeingEditted.getType(), null, getModel());
                                String s = ci.getClass().getName();
                                value = BindingManager.getConverterDisplayName(s);
                            }
                        } catch (Exception e) {
                            value = ""; //$NON-NLS-1$
                        } finally {
                            if (converterBeingEditted != null) {
                                converterBeingEditted.setClazz(oldValue);
                            }
                        }
                    }
                    super.updateContents(value);
                }
            } });
    viewer.setCellModifier(new ICellModifier() {

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem ti = (TableItem) element;
            Converter c = (Converter) ti.getData();
            c.setClazz((ClassDefinition) value);
            viewer.refresh(c);
            changed();
        }

        @Override
        public Object getValue(Object element, String property) {
            Converter c = (Converter) element;
            converterBeingEditted = (Converter) element;
            return c.getClazz();
        }

        @Override
        public boolean canModify(Object element, String property) {
            if ("Converter Class".equals(property)) { //$NON-NLS-1$
                return true;
            }
            return false;
        }

    });

    FocusCellOwnerDrawHighlighter highlighter = new FocusCellOwnerDrawHighlighter(viewer);

    if (WESBConversionMessages.GlobalOptionsEditor_primitiveConverters.equals(sectionTitle))
        primitiveHighlighter = highlighter;
    else if (WESBConversionMessages.GlobalOptionsEditor_bindingConverters.equals(sectionTitle))
        bindingHighlighter = highlighter;

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, highlighter);

    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        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;
        }
    };

    activationSupport.setEnableEditorActivationWithKeyboard(true);

    TableViewerEditor.create(viewer, focusCellManager, activationSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    return viewer;
}

From source file:eu.artist.premigration.tft.tft.edit.MigrationSuggestionEditingSupport.java

License:Open Source License

/**
 * Editing support for the Inventory View tree viewer
 * //from  ww  w.jav  a  2s.  co  m
 * @param viewer {@link TreeViewer} to be refreshed once the editing is done. 
 */
public MigrationSuggestionEditingSupport(final TreeViewer viewer) {

    super(viewer);

    cellEditor = new DialogCellEditor((Composite) getViewer().getControl()) {

        //This method contains the code to open the Migration Strategy Selection Dialog
        @Override
        protected Object openDialogBox(Control cellEditorWindow) {

            //Get selected compoent
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            Component selectedComponent = ((Component) selection.getFirstElement());

            //Create the dialog and open
            MigrationStrategySelectionDialog dialog = new MigrationStrategySelectionDialog(
                    cellEditorWindow.getShell(), selectedComponent);
            dialog.open();
            //If the dialog is closed by clicking ok
            if (dialog.getReturnCode() == Dialog.OK) {

                @SuppressWarnings("unchecked")
                List<Component> treeInput = (List<Component>) viewer.getInput();

                //If automatic suggestion updates checkbox is checked, the migration suggestions of other components are updated 
                if (InventoryView.automaticSuggestionUpdates) {
                    updateSuggestions(selectedComponent, treeInput);
                }

                InventoryView.handleCheckedStatusOfComponents(viewer.getTree().getItems());

                viewer.getTree().update();
                viewer.refresh();
            }
            return null;
        }
    };

    //Drools initialization
    try {
        // load up the knowledge base
        kbase = readKnowledgeBase();
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

From source file:eu.geclipse.ui.properties.MultilineProperty.java

License:Open Source License

protected CellEditor createCellEditor(final Composite parent) {
    return new DialogCellEditor(parent) {

        /*/*w w  w. j a  v  a2  s .  co m*/
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
         */
        @Override
        protected Object openDialogBox(final Control cellEditorWindow) {
            PropertyDialog dialog = new PropertyDialog(cellEditorWindow.getShell());
            Object value = getValue();
            if (value != null && value instanceof String) {
                dialog.setValue((String) value);
            }
            dialog.open();
            return null;
        }
    };
}

From source file:gov.va.isaac.mdht.otf.ui.properties.GenericRefexTableViewer.java

License:Apache License

@Override
protected void createColumns() {
    // this is called by superclass before subclass fields are initialized
    refexColumns = new ArrayList<TableViewerColumn>();
    refexColumnEditors = new ArrayList<OTFTableEditingSupport>();

    final String[] titles = getColumnTitles();
    final int[] bounds = getColumnWidths();
    final RefsetAttributeType[] columnTypes = getColumnTypes();

    for (int i = 0; i < titles.length; i++) {
        final RefsetAttributeType columnType = columnTypes[i];
        final int columnIndex = i;

        OTFTableEditingSupport refexEditor = new OTFTableEditingSupport(this, columnType) {
            private CellEditor cellEditor = null;

            @Override//from  ww  w .java  2 s.c  om
            protected String getOperationLabel() {
                return "Set refex field";
            }

            @Override
            protected CellEditor getCellEditor(final Object element) {
                if (RefsetMember.isPrimitiveType(attributeType)) {
                    cellEditor = new DialogCellEditor(tableViewer.getTable()) {
                        @Override
                        protected Object openDialogBox(Control cellEditorWindow) {
                            Object value = getPrimitiveValue(attributeType);

                            //change the column type if set in the dialog
                            attributeType = primitiveInputDialog.getValueKind();

                            return value;
                        }
                    };

                } else {
                    cellEditor = new DialogCellEditor(tableViewer.getTable()) {
                        @Override
                        protected Object openDialogBox(Control cellEditorWindow) {
                            ComponentVersionBI component = getMemberComponent(attributeType);
                            return component;
                        }
                    };
                }

                return cellEditor;
            }

            @Override
            protected IStatus doSetValue(Object element, Object value) {
                RefsetMember refsetMember = (RefsetMember) element;

                if (columnIndex == 0) {
                    Object dialogValue = cellEditor.getValue();
                    if (dialogValue instanceof ComponentVersionBI) {
                        ComponentVersionBI memberComponent = (ComponentVersionBI) dialogValue;
                        refsetMember.setReferencedComponent(memberComponent);
                        refresh();
                    }
                } else if (columnIndex == 1 && RefsetMember.isPrimitiveType(attributeType)) {
                    Object cellValue = cellEditor.getValue();
                    if (!cellValue.equals(refsetMember.getExtensionValue())) {
                        try {
                            refsetMember.setExtensionValue(cellValue);
                        } catch (NumberFormatException e) {
                            MessageDialog.open(MessageDialog.ERROR, getActivePart().getSite().getShell(),
                                    "Invalid Value", "Value must be type: " + attributeType.name(), SWT.NONE);
                        }
                    }
                } else if (columnIndex > 1) {
                    Object dialogValue = cellEditor.getValue();
                    if (dialogValue instanceof ComponentVersionBI) {
                        ComponentVersionBI memberComponent = (ComponentVersionBI) dialogValue;
                        refsetMember.getExtensionComponents()[columnIndex - 2] = memberComponent;
                        refresh();
                    }
                }

                return Status.OK_STATUS;
            }

            @Override
            protected Object getValue(Object element) {
                RefsetMember refex = (RefsetMember) element;

                if (columnIndex == 0) {
                    return getFirstColumnComponent(refex);
                } else if (columnIndex == 1 && RefsetMember.isPrimitiveType(attributeType)) {
                    if (refex.getExtensionValue() != null) {
                        return refex.getExtensionValue().toString();
                    } else {
                        return "";
                    }
                } else if (columnIndex > 1) {
                    return refex.getExtensionComponents()[columnIndex - 2];
                }

                return null;
            }
        };

        TableViewerColumn refexColumn = createTableViewerColumn(titles[columnIndex], bounds[columnIndex],
                columnIndex);
        refexColumns.add(columnIndex, refexColumn);

        refexColumn.setEditingSupport(refexEditor);
        refexColumnEditors.add(columnIndex, refexEditor);

    }
}

From source file:gov.va.isaac.mdht.otf.ui.properties.RelationshipSection.java

License:Apache License

@Override
public void createControls(final Composite parent, final TabbedPropertySheetPage aTabbedPropertySheetPage) {
    super.createControls(parent, aTabbedPropertySheetPage);

    Composite composite = getWidgetFactory().createGroup(parent, "Outgoing Relationships");
    FormLayout layout = new FormLayout();
    layout.marginWidth = ITabbedPropertyConstants.HSPACE;
    layout.marginHeight = ITabbedPropertyConstants.VSPACE;
    layout.spacing = ITabbedPropertyConstants.VMARGIN;
    composite.setLayout(layout);//from   ww w .  j a v a  2 s  . com

    addButton = getWidgetFactory().createButton(composite, null, SWT.PUSH);
    Image addImage = Activator.getDefault().getBundledImage("icons/eview16/add.gif");
    addButton.setImage(addImage);
    addButton.setToolTipText("Add relationship");
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            addRelationship();
            relationshipViewer.refresh();
        }
    });

    removeButton = getWidgetFactory().createButton(composite, null, SWT.PUSH);
    Image removeImage = Activator.getDefault().getBundledImage("icons/eview16/delete.gif");
    removeButton.setImage(removeImage);
    removeButton.setToolTipText("Retire selected Relationship(s)");
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            ISelection selection = relationshipViewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                for (Object selected : ((IStructuredSelection) selection).toList()) {
                    if (selected instanceof RelationshipVersionBI) {
                        retireRelationship((RelationshipVersionBI<?>) selected);
                    } else if (selected instanceof RelationshipCAB) {
                        newRelationships.remove((RelationshipCAB) selected);
                    }
                    relationshipViewer.refresh();
                }
            }
        }
    });

    editButton = getWidgetFactory().createButton(composite, null, SWT.PUSH);
    Image editImage = Activator.getDefault().getBundledImage("icons/eview16/write.gif");
    editButton.setImage(editImage);
    editButton.setToolTipText("Edit selected relationship");
    editButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            ISelection selection = relationshipViewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                for (Object selected : ((IStructuredSelection) selection).toList()) {
                    if (selected instanceof RelationshipVersionBI) {
                        editRelationship((RelationshipVersionBI<?>) selected);
                    }
                }
                relationshipViewer.refresh();
            }
        }
    });

    saveButton = getWidgetFactory().createButton(composite, null, SWT.PUSH);
    Image saveImage = Activator.getDefault().getBundledImage("icons/eview16/save.gif");
    saveButton.setImage(saveImage);
    saveButton.setToolTipText("Save all changes");
    saveButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            buildAndCommit();
            relationshipViewer.refresh();
        }
    });

    FormData data = new FormData();
    data.left = new FormAttachment(0, 0);
    data.top = new FormAttachment(0, 0);
    addButton.setLayoutData(data);

    data = new FormData();
    data.left = new FormAttachment(0, 0);
    data.top = new FormAttachment(addButton, 0);
    removeButton.setLayoutData(data);

    data = new FormData();
    data.left = new FormAttachment(0, 0);
    data.top = new FormAttachment(removeButton, 0);
    editButton.setLayoutData(data);

    data = new FormData();
    data.left = new FormAttachment(0, 0);
    data.top = new FormAttachment(editButton, 0);
    saveButton.setLayoutData(data);

    Table table = getWidgetFactory().createTable(composite, SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    data = new FormData();
    data.left = new FormAttachment(addButton, 0);
    data.right = new FormAttachment(100, 0);
    data.top = new FormAttachment(0, 0);
    data.bottom = new FormAttachment(100, 0);
    table.setLayoutData(data);

    relationshipViewer = new OTFTableViewer(table) {
        @Override
        protected void fireSelectionChanged(SelectionChangedEvent event) {
            super.fireSelectionChanged(event);

            boolean enabled = !event.getSelection().isEmpty();
            Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
            removeButton.setEnabled(enabled);
            editButton.setEnabled(enabled && !(selection instanceof CreateOrAmendBlueprint));
        }

        @Override
        protected IContentProvider createContentProvider() {
            return new IStructuredContentProvider() {
                public Object[] getElements(Object inputElement) {
                    try {
                        List<Object> relationships = new ArrayList<Object>();
                        relationships.addAll(conceptVersion.getRelationshipsOutgoingActive());
                        relationships.addAll(newRelationships);
                        saveButton.setEnabled(!newRelationships.isEmpty());
                        return relationships.toArray();

                    } catch (Exception e) {
                        StatusManager.getManager()
                                .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                        "Cannot get concept relationships", e),
                                        StatusManager.SHOW | StatusManager.LOG);
                        return new Object[0];
                    }
                }

                public void dispose() {
                }

                public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
                    if (!removeButton.isDisposed()) {
                        removeButton.setEnabled(false);
                        editButton.setEnabled(false);
                    }

                    if (!saveButton.isDisposed()) {
                        saveButton.setEnabled(!newRelationships.isEmpty());
                    }
                }

            };
        }

        @Override
        protected void createColumns() {
            String[] titles = { "Type", "Destination", "Stated", "Module" };
            int[] bounds = { 200, 300, 100, 200 };

            TableViewerColumn typeColumn = createTableViewerColumn(titles[0], bounds[0], 0);
            TableViewerColumn destinationColumn = createTableViewerColumn(titles[1], bounds[1], 1);
            TableViewerColumn statedColumn = createTableViewerColumn(titles[2], bounds[2], 2);
            TableViewerColumn moduleColumn = createTableViewerColumn(titles[3], bounds[3], 3);

            typeColumn.setEditingSupport(new ConceptComboBoxEditingSupport(this, getAllRelationshipTypes()) {
                @Override
                protected String getOperationLabel() {
                    return "Set relationship type";
                }

                @Override
                protected CellEditor getCellEditor(Object element) {
                    // refresh list if attributes have changed
                    allConceptModelAttributes = null;
                    setConceptList(getAllRelationshipTypes());

                    return super.getCellEditor(element);
                }

                @Override
                protected IStatus doSetValue(Object element, Object value) {
                    RelationshipCAB relationship = (RelationshipCAB) element;

                    ConceptVersionBI typeConcept = getSelectedConcept();
                    if (typeConcept != null) {
                        try {
                            RelationshipCAB editedRelationship = new RelationshipCAB(
                                    relationship.getSourceNid(), typeConcept.getConceptNid(),
                                    relationship.getTargetNid(), relationship.getGroup(),
                                    builderService.getRelationshipType(relationship),
                                    IdDirective.GENERATE_RANDOM);
                            newRelationships.remove(relationship);
                            newRelationships.add(editedRelationship);
                            relationshipViewer.refresh();

                        } catch (IOException | InvalidCAB | ContradictionException e) {
                            StatusManager.getManager()
                                    .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                            "Cannot set relationship type", e),
                                            StatusManager.SHOW | StatusManager.LOG);
                        }
                    }

                    return Status.OK_STATUS;
                }

                @Override
                protected Object getValue(Object element) {
                    // must return Integer index into comboBox list
                    RelationshipCAB relationship = (RelationshipCAB) element;
                    int index = 0;
                    try {
                        ConceptVersionBI typeConcept = queryService.getConcept(relationship.getTypeNid());
                        if (typeConcept != null) {
                            index = getAllRelationshipTypes().indexOf(typeConcept);
                        }
                    } catch (IOException e) {
                        StatusManager.getManager()
                                .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                        "Cannot get relationship type", e),
                                        StatusManager.SHOW | StatusManager.LOG);
                    }
                    return new Integer(index);
                }
            });

            destinationColumn.setEditingSupport(new OTFTableEditingSupport(this) {
                private DialogCellEditor dialogCellEditor = null;

                @Override
                protected String getOperationLabel() {
                    return "Set relationship destination";
                }

                @Override
                protected CellEditor getCellEditor(final Object element) {
                    dialogCellEditor = new DialogCellEditor(tableViewer.getTable()) {
                        @Override
                        protected Object openDialogBox(Control cellEditorWindow) {
                            ConceptVersionBI concept = getTargetConcept();

                            return concept;
                        }
                    };

                    return dialogCellEditor;
                }

                @Override
                protected IStatus doSetValue(Object element, Object value) {
                    Object dialogValue = dialogCellEditor.getValue();
                    if (dialogValue instanceof ConceptVersionBI && element instanceof RelationshipCAB) {
                        RelationshipCAB relationship = (RelationshipCAB) element;
                        ConceptVersionBI targetConcept = (ConceptVersionBI) dialogValue;

                        try {
                            RelationshipCAB editedRelationship = new RelationshipCAB(
                                    relationship.getSourceNid(), relationship.getTypeNid(),
                                    targetConcept.getConceptNid(), relationship.getGroup(),
                                    builderService.getRelationshipType(relationship),
                                    IdDirective.GENERATE_HASH);
                            newRelationships.remove(relationship);
                            newRelationships.add(editedRelationship);
                            relationshipViewer.refresh();

                        } catch (IOException | InvalidCAB | ContradictionException e) {
                            StatusManager.getManager()
                                    .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                            "Cannot set relationship destination", e),
                                            StatusManager.SHOW | StatusManager.LOG);
                        }
                    }

                    return Status.OK_STATUS;
                }

                @Override
                protected Object getValue(Object element) {
                    RelationshipCAB relationship = (RelationshipCAB) element;
                    try {
                        ConceptVersionBI typeConcept = queryService.getConcept(relationship.getTargetNid());
                        if (typeConcept != null) {
                            return typeConcept.getPreferredDescription().getText();
                        }
                    } catch (IOException | ContradictionException e) {
                        StatusManager.getManager()
                                .handle(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                        "Cannot get relationship destination", e),
                                        StatusManager.SHOW | StatusManager.LOG);
                    }
                    return null;
                }
            });

            statedColumn.setEditingSupport(new BooleanEditingSupport(this) {
                @Override
                protected boolean canEdit(Object element) {
                    return false;
                }

                @Override
                protected String getOperationLabel() {
                    return null;
                }

                @Override
                protected IStatus doSetValue(Object element, Object value) {
                    return null;
                }

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

    //TODO sort by: language
    //      relationshipViewer.setSorter(new DescriptionSorter());

}