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

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

Introduction

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

Prototype

public EditingSupport(ColumnViewer viewer) 

Source Link

Usage

From source file:Snippet048TreeViewerTabWithCheckboxFor3_3.java

License:Open Source License

public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) {
    final TreeViewer v = new TreeViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    v.getTree().setLinesVisible(true);/*from w  w w.ja va 2 s.  c o m*/
    v.getTree().setHeaderVisible(true);

    final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v,
            new FocusCellOwnerDrawHighlighter(v));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && (event.keyCode == SWT.CR || event.character == ' '))
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TreeViewerEditor.create(v, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
    final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree());

    TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 1");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 1 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return false;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 2");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 2 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 3");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return ((MyModel) element).bool + "";
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return checkboxCellEditor;
        }

        protected Object getValue(Object element) {
            return new Boolean(((MyModel) element).bool);
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).bool = ((Boolean) value).booleanValue();
            v.update(element, null);
        }
    });

    v.setContentProvider(new MyContentProvider());
    v.setInput(createModel());
    v.getControl().addTraverseListener(new TraverseListener() {

        public void keyTraversed(TraverseEvent e) {
            if ((e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
                    && mgr.getFocusCell().getColumnIndex() == 2) {
                ColumnViewerEditor editor = v.getColumnViewerEditor();
                ViewerCell cell = mgr.getFocusCell();

                try {
                    Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent",
                            new Class[] { int.class, ViewerRow.class, TraverseEvent.class });
                    m.setAccessible(true);
                    m.invoke(editor,
                            new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e });
                } catch (SecurityException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (NoSuchMethodException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalArgumentException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalAccessException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (InvocationTargetException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }

    });
}

From source file:ar.com.fluxit.jqa.wizard.page.CommonsTypesDefinitionWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;//from  www.  ja  va  2 s  .co  m
    container.setLayout(layout);

    Tree commonTypesTree = new Tree(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    commonTypesTree.setHeaderVisible(true);
    commonTypesTree.setLinesVisible(true);
    commonTypesTree.setLayoutData(new GridData(GridData.FILL_BOTH));
    commonTypesTreeViewer = new TreeViewer(commonTypesTree);

    TreeViewerColumn layerColumn = new TreeViewerColumn(commonTypesTreeViewer, SWT.LEFT);
    layerColumn.getColumn().setText("Layer/Types");
    layerColumn.getColumn().setWidth(400);

    final CellEditor checkboxCellEditor = new CheckboxCellEditor();
    TreeViewerColumn commonTypeColumn = new TreeViewerColumn(commonTypesTreeViewer, SWT.LEFT);
    commonTypeColumn.getColumn().setText("Is common?");
    commonTypeColumn.getColumn().setWidth(50);
    commonTypeColumn.setEditingSupport(new EditingSupport(commonTypesTreeViewer) {

        @Override
        protected boolean canEdit(Object arg0) {
            return true;
        }

        @Override
        protected CellEditor getCellEditor(Object arg0) {
            return checkboxCellEditor;
        }

        @Override
        protected Object getValue(Object arg0) {
            return ((CommonDescriptor) arg0).isCommon();
        }

        @Override
        protected void setValue(Object arg0, Object arg1) {
            ((CommonDescriptor) arg0).setCommon((Boolean) arg1);
            commonTypesTreeViewer.update(arg0, null);
        }
    });

    commonTypesTreeViewer.setContentProvider(new CommonTypesContentProvider());
    commonTypesTreeViewer.setLabelProvider(new CommonTypesLabelProvider());
    commonTypesTreeViewer.setInput(getArchitectureDescriptor());
    commonTypesTreeViewer.expandAll();
    commonTypesTreeViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer arg0, Object arg1, Object arg2) {
            if (arg2 instanceof LayerDescriptor) {
                return !((LayerDescriptor) arg2).getCommons().isEmpty();
            } else {
                return true;
            }
        }
    });

    setControl(container);
    ((WizardDialog) getContainer()).addPageChangedListener(this);
}

From source file:ar.com.fluxit.jqa.wizard.page.NamingDefinitionWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;/* w  ww.  j a va2s  . c  o m*/
    container.setLayout(layout);

    Label implPackageLabel = new Label(container, SWT.NONE);
    implPackageLabel.setText("Implementations package naming suffix");

    implPackageText = new Text(container, SWT.BORDER);
    implPackageText.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            getWizard().setImplPackageText(implPackageText.getText());
        }
    });
    implPackageText.setLayoutData(new GridData(50, SWT.DEFAULT));

    Label implClassLabel = new Label(container, SWT.NONE);
    implClassLabel.setText("Implementations classess name suffix");

    classPackageText = new Text(container, SWT.BORDER);
    classPackageText.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            getWizard().setClassPackageText(classPackageText.getText());
        }
    });
    classPackageText.setLayoutData(new GridData(50, SWT.DEFAULT));

    Label layersLabel = new Label(container, SWT.NONE);
    layersLabel.setText("Layers naming pattern");
    layersLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));

    layersTable = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    layersTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layersTable.setContentProvider(ArrayContentProvider.getInstance());
    layersTable.getTable().setHeaderVisible(true);
    layersTable.getTable().setLinesVisible(true);

    TableViewerColumn layerColumn = new TableViewerColumn(layersTable, SWT.NONE);
    layerColumn.getColumn().setText("Layer");
    layerColumn.getColumn().setWidth(300);
    layerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            Layer layer = (Layer) element;
            return layer.getName();
        }
    });

    TableViewerColumn namePatternColumn = new TableViewerColumn(layersTable, SWT.NONE);
    namePatternColumn.getColumn().setWidth(300);
    namePatternColumn.getColumn().setText("Naming pattern");
    namePatternColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            Layer layer = (Layer) element;
            return layer.getNamingPattern();
        }

    });
    namePatternColumn.setEditingSupport(new EditingSupport(layersTable) {

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(layersTable.getTable());
        }

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

        @Override
        protected void setValue(Object element, Object value) {
            ((Layer) element).setNamingPattern(((String) value).trim());
            layersTable.refresh(element, true);
        }
    });
    layersTable.setInput(getWizard().getLayers());
    setControl(container);
    ((WizardDialog) getContainer()).addPageChangedListener(this);
}

From source file:ar.com.fluxit.jqa.wizard.page.ThrowingDefinitionWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;/*from  ww w  .ja  v a  2  s .  c om*/
    container.setLayout(layout);

    layersTable = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    layersTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layersTable.setContentProvider(ArrayContentProvider.getInstance());
    layersTable.getTable().setHeaderVisible(true);
    layersTable.getTable().setLinesVisible(true);

    TableViewerColumn layerColumn = new TableViewerColumn(layersTable, SWT.NONE);
    layerColumn.getColumn().setText("Layer");
    layerColumn.getColumn().setWidth(300);
    layerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            LayerDescriptor layer = (LayerDescriptor) element;
            return layer.getName();
        }
    });

    TableViewerColumn namePatternColumn = new TableViewerColumn(layersTable, SWT.NONE);
    namePatternColumn.getColumn().setWidth(300);
    namePatternColumn.getColumn().setText("Exception super type");
    namePatternColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            LayerDescriptor layer = (LayerDescriptor) element;
            return layer.getExceptionSuperType();
        }

    });
    namePatternColumn.setEditingSupport(new EditingSupport(layersTable) {

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            TypeSelectionExtension extension = new TypeSelectionExtension() {

                @Override
                public ISelectionStatusValidator getSelectionValidator() {
                    return new ISelectionStatusValidator() {
                        @Override
                        public IStatus validate(Object[] selection) {
                            if (selection.length == 1) {
                                try {
                                    IType type = (IType) selection[0];
                                    ITypeHierarchy hierarchy = type
                                            .newSupertypeHierarchy(new NullProgressMonitor());
                                    IType curr = type;
                                    while (curr != null) {
                                        if ("java.lang.Throwable".equals(curr.getFullyQualifiedName('.'))) { //$NON-NLS-1$
                                            return Status.OK_STATUS;
                                        }
                                        curr = hierarchy.getSuperclass(curr);
                                    }
                                } catch (JavaModelException e) {
                                    Status status = new Status(IStatus.ERROR, JQAEclipsePlugin.PLUGIN_ID,
                                            e.getLocalizedMessage(), e);
                                    JQAEclipsePlugin.getDefault().getLog().log(status);
                                    return Status.CANCEL_STATUS;
                                }
                            }
                            return new Status(IStatus.ERROR, JQAEclipsePlugin.PLUGIN_ID,
                                    "Selected item is not an exception");
                        }

                    };
                }

            };
            return new TypeCellEditor(layersTable.getTable(), ThrowingDefinitionWizardPage.this.getContainer(),
                    IJavaSearchConstants.CLASS, "*Exception", extension);
        }

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

        @Override
        protected void setValue(Object element, Object value) {
            ((LayerDescriptor) element).setExceptionSuperType((String) value);
            layersTable.refresh(element, true);
        }
    });
    layersTable.setInput(getArchitectureDescriptor().getLayers());
    setControl(container);
    ((WizardDialog) getContainer()).addPageChangedListener(this);
}

From source file:ar.com.fluxit.jqa.wizard.page.TypingDefinitionWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;/*w  w  w  .j a  v  a 2s.  c  om*/
    container.setLayout(layout);

    layersTable = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    layersTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layersTable.setContentProvider(ArrayContentProvider.getInstance());
    layersTable.getTable().setHeaderVisible(true);
    layersTable.getTable().setLinesVisible(true);

    TableViewerColumn layerColumn = new TableViewerColumn(layersTable, SWT.NONE);
    layerColumn.getColumn().setText("Layer");
    layerColumn.getColumn().setWidth(300);
    layerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            Layer layer = (Layer) element;
            return layer.getName();
        }
    });

    TableViewerColumn namePatternColumn = new TableViewerColumn(layersTable, SWT.NONE);
    namePatternColumn.getColumn().setWidth(300);
    namePatternColumn.getColumn().setText("Super type");
    namePatternColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            Layer layer = (Layer) element;
            return layer.getSuperType();
        }

    });
    namePatternColumn.setEditingSupport(new EditingSupport(layersTable) {

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TypeCellEditor(layersTable.getTable(), TypingDefinitionWizardPage.this.getContainer());
        }

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

        @Override
        protected void setValue(Object element, Object value) {
            ((Layer) element).setSuperType((String) value);
            layersTable.refresh(element, true);
        }
    });
    layersTable.setInput(getWizard().getLayers());
    setControl(container);
    ((WizardDialog) getContainer()).addPageChangedListener(this);
}

From source file:au.gov.ga.earthsci.bookmark.part.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

    Table table = new Table(container,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(ArrayContentProvider.getInstance());
    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);

    TableViewerColumn col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(200);//from w w w.  jav a2  s.  c o  m
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateLabelColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);

    col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(100);
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateOpacityColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);
    col.setEditingSupport(new EditingSupport(col.getViewer()) {

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor textCellEditor = new TextCellEditor(layerTable.getTable());
            textCellEditor.setValidator(new ICellEditorValidator() {
                @Override
                public String isValid(Object value) {
                    try {
                        Double.parseDouble((String) value);
                        return null;
                    } catch (Exception e) {
                        return Messages.LayersPropertyEditor_InvalidOpacityMessage;
                    }
                }
            });
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected Object getValue(Object element) {
            return Double.toString(((Entry<URI, Double>) element).getValue());
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void setValue(Object element, Object value) {
            ((Entry<URI, Double>) element).setValue(Util.clamp(Double.parseDouble((String) value), 0, 1));
            layerTable.refresh(element, true);
        }

    });

    layerTable.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<URI, Double> entry = (Entry<URI, Double>) cell.getElement();
            if (cell.getColumnIndex() == 0) {
                cell.setText(entry.getKey().toString());
            } else {
                cell.setText(Double.toString(entry.getValue()));
            }
        }
    });

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:au.gov.ga.earthsci.bookmark.ui.editor.LayersPropertyEditor.java

License:Apache License

private EditingSupport getEditorSupport(TableViewerColumn col) {
    return new EditingSupport(col.getViewer()) {

        @Override/*ww w.  j a  v a  2 s.c  o  m*/
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor textCellEditor = new TextCellEditor(layerTable.getTable());
            textCellEditor.setValidator(new ICellEditorValidator() {
                @Override
                public String isValid(Object value) {
                    try {
                        Double.parseDouble((String) value);
                        return null;
                    } catch (Exception e) {
                        return Messages.LayersPropertyEditor_InvalidOpacityMessage;
                    }
                }
            });
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected Object getValue(Object element) {
            return ((Entry<String, Map<String, String>>) element).getValue()
                    .get(LayersPropertyPersister.OPACITY_ATTRIBUTE_NAME);
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void setValue(Object element, Object value) {
            double newValue = Double.parseDouble((String) value);
            ((Entry<String, Map<String, String>>) element).getValue().put(
                    LayersPropertyPersister.OPACITY_ATTRIBUTE_NAME, String.valueOf(Util.clamp(newValue, 0, 1)));
            layerTable.refresh(element, true);
        }

    };
}

From source file:ch.elexis.core.ui.contacts.preferences.BezugsKontaktSettings.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    updateExistingEntriesIds.clear();/*from w w w .  j a  va2 s  .c  o  m*/
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout(1, false));

    Group group = new Group(container, SWT.NONE);
    group.setLayout(new GridLayout(1, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    group.setText(Messages.Bezugskontakt_Definition);

    Composite composite = new Composite(group, SWT.NONE);
    GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_composite.heightHint = 300;
    composite.setLayoutData(gd_composite);
    TableColumnLayout tcl_composite = new TableColumnLayout();
    composite.setLayout(tcl_composite);

    tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    tableBezugsKontaktRelations = tableViewer.getTable();
    tableBezugsKontaktRelations.setHeaderVisible(true);
    tableBezugsKontaktRelations.setLinesVisible(true);

    if (allowEditing) {
        Menu menu = new Menu(tableBezugsKontaktRelations);
        tableBezugsKontaktRelations.setMenu(menu);

        MenuItem mntmAddBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmAddBezugsKontaktRelation.setText(Messages.Bezugskontakt_Add);
        mntmAddBezugsKontaktRelation.setImage(Images.IMG_NEW.getImage());
        mntmAddBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                BezugsKontaktRelation bezugsKontaktRelation = new BezugsKontaktRelation("",
                        RelationshipType.AGENERIC, RelationshipType.AGENERIC);
                tableViewer.add(bezugsKontaktRelation);
                tableViewer.setSelection(new StructuredSelection(bezugsKontaktRelation));
            }
        });

        MenuItem mntmRemoveBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmRemoveBezugsKontaktRelation.setText(Messages.Bezugskontakt_Delete);
        mntmRemoveBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                int selectionsIdx = tableViewer.getTable().getSelectionIndex();
                if (selectionsIdx != -1) {
                    boolean ret = MessageDialog.openQuestion(UiDesk.getTopShell(),
                            Messages.Bezugskontakt_ConfirmDelete, Messages.Bezugskontakt_ConfirmDeleteText);
                    if (ret) {
                        tableViewer.getTable().remove(selectionsIdx);
                    }
                }
            }
        });
    }

    TableViewerColumn viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(1, 140));
    col.setText(Messages.BezugsKonktat_Reference);
    col.setToolTipText(Messages.Bezugskontakt_ReferenceTooltip);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(s.getName());
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation) {
                String newName = String.valueOf(value);
                BezugsKontaktRelation tableData = null;
                for (TableItem tableItem : tableViewer.getTable().getItems()) {
                    tableData = (BezugsKontaktRelation) tableItem.getData();
                    if (tableData != null && !tableData.equals(element) && !tableData.getName().isEmpty()
                            && newName.equalsIgnoreCase(tableData.getName())) {
                        MessageDialog.openError(UiDesk.getTopShell(), "",
                                Messages.Bezugskontakt_NameMustBeUnique);
                        return;
                    }
                }
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                if (!bezugsKontaktRelation.getName().equals(newName)) {
                    bezugsKontaktRelation.setName(newName);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                return ((BezugsKontaktRelation) element).getName();
            }
            return null;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(tableViewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationFrom);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getDestRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getDestRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setDestRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getDestRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationTo);

    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getSrcRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getSrcRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setSrcRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getSrcRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });
    ;
    tableViewer
            .setInput(loadBezugKonkaktTypes(CoreHub.globalCfg.get(Patientenblatt2.CFG_BEZUGSKONTAKTTYPEN, "")));
    return container;
}

From source file:ch.elexis.core.ui.dialogs.OrderImportDialog.java

License:Open Source License

private void createViewerColumns() {
    TableViewerColumn column;//  ww w. ja  va2  s.  c om

    final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(viewer.getTable());
    final TextCellEditor textCellEditor = new TextCellEditor(viewer.getTable());

    /* OK (checkbox column) */
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("OK");
    column.getColumn().setWidth(50);
    column.setLabelProvider(new CheckboxLabelProvider());
    column.setEditingSupport(new EditingSupport(viewer) {
        public boolean canEdit(Object element) {
            return true;
        }

        public CellEditor getCellEditor(Object element) {
            return checkboxCellEditor;
        }

        public Object getValue(Object element) {
            if (element instanceof OrderElement) {
                OrderElement orderElement = (OrderElement) element;
                return new Boolean(orderElement.isVerified());
            } else {
                return null;
            }
        }

        public void setValue(Object element, Object value) {
            if (element instanceof OrderElement) {
                OrderElement orderElement = (OrderElement) element;
                if (value instanceof Boolean) {
                    Boolean bValue = (Boolean) value;
                    orderElement.setVerified(bValue.booleanValue());
                }
                viewer.update(orderElement, null);
            }
        }
    });

    /* Amount delivered*/
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Geliefert");
    column.getColumn().setWidth(60);
    column.setLabelProvider(new AmountLabelProvider());
    column.setEditingSupport(new EditingSupport(viewer) {
        public boolean canEdit(Object element) {
            return true;
        }

        public CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        public Object getValue(Object element) {
            if (element instanceof OrderElement) {
                OrderElement orderElement = (OrderElement) element;
                return orderElement.getAmountAsString();
            } else {
                return null;
            }
        }

        public void setValue(Object element, Object value) {
            if (element instanceof OrderElement) {
                OrderElement orderElement = (OrderElement) element;
                if (value instanceof String) {
                    String text = (String) value;
                    try {
                        int amount = Integer.parseInt(text);
                        orderElement.setAmount(amount);
                        orderElement.setVerified(true);
                    } catch (NumberFormatException ex) {
                        // ignore invalid value
                    }
                }
                viewer.update(orderElement, null);
            }
        }
    });

    /* Amount on stock*/
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Lager");
    column.getColumn().setWidth(60);
    column.setLabelProvider(new StockLabelProvider());

    /* Pharamcode */
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Pharmacode");
    column.getColumn().setWidth(80);
    column.setLabelProvider(new PharamcodeLabelProvider());

    /* EAN */
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("EAN");
    column.getColumn().setWidth(110);
    column.setLabelProvider(new EANLabelProvider());

    /* Description */
    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Beschreibung");
    column.getColumn().setWidth(300);
    column.setLabelProvider(new DescriptionLabelProvider());

}

From source file:ch.elexis.core.ui.views.BestellView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    parent.setLayout(new FillLayout());
    form = tk.createForm(parent);/*  ww w.ja  va 2 s .  com*/
    Composite body = form.getBody();
    body.setLayout(new GridLayout());
    Table table = new Table(body, SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    table.setHeaderVisible(true);
    table.setLinesVisible(false);
    tv = new TableViewer(table);

    TableViewerColumn tvc0 = new TableViewerColumn(tv, SWT.CENTER);
    tvc0.getColumn().setText(Messages.BestellView_Number);
    tvc0.getColumn().setWidth(40);
    PersistentObjectEditingSupport poes = new PersistentObjectEditingSupport(tv, BestellungEntry.FLD_COUNT);
    tvc0.setEditingSupport(poes);
    TableViewerColumn tvc1 = new TableViewerColumn(tv, SWT.LEFT);
    tvc1.getColumn().setText(Messages.BestellView_Article);
    tvc1.getColumn().setWidth(280);
    TableViewerColumn tvc2 = new TableViewerColumn(tv, SWT.LEFT);
    tvc2.getColumn().setText(Messages.BestellView_Dealer);
    tvc2.getColumn().setWidth(250);
    tvc2.setEditingSupport(new EditingSupport(tv) {

        @Override
        protected void setValue(Object element, Object value) {
            BestellungEntry se = (BestellungEntry) element;
            if (se == null) {
                return;
            }
            se.setProvider((Kontakt) value);
            getViewer().refresh();
        }

        @Override
        protected Object getValue(Object element) {
            BestellungEntry se = (BestellungEntry) element;
            if (se == null) {
                return null;
            }
            return (Kontakt) se.getProvider();
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new KontaktSelektorDialogCellEditor(((TableViewer) getViewer()).getTable(),
                    "Lieferant auswhlen", "Bitte selektieren Sie den Lieferant");
        }

        @Override
        protected boolean canEdit(Object element) {
            BestellungEntry be = (BestellungEntry) element;
            return (be != null);
        }
    });
    TableViewerColumn tvc3 = new TableViewerColumn(tv, SWT.LEFT);
    tvc3.getColumn().setText("Lager"); //$NON-NLS-1$
    tvc3.getColumn().setWidth(50);

    tv.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(final Object inputElement) {
            if (actBestellung != null) {
                return actBestellung.getEntries().toArray();
            }
            return new Object[0];
        }

        public void dispose() {
        }

        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }

    });
    tv.setLabelProvider(new BestellungLabelProvider());
    tv.setSorter(new ViewerSorter() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            BestellungEntry be1 = (BestellungEntry) e1;
            BestellungEntry be2 = (BestellungEntry) e2;
            String s1 = be1.getArticle().getName();
            String s2 = be2.getArticle().getName();
            return s1.compareTo(s2);
        }

    });
    Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
    tv.addDropSupport(DND.DROP_COPY, types, new DropTargetAdapter() {

        @Override
        public void dragEnter(final DropTargetEvent event) {
            event.detail = DND.DROP_COPY;
        }

        @Override
        public void drop(final DropTargetEvent event) {
            String drp = (String) event.data;
            String[] dl = drp.split(StringConstants.COMMA);

            if (actBestellung == null) {
                NeueBestellungDialog nbDlg = new NeueBestellungDialog(getViewSite().getShell(),
                        Messages.BestellView_CreateNewOrder, Messages.BestellView_EnterOrderTitle);
                if (nbDlg.open() == Dialog.OK) {
                    setBestellung(new Bestellung(nbDlg.getTitle(), CoreHub.actUser));
                } else {
                    return;
                }
            }

            List<StockEntry> stockEntriesToOrder = new ArrayList<StockEntry>();

            for (String obj : dl) {
                PersistentObject dropped = CoreHub.poFactory.createFromString(obj);
                if (dropped instanceof StockEntry) {
                    stockEntriesToOrder.add((StockEntry) dropped);
                } else if (dropped instanceof Artikel) {
                    Artikel art = (Artikel) dropped;
                    if (art.isProduct()) {
                        // TODO user message?
                        return;
                    }
                    // SINGLE SHOT ORDER
                    actBestellung.addBestellungEntry((Artikel) dropped, null, null, 1);
                }
            }

            for (StockEntry se : stockEntriesToOrder) {
                int current = se.getCurrentStock();
                int max = se.getMaximumStock();
                if (max == 0) {
                    max = se.getMinimumStock();
                }
                int toOrder = max - current;

                actBestellung.addBestellungEntry(se.getArticle(), se.getStock(), se.getProvider(), toOrder);
            }

            tv.refresh();
        }

    });
    makeActions();
    viewmenus = new ViewMenus(getViewSite());
    viewmenus.createToolbar(newAction, dailyWizardAction, wizardAction, loadAction, printAction, sendAction);
    viewmenus.createMenu(newAction, dailyWizardAction, wizardAction, loadAction, printAction, sendAction,
            exportClipboardAction);
    viewmenus.createViewerContextMenu(tv, new IAction[] { removeAction });
    form.getToolBarManager().add(checkInAction);
    form.updateToolBar();
    setBestellung(null);
    tv.setInput(getViewSite());
}