List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeSelection
@Deprecated public static ISWTObservableValue observeSelection(Control control)
control
. From source file:org.bonitasoft.studio.properties.sections.general.ActivateValidationPropertySectionContribution.java
License:Open Source License
protected void createBinding(EMFDataBindingContext context) { ISWTObservableValue observable = SWTObservables.observeSelection(checkbox); context.bindValue(observable, EMFEditObservables.observeValue(editingDomain, process, ProcessPackage.Literals.MAIN_PROCESS__ENABLE_VALIDATION)); }
From source file:org.bonitasoft.studio.properties.sections.general.TransitionCondition.java
License:Open Source License
private void refreshBindings() { if (conditionSection != null && !conditionSection.isDisposed()) { if (dataBindingContext != null) { dataBindingContext.dispose(); }// w w w.j ava 2 s . c o m IConverter conditionConverter = new Converter(Boolean.class, Boolean.class) { @Override public Object convert(Object fromObject) { if (transition != null && transition.getSource() instanceof CatchLinkEvent) { return false; } return !(Boolean) fromObject; } }; IConverter defaultConverter = new Converter(Boolean.class, Boolean.class) { @Override public Object convert(Object fromObject) { if (transition != null && transition.getSource() instanceof CatchLinkEvent) { return false; } else { SourceElement elem = transition.getSource(); boolean alreadyExistDefault = false; for (Connection c : elem.getOutgoing()) { if (c instanceof SequenceFlow) { if (((SequenceFlow) c).isIsDefault() && !c.equals(transition)) { alreadyExistDefault = true; } } } if (alreadyExistDefault) { return false; } else { return true; } } } }; final UpdateValueStrategy useExpressionTargetToModel = new UpdateValueStrategy(); useExpressionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) { @Override public Object convert(Object fromObject) { if ((Boolean) fromObject) { return SequenceFlowConditionType.EXPRESSION; } else { return SequenceFlowConditionType.DECISION_TABLE; } } }); final UpdateValueStrategy useDescisionTargetToModel = new UpdateValueStrategy(); useDescisionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) { @Override public Object convert(Object fromObject) { if ((Boolean) fromObject) { return SequenceFlowConditionType.DECISION_TABLE; } else { return SequenceFlowConditionType.EXPRESSION; } } }); final UpdateValueStrategy useExpressionModelToTarget = new UpdateValueStrategy(); useExpressionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) { @Override public Object convert(Object fromObject) { if (fromObject == SequenceFlowConditionType.EXPRESSION) { return true; } else { return false; } } }); final UpdateValueStrategy useDecisionModelToTarget = new UpdateValueStrategy(); useDecisionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) { @Override public Object convert(Object fromObject) { if (fromObject == SequenceFlowConditionType.DECISION_TABLE) { return true; } else { return false; } } }); dataBindingContext = new EMFDataBindingContext(); IObservableValue typeValue = EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION_TYPE); typeValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { if (conditionSection != null && !conditionSection.isDisposed()) { if (event.diff.getNewValue() == SequenceFlowConditionType.EXPRESSION && (conditionViewer == null || conditionViewer.getControl().isDisposed())) { if (conditionSection.getClient() != null) { conditionSection.getClient().dispose(); } conditionSection.setClient(createExpressionComposite(conditionSection, widgetFactory)); conditionSection.setExpanded(true); } else if (event.diff.getNewValue() == SequenceFlowConditionType.DECISION_TABLE && (conditionViewer != null && !conditionViewer.getControl().isDisposed())) { if (conditionSection.getClient() != null) { conditionSection.getClient().dispose(); } conditionSection .setClient(createDecisionTableComposite(conditionSection, widgetFactory)); conditionSection.setExpanded(true); } refreshBindings(); } } }); dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), typeValue, useExpressionTargetToModel, useExpressionModelToTarget); dataBindingContext.bindValue(SWTObservables.observeSelection(useDecisionTable), typeValue, useDescisionTargetToModel, useDecisionModelToTarget); dataBindingContext.bindValue(SWTObservables.observeSelection(defaultCheckBox), EMFEditObservables .observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT)); dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultCheckBox), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(defaultConverter), new UpdateValueStrategy().setConverter(defaultConverter)); if (conditionViewer != null && !conditionViewer.getControl().isDisposed()) { dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getTextControl()), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getToolbar()), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); conditionViewer.setEditingDomain(editingDomain); dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(conditionViewer), EMFEditProperties.value(editingDomain, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION) .observe(transition)); conditionViewer.setInput(transition); dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), SWTObservables.observeEnabled(conditionViewer.getControl())); } dataBindingContext.bindValue(SWTObservables.observeEnabled(useExpressionCondition), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); dataBindingContext.bindValue(SWTObservables.observeEnabled(useDecisionTable), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); if (updateTableButton != null && !updateTableButton.isDisposed()) { dataBindingContext.bindValue(SWTObservables.observeEnabled(updateTableButton), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); } } }
From source file:org.bonitasoft.studio.properties.sections.general.TransitionConditionContribution.java
License:Open Source License
private void refreshBindings() { if (conditionSection != null && !conditionSection.isDisposed()) { if (dataBindingContext != null) { dataBindingContext.dispose(); }/*from w w w .j a va2 s. c o m*/ final IConverter conditionConverter = new Converter(Boolean.class, Boolean.class) { @Override public Object convert(final Object fromObject) { if (transition != null && transition.getSource() instanceof CatchLinkEvent) { return false; } return !(Boolean) fromObject; } }; final IConverter defaultConverter = new Converter(Boolean.class, Boolean.class) { @Override public Object convert(final Object fromObject) { if (transition != null && transition.getSource() instanceof CatchLinkEvent) { return false; } else { final SourceElement elem = transition.getSource(); boolean alreadyExistDefault = false; for (final Connection c : elem.getOutgoing()) { if (c instanceof SequenceFlow) { if (((SequenceFlow) c).isIsDefault() && !c.equals(transition)) { alreadyExistDefault = true; } } } if (alreadyExistDefault) { return false; } else { return true; } } } }; final UpdateValueStrategy useExpressionTargetToModel = new UpdateValueStrategy(); useExpressionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) { @Override public Object convert(final Object fromObject) { if ((Boolean) fromObject) { return SequenceFlowConditionType.EXPRESSION; } else { return SequenceFlowConditionType.DECISION_TABLE; } } }); final UpdateValueStrategy useDescisionTargetToModel = new UpdateValueStrategy(); useDescisionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) { @Override public Object convert(final Object fromObject) { if ((Boolean) fromObject) { return SequenceFlowConditionType.DECISION_TABLE; } else { return SequenceFlowConditionType.EXPRESSION; } } }); final UpdateValueStrategy useExpressionModelToTarget = new UpdateValueStrategy(); useExpressionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) { @Override public Object convert(final Object fromObject) { if (fromObject == SequenceFlowConditionType.EXPRESSION) { return true; } else { return false; } } }); final UpdateValueStrategy useDecisionModelToTarget = new UpdateValueStrategy(); useDecisionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject == SequenceFlowConditionType.DECISION_TABLE; } }); dataBindingContext = new EMFDataBindingContext(); final IObservableValue typeValue = EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION_TYPE); typeValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(final ValueChangeEvent event) { if (conditionSection != null && !conditionSection.isDisposed()) { if (event.diff.getNewValue() == SequenceFlowConditionType.EXPRESSION && (conditionViewer == null || conditionViewer.getControl().isDisposed())) { if (conditionSection.getClient() != null) { conditionSection.getClient().dispose(); } conditionSection.setClient(createExpressionComposite(conditionSection, widgetFactory)); conditionSection.setExpanded(true); } else if (event.diff.getNewValue() == SequenceFlowConditionType.DECISION_TABLE && conditionViewer != null && !conditionViewer.getControl().isDisposed()) { if (conditionSection.getClient() != null) { conditionSection.getClient().dispose(); } conditionSection .setClient(createDecisionTableComposite(conditionSection, widgetFactory)); conditionSection.setExpanded(true); } refreshBindings(); } } }); dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), typeValue, useExpressionTargetToModel, useExpressionModelToTarget); dataBindingContext.bindValue(SWTObservables.observeSelection(useDecisionTable), typeValue, useDescisionTargetToModel, useDecisionModelToTarget); dataBindingContext.bindValue(SWTObservables.observeSelection(defaultCheckBox), EMFEditObservables .observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT)); dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultCheckBox), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(defaultConverter), new UpdateValueStrategy().setConverter(defaultConverter)); if (conditionViewer != null && !conditionViewer.getControl().isDisposed()) { dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getControl()), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); // dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getToolbar()), // EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),new UpdateValueStrategy().setConverter(conditionConverter),new UpdateValueStrategy().setConverter(conditionConverter)); conditionViewer.setEditingDomain(editingDomain); dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(conditionViewer), EMFEditProperties.value(editingDomain, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION) .observe(transition)); conditionViewer.setInput(transition); dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), SWTObservables.observeEnabled(conditionViewer.getControl())); } dataBindingContext.bindValue(SWTObservables.observeEnabled(useExpressionCondition), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); dataBindingContext.bindValue(SWTObservables.observeEnabled(useDecisionTable), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); if (updateTableButton != null && !updateTableButton.isDisposed()) { dataBindingContext.bindValue(SWTObservables.observeEnabled(updateTableButton), EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT), new UpdateValueStrategy().setConverter(conditionConverter), new UpdateValueStrategy().setConverter(conditionConverter)); } } }
From source file:org.bonitasoft.studio.properties.sections.iteration.IterationPropertySection.java
License:Open Source License
private Composite createStandardLoopContent(final Composite stackedComposite, final TabbedPropertySheetWidgetFactory widgetFactory) { final Composite standardLoopComposite = widgetFactory.createPlainComposite(stackedComposite, SWT.NONE); standardLoopComposite/* w w w. j ava 2 s.c om*/ .setLayout(GridLayoutFactory.fillDefaults().numColumns(3).extendedMargins(0, 0, 20, 0).create()); widgetFactory.createLabel(standardLoopComposite, "", SWT.NONE);//FIILER final Button testAfterButton = widgetFactory.createButton(standardLoopComposite, Messages.testAfterLabel, SWT.RADIO); testAfterButton.setLayoutData(GridDataFactory.swtDefaults().create()); final Button testBefore = widgetFactory.createButton(standardLoopComposite, Messages.testBeforeLabel, SWT.RADIO); testBefore.setLayoutData(GridDataFactory.swtDefaults().create()); final SelectObservableValue testEventObservable = new SelectObservableValue(Boolean.class); testEventObservable.addOption(Boolean.FALSE, SWTObservables.observeSelection(testAfterButton)); testEventObservable.addOption(Boolean.TRUE, SWTObservables.observeSelection(testBefore)); final IObservableValue selectionObservable = ViewersObservables.observeSingleSelection(selectionProvider); context.bindValue(testEventObservable, CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__TEST_BEFORE)); widgetFactory.createLabel(standardLoopComposite, Messages.loopConditionLabel) .setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create()); final ExpressionViewer loopConditionExpressionViewer = new ExpressionViewer(standardLoopComposite, SWT.BORDER, widgetFactory); loopConditionExpressionViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create()); loopConditionExpressionViewer.addFilter(new AvailableExpressionTypeFilter( new String[] { ExpressionConstants.CONSTANT_TYPE, ExpressionConstants.VARIABLE_TYPE, ExpressionConstants.PARAMETER_TYPE, ExpressionConstants.SCRIPT_TYPE })); loopConditionExpressionViewer.addFilter(new DisplayEngineExpressionWithName(new String[] { org.bonitasoft.engine.expression.ExpressionConstants.LOOP_COUNTER.getEngineConstantName() })); loopConditionExpressionViewer.addFilter(new OnlyProcessDataViewerFilter()); context.bindValue(ViewersObservables.observeInput(loopConditionExpressionViewer), selectionObservable); context.bindValue(ViewersObservables.observeSingleSelection(loopConditionExpressionViewer), CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__LOOP_CONDITION)); widgetFactory.createLabel(standardLoopComposite, Messages.maximumLoopLabel) .setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create()); final ExpressionViewer maximumLoopExpressionViewer = new ExpressionViewer(standardLoopComposite, SWT.BORDER, widgetFactory); maximumLoopExpressionViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create()); maximumLoopExpressionViewer.addFilter(new AvailableExpressionTypeFilter( new String[] { ExpressionConstants.CONSTANT_TYPE, ExpressionConstants.VARIABLE_TYPE, ExpressionConstants.PARAMETER_TYPE, ExpressionConstants.SCRIPT_TYPE })); maximumLoopExpressionViewer.setMessage(Messages.optionalLabel, IStatus.INFO); maximumLoopExpressionViewer.addFilter(new OnlyProcessDataViewerFilter()); context.bindValue(ViewersObservables.observeInput(maximumLoopExpressionViewer), selectionObservable); context.bindValue(ViewersObservables.observeSingleSelection(maximumLoopExpressionViewer), CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__LOOP_MAXIMUM)); return standardLoopComposite; }
From source file:org.bonitasoft.studio.properties.sections.iteration.IterationPropertySection.java
License:Open Source License
private Composite createMultiInstanceContent(final Composite stackedComposite, final TabbedPropertySheetWidgetFactory widgetFactory) { final Composite multiInstanceComposite = widgetFactory.createPlainComposite(stackedComposite, SWT.NONE); multiInstanceComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); multiInstanceComposite//from ww w .ja v a 2 s .c o m .setLayout(GridLayoutFactory.fillDefaults().numColumns(3).extendedMargins(30, 0, 15, 0).create()); final Composite cardinalityRadioGroup = widgetFactory.createPlainComposite(multiInstanceComposite, SWT.NONE); cardinalityRadioGroup.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(3, 1).create()); cardinalityRadioGroup.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create()); final Button dataBasedInstanceButton = widgetFactory.createButton(cardinalityRadioGroup, Messages.dataBasedInstanceLabel, SWT.RADIO); dataBasedInstanceButton.setLayoutData(GridDataFactory.swtDefaults().create()); final Button definedNumberOfInstancesButton = widgetFactory.createButton(cardinalityRadioGroup, Messages.definedNumberOfInstanceLabel, SWT.RADIO); definedNumberOfInstancesButton.setLayoutData(GridDataFactory.swtDefaults().create()); final SelectObservableValue cardinalityObservable = new SelectObservableValue(Boolean.class); cardinalityObservable.addOption(Boolean.FALSE, SWTObservables.observeSelection(dataBasedInstanceButton)); cardinalityObservable.addOption(Boolean.TRUE, SWTObservables.observeSelection(definedNumberOfInstancesButton)); context.bindValue(cardinalityObservable, CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), ViewersObservables.observeSingleSelection(selectionProvider), ProcessPackage.Literals.MULTI_INSTANTIABLE__USE_CARDINALITY)); final Composite dataContainerComposite = widgetFactory.createPlainComposite(multiInstanceComposite, SWT.NONE); dataContainerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(3, 1).create()); final StackLayout dataStackLayout = new StackLayout(); dataContainerComposite.setLayout(dataStackLayout); final Composite cardinalityContent = createCardinalityContent(dataContainerComposite, widgetFactory); final Composite dataContent = createDataContent(dataContainerComposite, widgetFactory); cardinalityObservable.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(final ValueChangeEvent event) { final Boolean useCardinality = (Boolean) event.diff.getNewValue(); if (useCardinality) { dataStackLayout.topControl = cardinalityContent; } else { dataStackLayout.topControl = dataContent; } dataContainerComposite.layout(); } }); return multiInstanceComposite; }
From source file:org.bonitasoft.studio.properties.sections.iteration.IterationPropertySection.java
License:Open Source License
private void createOutputGroup(final TabbedPropertySheetWidgetFactory widgetFactory, final Composite dataContent) { final Composite outputComposite = widgetFactory.createPlainComposite(dataContent, SWT.NONE); outputComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).indent(0, 20).create()); outputComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).create()); final Button storeOutputButton = widgetFactory.createButton(outputComposite, Messages.storeOutputResult, SWT.CHECK);//w ww. j a v a2s . c o m storeOutputButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); final ISWTObservableValue observeStoreOutputSelection = SWTObservables.observeSelection(storeOutputButton); final IObservableValue selectionObservable = ViewersObservables.observeSingleSelection(selectionProvider); context.bindValue(observeStoreOutputSelection, CustomEMFEditObservables.observeDetailValue( Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__STORE_OUTPUT)); final Group outputGroup = widgetFactory.createGroup(outputComposite, Messages.output); outputGroup.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); outputGroup.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).spacing(5, 3).create()); final Label outputDatalabel = widgetFactory.createLabel(outputGroup, Messages.outputData); outputDatalabel.setLayoutData(GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).create()); final ComboViewer outputDataComboViewer = createComboViewer(widgetFactory, outputGroup, new ObservableListContentProviderWithProposalListenersForActivity()); outputDataComboViewer.getControl().setLayoutData( GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT).indent(5, 0).create()); outputDataComboViewer.setSorter(new DataViewerSorter()); final IViewerObservableValue observeSingleSelection = ViewersObservables .observeSingleSelection(outputDataComboViewer); final IObservableValue observeDataValue = CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__OUTPUT_DATA); selectionObservable.addValueChangeListener( createInputValueChanged(outputDataComboViewer, observeSingleSelection, observeDataValue, true)); context.bindValue(observeSingleSelection, observeDataValue); outputDataComboViewer .addSelectionChangedListener(createComboSelectionListener(outputDataComboViewer, true)); final Label label = widgetFactory.createLabel(outputGroup, ""); label.setImage(Pics.getImage("icon-arrow-down.png")); label.setLayoutData(GridDataFactory.fillDefaults().span(3, 1).align(SWT.CENTER, SWT.CENTER).create()); final Label outputListlabel = widgetFactory.createLabel(outputGroup, Messages.outputList); outputListlabel.setLayoutData(GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).create()); final ComboViewer outputListComboViewer = createComboViewer(widgetFactory, outputGroup, new ObservableListContentProviderWithProposalListenersForPool()); outputListComboViewer.getControl().setLayoutData( GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT).indent(5, 0).create()); outputListComboViewer.addFilter(new ListDataFilter()); outputListComboViewer.setSorter(new DataViewerSorter()); final IObservableValue observeDetailValue = CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), selectionObservable, ProcessPackage.Literals.MULTI_INSTANTIABLE__LIST_DATA_CONTAINING_OUTPUT_RESULTS); final IViewerObservableValue observeSingleSelection2 = ViewersObservables .observeSingleSelection(outputListComboViewer); selectionObservable.addValueChangeListener( createInputValueChanged(outputListComboViewer, observeSingleSelection2, observeDetailValue, false)); context.bindValue(observeSingleSelection2, observeDetailValue); context.bindValue(PojoObservables.observeValue(new RecursiveControlEnablement(outputGroup), "enabled"), observeStoreOutputSelection); outputListComboViewer .addSelectionChangedListener(createComboSelectionListener(outputListComboViewer, false)); }
From source file:org.bonitasoft.studio.properties.sections.iteration.IterationPropertySection.java
License:Open Source License
private SelectObservableValue createRecurrenceTypeRadioGroup(final Composite composite, final TabbedPropertySheetWidgetFactory widgetFactory) { final Composite recurrenceTypeComposite = widgetFactory.createPlainComposite(composite, SWT.NONE); recurrenceTypeComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(4).create()); recurrenceTypeComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); final Button noneRadio = widgetFactory.createButton(recurrenceTypeComposite, Messages.noneLabel, SWT.RADIO); noneRadio.setLayoutData(GridDataFactory.fillDefaults().create()); final Button standardRadio = widgetFactory.createButton(recurrenceTypeComposite, Messages.standardLoop, SWT.RADIO);// w w w . ja va 2 s . co m standardRadio.setLayoutData(GridDataFactory.fillDefaults().create()); standardRadio.setImage(Pics.getImage("decoration/loop.png")); final Button parallelMultiRadio = widgetFactory.createButton(recurrenceTypeComposite, Messages.parallelMultinstantition, SWT.RADIO); parallelMultiRadio.setLayoutData(GridDataFactory.fillDefaults().create()); parallelMultiRadio.setImage(Pics.getImage("decoration/parallel_multiInstance.png")); final Button sequentialMultiRadio = widgetFactory.createButton(recurrenceTypeComposite, Messages.sequentialMultinstantition, SWT.RADIO); sequentialMultiRadio.setLayoutData(GridDataFactory.fillDefaults().create()); sequentialMultiRadio.setImage(Pics.getImage("decoration/sequential_multiInstance.png")); final SelectObservableValue recurrenceTypeObservable = new SelectObservableValue(MultiInstanceType.class); recurrenceTypeObservable.addOption(MultiInstanceType.NONE, SWTObservables.observeSelection(noneRadio)); recurrenceTypeObservable.addOption(MultiInstanceType.STANDARD, SWTObservables.observeSelection(standardRadio)); recurrenceTypeObservable.addOption(MultiInstanceType.PARALLEL, SWTObservables.observeSelection(parallelMultiRadio)); recurrenceTypeObservable.addOption(MultiInstanceType.SEQUENTIAL, SWTObservables.observeSelection(sequentialMultiRadio)); context.bindValue(recurrenceTypeObservable, CustomEMFEditObservables.observeDetailValue(Realm.getDefault(), ViewersObservables.observeSingleSelection(selectionProvider), ProcessPackage.Literals.MULTI_INSTANTIABLE__TYPE)); return recurrenceTypeObservable; }
From source file:org.bonitasoft.studio.properties.sections.message.wizards.AddMessageEventWizardPage.java
License:Open Source License
private void createcorrelationComposite(Composite composite) { composite.setLayout(GridLayoutFactory.fillDefaults().margins(5, 10).create()); composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); final Label correlationDescriptionLabel = new Label(composite, SWT.NONE | SWT.WRAP); correlationDescriptionLabel// w ww . ja v a 2 s . c o m .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(12, 0).create()); correlationDescriptionLabel.setText(Messages.correlationDescription); final Button useCorrelationCheckbox = new Button(composite, SWT.CHECK); useCorrelationCheckbox .setLayoutData(GridDataFactory.fillDefaults().grab(false, false).indent(12, 0).create()); final ControlDecoration correlationHelp = new ControlDecoration(useCorrelationCheckbox, SWT.LEFT | SWT.CENTER); correlationHelp .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK)); correlationHelp.setDescriptionText(Messages.correlationKeyHelp); useCorrelationCheckbox.setText(Messages.useCorrelationkeys); useCorrelationCheckbox.setSelection(false); useCorrelationCheckbox.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { super.widgetSelected(e); if (!useCorrelationCheckbox.getSelection()) { workingCopyMessage.getCorrelation().setCorrelationType(CorrelationTypeActive.INACTIVE); } else { workingCopyMessage.getCorrelation().setCorrelationType(CorrelationTypeActive.KEYS); updateValidationStatus(AddMessageEventWizardPage.this.hasAtLeastOneCorrelation( workingCopyMessage.getCorrelation().getCorrelationAssociation())); } } }); if (CorrelationTypeActive.KEYS.equals(workingCopyMessage.getCorrelation().getCorrelationType())) { useCorrelationCheckbox.setSelection(true); updateValidationStatus(AddMessageEventWizardPage.this .hasAtLeastOneCorrelation(workingCopyMessage.getCorrelation().getCorrelationAssociation())); } else { useCorrelationCheckbox.setSelection(false); } final Composite correlationComposite = new Composite(composite, SWT.NONE); correlationComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); correlationComposite.setLayout(GridLayoutFactory.fillDefaults().create()); final List<String> captions = new ArrayList<String>(2); captions.add(Messages.correlationKey); captions.add(Messages.correlationValue); final ExpressionCollectionViewer ecv = new ExpressionCollectionViewer(correlationComposite, 5, false, 2, true, captions, false, true); ecv.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 140).create()); ecv.setAddRowLabel(Messages.AddCorrelation); ecv.setRemoveRowLabel(Messages.removeCorrelation); final List<ViewerFilter> filters = new ArrayList<ViewerFilter>(2); filters.add(new AvailableExpressionTypeFilter(new String[] { ExpressionConstants.CONSTANT_TYPE })); filters.add(new AvailableExpressionTypeFilter( new String[] { ExpressionConstants.CONSTANT_TYPE, ExpressionConstants.PARAMETER_TYPE, ExpressionConstants.SCRIPT_TYPE, ExpressionConstants.VARIABLE_TYPE })); // Second column has // everything except // Form field and // simulation type ecv.setViewerFilters(filters); ecv.setInput(element); final TableExpression correlationAssociation = getCorrelationTable(); ecv.setSelection(correlationAssociation); ecv.addModifyListener(new Listener() { @Override public void handleEvent(Event event) { IStatus status = AddMessageEventWizardPage.this.validateId( workingCopyMessage.getCorrelation().getCorrelationAssociation(), Messages.correlation); updateValidationStatus(status); } }); final ISWTObservableValue observeSelectionUseCorrelation = SWTObservables .observeSelection(useCorrelationCheckbox); databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getViewer().getControl()), observeSelectionUseCorrelation); databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getAddRowButton()), observeSelectionUseCorrelation); databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getRemoveRowButton()), observeSelectionUseCorrelation); }
From source file:org.bonitasoft.studio.properties.sections.timer.cron.CronEditor.java
License:Open Source License
protected void createYearyTab(TabFolder tablFolder) { final TabItem item = new TabItem(tablFolder, SWT.NONE); item.setText(Messages.yearly);/* www . j av a 2s .c o m*/ final Composite yearlyContent = new Composite(tablFolder, SWT.NONE); yearlyContent.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); yearlyContent.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(15, 10).create()); final Button everyRadio = new Button(yearlyContent, SWT.RADIO); everyRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); everyRadio.setText(Messages.every); context.bindValue(SWTObservables.observeSelection(everyRadio), PojoProperties.value("everyYearForYearly").observe(cronExpression)); final Composite everyComposite = new Composite(yearlyContent, SWT.NONE); everyComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); everyComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(0, 0).create()); final Combo monthCombo = new Combo(everyComposite, SWT.READ_ONLY | SWT.BORDER); monthCombo.setItems(MONTHS); UpdateValueStrategy monthComboStrategy = new UpdateValueStrategy(); monthComboStrategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.january)) { return 1; } else if (fromObject.toString().equals(Messages.february)) { return 2; } else if (fromObject.toString().equals(Messages.march)) { return 3; } else if (fromObject.toString().equals(Messages.april)) { return 4; } else if (fromObject.toString().equals(Messages.may)) { return 5; } else if (fromObject.toString().equals(Messages.june)) { return 6; } else if (fromObject.toString().equals(Messages.july)) { return 7; } else if (fromObject.toString().equals(Messages.august)) { return 8; } else if (fromObject.toString().equals(Messages.september)) { return 9; } else if (fromObject.toString().equals(Messages.october)) { return 10; } else if (fromObject.toString().equals(Messages.november)) { return 11; } else if (fromObject.toString().equals(Messages.december)) { return 12; } return 1; } }); UpdateValueStrategy monthComboStrategy2 = new UpdateValueStrategy(); monthComboStrategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.january; case 2: return Messages.february; case 3: return Messages.march; case 4: return Messages.april; case 5: return Messages.may; case 6: return Messages.june; case 7: return Messages.july; case 8: return Messages.august; case 9: return Messages.september; case 10: return Messages.october; case 11: return Messages.november; case 12: return Messages.december; default: break; } return Messages.january; } }); context.bindValue(SWTObservables.observeText(monthCombo), PojoProperties.value("monthForYearly").observe(cronExpression), monthComboStrategy, monthComboStrategy2); final Text dayText = new Text(everyComposite, SWT.BORDER | SWT.SINGLE); dayText.setLayoutData(GridDataFactory.swtDefaults().hint(70, SWT.DEFAULT).create()); UpdateValueStrategy dayTextStrategy = new UpdateValueStrategy(); dayTextStrategy.setAfterGetValidator(dotValidator); dayTextStrategy.setConverter(StringToNumberConverter.toInteger(true)); dayTextStrategy.setBeforeSetValidator(new DayInMonthValidator()); context.bindValue(SWTObservables.observeText(dayText, SWT.Modify), PojoProperties.value("dayOfMonthForYearly").observe(cronExpression), dayTextStrategy, null); final Button theRadio = new Button(yearlyContent, SWT.RADIO); theRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); theRadio.setText(Messages.the); final Composite theComposite = new Composite(yearlyContent, SWT.NONE); theComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); theComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(4).margins(0, 0).create()); final Combo rankCombo = new Combo(theComposite, SWT.READ_ONLY | SWT.BORDER); rankCombo.setItems(RANK); UpdateValueStrategy rankComboStrategy = new UpdateValueStrategy(); rankComboStrategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.first)) { return 1; } else if (fromObject.toString().equals(Messages.second)) { return 2; } else if (fromObject.toString().equals(Messages.third)) { return 3; } else if (fromObject.toString().equals(Messages.fourth)) { return 4; } else if (fromObject.toString().equals(Messages.fifth)) { return 5; } return 1; } }); UpdateValueStrategy rankComboStrategy2 = new UpdateValueStrategy(); rankComboStrategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.first; case 2: return Messages.second; case 3: return Messages.third; case 4: return Messages.fourth; case 5: return Messages.fifth; default: break; } return Messages.first; } }); context.bindValue(SWTObservables.observeText(rankCombo), PojoProperties.value("monthRankForYearly").observe(cronExpression), rankComboStrategy, rankComboStrategy2); final Combo dayCombo = new Combo(theComposite, SWT.READ_ONLY | SWT.BORDER); dayCombo.setItems(DAYS_OF_WEEK); UpdateValueStrategy dayComboStrategy = new UpdateValueStrategy(); dayComboStrategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.monday)) { return 1; } else if (fromObject.toString().equals(Messages.tuesday)) { return 2; } else if (fromObject.toString().equals(Messages.wednesday)) { return 3; } else if (fromObject.toString().equals(Messages.thursday)) { return 4; } else if (fromObject.toString().equals(Messages.friday)) { return 5; } else if (fromObject.toString().equals(Messages.saturday)) { return 6; } else if (fromObject.toString().equals(Messages.sunday)) { return 7; } return 1; } }); UpdateValueStrategy dayComboStrategy2 = new UpdateValueStrategy(); dayComboStrategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.monday; case 2: return Messages.tuesday; case 3: return Messages.wednesday; case 4: return Messages.thursday; case 5: return Messages.friday; case 6: return Messages.saturday; case 7: return Messages.sunday; default: break; } return Messages.monday; } }); context.bindValue(SWTObservables.observeText(dayCombo), PojoProperties.value("dayOfWeekForYearly").observe(cronExpression), dayComboStrategy, dayComboStrategy2); final Label ofLabel = new Label(theComposite, SWT.NONE); ofLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); ofLabel.setText(Messages.of); final Combo monthCombo2 = new Combo(theComposite, SWT.READ_ONLY | SWT.BORDER); monthCombo2.setItems(MONTHS); UpdateValueStrategy monthCombo2Strategy = new UpdateValueStrategy(); monthCombo2Strategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.january)) { return 1; } else if (fromObject.toString().equals(Messages.february)) { return 2; } else if (fromObject.toString().equals(Messages.march)) { return 3; } else if (fromObject.toString().equals(Messages.april)) { return 4; } else if (fromObject.toString().equals(Messages.may)) { return 5; } else if (fromObject.toString().equals(Messages.june)) { return 6; } else if (fromObject.toString().equals(Messages.july)) { return 7; } else if (fromObject.toString().equals(Messages.august)) { return 8; } else if (fromObject.toString().equals(Messages.september)) { return 9; } else if (fromObject.toString().equals(Messages.october)) { return 10; } else if (fromObject.toString().equals(Messages.november)) { return 11; } else if (fromObject.toString().equals(Messages.december)) { return 12; } return 1; } }); UpdateValueStrategy monthCombo2Strategy2 = new UpdateValueStrategy(); monthCombo2Strategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.january; case 2: return Messages.february; case 3: return Messages.march; case 4: return Messages.april; case 5: return Messages.may; case 6: return Messages.june; case 7: return Messages.july; case 8: return Messages.august; case 9: return Messages.september; case 10: return Messages.october; case 11: return Messages.november; case 12: return Messages.december; default: break; } return Messages.january; } }); context.bindValue(SWTObservables.observeText(monthCombo2), PojoProperties.value("monthOfYearForYearly").observe(cronExpression), monthCombo2Strategy, monthCombo2Strategy2); final IObservableValue hourObservable = PojoProperties.value("atHourInYear").observe(cronExpression); final IObservableValue minuteObservable = PojoProperties.value("atMinuteInYear").observe(cronExpression); final IObservableValue secondObservable = PojoProperties.value("atSecondInYear").observe(cronExpression); createStartTimeComposite(yearlyContent, hourObservable, minuteObservable, secondObservable); item.setControl(yearlyContent); }
From source file:org.bonitasoft.studio.properties.sections.timer.cron.CronEditor.java
License:Open Source License
protected void createMonthlyTab(TabFolder tablFolder) { final TabItem item = new TabItem(tablFolder, SWT.NONE); item.setText(Messages.monthly);//from ww w .j a v a 2 s .c o m final Composite monthlyContent = new Composite(tablFolder, SWT.NONE); monthlyContent.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); monthlyContent.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(15, 10).create()); final Button dayRadio = new Button(monthlyContent, SWT.RADIO); dayRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); dayRadio.setText(Messages.day); context.bindValue(SWTObservables.observeSelection(dayRadio), PojoProperties.value("useDayInMonthForMonthly").observe(cronExpression)); final Composite dayComposite = new Composite(monthlyContent, SWT.NONE); dayComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); dayComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(4).margins(0, 0).create()); final Text dayText = new Text(dayComposite, SWT.BORDER | SWT.SINGLE); dayText.setLayoutData(GridDataFactory.fillDefaults().hint(70, SWT.DEFAULT).create()); UpdateValueStrategy dayTextStrategy = new UpdateValueStrategy(); dayTextStrategy.setAfterGetValidator(dotValidator); dayTextStrategy.setConverter(StringToNumberConverter.toInteger(true)); dayTextStrategy.setBeforeSetValidator(new DayInMonthValidator()); context.bindValue(SWTObservables.observeText(dayText, SWT.Modify), PojoProperties.value("dayOfMonthForMonthly").observe(cronExpression), dayTextStrategy, null); final Label ofEveryLabel = new Label(dayComposite, SWT.NONE); ofEveryLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); ofEveryLabel.setText(Messages.ofEvery); final Text everyMonthText = new Text(dayComposite, SWT.BORDER | SWT.SINGLE); everyMonthText.setLayoutData(GridDataFactory.fillDefaults().hint(70, SWT.DEFAULT).create()); UpdateValueStrategy everyMonthTextStrategy = new UpdateValueStrategy(); everyMonthTextStrategy.setAfterGetValidator(dotValidator); everyMonthTextStrategy.setConverter(StringToNumberConverter.toInteger(true)); everyMonthTextStrategy.setBeforeSetValidator(new MonthInYearValidator()); context.bindValue(SWTObservables.observeText(everyMonthText, SWT.Modify), PojoProperties.value("monthInYearForMonthly").observe(cronExpression), everyMonthTextStrategy, null); final Label monthLabel = new Label(dayComposite, SWT.NONE); monthLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); monthLabel.setText(Messages.monthLabel); final Button theRadio = new Button(monthlyContent, SWT.RADIO); theRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); theRadio.setText(Messages.the); final Composite theComposite = new Composite(monthlyContent, SWT.NONE); theComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); theComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(5).margins(0, 0).create()); final Combo rankCombo = new Combo(theComposite, SWT.READ_ONLY | SWT.BORDER); rankCombo.setItems(RANK); UpdateValueStrategy rankComboStrategy = new UpdateValueStrategy(); rankComboStrategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.first)) { return 1; } else if (fromObject.toString().equals(Messages.second)) { return 2; } else if (fromObject.toString().equals(Messages.third)) { return 3; } else if (fromObject.toString().equals(Messages.fourth)) { return 4; } else if (fromObject.toString().equals(Messages.fifth)) { return 5; } return 1; } }); UpdateValueStrategy rankComboStrategy2 = new UpdateValueStrategy(); rankComboStrategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.first; case 2: return Messages.second; case 3: return Messages.third; case 4: return Messages.fourth; case 5: return Messages.fifth; default: break; } return Messages.first; } }); context.bindValue(SWTObservables.observeText(rankCombo), PojoProperties.value("monthRankForMonthly").observe(cronExpression), rankComboStrategy, rankComboStrategy2); final Combo dayCombo = new Combo(theComposite, SWT.READ_ONLY | SWT.BORDER); dayCombo.setItems(DAYS_OF_WEEK); UpdateValueStrategy dayComboStrategy = new UpdateValueStrategy(); dayComboStrategy.setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (fromObject.toString().equals(Messages.monday)) { return 1; } else if (fromObject.toString().equals(Messages.tuesday)) { return 2; } else if (fromObject.toString().equals(Messages.wednesday)) { return 3; } else if (fromObject.toString().equals(Messages.thursday)) { return 4; } else if (fromObject.toString().equals(Messages.friday)) { return 5; } else if (fromObject.toString().equals(Messages.saturday)) { return 6; } else if (fromObject.toString().equals(Messages.sunday)) { return 7; } return 1; } }); UpdateValueStrategy dayComboStrategy2 = new UpdateValueStrategy(); dayComboStrategy2.setConverter(new Converter(Integer.class, String.class) { @Override public Object convert(Object fromObject) { Integer value = (Integer) fromObject; switch (value) { case 1: return Messages.monday; case 2: return Messages.tuesday; case 3: return Messages.wednesday; case 4: return Messages.thursday; case 5: return Messages.friday; case 6: return Messages.saturday; case 7: return Messages.sunday; default: break; } return Messages.monday; } }); context.bindValue(SWTObservables.observeText(dayCombo), PojoProperties.value("dayOfWeekForMonthly").observe(cronExpression), dayComboStrategy, dayComboStrategy2); final Label ofEveryLabel2 = new Label(theComposite, SWT.NONE); ofEveryLabel2.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); ofEveryLabel2.setText(Messages.ofEvery); final Text everyMonthText2 = new Text(theComposite, SWT.BORDER | SWT.SINGLE); everyMonthText2.setLayoutData(GridDataFactory.swtDefaults().hint(70, SWT.DEFAULT).create()); UpdateValueStrategy everyMonthText2Strategy = new UpdateValueStrategy(); everyMonthText2Strategy.setConverter(StringToNumberConverter.toInteger(true)); everyMonthText2Strategy.setBeforeSetValidator(new FrequencyValidator()); context.bindValue(SWTObservables.observeText(everyMonthText2, SWT.Modify), PojoProperties.value("monthOfYearForMonthly").observe(cronExpression), everyMonthText2Strategy, null); final Label monthLabel2 = new Label(theComposite, SWT.NONE); monthLabel2.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create()); monthLabel2.setText(Messages.monthLabel); final IObservableValue hourObservable = PojoProperties.value("atHourInMonth").observe(cronExpression); final IObservableValue minuteObservable = PojoProperties.value("atMinuteInMonth").observe(cronExpression); final IObservableValue secondObservable = PojoProperties.value("atSecondInMonth").observe(cronExpression); createStartTimeComposite(monthlyContent, hourObservable, minuteObservable, secondObservable); item.setControl(monthlyContent); }