@Override public void createBindings(EObject be) { final Import imp = (Import) be; Composite composite = getAttributesParent(); TextObjectEditor editor; String label; EStructuralFeature feature; feature = null; label = Messages.DefinitionsPropertyComposite_Prefix_Label; editor = new TextAndButtonObjectEditor(this, be, feature) { @Override protected void buttonClicked(int buttonId) { IInputValidator validator = new IInputValidator() { @Override public String isValid(String newText) { String ns = NamespaceUtil.getNamespaceForPrefix(imp.eResource(), newText); if (ns == null) return null; return NLS.bind( Messages.DefinitionsPropertyComposite_Invalid_Duplicate, newText, ns); } }; String initialValue = getText(); InputDialog dialog = new InputDialog( getShell(), Messages.DefinitionsPropertyComposite_Prefix_Label, Messages.DefinitionsPropertyComposite_Prefix_Message, initialValue, validator); if (dialog.open() == Window.OK) { setValue(dialog.getValue()); } } protected boolean setValue(final Object value) { // remove old prefix String prefix = text.getText(); NamespaceUtil.removeNamespaceForPrefix(imp.eResource(), prefix); // and add new NamespaceUtil.addNamespace(imp.eResource(), (String) value, imp.getNamespace()); setText((String) value); return true; } protected String getText() { return getNamespacePrefix(); } }; editor.createControl(composite, label); feature = Bpmn2Package.eINSTANCE.getImport_Namespace(); label = ModelUtil.getLabel(be, feature); editor = new TextObjectEditor(this, be, feature); editor.createControl(composite, label); editor.setEditable(false); feature = Bpmn2Package.eINSTANCE.getImport_Location(); label = ModelUtil.getLabel(be, feature); editor = new TextObjectEditor(this, be, feature); editor.createControl(composite, label); editor.setEditable(false); feature = Bpmn2Package.eINSTANCE.getImport_ImportType(); label = ModelUtil.getLabel(be, feature); editor = new TextObjectEditor(this, be, feature); editor.createControl(composite, label); editor.setEditable(false); }
@Override public void createBindings(EObject be) { final TimerEventDefinition event = (TimerEventDefinition) be; Composite composite = getAttributesParent(); createLabel(composite, Messages.TimerEventDefinitionDetailComposite_Type); Composite buttonComposite = toolkit.createComposite(composite); buttonComposite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); FillLayout layout = new FillLayout(); layout.marginWidth = 10; layout.spacing = 20; buttonComposite.setLayout(layout); timeDateButton = toolkit.createButton( buttonComposite, Messages.TimerEventDefinitionDetailComposite_Time_Date, SWT.RADIO); timeCycleButton = toolkit.createButton( buttonComposite, Messages.TimerEventDefinitionDetailComposite_Interval, SWT.RADIO); timeDurationButton = toolkit.createButton( buttonComposite, Messages.TimerEventDefinitionDetailComposite_Duration, SWT.RADIO); if (!isModelObjectEnabled(event.eClass(), PACKAGE.getTimerEventDefinition_TimeDate())) timeDateButton.setVisible(false); if (!isModelObjectEnabled(event.eClass(), PACKAGE.getTimerEventDefinition_TimeCycle())) timeCycleButton.setVisible(false); if (!isModelObjectEnabled(event.eClass(), PACKAGE.getTimerEventDefinition_TimeDuration())) timeDurationButton.setVisible(false); if (event.getTimeDate() != null) { expression = (FormalExpression) event.getTimeDate(); timeDateButton.setSelection(true); timerType = TimerType.TIMEDATE; } else if (event.getTimeCycle() != null) { expression = (FormalExpression) event.getTimeCycle(); timeCycleButton.setSelection(true); timerType = TimerType.TIMECYCLE; } else if (event.getTimeDuration() != null) { expression = (FormalExpression) event.getTimeDuration(); timeDurationButton.setSelection(true); timerType = TimerType.TIMEDURATION; } else { timerType = TimerType.NONE; expression = createModelObject(FormalExpression.class); } timeValueEditor = new TextObjectEditor(this, expression, PACKAGE.getFormalExpression_Body()); timeDateButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (timeDateButton.getSelection() && timerType != TimerType.TIMEDATE) { TransactionalEditingDomain domain = getDiagramEditor().getEditingDomain(); domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { FormalExpression exp = expression; // createModelObject(FormalExpression.class); event.eUnset(PACKAGE.getTimerEventDefinition_TimeCycle()); event.eUnset(PACKAGE.getTimerEventDefinition_TimeDuration()); event.setTimeDate(exp); String body = exp.getBody(); if (body == null || "null".equals(body)) // $NON-NLS-1$ body = ""; // $NON-NLS-1$ exp.setBody(""); // $NON-NLS-1$ exp.setBody(body); timeValueEditor.setObject(exp); timerType = TimerType.TIMEDATE; } }); } } }); timeCycleButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (timeCycleButton.getSelection() && timerType != TimerType.TIMECYCLE) { TransactionalEditingDomain domain = getDiagramEditor().getEditingDomain(); domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { FormalExpression exp = expression; // createModelObject(FormalExpression.class); event.eUnset(PACKAGE.getTimerEventDefinition_TimeDate()); event.eUnset(PACKAGE.getTimerEventDefinition_TimeDuration()); event.setTimeCycle(exp); String body = exp.getBody(); if (body == null || "null".equals(body)) // $NON-NLS-1$ body = ""; // $NON-NLS-1$ exp.setBody(""); // $NON-NLS-1$ exp.setBody(body); timeValueEditor.setObject(exp); timerType = TimerType.TIMECYCLE; } }); } } }); timeDurationButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (timeDurationButton.getSelection() && timerType != TimerType.TIMEDURATION) { TransactionalEditingDomain domain = getDiagramEditor().getEditingDomain(); domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { FormalExpression exp = expression; // createModelObject(FormalExpression.class); event.eUnset(PACKAGE.getTimerEventDefinition_TimeDate()); event.eUnset(PACKAGE.getTimerEventDefinition_TimeCycle()); event.setTimeDuration(exp); String body = exp.getBody(); if (body == null || "null".equals(body)) // $NON-NLS-1$ body = ""; // $NON-NLS-1$ exp.setBody(""); // $NON-NLS-1$ exp.setBody(body); timeValueEditor.setObject(exp); timerType = TimerType.TIMEDURATION; } }); } } }); timeValueEditor.createControl(composite, Messages.TimerEventDefinitionDetailComposite_Value); }