Java源码示例:org.eclipse.core.databinding.observable.value.IValueChangeListener

示例1
@Override
protected void bind ()
{
    this.dbc.bindValue ( SWTObservables.observeText ( this.label ), this.model, null, new UpdateValueStrategy ().setConverter ( new VariantToStringConverter () ) );
    this.model.addValueChangeListener ( new IValueChangeListener () {

        @Override
        public void handleValueChange ( final ValueChangeEvent event )
        {
            if ( !PlainDataItemLabel.this.label.isDisposed () )
            {
                PlainDataItemLabel.this.label.getParent ().layout ();
            }
        }
    } );
}
 
示例2
@Override
protected void setInput ( final IEditorInput input )
{
    final ConfigurationEditorInput configurationInput = (ConfigurationEditorInput)input;

    if ( !this.nested )
    {
        configurationInput.performLoad ( new NullProgressMonitor () );
    }

    this.dirtyValue = configurationInput.getDirtyValue ();
    this.dirtyValue.addValueChangeListener ( new IValueChangeListener () {

        @Override
        public void handleValueChange ( final ValueChangeEvent event )
        {
            firePropertyChange ( IEditorPart.PROP_DIRTY );
        }
    } );

    super.setInput ( input );
}
 
示例3
private void createGeneralLastNameField(final Composite detailsInfoComposite) {
    final Label lastName = new Label(detailsInfoComposite, SWT.NONE);
    lastName.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    lastName.setText(Messages.lastName);

    final Text lastNameText = new Text(detailsInfoComposite, SWT.BORDER);
    lastNameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    lastNameText.setMessage(Messages.lastNameHint);

    final IObservableValue lastNameUserValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            userSingleSelectionObservable,
            OrganizationPackage.Literals.USER__LAST_NAME);
    context.bindValue(SWTObservables.observeText(lastNameText, SWT.Modify), lastNameUserValue);

    lastNameUserValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleLastNameChange(event);
        }
    });
}
 
示例4
private void createGeneralFirstNameField(final Composite detailsInfoComposite) {
    final Label firstName = new Label(detailsInfoComposite, SWT.NONE);
    firstName.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    firstName.setText(Messages.firstName);

    final Text firstNameText = new Text(detailsInfoComposite, SWT.BORDER);
    firstNameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    firstNameText.setMessage(Messages.firstNameHint);

    final IObservableValue firstNameUserValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            userSingleSelectionObservable,
            OrganizationPackage.Literals.USER__FIRST_NAME);
    context.bindValue(SWTObservables.observeText(firstNameText, SWT.Modify), firstNameUserValue);

    firstNameUserValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleFirstNameChange(event);
        }
    });
}
 
示例5
private void createDescriptionField(final Group group) {
    final Label descriptionLabel = new Label(group, SWT.NONE);
    descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.FILL).create());
    descriptionLabel.setText(Messages.description);

    final Text roleDescriptionText = new Text(group, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
    roleDescriptionText
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 80).create());
    roleDescriptionText.setMessage(Messages.descriptionHint);
    roleDescriptionText.setTextLimit(255);

    final IObservableValue roleDescriptionValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            roleSingleSelectionObservable, OrganizationPackage.Literals.ROLE__DESCRIPTION);
    context.bindValue(SWTObservables.observeText(roleDescriptionText, SWT.Modify), roleDescriptionValue);
    roleDescriptionValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleRoleDescriptionChange(event);
        }
    });
}
 
示例6
private void createDisplayNameField(final Group group) {
    final Label displayNameLabel = new Label(group, SWT.NONE);
    displayNameLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    displayNameLabel.setText(Messages.displayName);

    final Text displayNamedText = new Text(group, SWT.BORDER);
    displayNamedText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    final IObservableValue roleDisplayNameValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            roleSingleSelectionObservable, OrganizationPackage.Literals.ROLE__DISPLAY_NAME);
    final Binding binding = context.bindValue(SWTObservables.observeText(displayNamedText, SWT.Modify),
            roleDisplayNameValue,
            updateValueStrategy().withValidator(maxLengthValidator(Messages.displayName, LONG_FIELD_MAX_LENGTH))
                    .create(),
            null);
    ControlDecorationSupport.create(binding, SWT.LEFT);

    roleDisplayNameValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent arg0) {
            handleRoleDisplayNameChange(arg0);

        }
    });
}
 
示例7
private void bindOperator(EMFDataBindingContext context, IObservableValue operationObervable) {
    final UpdateValueStrategy uvsOperator = new UpdateValueStrategy();
    final IObservableValue operatorObservableValue = CustomEMFEditObservables.observeDetailValue(Realm.getDefault(),
            operationObervable,
            ExpressionPackage.Literals.OPERATION__OPERATOR);
    final IObservableValue operatorExpressionObserveValue = CustomEMFEditObservables.observeDetailValue(
            Realm.getDefault(), operatorObservableValue,
            ExpressionPackage.Literals.OPERATOR__EXPRESSION);
    final IObservableValue operatorTypeObservedValue = CustomEMFEditObservables.observeDetailValue(Realm.getDefault(),
            operatorObservableValue,
            ExpressionPackage.Literals.OPERATOR__TYPE);
    uvsOperator.setConverter(new OperatorTypeToStringLinkConverter(operatorObservableValue));
    operatorTypeObservedValue.addChangeListener(new RevalidateActionExpressionChangeListener());
    operatorTypeObservedValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            getActionExpression().setDefaultReturnType(defaultReturnTypeResolver.guessRightOperandReturnType());
        }
    });

    context.bindValue(SWTObservables.observeText(getOperatorLink()), operatorTypeObservedValue, null, uvsOperator);
    context.bindValue(SWTObservables.observeText(getOperatorLink()), operatorExpressionObserveValue, null, uvsOperator);
    context.bindValue(SWTObservables.observeTooltipText(getOperatorLink()),
            operatorExpressionObserveValue);
}
 
示例8
private void updateVisibilityOfActionExpressionControl(final IObservableValue operationObservableValue) {
    operationObservableValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent event) {
            final IObservableValue observableValue = event.getObservableValue();
            final Operation operation = (Operation) observableValue.getValue();
            final boolean isLeftOperandABusinessData = operation != null
                    && isExpressionReferenceABusinessData(operation.getLeftOperand());
            final Control control = getActionExpression().getControl();
            if (!control.isDisposed()) {
                control.setVisible(
                        !ExpressionConstants.DELETION_OPERATOR.equals(operation.getOperator().getType())
                                || !isLeftOperandABusinessData);
            }
        }
    });

}
 
示例9
@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
        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;
}
 
示例10
public void setTitle() {
    if (selectedDataObservable.getValue() != null) {
        setTitle(Messages.bind(Messages.selectFieldToGenerateTitle,
                ((Element) selectedDataObservable.getValue()).getName()));
        EMFObservables
                .observeDetailValue(Realm.getDefault(), selectedDataObservable,
                        ProcessPackage.Literals.ELEMENT__NAME)
                .addValueChangeListener(
                        new IValueChangeListener() {

                            @Override
                            public void handleValueChange(final ValueChangeEvent event) {
                                setTitle(Messages.bind(Messages.selectFieldToGenerateTitle,
                                        event.diff.getNewValue()));
                            }
                        });
    }
}
 
示例11
public TimeShiftActionController ( final ControllerManager controllerManager, final ChartContext chartContext, final TimeShiftAction controller )
{
    super ( controllerManager.getContext (), chartContext, controller );

    final DataBindingContext ctx = controllerManager.getContext ();

    final Composite space = chartContext.getExtensionSpaceProvider ().getExtensionSpace ();
    if ( space != null )
    {
        this.button = new Button ( space, SWT.PUSH );
        this.button.addSelectionListener ( new SelectionAdapter () {
            @Override
            public void widgetSelected ( final SelectionEvent e )
            {
                action ();
            };
        } );
        addBinding ( ctx.bindValue ( PojoObservables.observeValue ( this, "milliseconds" ), EMFObservables.observeValue ( controller, ChartPackage.Literals.TIME_SHIFT_ACTION__DIFF ) ) ); //$NON-NLS-1$
        addBinding ( ctx.bindValue ( SWTObservables.observeText ( this.button ), EMFObservables.observeValue ( controller, ChartPackage.Literals.TIME_SHIFT_ACTION__LABEL ) ) );
        addBinding ( ctx.bindValue ( SWTObservables.observeTooltipText ( this.button ), EMFObservables.observeValue ( controller, ChartPackage.Literals.TIME_SHIFT_ACTION__DESCRIPTION ) ) );

        this.layoutListener = new IValueChangeListener () {

            @Override
            public void handleValueChange ( final ValueChangeEvent event )
            {
                space.layout ();
            }
        };

        this.labelProperty = EMFObservables.observeValue ( controller, ChartPackage.Literals.TIME_SHIFT_ACTION__LABEL );
        this.labelProperty.addValueChangeListener ( this.layoutListener );

        space.layout ();
    }
    else
    {
        this.button = null;
    }
}
 
示例12
@Override
protected void bind ()
{
    this.model.addValueChangeListener ( new IValueChangeListener () {

        @Override
        public void handleValueChange ( final ValueChangeEvent event )
        {
            if ( !SystemMessageLabel.this.label.isDisposed () )
            {
                process ( event.diff.getNewValue () );
            }
        }
    } );
}
 
示例13
@Override
protected IObservableValue doCreateElementObservable(final Object element, final ViewerCell viewerCell) {
    final IObservableValue observeValue = PojoObservables.observeValue(element, "name");
    observeValue.addValueChangeListener(new ColumnViewerUpdateListener(getViewer(), element));
    observeValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final String oldInformationName = (String) event.diff.getOldValue();
            final String newInformationName = (String) event.diff.getNewValue();
            for(final User user : organization.getUsers().getUser()){
                updateCustomUserInformationName(user, oldInformationName, newInformationName);
            }
        }

    });

    //sort the table after a modification
    observeValue.addDisposeListener(new IDisposeListener() {

        @Override
        public void handleDispose(final DisposeEvent arg0) {
            viewer.refresh();

        }
    });
    return observeValue;
}
 
示例14
private void createDisplayNameField(final Group group) {
    final Label displayNameLabel = new Label(group, SWT.NONE);
    displayNameLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    displayNameLabel.setText(Messages.displayName);

    final Text displayNamedText = new Text(group, SWT.BORDER);
    displayNamedText.setMessage(Messages.groupNameExample);
    displayNamedText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    final IObservableValue displayNameValue = EMFObservables.observeDetailValue(Realm.getDefault(), groupSingleSelectionObservable,
            OrganizationPackage.Literals.GROUP__DISPLAY_NAME);
    final Binding binding = context.bindValue(SWTObservables.observeText(displayNamedText, SWT.Modify), displayNameValue,
            UpdateStrategyFactory.updateValueStrategy()
                    .withValidator(maxLengthValidator(Messages.displayName, LONG_FIELD_MAX_LENGTH)).create(),
            null);
    ControlDecorationSupport.create(binding, SWT.LEFT);

    displayNameValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleGroupDisplayName(event);
        }

    });

}
 
示例15
@Override
protected void configureViewer(final StructuredViewer viewer) {

    final TableViewer roleTableViewer = (TableViewer) viewer;
    final Table table = roleTableViewer.getTable();

    roleSingleSelectionObservable = ViewersObservables.observeSingleSelection(getViewer());
    roleSingleSelectionObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final Role selectedRole = (Role) event.diff.getNewValue();
            final boolean isSelectedRole = selectedRole != null;
            setControlEnabled(getInfoGroup(), isSelectedRole);
            roleMemberShips.clear();
            for (final Membership m : membershipList) {
                if (Objects.equals(selectedRole.getName(),m.getRoleName())) {
                    roleMemberShips.add(m);
                }
            }
        }
    });

    addNameColumn(roleTableViewer);

    addDisplayNameColumn(roleTableViewer);

    addDescriptionColumn(roleTableViewer);

    addTableColumLayout(table);

    if (roleList != null && getViewer() != null) {
        getViewer().setInput(roleList);
    }

}
 
示例16
private void createNameField(final Group group) {
    final Label roleName = new Label(group, SWT.NONE);
    roleName.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    roleName.setText(Messages.name + " *");

    final Text roleNameText = new Text(group, SWT.BORDER);
    roleNameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).minSize(130, SWT.DEFAULT).create());

    final IObservableValue roleNameValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            roleSingleSelectionObservable, OrganizationPackage.Literals.ROLE__NAME);
    final Binding binding = context.bindValue(SWTObservables.observeText(roleNameText, SWT.Modify),
            roleNameValue,
            updateValueStrategy().withValidator(multiValidator()
                    .addValidator(mandatoryValidator(Messages.name))
                    .addValidator(maxLengthValidator(Messages.name, LONG_FIELD_MAX_LENGTH))
                    .addValidator(new UniqueRoleNameValidator()).create()).create(),
            null);

    ControlDecorationSupport.create(binding, SWT.LEFT, group, new ControlDecorationUpdater() {

        @Override
        protected void update(final ControlDecoration decoration, final IStatus status) {
            if (roleSingleSelectionObservable.getValue() != null) {
                super.update(decoration, status);
            }
        }
    });
    roleNameValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleRoleNameChange(event);
        }
    });
}
 
示例17
private void createSingleMultipleRadioGroup(final Composite parent, final EMFDataBindingContext emfDataBindingContext) {
    //FILLER
    final Label filler = new Label(parent, SWT.NONE);
    filler.setLayoutData(GridDataFactory.swtDefaults().grab(false, false).create());

    final Composite radioContainer = new Composite(parent, SWT.NONE);
    radioContainer.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(0, 0).create());
    radioContainer.setLayoutData(GridDataFactory.swtDefaults().grab(true, false).create());
    final Button radioButtonSingle = createRadioButtonSingle(radioContainer);
    final Button radioButtonMultiple = createRadioButtonMultiple(radioContainer);

    final SelectObservableValue isMultipleObservableValue = new SelectObservableValue(Boolean.class);
    isMultipleObservableValue.addOption(false, SWTObservables.observeSelection(radioButtonSingle));
    isMultipleObservableValue.addOption(true, SWTObservables.observeSelection(radioButtonMultiple));

    final IObservableValue multipleObserveValue = EMFObservables.observeValue(document, ProcessPackage.Literals.DOCUMENT__MULTIPLE);
    emfDataBindingContext.bindValue(
            isMultipleObservableValue,
            multipleObserveValue);
    multipleObserveValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            validate(emfDataBindingContext);
        }
    });

}
 
示例18
private void createDocumentTypeRadioButtonComposition(final Composite parent, final EMFDataBindingContext emfDataBindingContext) {
    final Composite compo = new Composite(parent, SWT.NONE);
    compo.setLayout(GridLayoutFactory.fillDefaults().numColumns(4).spacing(10, 5).create());
    compo.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    final Button radioButtonNone = createRadioButtonNone(compo);
    final Button radioButtonContract = createRadioButtonContract(compo);
    final Button radioButtonInternal = createRadioButtonInternal(compo);
    final Button radioButtonExternal = createRadioButtonExternal(compo);

    final SelectObservableValue documentTypeObservableValue = new SelectObservableValue(DocumentType.class);
    documentTypeObservableValue.addOption(DocumentType.NONE, SWTObservables.observeSelection(radioButtonNone));
    documentTypeObservableValue.addOption(DocumentType.CONTRACT, SWTObservables.observeSelection(radioButtonContract));
    documentTypeObservableValue.addOption(DocumentType.EXTERNAL, SWTObservables.observeSelection(radioButtonExternal));
    documentTypeObservableValue.addOption(DocumentType.INTERNAL, SWTObservables.observeSelection(radioButtonInternal));

    final IObservableValue documentTypeObservable = EMFObservables.observeValue(document, ProcessPackage.Literals.DOCUMENT__DOCUMENT_TYPE);
    emfDataBindingContext.bindValue(
            documentTypeObservableValue,
            documentTypeObservable);
    documentTypeObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            validate(emfDataBindingContext);
        }
    });
}
 
示例19
public void bindControl(final DataBindingContext dbc, final IObservableValue modelObservable) {
    final DateTimeObservable dateObservable = new DateTimeObservable(dateControl);
    final DateTimeObservable timeObservable = new DateTimeObservable(timeControl);
    dbc.bindValue(dateObservable, modelObservable);
    dateControl.notifyListeners(SWT.Selection, new Event());
    timeObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final Date newValue = (Date) event.diff.getNewValue();
            dateControl.setTime(newValue.getHours(), newValue.getMinutes(), newValue.getMinutes());
            dateControl.notifyListeners(SWT.Selection, new Event());
        }
    });
}
 
示例20
@Override
protected void createContent(final Composite parent) {
    context = new EMFDataBindingContext();
    final TabbedPropertySheetWidgetFactory widgetFactory = getWidgetFactory();

    final Composite composite = widgetFactory.createPlainComposite(parent, SWT.NONE);
    composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(10, 5).create());
    composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    final SelectObservableValue recurrenceTypeObservable = createRecurrenceTypeRadioGroup(composite, widgetFactory);

    final Composite stackedComposite = widgetFactory.createPlainComposite(composite, SWT.NONE);
    stackedComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    final StackLayout stackLayout = new StackLayout();
    stackedComposite.setLayout(stackLayout);

    final Composite noneComposite = widgetFactory.createComposite(stackedComposite, SWT.NONE);
    final Composite standardLoopContent = createStandardLoopContent(stackedComposite, widgetFactory);
    final Composite multiInstanceContent = createMultiInstanceContent(stackedComposite, widgetFactory);
    recurrenceTypeObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final MultiInstanceType type = (MultiInstanceType) event.diff.getNewValue();
            switch (type) {
                case NONE:
                    stackLayout.topControl = noneComposite;
                    break;
                case STANDARD:
                    stackLayout.topControl = standardLoopContent;
                    break;
                default:
                    stackLayout.topControl = multiInstanceContent;
                    break;
            }
            stackedComposite.layout();
        }
    });

}
 
示例21
@Override
protected Binding createBinding(final IObservableValue target, final IObservableValue model) {
    final Binding binding = dbc.bindValue(target, model, targetToModelConvertStrategy(observedElement(model)), null);
    final IObservableValue validationStatus = binding.getValidationStatus();
    validationStatus.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            validationStatusChanged((IStatus) event.diff.getNewValue());
        }

    });
    return binding;
}
 
示例22
/**
 * Setup additional non-component contained bindings
 */
protected void setupBindings() {

	DataBindingContext dataBindingContext = this.getDataBindingContext();

	IObservableValue<String> moduleSpecifierValue = BeanProperties
			.value(WorkspaceWizardModel.class, WorkspaceWizardModel.MODULE_SPECIFIER_PROPERTY, String.class)
			.observe(getModel());

	IObservableValue<Boolean> suffixVisibilityValue = BeanProperties
			.value(SuffixText.class, SuffixText.SUFFIX_VISIBILITY_PROPERTY, Boolean.class)
			.observe(workspaceWizardControl.getModuleSpecifierText());

	//// Only show the suffix on input values ending with a '/' character or empty module specifiers.
	dataBindingContext.bindValue(suffixVisibilityValue, moduleSpecifierValue, noUpdateValueStrategy(),
			WizardComponentDataConverters.strategyForPredicate(m -> {
				String moduleSpecifier = (String) m;
				return (moduleSpecifier.isEmpty()
						|| moduleSpecifier.charAt(moduleSpecifier.length() - 1) == IPath.SEPARATOR);
			}));

	//// interface name to module specifier suffix binding
	IObservableValue<String> interfaceNameModelValue = BeanProperties
			.value(N4JSClassifierWizardModel.class, N4JSClassifierWizardModel.NAME_PROPERTY, String.class)
			.observe(getModel());
	IObservableValue<String> greySuffixValue = BeanProperties
			.value(SuffixText.class, SuffixText.SUFFIX_PROPERTY, String.class)
			.observe(workspaceWizardControl.getModuleSpecifierText());
	dataBindingContext.bindValue(greySuffixValue,
			interfaceNameModelValue, noUpdateValueStrategy(),
			new UpdateValueStrategy<>(UpdateValueStrategy.POLICY_UPDATE));

	//// Enable n4js <-> Definition value(external) is selected
	IObservableValue<Boolean> externalValue = BeanProperties
			.value(DefinitionFileModel.class, N4JSClassifierWizardModel.DEFINITION_FILE_PROPERTY, Boolean.class)
			.observe((DefinitionFileModel) getModel());
	IObservableValue<Boolean> n4jsEnabled = WidgetProperties.enabled()
			.observe(otherClassifierModifiersComponent.getN4jsAnnotationBox());
	dataBindingContext.bindValue(n4jsEnabled, externalValue, noUpdateValueStrategy(),
			WizardComponentDataConverters.strategyForPredicate(input -> getModel().isDefinitionFile()
					&& AccessModifier.PRIVATE != getModel().getAccessModifier()));

	// One way binding of the access modifiers to the enabled state of internal checkbox
	IObservableValue<Boolean> internalEnabledValue = WidgetProperties.enabled()
			.observe(accessModifierComponent.getInternalAnnotationBox());
	IObservableValue<AccessModifier> accessModifierSelectObservable = BeanProperties
			.value(N4JSClassifierWizardModel.class, N4JSClassifierWizardModel.ACCESS_MODIFIER_PROPERTY,
					AccessModifier.class)
			.observe(getModel());

	dataBindingContext.bindValue(internalEnabledValue, accessModifierSelectObservable, noUpdateValueStrategy(),
			WizardComponentDataConverters.strategyForPredicate(object -> {
				if (object instanceof AccessModifier) {
					return isInternalAccessModifierEnabled((AccessModifier) object);
				}
				return false;
			}));

	// N4JS annotation checkbox disabled when access modifier is private
	IObservableValue<Boolean> n4jsEnabledValue = WidgetProperties.enabled()
			.observe(otherClassifierModifiersComponent.getN4jsAnnotationBox());
	dataBindingContext.bindValue(n4jsEnabledValue, accessModifierSelectObservable, noUpdateValueStrategy(),
			WizardComponentDataConverters.strategyForPredicate(object -> {
				if (object instanceof AccessModifier) {
					return ((AccessModifier) object != AccessModifier.PRIVATE) && getModel().isDefinitionFile();
				}
				return false;
			}));

	// Refresh wizard state on validation change
	IObservableValue<ValidationResult> observableValidationValue = BeanProperties
			.value(WorkspaceWizardModelValidator.VALIDATION_RESULT, ValidationResult.class)
			.observe(getValidator());
	observableValidationValue.addValueChangeListener(new IValueChangeListener<ValidationResult>() {
		@Override
		public void handleValueChange(ValueChangeEvent<? extends ValidationResult> event) {
			onValidationChange(event.diff.getNewValue());
		}
	});

}
 
示例23
public ScaleActionController ( final ControllerManager controllerManager, final ChartContext chartContext, final ScaleAction controller )
{
    super ( controllerManager.getContext (), chartContext, controller );

    final DataBindingContext ctx = controllerManager.getContext ();

    final Composite space = chartContext.getExtensionSpaceProvider ().getExtensionSpace ();
    if ( space != null )
    {
        this.button = new Button ( space, SWT.PUSH );
        this.button.addSelectionListener ( new SelectionAdapter () {
            @Override
            public void widgetSelected ( final SelectionEvent e )
            {
                action ();
            };
        } );

        addBinding ( ctx.bindValue ( PojoObservables.observeValue ( this, "milliseconds" ), EMFObservables.observeValue ( controller, ChartPackage.Literals.SCALE_ACTION__TIMESPAN ) ) ); //$NON-NLS-1$
        addBinding ( ctx.bindValue ( SWTObservables.observeText ( this.button ), EMFObservables.observeValue ( controller, ChartPackage.Literals.SCALE_ACTION__LABEL ) ) );
        addBinding ( ctx.bindValue ( SWTObservables.observeTooltipText ( this.button ), EMFObservables.observeValue ( controller, ChartPackage.Literals.SCALE_ACTION__DESCRIPTION ) ) );

        this.layoutListener = new IValueChangeListener () {

            @Override
            public void handleValueChange ( final ValueChangeEvent event )
            {
                space.layout ();
            }
        };

        this.labelProperty = EMFObservables.observeValue ( controller, ChartPackage.Literals.SCALE_ACTION__LABEL );
        this.labelProperty.addValueChangeListener ( this.layoutListener );

        space.layout ();
    }
    else
    {
        this.button = null;
    }
}
 
示例24
public ChartViewer ( final Display display, final ChartRenderer chartRenderer, final Chart chart, final ExtensionSpaceProvider extensionSpaceProvider, final ResetHandler resetHandler )
{
    this.chart = chart;
    this.display = display;

    this.resourceManager = new LocalResourceManager ( JFaceResources.getResources ( this.display ) );

    this.ctx = new DataBindingContext ( SWTObservables.getRealm ( this.display ) );

    final AggregateValidationStatus status = new AggregateValidationStatus ( this.ctx, AggregateValidationStatus.MERGED );
    status.addValueChangeListener ( new IValueChangeListener () {

        @Override
        public void handleValueChange ( final ValueChangeEvent event )
        {
            if ( event.diff.getNewValue () == null )
            {
                return;
            }

            final Status value = (Status)event.diff.getNewValue ();
            if ( value.isOK () || value.getException () == null )
            {
                return;
            }

            logger.warn ( "Changed", value.getException () );
        }
    } );

    // create content

    this.manager = chartRenderer;

    this.manager.setStale ( true );
    this.realm = new DisplayRealm ( this.display );

    this.manager.createDropTarget ( new Transfer[] { LocalSelectionTransfer.getTransfer () }, createDropTarget () );

    this.titleRenderer = new TitleRenderer ( this.manager );
    this.manager.addRenderer ( this.titleRenderer, -100 );

    this.leftManager = new YAxisManager ( this.ctx, this.manager, true );
    this.ctx.bindList ( this.leftManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__LEFT ) );
    this.rightManager = new YAxisManager ( this.ctx, this.manager, false );
    this.ctx.bindList ( this.rightManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__RIGHT ) );

    this.topManager = new XAxisManager ( this.ctx, this.manager, true );
    this.ctx.bindList ( this.topManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__TOP ) );
    this.bottomManager = new XAxisManager ( this.ctx, this.manager, false );
    this.ctx.bindList ( this.bottomManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__BOTTOM ) );

    this.xLocator = new SimpleAxisLocator<XAxis, XAxisViewer> ( this.topManager, this.bottomManager );
    this.yLocator = new SimpleAxisLocator<YAxis, YAxisViewer> ( this.leftManager, this.rightManager );

    this.inputManager = new InputManager ( this.ctx, this, this.resourceManager, this.xLocator, this.yLocator );
    this.ctx.bindList ( this.inputManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__INPUTS ) );

    this.ctx.bindValue ( PojoObservables.observeValue ( this.titleRenderer, "title" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__TITLE ) ); //$NON-NLS-1$

    this.ctx.bindValue ( PojoObservables.observeValue ( this, "showCurrentTimeRuler" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__SHOW_CURRENT_TIME_RULER ) ); //$NON-NLS-1$
    this.ctx.bindValue ( PojoObservables.observeValue ( this, "mutable" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__MUTABLE ) ); //$NON-NLS-1$
    this.ctx.bindValue ( PojoObservables.observeValue ( this, "hoverable" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__HOVERABLE ) ); //$NON-NLS-1$
    this.ctx.bindValue ( PojoObservables.observeValue ( this, "chartBackground" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__BACKGROUND_COLOR ) ); //$NON-NLS-1$

    this.ctx.bindValue ( PojoObservables.observeValue ( this, "timeRulerAxis" ), EMFObservables.observeValue ( this.chart, ChartPackage.Literals.CHART__TIME_RULER_AXIS ) ); //$NON-NLS-1$

    this.ctx.bindList ( this.selectedXAxis, EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__SELECTED_XAXIS ), null, new UpdateListStrategy ().setConverter ( new AxisConverter<> ( XAxis.class, org.eclipse.scada.chart.XAxis.class, this.xLocator ) ) );

    this.chartContext = new ChartContextImpl ( this.xLocator, this.yLocator, extensionSpaceProvider, chartRenderer, chart, resetHandler, this.unmodItems );

    this.controllerManager = new ControllerManager ( this.ctx, this.ctx.getValidationRealm (), this.chartContext );
    this.ctx.bindList ( this.controllerManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__CONTROLLERS ) );

    this.profileManager = new ProfileManager ( this.ctx, this.ctx.getValidationRealm (), extensionSpaceProvider, this.chartContext );
    this.ctx.bindList ( this.profileManager.getList (), EMFObservables.observeList ( chart, ChartPackage.Literals.CHART__PROFILES ) );
    this.ctx.bindValue ( PojoObservables.observeValue ( this.profileManager, "type" ), EMFObservables.observeValue ( chart, ChartPackage.Literals.CHART__PROFILE_SWITCHER_TYPE ) ); //$NON-NLS-1$
    this.ctx.bindValue ( PojoObservables.observeValue ( this.profileManager, "activeProfile" ), EMFObservables.observeValue ( chart, ChartPackage.Literals.CHART__ACTIVE_PROFILE ) ); //$NON-NLS-1$

    this.manager.setStale ( false );

    startTimer ();

    this.manager.addDisposeListener ( new DisposeListener () {

        @Override
        public void onDispose ()
        {
            handleDispose ();
        }
    } );

    setSelection ( new StructuredSelection ( this ) );
    updateState ();
}
 
示例25
protected void createDataModel ( final TreeViewer viewer )
{
    final DataBindingContext dbc = new DataBindingContext ();

    final IObservableFactory listFactory = new IObservableFactory () {

        @Override
        public IObservable createObservable ( final Object target )
        {
            if ( target instanceof IObservableList )
            {
                return (IObservableList)target;
            }

            else if ( target instanceof World )
            {
                return EMFObservables.observeList ( (EObject)target, InfrastructurePackage.Literals.WORLD__NODES );
            }
            else if ( target instanceof SystemNode )
            {
                return EMFObservables.observeList ( (EObject)target, InfrastructurePackage.Literals.SYSTEM_NODE__DRIVERS );
            }

            return null;
        }
    };

    final AdapterFactory adapterFactory = new InfrastructureItemProviderAdapterFactory ();
    final AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider ( adapterFactory );

    final ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider ( listFactory, null );
    viewer.setContentProvider ( cp );
    viewer.setLabelProvider ( labelProvider );
    viewer.setInput ( EMFObservables.observeList ( this.world, InfrastructurePackage.Literals.WORLD__NODES ) );

    dbc.bindValue ( ViewersObservables.observeSingleSelection ( viewer ), this.driverValue );
    this.driverValue.addValueChangeListener ( new IValueChangeListener () {

        @Override
        public void handleValueChange ( final ValueChangeEvent event )
        {
            update ();
        }
    } );

    viewer.getControl ().addDisposeListener ( new DisposeListener () {

        @Override
        public void widgetDisposed ( final DisposeEvent e )
        {
            dbc.dispose ();
        }
    } );
}
 
示例26
@Override
protected StructuredViewer createViewer(final Composite parent) {
    final FilteredTree fileredTree = new FilteredTree(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION, new PatternFilter(), true);
    ((Text) ((Composite) fileredTree.getChildren()[0]).getChildren()[0]).setMessage(Messages.search);
    fileredTree.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).minSize(200, 200).create());
    fileredTree.getViewer().setContentProvider(new GroupContentProvider());
    fileredTree.forceFocus();

    groupSingleSelectionObservable = ViewersObservables.observeSingleSelection(fileredTree.getViewer());
    groupSingleSelectionObservable.addValueChangeListener(new IValueChangeListener() {

        private final Adapter groupAdapter = new AdapterImpl() {

            /*
             * (non-Javadoc)
             * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
             */
            @Override
            public void notifyChanged(Notification notification) {
                switch (notification.getFeatureID(org.bonitasoft.studio.actors.model.organization.Group.class)) {
                    case OrganizationPackage.GROUP__NAME:
                        handleGroupNameChange(notification);
                        break;
                    default:
                        break;
                }
                super.notifyChanged(notification);
            }
        };

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final org.bonitasoft.studio.actors.model.organization.Group previousGroup = (org.bonitasoft.studio.actors.model.organization.Group) event.diff
                    .getOldValue();
            if (previousGroup != null) {
                previousGroup.eAdapters().remove(groupAdapter);
            }
            final org.bonitasoft.studio.actors.model.organization.Group selectedGroup = (org.bonitasoft.studio.actors.model.organization.Group) event.diff
                    .getNewValue();

            if (selectedGroup != null) {
                setControlEnabled(getInfoGroup(), true);
                selectedGroup.eAdapters().add(groupAdapter);
                addSubGroupButton.setEnabled(true);
            } else {
                addSubGroupButton.setEnabled(false);
                setControlEnabled(getInfoGroup(), false);
            }

        }
    });

    return fileredTree.getViewer();
}
 
示例27
private void createUserNameField(final Composite rightColumnComposite) {
    final Label userName = new Label(rightColumnComposite, SWT.NONE);
    userName.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).create());
    userName.setText(Messages.userName + " *");

    final Text usernameText = new Text(rightColumnComposite, SWT.BORDER);
    usernameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(5, 0).create());
    usernameText.setMessage(Messages.userNameHint);

    final UpdateValueStrategy stategy = new UpdateValueStrategy();
    stategy.setConverter(new Converter(String.class, String.class) {

        @Override
        public Object convert(final Object from) {
            if (from != null && userSingleSelectionObservable != null
                    && userSingleSelectionObservable.getValue() != null) {
                final User user = (User) userSingleSelectionObservable.getValue();
                updateDelegueeMembership(user.getUserName(), from.toString());
            }
            return from;
        }
    });
    stategy.setAfterGetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {

            if (isNotUserSelected()) {
                return Status.OK_STATUS;
            }

            if (value.toString().isEmpty()) {
                return ValidationStatus.error(Messages.userNameIsEmpty);
            }

            if (value.toString().length() > NAME_SIZE) {
                return ValidationStatus.error(Messages.nameLimitSize);
            }

            final User currentUser = (User) userSingleSelectionObservable.getValue();
            for (final User u : userList) {
                if (!u.equals(currentUser)) {
                    if (u.getUserName().equals(value)) {
                        return ValidationStatus.error(Messages.userNameAlreadyExists);
                    }
                }
            }
            return Status.OK_STATUS;
        }
    });

    final IObservableValue userNameValue = EMFObservables.observeDetailValue(Realm.getDefault(),
            userSingleSelectionObservable,
            OrganizationPackage.Literals.USER__USER_NAME);
    final Binding binding = context.bindValue(SWTObservables.observeText(usernameText, SWT.Modify), userNameValue,
            stategy, null);
    ControlDecorationSupport.create(binding, SWT.LEFT, rightColumnComposite, new ControlDecorationUpdater() {

        @Override
        protected void update(final ControlDecoration decoration, final IStatus status) {
            if (userSingleSelectionObservable.getValue() != null) {
                super.update(decoration, status);
            }
        }
    });

    userNameValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            handleUserNameChange(event);
        }

    });
}
 
示例28
private IValueChangeListener handleValidationStatusChanged() {
    return event -> statusChanged((IStatus) bindValue.getValidationStatus().getValue());
}
 
示例29
private void createMultipleComposite(final Composite parent, final EMFDataBindingContext emfDataBindingContext) {
    multipleComposite = new Composite(parent, SWT.NONE);
    multipleComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    multipleComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(10, 10).create());

    final Composite radioContainer = new Composite(multipleComposite, SWT.NONE);
    radioContainer.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).margins(0, 0).spacing(10, 5).create());
    radioContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());

    final Button radioButtonNone = createRadioButtonNone(radioContainer);
    final Button radioButtonContract = createRadioButtonContract(radioContainer);
    final Button radioButtonScript = createRadioButtonInternal(radioContainer);
    radioButtonScript.setText(Messages.initialValueButtonScript);

    final SelectObservableValue documentTypeObservableValue = new SelectObservableValue(DocumentType.class);
    final ISWTObservableValue scriptObserveSelection = SWTObservables.observeSelection(radioButtonScript);
    documentTypeObservableValue.addOption(DocumentType.NONE, SWTObservables.observeSelection(radioButtonNone));
    documentTypeObservableValue.addOption(DocumentType.INTERNAL, scriptObserveSelection);
    documentTypeObservableValue.addOption(DocumentType.CONTRACT, SWTObservables.observeSelection(radioButtonContract));

    final IObservableValue documentTypeObservable = EMFObservables.observeValue(document, ProcessPackage.Literals.DOCUMENT__DOCUMENT_TYPE);
    emfDataBindingContext.bindValue(documentTypeObservableValue, documentTypeObservable, null,
            updateValueStrategy().withConverter(internalOrExternalToTrue())
                    .create());
    documentTypeObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            validate(emfDataBindingContext);
        }
    });

    multipleStackedComposite = new Composite(multipleComposite, SWT.NONE);
    multipleStackedComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    multipleStack = new StackLayout();
    multipleStackedComposite.setLayout(multipleStack);

    multiNoneCompo = new Composite(multipleStackedComposite, SWT.NONE);
    multiNoneCompo.setLayoutData(GridDataFactory.swtDefaults().grab(false, false).create());

    multipleContractComposite = new MultipleFileContractInputSelectionComposite(multipleStackedComposite);
    multipleContractComposite.bindControl(document, context, emfDataBindingContext);
    scriptComposite = createScriptComposite(multipleStackedComposite, emfDataBindingContext);
}
 
示例30
private IValueChangeListener handleValidationStatusChanged() {
    return event -> {
        statusChanged((IStatus) event.diff.getNewValue());
    };
}