Example usage for org.eclipse.jface.databinding.swt SWTObservables observeText

List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeText

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.swt SWTObservables observeText.

Prototype

@Deprecated
public static ISWTObservableValue observeText(Control control, int event) 

Source Link

Document

Returns an observable observing the text attribute of the provided control.

Usage

From source file:org.bonitasoft.studio.properties.sections.document.DocumentPropertySection.java

License:Open Source License

protected void bindDetails(final IObservableValue documentSelected) {
    if (nameBinding != null) {
        nameBinding.dispose();/*from w w w  .  j a v a  2  s.  c o m*/
    }
    if (decorationSupport != null) {
        decorationSupport.dispose();
    }
    IObservableValue externalUrlObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__URL).observeDetail(documentSelected);
    emfDataBindingContext.bindValue(ViewerProperties.singleSelection().observe(documentUrlViewer),
            externalUrlObserved);
    documentUrlViewer.setInput(documentSelected);

    IObservableValue mimeTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__MIME_TYPE)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(ViewerProperties.singleSelection().observe(documentMimeTypeViewer),
            mimeTypeObserved);
    documentMimeTypeViewer.setInput(documentSelected);

    final UpdateValueStrategy targetToModel = new UpdateValueStrategy();

    targetToModel.setAfterGetValidator(new InputLengthValidator(Messages.name, 50));
    targetToModel.setBeforeSetValidator(new DocumentNameValidator(documentListViewer));

    final IObservableValue nameObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.ELEMENT__NAME).observeDetail(documentSelected);

    nameBinding = emfDataBindingContext.bindValue(
            SWTObservables.observeDelayedValue(500, SWTObservables.observeText(documentNameText, SWT.Modify)),
            nameObserved, targetToModel, null);

    decorationSupport = ControlDecorationSupport.create(nameBinding, SWT.LEFT);

    nameObserved.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(ValueChangeEvent event) {
            if (documentListViewer != null && !documentListViewer.getList().isDisposed()) {
                documentListViewer.refresh();
            }
        }
    });

    IObservableValue descriptionObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.ELEMENT__DOCUMENTATION)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeDelayedValue(500,
            SWTObservables.observeText(documentDescriptionText, SWT.Modify)), descriptionObserved);

    IObservableValue internalTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__IS_INTERNAL)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeSelection(internalCheckbox), internalTypeObserved);

    IObservableValue documentInternalIDObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__DEFAULT_VALUE_ID_OF_DOCUMENT_STORE)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(
            SWTObservables.observeDelayedValue(500, SWTObservables.observeText(documentTextId, SWT.Modify)),
            documentInternalIDObserved);

    IObservableValue externalTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__IS_INTERNAL)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeSelection(externalCheckbox), externalTypeObserved,
            new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });

    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentUrlViewer.getTextControl()),
            externalTypeObserved, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });
    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentUrlViewer.getButtonControl()),
            externalTypeObserved, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });

    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentTextId), internalTypeObserved);
    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(browseButton), internalTypeObserved);
}

From source file:org.bonitasoft.studio.properties.sections.forms.wizard.SelectGeneratedWidgetsWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    databindingContext = new DataBindingContext();
    // main composite
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    // ----- TOP/* w w  w. j a  v a 2s .com*/
    Composite topComposite = new Composite(composite, SWT.NONE);
    topComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).spacing(10, 5).create());
    topComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

    Label nameLabel = new Label(topComposite, SWT.LEFT);
    nameLabel.setLayoutData(GridDataFactory.swtDefaults().align(SWT.END, SWT.CENTER).create());
    nameLabel.setText(Messages.GeneralSection_Name);

    final Text nameText = new Text(topComposite, SWT.BORDER);

    nameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    UpdateValueStrategy stratetgy = new UpdateValueStrategy();
    stratetgy.setBeforeSetValidator(new InputLengthValidator(Messages.name, 50));
    ISWTObservableValue observeText = SWTObservables.observeText(nameText, SWT.Modify);
    observeText.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent event) {
            getContainer().updateButtons();
        }
    });
    databindingContext.bindValue(observeText, PojoProperties.value("formName").observe(this), stratetgy, null);

    // ------------ Description
    Label descLabel = new Label(topComposite, SWT.LEFT);
    descLabel.setLayoutData(GridDataFactory.swtDefaults().align(SWT.END, SWT.TOP).create());
    descLabel.setText(Messages.GeneralSection_Description);

    final Text descriptionText = new Text(topComposite, SWT.MULTI + SWT.BORDER);
    descriptionText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER)
            .hint(SWT.DEFAULT, 45).create());
    databindingContext.bindValue(SWTObservables.observeText(descriptionText, SWT.Modify),
            PojoProperties.value("formDescription").observe(this));

    if (hasWidgetToGenerated()) {
        Group parentGroup = createWidgetGroup(composite);

        createSelectionComposite(parentGroup);

        ScrolledComposite scrolledComposite = createScrolledComposite(parentGroup);

        Composite scrollable = new Composite(scrolledComposite, SWT.NONE);
        scrollable.setLayout(new GridLayout(2, false));
        scrollable.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

        for (Data currentData : data) {
            createChoice(scrollable, currentData);
        }

        for (Document document : documents) {
            createDocumentChoice(scrollable, document);
        }

        selectAll(true);

        /*Add settings of the scrolled composite*/
        scrolledComposite.setMinSize(scrollable.computeSize(SWT.DEFAULT, SWT.DEFAULT));
        scrolledComposite.setAlwaysShowScrollBars(false);
        scrolledComposite.setExpandHorizontal(true);
        scrolledComposite.setExpandVertical(true);
        scrolledComposite.setContent(scrollable);
    } else {
        Label title = new Label(composite, SWT.CENTER);
        title.setText(Messages.createForm_noData);
    }

    WizardPageSupport.create(this, databindingContext);
    setControl(composite);
}

From source file:org.bonitasoft.studio.properties.sections.general.NameGridPropertySectionContribution.java

License:Open Source License

@Override
protected void createBinding(EMFDataBindingContext context) {
    labelTargetToModelUpdate = new UpdateValueStrategy();

    labelTargetToModelUpdate.setAfterGetValidator(new UTF8InputValidator(Messages.name));
    List<IValidator> validators = new ArrayList<IValidator>();
    validators.add(new InputLengthValidator(Messages.name, 0, 50));
    MultiValidator multiValidation = new MultiValidator(validators);
    labelTargetToModelUpdate.setBeforeSetValidator(multiValidation);
    labelTargetToModelUpdate.setAfterConvertValidator(new SpecialCharactersValidator());

    observable = SWTObservables.observeDelayedValue(400, SWTObservables.observeText(text, SWT.Modify));
    observable.addValueChangeListener(new IValueChangeListener() {

        @Override//from ww  w  . j  av a 2 s. c  o m
        public void handleValueChange(ValueChangeEvent event) {
            updatePropertyTabTitle();
        }
    });

    ControlDecorationSupport.create(context.bindValue(observable,
            EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__NAME),
            labelTargetToModelUpdate, null), SWT.LEFT);
    bindingInitialized = true;
}

From source file:org.bonitasoft.studio.properties.sections.general.ProcessElementNameContribution.java

License:Open Source License

@Override
protected void createBinding(final EMFDataBindingContext context) {
    observable = SWTObservables.observeDelayedValue(250, SWTObservables.observeText(text, SWT.Modify));

    final IObservableValue nameObservable = EMFEditObservables.observeValue(editingDomain, element,
            ProcessPackage.Literals.ELEMENT__NAME);
    nameObservable.addValueChangeListener(new IValueChangeListener() {

        @Override//from   w  ww  . jav  a  2 s.  c om
        public void handleValueChange(final ValueChangeEvent event) {
            updatePropertyTabTitle();
            updatePartName((String) event.diff.getNewValue(), Display.getDefault());
        }
    });
    context.bindValue(observable, nameObservable);
    final MultiValidator validationStatusProvider = nameValidationStatusProvider(observable);
    context.addValidationStatusProvider(validationStatusProvider);
    ControlDecorationSupport.create(validationStatusProvider, SWT.LEFT);
    bindingInitialized = true;
}

From source file:org.bonitasoft.studio.properties.sections.general.TextAnnotationTextPropertySectionContribution.java

License:Open Source License

public void updateBindings() {
    if (text != null && !text.isDisposed()) {
        if (context != null) {
            context.dispose();/*from  w  ww . jav  a 2  s  .  c  o m*/
        }
        context = new EMFDataBindingContext();
        context.bindValue(SWTObservables.observeText(text, SWT.Modify), EMFEditObservables
                .observeValue(editingDomain, textAnnotation, ProcessPackage.Literals.TEXT_ANNOTATION__TEXT));
    }
}

From source file:org.bonitasoft.studio.properties.sections.general.VersionGridPropertySectionContribution.java

License:Open Source License

protected void createBinding(EMFDataBindingContext context) {
    UpdateValueStrategy versionUpdate = new UpdateValueStrategy();
    versionUpdate.setAfterGetValidator(new EmptyInputValidator(Messages.GeneralSection_Version));
    versionUpdate.setBeforeSetValidator(new UTF8InputValidator(Messages.GeneralSection_Version));

    ISWTObservableValue observable = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(text, SWT.Modify));
    context.bindValue(observable, EMFEditObservables.observeValue(editingDomain, process,
            ProcessPackage.Literals.ABSTRACT_PROCESS__VERSION), versionUpdate, versionUpdate);
}

From source file:org.bonitasoft.studio.properties.sections.message.wizards.AddMessageEventWizardPage.java

License:Open Source License

private Text createDescriptionLine(Composite composite) {
    Label descLabel = new Label(composite, SWT.NONE);
    descLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).create());
    descLabel.setText(Messages.dataDescriptionLabel);
    final Text descText = new Text(composite, SWT.MULTI | SWT.BORDER);
    gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
    gd.heightHint = 45;//w  w w . ja  va 2 s .  c o m
    descText.setLayoutData(gd);
    databindingContext.bindValue(
            SWTObservables.observeDelayedValue(200, SWTObservables.observeText(descText, SWT.Modify)),
            EMFObservables.observeValue(workingCopyMessage, ProcessPackage.Literals.ELEMENT__DOCUMENTATION));
    return descText;
}

From source file:org.bonitasoft.studio.properties.sections.message.wizards.AddMessageEventWizardPage.java

License:Open Source License

private Text createNameLine(Composite composite) {
    Label nameLabel = new Label(composite, SWT.NONE);
    nameLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    nameLabel.setText(Messages.dataNameLabel);

    nameText = new Text(composite, SWT.BORDER);
    nameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    IValidator nameValidator = new IValidator() {

        @Override/*from   w w  w . j a v a  2  s  .  co  m*/
        public IStatus validate(Object arg0) {
            if (arg0 instanceof String) {
                String s = (String) arg0;
                if (s == null || s.isEmpty()) {
                    return ValidationStatus.error(Messages.emptyName);
                } else {
                    List<Message> events = ModelHelper.getAllItemsOfType(ModelHelper.getMainProcess(element),
                            ProcessPackage.eINSTANCE.getMessage());
                    for (Message ev : events) {
                        if (!ev.equals(originalMessage) && ev.getName().equals(s)) {
                            return ValidationStatus.error(Messages.messageEventAddWizardNameAlreadyExists);
                        }
                    }
                }
            }
            return ValidationStatus.ok();
        }
    };

    UpdateValueStrategy uvs = new UpdateValueStrategy(/*
                                                      * UpdateValueStrategy.
                                                      * POLICY_CONVERT
                                                      */);
    uvs.setBeforeSetValidator(nameValidator);
    databindingContext.bindValue(
            SWTObservables.observeDelayedValue(200, SWTObservables.observeText(nameText, SWT.Modify)),
            EMFObservables.observeValue(workingCopyMessage, ProcessPackage.Literals.ELEMENT__NAME), uvs, null);
    return nameText;
}

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   w  w  w.  java2  s.  c  om*/

    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);
}

From source file:org.bonitasoft.studio.properties.sections.timer.cron.CronEditor.java

License:Open Source License

protected void createDailyTab(TabFolder tablFolder) {
    final TabItem item = new TabItem(tablFolder, SWT.NONE);
    item.setText(Messages.daily);/*from   ww w . ja v  a  2s  .  c  o m*/

    final Composite dailyContent = new Composite(tablFolder, SWT.NONE);
    dailyContent.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    dailyContent.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(15, 10).create());

    final Button everyRadio = new Button(dailyContent, SWT.RADIO);
    everyRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create());
    everyRadio.setText(Messages.every);

    context.bindValue(SWTObservables.observeSelection(everyRadio),
            PojoProperties.value("useEveryDayForDaily").observe(cronExpression));

    final Composite everyComposite = new Composite(dailyContent, SWT.NONE);
    everyComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(-65, 0).create());
    everyComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(0, 0).create());

    final Text dayText = new Text(everyComposite, SWT.BORDER | SWT.SINGLE);
    dayText.setLayoutData(GridDataFactory.fillDefaults().hint(70, SWT.DEFAULT).create());

    UpdateValueStrategy dayFrequencyStrategy = new UpdateValueStrategy();
    dayFrequencyStrategy.setAfterGetValidator(dotValidator);
    dayFrequencyStrategy.setConverter(StringToNumberConverter.toInteger(true));
    dayFrequencyStrategy.setBeforeSetValidator(new FrequencyValidator());
    context.bindValue(SWTObservables.observeText(dayText, SWT.Modify),
            PojoProperties.value("dayFrequencyForDaily").observe(cronExpression), dayFrequencyStrategy, null);

    final Label dayLabel = new Label(everyComposite, SWT.NONE);
    dayLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create());
    dayLabel.setText(Messages.dayLabel);

    final Button everyWeekDayRadio = new Button(dailyContent, SWT.RADIO);
    everyWeekDayRadio.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create());
    everyWeekDayRadio.setText(Messages.everyWeekDay);

    final Label filler = new Label(dailyContent, SWT.NONE);
    filler.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    final IObservableValue hourObservable = PojoProperties.value("atHourInDay").observe(cronExpression);
    final IObservableValue minuteObservable = PojoProperties.value("atMinuteInDay").observe(cronExpression);
    final IObservableValue secondObservable = PojoProperties.value("atSecondInDay").observe(cronExpression);
    createStartTimeComposite(dailyContent, hourObservable, minuteObservable, secondObservable);

    item.setControl(dailyContent);
}