Example usage for org.eclipse.jface.viewers CellEditor getErrorMessage

List of usage examples for org.eclipse.jface.viewers CellEditor getErrorMessage

Introduction

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

Prototype

public String getErrorMessage() 

Source Link

Document

Returns the current error message for this cell editor.

Usage

From source file:com.mentor.nucleus.bp.model.compare.contentmergeviewer.ElementEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(Object element) {
    if (element instanceof ObjectElementComparable) {
        ObjectElement objEle = (ObjectElement) ((ObjectElementComparable) element).getRealElement();
        CellEditor editor = null;
        if (((NonRootModelElement) objEle.getParent()).getModelRoot() instanceof Ooaofooa) {
            editor = CellModifierProvider.getCellEditor((NonRootModelElement) objEle.getParent(),
                    viewer.getTree(), objEle);
        } else {//from   w  w  w .ja  v  a2 s. c o m
            editor = com.mentor.nucleus.bp.ui.canvas.cells.CellModifierProvider
                    .getCellEditor((NonRootModelElement) objEle.getParent(), viewer.getTree(), objEle);
        }
        final CellEditor finalEditor = editor;
        editor.addListener(new ICellEditorListener() {

            @Override
            public void editorValueChanged(boolean oldValidState, boolean newValidState) {
                if (!newValidState) {
                    viewer.setErrorMessage(finalEditor.getErrorMessage());
                } else {
                    viewer.setErrorMessage("");
                }
            }

            @Override
            public void cancelEditor() {
                viewer.setErrorMessage("");
            }

            @Override
            public void applyEditorValue() {
                viewer.setErrorMessage("");
            }
        });
        return editor;
    }
    return null;
}

From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.EntityEditorPart.java

License:Creative Commons License

@Override
public void createPartControl(Composite parent) {
    super.createPartControl(parent);

    // sash form is used to split the main form into two parts
    SashForm sashForm = new SashForm(frmNewForm.getBody(), SWT.NONE);
    formToolkit.adapt(sashForm);/*from   w w w . ja v  a2 s  . c  om*/
    formToolkit.paintBordersFor(sashForm);

    Section sctnNewSection = formToolkit.createSection(sashForm, Section.DESCRIPTION | Section.TITLE_BAR);
    sctnNewSection.setText("Entity Rules");
    sctnNewSection.setExpanded(true);
    sctnNewSection.setDescription("Create or edit new Rules here");

    entitiesComposite = new ContentListComposite(sctnNewSection, SWT.NONE,
            Grammar_rulesPackage.eINSTANCE.getRuleset_Rules(), Grammar_rulesPackage.eINSTANCE.getEntity(),
            editor, cb);
    formToolkit.adapt(entitiesComposite);
    sctnNewSection.setClient(entitiesComposite);
    final TableViewer entityTableViewer = entitiesComposite.getTableViewer();

    // the first column where the name of the Rule can be viewed and edited
    entitiesComposite.addColumn(getString("_UI_Rule_name_feature"), COLUMN_TYPE.RULENAME);

    // the second column where the user can enable or disable the rule
    entitiesComposite.addColumn(getString("_UI_Rule_enabled_feature"), COLUMN_TYPE.ENABLED);

    // the third column where the type is set
    entitiesComposite.addColumn(getString("_UI_EntityRule_type_feature"), COLUMN_TYPE.TYPE);

    entityTableViewer.setColumnProperties(new String[] { "0", "1", "2" });

    entityTableViewer.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            Object result = null;
            Entity rule = (Entity) element;
            switch (property) {
            case "0":
                if (rule.getName() == null) {
                    result = "";
                } else {
                    result = rule.getName() + "";
                }
                break;
            case "1":
                result = new Boolean(rule.isEnabled());
                break;
            case "2":
                result = true;
                if (rule.getType().equals(EntityType.DYNAMIC)) {
                    result = false;
                }
                break;
            }
            return result;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem item = (TableItem) element;
            Entity oldValue = (Entity) item.getData();
            EAttribute feature = null;
            switch (property) {
            case "0":
                feature = Grammar_rulesPackage.eINSTANCE.getRule_Name();
                break;
            case "1":
                feature = Grammar_rulesPackage.eINSTANCE.getRule_Enabled();
                break;
            case "2":
                feature = Grammar_rulesPackage.eINSTANCE.getEntity_Type();

                if ((Boolean) value) {
                    value = "static";
                } else {
                    value = "dynamic";
                }
                break;
            }
            if (oldValue.getName() != null) {
                if ((property.equals("0") && !oldValue.getName().equals(value)) || property.equals("1")
                        || property.equals("2")) {
                    if (value.equals("static")) {
                        editor.getEditingDomain().getCommandStack().execute(SetCommand
                                .create(editor.getEditingDomain(), item.getData(), feature, EntityType.STATIC));
                    } else if (value.equals("dynamic")) {
                        editor.getEditingDomain().getCommandStack().execute(SetCommand.create(
                                editor.getEditingDomain(), item.getData(), feature, EntityType.DYNAMIC));
                    } else {
                        editor.getEditingDomain().getCommandStack().execute(
                                SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value));
                    }
                }
            } else {
                editor.getEditingDomain().getCommandStack()
                        .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value));
            }
        }

    });

    entityTableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(entityTableViewer.getTable()),
            new CheckboxCellEditor(entityTableViewer.getTable()),
            new CheckboxCellEditor(entityTableViewer.getTable()) });

    entityTableViewer.setInput(ruleset);

    entityTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        // This ensures that we handle selections correctly, i.e. for each
        // selected entity rule a corresponding PhraseValue Pair is
        // shown in the detail view

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) entityTableViewer.getSelection();
            if (selection != null && selection.size() == 1) {
                setSelectedRule((Rule) selection.getFirstElement());
                if (selectedRule != null) {
                    editor.setCurrentViewer(entityTableViewer);
                }
            } else {
                setSelectedRule(null);
            }

        }
    });

    Composite rightSide = new Composite(sashForm, SWT.NONE);
    formToolkit.adapt(rightSide);
    formToolkit.paintBordersFor(rightSide);
    rightSide.setLayout(new FillLayout(SWT.HORIZONTAL));

    SashForm sashForm_1 = new SashForm(rightSide, SWT.VERTICAL);
    formToolkit.adapt(sashForm_1);
    formToolkit.paintBordersFor(sashForm_1);

    final Section sctnNewSection_1 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR);
    formToolkit.paintBordersFor(sctnNewSection_1);
    sctnNewSection_1.setText("Phrase Value Pairs");
    sctnNewSection_1.setExpanded(true);

    phraseMappingComposite = new ContentListComposite(sctnNewSection_1, SWT.NONE,
            Grammar_rulesPackage.eINSTANCE.getEntity_Entries(),
            Grammar_rulesPackage.eINSTANCE.getPhraseValuePair(), editor, cb);
    formToolkit.adapt(phraseMappingComposite);
    sctnNewSection_1.setClient(phraseMappingComposite);

    // phrase Column
    phraseMappingComposite.addColumn(getString("_UI_PhraseMapping_name_feature"), COLUMN_TYPE.RULENAME);

    // value Column
    phraseMappingComposite.addColumn(getString("_UI_PhraseValue_name_feature"), COLUMN_TYPE.RULENAME);

    phraseMappingComposite.getTableViewer().setColumnProperties(new String[] { "0", "1" });

    phraseMappingComposite.getTableViewer().setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            String result = "";
            PhraseValuePair pv = (PhraseValuePair) element;
            switch (property) {
            case "0":
                if (pv.getPhrase() == null) {
                    result = "";
                } else {
                    result = pv.getPhrase();
                }
                break;
            case "1":
                if (pv.getValue() == null) {
                    result = "";
                } else {
                    result = pv.getValue();
                }
                break;
            }
            return result;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem item = (TableItem) element;
            PhraseValuePair pvOld = (PhraseValuePair) item.getData();
            EAttribute feature = null;
            String newString = (String) value;
            switch (property) {
            case "0":
                feature = Grammar_rulesPackage.eINSTANCE.getPhraseValuePair_Phrase();
                break;
            case "1":
                feature = Grammar_rulesPackage.eINSTANCE.getPhraseValuePair_Value();
                break;
            }
            if (!newString.equals(pvOld)) {
                editor.getEditingDomain().getCommandStack()
                        .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value));
            }
        }
    });

    phraseMappingComposite.getTableViewer().setCellEditors(
            new CellEditor[] { new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()),
                    new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()) });

    phraseMappingComposite.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
        // This ensures that we handle selections correctly, i.e.
        // for each
        // selected entity rule a corresponding PhraseValue Pair is
        // shown in
        // the detail view
        //
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) entityTableViewer.getSelection();
            if (selection != null) {
                editor.setCurrentViewer(phraseMappingComposite.getTableViewer());
            }

        }
    });

    final Label errorLabel = formToolkit.createLabel(sctnNewSection_1, "", SWT.NONE);
    sctnNewSection_1.setTextClient(errorLabel);
    errorLabel.setForeground(
            getEditorSite().getWorkbenchWindow().getWorkbench().getDisplay().getSystemColor(SWT.COLOR_RED));

    CellEditor[] test = phraseMappingComposite.getTableViewer().getCellEditors();
    final CellEditor e = test[0];
    if (e instanceof TextCellEditor) {
        e.setValidator(new ABNFValidator());
        e.addListener(new ICellEditorListener() {
            @Override
            public void applyEditorValue() {
                setErrorMessage(null);
            }

            @Override
            public void cancelEditor() {
                setErrorMessage(null);
            }

            @Override
            public void editorValueChanged(boolean oldValidState, boolean newValidState) {
                setErrorMessage(e.getErrorMessage());
            }

            private void setErrorMessage(String errorMessage) {
                if (errorMessage != null) {
                    System.out.println(errorMessage);
                    errorLabel.setText(errorMessage);
                    sctnNewSection_1.layout();
                } else {
                    errorLabel.setText("");
                    sctnNewSection_1.layout();
                }
            }
        });
    }

    Section sctnNewSection_2 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR);
    formToolkit.paintBordersFor(sctnNewSection_2);
    sctnNewSection_2.setText("Interpretation");
    sctnNewSection_2.setExpanded(true);

    treeViewerComposite = new EObjectTreeViewerComposite(sctnNewSection_2, SWT.NONE, editor, entitiesComposite);
    formToolkit.adapt(treeViewerComposite);
    formToolkit.paintBordersFor(treeViewerComposite);
    sctnNewSection_2.setClient(treeViewerComposite);

    sashForm_1.setWeights(new int[] { 1, 1 });
    sashForm.setWeights(new int[] { 1, 1 });
    setSelectedRule(null);

}

From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.UtteranceEditorPart.java

License:Creative Commons License

/**
 * @param parent//from   ww  w . ja  v a  2  s.c o m
 *            This class is called from the init() method. Here all the SWT
 *            and JFace components in the form are drawn.
 */
@Override
public void createPartControl(Composite parent) {
    super.createPartControl(parent);

    // sash form is used to split the main form into two parts
    SashForm sashForm = new SashForm(frmNewForm.getBody(), SWT.NONE);
    formToolkit.adapt(sashForm);
    formToolkit.paintBordersFor(sashForm);

    Section sctnNewSection = formToolkit.createSection(sashForm, Section.DESCRIPTION | Section.TITLE_BAR);

    formToolkit.paintBordersFor(sctnNewSection);
    sctnNewSection.setText("Utterance Rules");
    sctnNewSection.setExpanded(true);
    sctnNewSection.setDescription("Create or edit new Rules here");

    utteranceListComposite = new ContentListComposite(sctnNewSection, SWT.NONE,
            Grammar_rulesPackage.eINSTANCE.getRuleset_Rules(), Grammar_rulesPackage.eINSTANCE.getUtterance(),
            editor, cb);
    formToolkit.adapt(utteranceListComposite);
    sctnNewSection.setClient(utteranceListComposite);
    final TableViewer utterancesTableViewer = utteranceListComposite.getTableViewer();

    // the first column where the name of the Rule can be viewed and edited
    utteranceListComposite.addColumn(getString("_UI_Rule_name_feature"), COLUMN_TYPE.RULENAME);

    // the second column where the user can enable or disable the rule
    utteranceListComposite.addColumn(getString("_UI_Rule_enabled_feature"), COLUMN_TYPE.ENABLED);

    utterancesTableViewer.setColumnProperties(new String[] { "0", "1" });

    // setting a cell modifier so the rules can be edited in the TableViewer
    // directly
    utterancesTableViewer.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            Object result = null;
            Rule rule = (Rule) element;
            // checking to see which property should be shown, name or
            // isEnabled and what is going to be shown in the table
            switch (property) {
            case "0":
                if (rule.getName() == null) {
                    result = "";
                } else {
                    result = rule.getName() + "";
                }
                break;
            case "1":
                result = new Boolean(rule.isEnabled());
                break;
            }
            return result;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            // getting the selected element
            TableItem item = (TableItem) element;
            // getting the selected rule
            Rule oldValue = (Rule) item.getData();
            EAttribute feature = null;
            // depending on which property should be edited a different
            // feature is set for the setCommand
            switch (property) {
            case "0":
                feature = Grammar_rulesPackage.eINSTANCE.getRule_Name();
                break;
            case "1":
                feature = Grammar_rulesPackage.eINSTANCE.getRule_Enabled();
                break;
            }
            if (oldValue.getName() != null) {
                // if the name has not changed do nothing
                if ((property.equals("0") && !oldValue.getName().equals(value)) || property.equals("1")) {
                    editor.getEditingDomain().getCommandStack().execute(
                            SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value));

                }
            } else {
                editor.getEditingDomain().getCommandStack()
                        .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value));
            }
        }

    });

    // setting a cell editor for both properties of the Utterance Rules that
    // need to be edited
    utterancesTableViewer
            .setCellEditors(new CellEditor[] { new TextCellEditor(utterancesTableViewer.getTable()),
                    new CheckboxCellEditor(utterancesTableViewer.getTable()) });
    utterancesTableViewer.setInput(ruleset);

    // on selection changed update the details view (the PhraseMapping Table
    // Viewer and the Interpretation TreeViewer
    utterancesTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        // This ensures that we handle selections correctly.
        //
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) utterancesTableViewer.getSelection();
            if (selection != null && selection.size() == 1) {
                setSelectedUtterance((Utterance) selection.getFirstElement());
                editor.setCurrentViewer(utterancesTableViewer);
            } else {
                setSelectedUtterance(null);
            }
        }
    });

    Composite rightSide = new Composite(sashForm, SWT.NONE);
    formToolkit.adapt(rightSide);
    formToolkit.paintBordersFor(rightSide);
    rightSide.setLayout(new FillLayout(SWT.HORIZONTAL));

    SashForm sashForm_1 = new SashForm(rightSide, SWT.VERTICAL);
    formToolkit.adapt(sashForm_1);
    formToolkit.paintBordersFor(sashForm_1);

    final Section sctnNewSection_1 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR);
    formToolkit.paintBordersFor(sctnNewSection_1);
    sctnNewSection_1.setText("Phrases");
    sctnNewSection_1.setExpanded(true);

    phraseMappingComposite = new ContentListComposite(sctnNewSection_1, SWT.NONE,
            Grammar_rulesPackage.eINSTANCE.getUtterance_Phrases(), EcorePackage.eINSTANCE.getEString(), editor,
            cb);
    formToolkit.adapt(phraseMappingComposite);
    sctnNewSection_1.setClient(phraseMappingComposite);

    // phrase Column
    phraseMappingComposite.addColumn(getString("_UI_PhraseMapping_name_feature"), COLUMN_TYPE.RULENAME);

    phraseMappingComposite.getTableViewer().setColumnProperties(new String[] { "0" });

    // cell modifier for changing the phrases in the table
    phraseMappingComposite.getTableViewer().setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            return element;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem item = (TableItem) element;
            String oldValue = (String) item.getData();
            EAttribute feature = Grammar_rulesPackage.eINSTANCE.getUtterance_Phrases();
            String newString = (String) value;
            if (oldValue == null || !oldValue.equals(newString)) {
                // execute a replace comand where the oldPhrase is
                // updated with a new Phrase
                for (String phrase : selectedUtterance.getPhrases()) {
                    if (phrase.equals(newString)) {
                        errorLabel.setText("Phrases must be unique");
                        sctnNewSection_1.layout();
                        return;
                    }
                }
                ReplaceCommand cmd = new ReplaceCommand(editor.getEditingDomain(), selectedUtterance, feature,
                        oldValue, newString);

                editor.getEditingDomain().getCommandStack().execute(cmd);
            }

        }

    });

    phraseMappingComposite.getTableViewer().setCellEditors(
            new CellEditor[] { new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()) });

    // this label is used to show the error that is given with a wrong
    // Phrase input
    errorLabel = formToolkit.createLabel(sctnNewSection_1, "", SWT.NONE);
    sctnNewSection_1.setTextClient(errorLabel);
    errorLabel.setForeground(
            getEditorSite().getWorkbenchWindow().getWorkbench().getDisplay().getSystemColor(SWT.COLOR_RED));

    // to set a validation of the phrases a listener is added to the cell
    // editor of the phrase mapping table.
    CellEditor[] test = phraseMappingComposite.getTableViewer().getCellEditors();
    for (final CellEditor e : test) {
        if (e instanceof TextCellEditor) {
            // the validator is set to a class designed previously, called
            // ABNF validator
            e.setValidator(new ABNFValidator());
            e.addListener(new ICellEditorListener() {
                @Override
                public void applyEditorValue() {
                    setErrorMessage(null);
                }

                @Override
                public void cancelEditor() {
                    setErrorMessage(null);
                }

                // here the error message is set
                @Override
                public void editorValueChanged(boolean oldValidState, boolean newValidState) {
                    setErrorMessage(e.getErrorMessage());
                }

                // here the error message is set to the a label
                private void setErrorMessage(String errorMessage) {
                    if (errorMessage != null) {
                        errorLabel.setText(errorMessage);
                        sctnNewSection_1.layout();
                    } else {
                        errorLabel.setText("");
                        sctnNewSection_1.layout();
                    }
                }
            });
        }
    }

    Section sctnNewSection_2 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR);
    formToolkit.paintBordersFor(sctnNewSection_2);
    sctnNewSection_2.setText("Interpretation");
    sctnNewSection_2.setExpanded(true);

    treeViewerComposite = new EObjectTreeViewerComposite(sctnNewSection_2, SWT.NONE, editor,
            utteranceListComposite);
    formToolkit.adapt(treeViewerComposite);
    formToolkit.paintBordersFor(treeViewerComposite);
    sctnNewSection_2.setClient(treeViewerComposite);

    sashForm_1.setWeights(new int[] { 1, 1 });
    sashForm.setWeights(new int[] { 1, 1 });
    setSelectedUtterance(null);
}

From source file:org.eclipse.epf.authoring.ui.forms.ProcessBreakdownStructureFormPage.java

License:Open Source License

/**
 * Set all editors and modifiers for the viewer
 *///  w w w .  j a  va  2s.c o  m
private void setAllEditorsAndModifiers() {
    setCellEditors();
    setCheckBoxCellEditors();

    // Set the cell modifier
    viewer.setCellModifier(new ICellModifier() {
        /**
         * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
         */
        public boolean canModify(Object element, String property) {
            // System.out.println("canModify: element="+element+",
            // property="+property);

            if (isReadOnly() || (element instanceof BreakdownElementWrapperItemProvider
                    && ((BreakdownElementWrapperItemProvider) element).isReadOnly())) {
                return false;
            }

            //            if (!(element instanceof BreakdownElement)
            //                  && !(element instanceof BreakdownElementWrapperItemProvider && !((BreakdownElementWrapperItemProvider) element)
            //                        .isReadOnly())) {
            //               Collection types = new ArrayList();
            //               types.add(VariabilityType.EXTENDS_LITERAL);
            //               if (TngUtil
            //                     .isGeneralizer(
            //                           (VariabilityElement) ((BreakdownElementWrapperItemProvider) element)
            //                                 .getOwner(), types))
            //                  return false;
            //            }

            if (property == IBSItemProvider.COL_ID || property == IBSItemProvider.COL_TYPE
                    || property == IBSItemProvider.COL_MODEL_INFO
                    || property == IBSItemProvider.COL_DELIVERABLE) {
                return false;
            }

            element = TngUtil.unwrap(element);
            if (!(element instanceof WorkProductDescriptor) && (property == IBSItemProvider.COL_ENTRY_STATE
                    || property == IBSItemProvider.COL_EXIT_STATE)) {
                return false;
            }
            if (!(element instanceof WorkBreakdownElement) && (property == IBSItemProvider.COL_PREDECESSORS)) {
                return false;
            }

            return true;
        }

        /**
         * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
         */
        public Object getValue(Object element, String property) {
            // System.out.println("getValue: element="+element+",
            // property="+property);
            BreakdownElement e = (BreakdownElement) TngUtil.unwrap(element);
            String val = getText(e, property);
            switch (getCellEditorType(property)) {
            case ColumnDescriptor.CELL_EDITOR_TYPE_COMBO_BOOLEAN:
                if (TXT_TRUE.equalsIgnoreCase(val)) {
                    return new Integer(0);
                } else {
                    return new Integer(1);
                }
            case ColumnDescriptor.CELL_EDITOR_TYPE_TEXT:
                return val;
            case ColumnDescriptor.CELL_EDITOR_TYPE_CHECK_BOOLEAN:
                return Boolean.valueOf(val);
            default:
                return val;
            }
        }

        /**
         * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
         */
        public void modify(final Object element, String property, Object value) {
            // System.out.println("modify: element="+element+",
            // property="+property+", value="+value);
            Widget item = (Widget) element;
            BreakdownElement be = (BreakdownElement) TngUtil.unwrap(item.getData());

            final int columnIndex = getColumnIndex(property);
            CellEditor cellEditor = viewer.getCellEditors()[columnIndex];
            String errMsg = cellEditor.getErrorMessage();
            if (errMsg != null) {
                return;
            }

            String txt;
            switch (getCellEditorType(property)) {
            case ColumnDescriptor.CELL_EDITOR_TYPE_TEXT:
                txt = (String) value;
                break;
            case ColumnDescriptor.CELL_EDITOR_TYPE_COMBO_BOOLEAN:
                int index = ((Number) value).intValue();
                if (index == 0) {
                    txt = TXT_TRUE;
                } else {
                    txt = TXT_FALSE;
                }
                break;
            case ColumnDescriptor.CELL_EDITOR_TYPE_CHECK_BOOLEAN:
                txt = value.toString();
                break;
            default:
                txt = TngUtil.checkNull(value.toString());
            }
            setText(be, property, txt);
            if (property == IBSItemProvider.COL_PRESENTATION_NAME && StrUtil.isBlank(be.getName())) {
                be.setName(txt);
            }

            viewer.refresh();
        }
    });
}

From source file:org.eclipse.epf.authoring.ui.properties.WorkBreakdownElementGeneralSection.java

License:Open Source License

private void setCellModifiers() {
    // Set the cell modifier
    viewer.setCellModifier(new ICellModifier() {
        public boolean canModify(Object element, String property) {
            // System.out.println("canModify: element="+element+",
            // property="+property);
            if (!(element instanceof PredecessorMap))
                return false;
            if (property == COL_PRESENTATION_NAME) {
                return false;
            }//from w w  w. j  a v a 2  s .co  m

            return true;
        }

        public Object getValue(Object element, String property) {
            // System.out.println("getValue: element="+element+",
            // property="+property);

            String val = null;
            switch (getCellEditorType(property)) {
            case ColumnDescriptor.CELL_EDITOR_TYPE_TEXT:
                val = new Integer(((PredecessorMap) element).getId()).toString();
                return val;
            case ColumnDescriptor.CELL_EDITOR_TYPE_COMBO_BOOLEAN:
                int value = (((PredecessorMap) element).getWorkOrder()).getLinkType().getValue();
                if (WorkOrderType.FINISH_TO_START_VALUE == value) {
                    return new Integer(0);
                } else if (WorkOrderType.FINISH_TO_FINISH_VALUE == value) {
                    return new Integer(1);
                } else if (WorkOrderType.START_TO_START_VALUE == value) {
                    return new Integer(2);
                } else
                    return new Integer(3);

            default:
                return ""; //$NON-NLS-1$
            }
        }

        public void modify(final Object element, String property, Object value) {
            // System.out.println("modify: element="+element+",
            // property="+property+", value="+value);
            TableItem item = (TableItem) element;
            PredecessorMap predMap = (PredecessorMap) item.getData();
            WorkOrder wo = predMap.getWorkOrder();

            if (property.equals(COL_ID)) {
                item.setText(0, value.toString());

                int predId;
                try {
                    predId = new Integer(value.toString()).intValue();
                    if (predId < 0)
                        throw new Exception();
                } catch (Exception e) {
                    AuthoringUIPlugin.getDefault().getMsgDialog().displayWarning(
                            PropertiesResources.Process_predecessors_validNumberTitle,
                            PropertiesResources.Process_predecessors_validNumberMessage);
                    predMapList.remove(predMap);
                    viewer.refresh();
                    return;
                }
                predMap.setId(predId);
            }

            final int columnIndex = getColumnIndex(property);
            CellEditor cellEditor = viewer.getCellEditors()[columnIndex];
            String errMsg = cellEditor.getErrorMessage();
            if (errMsg != null) {
                return;
            }

            WorkOrderType type;
            IBSItemProvider adapter = (IBSItemProvider) getBSAdapter();
            WorkBreakdownElement wbe = (WorkBreakdownElement) getElement();

            switch (getCellEditorType(property)) {
            case ColumnDescriptor.CELL_EDITOR_TYPE_TEXT:
                Object process = adapter.getTopItem();

                List<Object> predecessors = new ArrayList<Object>();
                String str = getPredId();
                String result = ProcessUtil.checkPredecessorList(wbe, str, getAdapterFactory(), process,
                        predecessors);

                if (result == null) {
                    List<WorkOrder> addList = new ArrayList<WorkOrder>();
                    List<WorkOrder> predToBeDeleted = new ArrayList<WorkOrder>();
                    PredecessorList.prepareUpdatePredecessors(getAdapterFactory(), wbe, predecessors, addList,
                            predToBeDeleted);
                    if (!predToBeDeleted.isEmpty()) {
                        actionMgr.doAction(IActionManager.REMOVE_MANY, wbe,
                                UmaPackage.eINSTANCE.getWorkBreakdownElement_LinkToPredecessor(),
                                predToBeDeleted, -1);
                    }
                    if (!addList.isEmpty()) {
                        boolean status = actionMgr.doAction(IActionManager.ADD_MANY, wbe,
                                UmaPackage.eINSTANCE.getWorkBreakdownElement_LinkToPredecessor(), addList, -1);
                        if (status) {
                            //TODO: review this
                            predMap.setWorkOrder(addList.get(addList.size() - 1));
                        } else {
                            predMapList.remove(predMap);
                        }
                    }
                } else {
                    // show error message box
                    String title = getEditor().getTitle();
                    String problem = PropertiesResources.ProcessEditorFormProperties_cellEditor_invalidPredcessor_problem_msg;
                    MsgDialog dialog = AuthoringUIPlugin.getDefault().getMsgDialog();
                    dialog.displayWarning(title, problem, result);
                    predMapList.remove(predMap);
                }

                break;
            case ColumnDescriptor.CELL_EDITOR_TYPE_COMBO_BOOLEAN:
                boolean removed = false;
                WorkBreakdownElement wbeCopy = null;
                WorkOrder o = null;
                int index = ((Number) value).intValue();
                for (Iterator iter = wbe.getLinkToPredecessor().iterator(); iter.hasNext();) {
                    o = (WorkOrder) iter.next();
                    if (o.getPred() == wo.getPred()) {
                        if (o.getLinkType().getValue() != index) {
                            wbeCopy = o.getPred();
                            iter.remove();
                            removed = true;
                        }
                    }
                }

                if (index == 0) {
                    type = WorkOrderType.FINISH_TO_START;
                } else if (index == 1) {
                    type = WorkOrderType.FINISH_TO_FINISH;
                } else if (index == 2) {
                    type = WorkOrderType.START_TO_START;
                } else {
                    type = WorkOrderType.START_TO_FINISH;
                }

                if (removed && wbeCopy != null) {
                    wo.setPred(wbeCopy);
                    wo.setLinkType(type);
                    boolean status = actionMgr.doAction(IActionManager.ADD, wbe,
                            UmaPackage.eINSTANCE.getWorkBreakdownElement_LinkToPredecessor(), wo, -1);
                    if (status)
                        predMap.setWorkOrder(o);
                } else {
                    actionMgr.doAction(IActionManager.SET, wo, UmaPackage.eINSTANCE.getWorkOrder_LinkType(),
                            type, -1);
                }

                break;

            default:
                type = WorkOrderType.FINISH_TO_FINISH;
            }

            viewer.refresh();
        }
    });

}

From source file:org.eclipse.graphiti.ui.internal.policy.DefaultDirectEditPolicy.java

License:Open Source License

/**
 * Is called, when the (already opened) cell-editor was closed (but not
 * canceled)./*from   w  ww.  j av  a2 s .c  o  m*/
 * 
 * @see org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand(org.eclipse.gef.requests.DirectEditRequest)
 */
@Override
protected Command getDirectEditCommand(DirectEditRequest request) {

    if (!(request instanceof GFDirectEditRequest)) {
        return null;
    }

    CellEditor cellEditor = request.getCellEditor();
    final String message = cellEditor.getErrorMessage();
    if (message != null && message.length() != 0) {
        MessageDialog.openError(GraphitiUiInternal.getWorkbenchService().getShell(),
                Messages.DefaultDirectEditPolicy_0_xmsg, message);
        return null;
    }

    final IDirectEditHolder directEditHolder = ((GFDirectEditRequest) request).getDirectEditHolder();
    final IDirectEditingFeature directEditingFeature = directEditHolder.getDirectEditingFeature();
    final IDirectEditingContext directEditingContext = directEditHolder.getDirectEditingContext();

    String value = null;
    IProposal acceptedProposal = null;

    if (cellEditor instanceof TextCellEditor) {
        TextCellEditor tce = (TextCellEditor) cellEditor;
        value = (String) tce.getValue();
        acceptedProposal = tce.getAcceptedProposal();
    } else if (cellEditor instanceof ComboBoxCellEditor) {
        final int index = ((Integer) cellEditor.getValue()).intValue();

        // TODO: user inserted free value, what to do here?
        if (index < 0) {
            final Control control = cellEditor.getControl();
            if (control instanceof CCombo) {
                final CCombo cc = (CCombo) control;
                value = cc.getText();
            } else {
                return null;
            }
        } else {
            if (directEditHolder.isSimpleMode()) {
                value = directEditingFeature.getPossibleValues(directEditingContext)[index];
            } else {
                acceptedProposal = directEditingFeature.getProposalSupport()
                        .getPossibleValues(directEditingContext)[index];
            }
        }

    }

    if (value == null && acceptedProposal == null) {
        return null;
    }

    final ICommand cmd = new DirectEditingFeatureCommandWithContext(directEditingFeature, directEditingContext,
            value, acceptedProposal);

    final IFeatureProvider fp = directEditingFeature.getFeatureProvider();
    final DiagramEditorInternal diagramEditor = (DiagramEditorInternal) fp.getDiagramTypeProvider()
            .getDiagramEditor();
    final CommandStack commandStack = diagramEditor.getEditDomain().getCommandStack();
    commandStack.execute(new GefCommandWrapper(cmd, diagramEditor.getEditingDomain()));
    // CommandExec.getSingleton().executeCommand(cmd, fp.getConnection());

    return null;
}

From source file:org.multicore_association.shim.edit.gui.swt.viewer.ShimObjectTableViewer.java

License:MIT License

/**
 * Returns the CellEditorListener depending on the specified editor.
 * //from   w  ww .  j a  va 2 s  .  c  om
 * @param editor
 *            the specified editor to return the CellEditorListener
 * @return the CellEditorListener depending on the specified editor
 */
private ICellEditorListener getCellEditorListener(final CellEditor editor) {
    ICellEditorListener listener = new ICellEditorListener() {

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#applyEditorValue()
         */
        @Override
        public void applyEditorValue() {
            writeErrorMessage(null);
        }

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#cancelEditor()
         */
        @Override
        public void cancelEditor() {
            writeErrorMessage(null);
        }

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#editorValueChanged(boolean,
         *      boolean)
         */
        @Override
        public void editorValueChanged(boolean oldValidState, boolean newValidState) {
            writeErrorMessage(editor.getErrorMessage());
        }
    };
    return listener;
}

From source file:org.multicore_association.shim.edit.gui.swt.viewer.ShimObjectTableViewer.java

License:MIT License

/**
 * Returns the CellEditorListener of ComboBox column depending on the
 * specified editor.//w  w w .j a  v  a  2 s. c  o  m
 * 
 * @param editor
 *            the specified editor to return the CellEditorListener
 * @return the CellEditorListener of ComboBox column depending on the
 *         specified editor
 */
protected ICellEditorListener getComboBoxCellEditorListener(final CellEditor editor) {
    ICellEditorListener listener = new ICellEditorListener() {

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#applyEditorValue()
         */
        @Override
        public void applyEditorValue() {
            writeErrorMessage(editor.getErrorMessage());
        }

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#cancelEditor()
         */
        @Override
        public void cancelEditor() {
            writeErrorMessage(editor.getErrorMessage());
        }

        /**
         * @see org.eclipse.jface.viewers.ICellEditorListener#editorValueChanged(boolean,
         *      boolean)
         */
        @Override
        public void editorValueChanged(boolean oldValidState, boolean newValidState) {
            writeErrorMessage(editor.getErrorMessage());
        }
    };
    return listener;
}

From source file:org.xtuml.bp.core.editors.editing.ElementEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(Object element) {
    int index = (Integer) tableColumn.getData("index");
    if (element instanceof Object[]) {
        Object[] elements = (Object[]) element;
        element = elements[index];/*from w  w  w.  j  a  v  a 2  s  .  c  o m*/
    }
    if (element instanceof ObjectElement) {
        ObjectElement objEle = (ObjectElement) element;
        if (objEle.getName().equals("Descrip")) {
            return null;
        }
        CellEditor editor = null;
        if (((NonRootModelElement) objEle.getParent()).getModelRoot() instanceof Ooaofooa) {
            editor = CellModifierProvider.getCellEditor((NonRootModelElement) objEle.getParent(),
                    (Composite) viewer.getControl(), objEle);
        } else {
            editor = org.xtuml.bp.ui.canvas.cells.CellModifierProvider.getCellEditor(
                    (NonRootModelElement) objEle.getParent(), (Composite) viewer.getControl(), objEle);
        }
        final CellEditor finalEditor = editor;
        editor.addListener(new ICellEditorListener() {

            @Override
            public void editorValueChanged(boolean oldValidState, boolean newValidState) {
                if (!newValidState) {
                    ((ITabErrorSupport) viewer).setErrorMessage(finalEditor.getErrorMessage());
                } else {
                    ((ITabErrorSupport) viewer).setErrorMessage("");
                }
            }

            @Override
            public void cancelEditor() {
                ((ITabErrorSupport) viewer).setErrorMessage("");
            }

            @Override
            public void applyEditorValue() {
                ((ITabErrorSupport) viewer).setErrorMessage("");
            }
        });
        return editor;
    }
    return null;
}

From source file:org.xtuml.bp.model.compare.contentmergeviewer.ElementEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(Object element) {
    if (element instanceof ObjectElementComparable) {
        ObjectElement objEle = (ObjectElement) ((ObjectElementComparable) element).getRealElement();
        CellEditor editor = null;
        if (((NonRootModelElement) objEle.getParent()).getModelRoot() instanceof Ooaofooa) {
            editor = CellModifierProvider.getCellEditor((NonRootModelElement) objEle.getParent(),
                    viewer.getTree(), objEle);
        } else {/*from  ww  w .j  av  a  2  s. c  o  m*/
            editor = org.xtuml.bp.ui.canvas.cells.CellModifierProvider
                    .getCellEditor((NonRootModelElement) objEle.getParent(), viewer.getTree(), objEle);
        }
        final CellEditor finalEditor = editor;
        editor.addListener(new ICellEditorListener() {

            @Override
            public void editorValueChanged(boolean oldValidState, boolean newValidState) {
                if (!newValidState) {
                    viewer.setErrorMessage(finalEditor.getErrorMessage());
                } else {
                    viewer.setErrorMessage("");
                }
            }

            @Override
            public void cancelEditor() {
                viewer.setErrorMessage("");
            }

            @Override
            public void applyEditorValue() {
                viewer.setErrorMessage("");
            }
        });
        return editor;
    }
    return null;
}