List of usage examples for org.eclipse.jface.databinding.swt WidgetProperties enabled
public static IWidgetValueProperty enabled()
From source file:com.planetmayo.debrief.satc_rcp.ui.contributions.RangeForecastContributionView.java
License:Open Source License
protected void bindSliderForRange(DataBindingContext context, IObservableValue modelValue, Scale slider, Label label, Button checkBox, boolean maxValue) { IObservableValue sliderValue = WidgetProperties.selection().observe(slider); IObservableValue sliderEnabled = WidgetProperties.enabled().observe(slider); IObservableValue labelValue = WidgetProperties.text().observe(label); double MAX_SELECTABLE_RANGE_YDS = new MeterToYds() .safeConvert(new Double(RangeForecastContribution.MAX_SELECTABLE_RANGE_M)); // here are the original values. We had to change them to allow range out to 100kyds // int[] borders = {0, 1000, 3000, 7000, 17000, (int)MAX_SELECTABLE_RANGE_YDS}; // int[] increments = {50, 100, 200, 500, 1000}; int[] borders = { 0, 1000, 3000, 7000, 10000, (int) MAX_SELECTABLE_RANGE_YDS }; int[] increments = { 50, 100, 500, 1000, 2000 }; context.bindValue(sliderValue, modelValue, UIUtils.converterStrategy(new ScaleConverterFrom(increments, borders)), UIUtils.converterStrategy(new ScaleConverterTo(increments, borders))); double defaultValue = maxValue ? MAX_SELECTABLE_RANGE_YDS : 0; context.bindValue(sliderEnabled, modelValue, null, UIUtils.converterStrategy(new NullToBooleanConverter())); if (checkBox != null) { IObservableValue checkBoxValue = WidgetProperties.selection().observe(checkBox); context.bindValue(checkBoxValue, modelValue, UIUtils.converterStrategy(new BooleanToNullConverter<Double>(defaultValue)), UIUtils.converterStrategy(new NullToBooleanConverter())); }//from w w w. ja v a 2 s .c o m PrefixSuffixLabelConverter labelsConverter = new PrefixSuffixLabelConverter(Object.class, "", " Yds", new DecimalFormat("0")); labelsConverter.setNestedUnitConverter(UnitConverter.RANGE_YDS.getModelToUI()); context.bindValue(labelValue, modelValue, null, UIUtils.converterStrategy(labelsConverter)); }
From source file:era.foss.typeeditor.common.AddDeleteTableViewer.java
License:Open Source License
/** * Create a button bar holding the Add and Remove Button. *///from w w w . j a v a2s . c o m protected void createButtonBar() { buttonBar = new Composite(composite, SWT.NONE); buttonBar.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, true, false)); buttonBar.setLayout(new RowLayout(SWT.HORIZONTAL)); // Create Add Button Button addElementButton = new Button(buttonBar, SWT.PUSH); addElementButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD)); addElementButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { AddDeleteTableViewer.this.addElement(); AddDeleteTableViewer.this.refresh(); } }); // Create Delete Button Button removeElementsButton = new Button(buttonBar, SWT.PUSH); removeElementsButton .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE)); removeElementsButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { removeElements(); refresh(); } }); // Create move up button Button moveUpElementsButton = new Button(buttonBar, SWT.PUSH); moveUpElementsButton.setImage(EraImages.getImage(EraImages.IMG_MOVE_UP)); moveUpElementsButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { AddDeleteTableViewer.this.moveElements(-1); refresh(); } }); // Create move up button Button moveDownElementsButton = new Button(buttonBar, SWT.PUSH); moveDownElementsButton.setImage(EraImages.getImage(EraImages.IMG_MOVE_DOWN)); moveDownElementsButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { AddDeleteTableViewer.this.moveElements(1); refresh(); } }); // Only enable delete and move buttons only when elements are selected IObservableValue selectionProperty = new SelectionProviderHasSelectionProperty() .observe(AddDeleteTableViewer.this); UpdateValueStrategy defaultStrategy = new UpdateValueStrategy(); UpdateValueStrategy neverStrategy = new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER); dataBindContext.bindValue(WidgetProperties.enabled().observe(removeElementsButton), selectionProperty, neverStrategy, defaultStrategy); dataBindContext.bindValue(WidgetProperties.enabled().observe(moveUpElementsButton), selectionProperty, neverStrategy, defaultStrategy); dataBindContext.bindValue(WidgetProperties.enabled().observe(moveDownElementsButton), selectionProperty, neverStrategy, defaultStrategy); }
From source file:eu.numberfour.n4js.ui.wizard.classifiers.N4JSNewClassifierWizardPage.java
License:Open Source License
/** * Setup additional non-component contained bindings *///ww w. ja va 2s .c om protected void setupBindings() { DataBindingContext dataBindingContext = this.getDataBindingContext(); IObservableValue moduleSpecifierValue = BeanProperties .value(WorkspaceWizardModel.class, WorkspaceWizardModel.MODULE_SPECIFIER_PROPERTY) .observe(getModel()); IObservableValue suffixVisibilityValue = BeanProperties .value(SuffixText.class, SuffixText.SUFFIX_VISIBILITY_PROPERTY) .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 interfaceNameModelValue = BeanProperties .value(N4JSInterfaceWizardModel.class, N4JSClassifierWizardModel.NAME_PROPERTY).observe(getModel()); IObservableValue greySuffixValue = BeanProperties.value(SuffixText.class, SuffixText.SUFFIX_PROPERTY) .observe(workspaceWizardControl.getModuleSpecifierText()); dataBindingContext.bindValue(greySuffixValue, interfaceNameModelValue, noUpdateValueStrategy(), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); //// Enable n4js <-> Definition value(external) is selected IObservableValue externalValue = BeanProperties .value(DefinitionFileModel.class, N4JSClassifierWizardModel.DEFINITION_FILE_PROPERTY) .observe(getModel()); IObservableValue 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 internalEnabledValue = WidgetProperties.enabled() .observe(accessModifierComponent.getInternalAnnotationBox()); IObservableValue accessModifierSelectObservable = BeanProperties .value(N4JSInterfaceWizardModel.class, N4JSClassifierWizardModel.ACCESS_MODIFIER_PROPERTY) .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 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 observableValidationValue = BeanProperties .value(WorkspaceWizardModelValidator.VALIDATION_RESULT).observe(getValidator()); observableValidationValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { onValidationChange((ValidationResult) event.diff.getNewValue()); } }); }
From source file:eu.numberfour.n4js.ui.wizard.classwizard.N4JSNewClassWizardPage.java
License:Open Source License
private void setupBindings(N4JSNewClassMainForm mainForm) { databindingContext = new DataBindingContext(); // Project property binding IObservableValue projectModelValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.PROJECT_PROPERTY).observe(model); IObservableValue projectUI = WidgetProperties.text(SWT.Modify).observe(mainForm.getProjectText()); // Note: No model to UI conversation here as IPath is castable to String (default behaviour) databindingContext.bindValue(projectUI, projectModelValue, new StringToPathConverter().updatingValueStrategy(), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); // Source folder property binding IObservableValue sourceFolderModelValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.SOURCE_FOLDER_PROPERTY).observe(model); IObservableValue sourceFolderUI = WidgetProperties.text(SWT.Modify).observe(mainForm.getSourceFolderText()); // Note: No model to UI conversation (see above) databindingContext.bindValue(sourceFolderUI, sourceFolderModelValue, new StringToPathConverter().updatingValueStrategy(), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); IObservableValue projectValidModelValue = BeanProperties .value(N4JSClassWizardModelValidator.class, N4JSClassWizardModelValidator.PROJECT_PROPERTY_VALID) .observe(this.validator); IObservableValue sourceFolderBrowseEnabled = WidgetProperties.enabled() .observe(mainForm.getSourceFolderBrowseButton()); databindingContext.bindValue(sourceFolderBrowseEnabled, projectValidModelValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); // Module specifier property binding IObservableValue moduleSpecifierModelValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.MODULE_SPECIFIER_PROPERTY).observe(model); IObservableValue moduleSpecifierUI = BeanProperties.value(SuffixText.class, SuffixText.TEXT_PROPERTY) .observe(mainForm.getModuleSpecifierText()); databindingContext.bindValue(moduleSpecifierUI, moduleSpecifierModelValue); // Class name property binding IObservableValue classNameModelValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.CLASS_NAME_PROPERTY).observe(model); IObservableValue classNameUI = WidgetProperties.text(SWT.Modify).observe(mainForm.getClassNameText()); databindingContext.bindValue(classNameUI, classNameModelValue); //// Class name to module specifier suffix binding IObservableValue greySuffixValue = BeanProperties.value(SuffixText.class, SuffixText.SUFFIX_PROPERTY) .observe(mainForm.getModuleSpecifierText()); databindingContext.bindValue(greySuffixValue, classNameModelValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); //// Only show the suffix on input values ending with a '/' character or empty module specifiers. mainForm.getModuleSpecifierText().addPropertyChangeListener(new PropertyChangeListener() { @Override//w w w. j a v a 2s . c om public void propertyChange(PropertyChangeEvent evt) { SuffixText input = mainForm.getModuleSpecifierText(); String inputText = input.getText(); if (inputText.equals("") || inputText.charAt(inputText.length() - 1) == '/') { input.setSuffixVisible(true); } else { input.setSuffixVisible(false); } } }); IObservableValue moduleSpecifierBrowseEnabled = WidgetProperties.enabled() .observe(mainForm.getModuleSpecifierBrowseButton()); IObservableValue sourceFolderValidValue = BeanProperties.value(N4JSClassWizardModelValidator.class, N4JSClassWizardModelValidator.SOURCE_FOLDER_PROPERTY_VALID).observe(this.validator); IObservableValue projectValidValue = BeanProperties .value(N4JSClassWizardModelValidator.class, N4JSClassWizardModelValidator.PROJECT_PROPERTY_VALID) .observe(this.validator); ConditionalConverter moduleSpecifierBrowseableConverter = new ConditionalConverter() { @Override public boolean validate(Object object) { return validator.getSourceFolderValid() && validator.getProjectValid(); } }; // Bind model changes of project or source folder property to the enabled state of the module specifier browse // button. databindingContext.bindValue(moduleSpecifierBrowseEnabled, projectValidValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), moduleSpecifierBrowseableConverter.updatingValueStrategy()); databindingContext.bindValue(moduleSpecifierBrowseEnabled, sourceFolderValidValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), moduleSpecifierBrowseableConverter.updatingValueStrategy()); // External property binding (definition file) IObservableValue externalValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.EXTERNAL_PROPERTY).observe(model); IObservableValue externalUI = WidgetProperties.selection().observe(mainForm.getDefinitionFileBox()); databindingContext.bindValue(externalUI, externalValue); // Access modifier property binding IObservableValue publicButtonSelection = WidgetProperties.selection() .observe(mainForm.getPublicAccessModifierBox()); IObservableValue projectButtonSelection = WidgetProperties.selection() .observe(mainForm.getProjectAccessModifierBox()); IObservableValue privateButtonSelection = WidgetProperties.selection() .observe(mainForm.getPrivateAccessModifierBox()); SelectObservableValue accessModifierSelectObservable = new SelectObservableValue(); accessModifierSelectObservable.addOption(N4JSClassWizardModel.AccessModifier.PUBLIC, publicButtonSelection); accessModifierSelectObservable.addOption(N4JSClassWizardModel.AccessModifier.PROJECT, projectButtonSelection); accessModifierSelectObservable.addOption(N4JSClassWizardModel.AccessModifier.PRIVATE, privateButtonSelection); IObservableValue accessModifierProperty = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.ACCESS_MODIFIER_PROPERTY).observe(model); databindingContext.bindValue(accessModifierSelectObservable, accessModifierProperty); // Internal property binding IObservableValue internalValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.INTERNAL_PROPERTY).observe(model); IObservableValue internalUI = WidgetProperties.selection().observe(mainForm.getInternalAnnotationBox()); databindingContext.bindValue(internalUI, internalValue); IObservableValue internalEnabledValue = WidgetProperties.enabled() .observe(mainForm.getInternalAnnotationBox()); // One way binding of the access modifiers to the enabled state of internal checkbox databindingContext.bindValue(internalEnabledValue, accessModifierSelectObservable, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new N4JSNewClassWizardConverters.ConditionalConverter() { @Override public boolean validate(Object object) { if (object instanceof AccessModifier) { if (((AccessModifier) object) == AccessModifier.PROJECT || ((AccessModifier) object) == AccessModifier.PUBLIC) { return true; } } return false; } }.updatingValueStrategy()); // Final property binding IObservableValue finalValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.FINAL_PROPERTY).observe(model); IObservableValue finalUI = WidgetProperties.selection().observe(mainForm.getFinalAnnotationBox()); databindingContext.bindValue(finalUI, finalValue); // n4js annotation property binding IObservableValue n4jsValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.N4JS_PROPERTY).observe(model); IObservableValue n4jsUI = WidgetProperties.selection().observe(mainForm.getN4jsAnnotationBox()); databindingContext.bindValue(n4jsUI, n4jsValue); // super class property binding IObservableValue superClassValue = BeanProperties .value(N4JSClassWizardModel.class, N4JSClassWizardModel.SUPER_CLASS_PROPERTY).observe(model); IObservableValue superClassUI = WidgetProperties.text(SWT.Modify).observe(mainForm.getSuperClassText()); databindingContext.bindValue(superClassUI, superClassValue, new N4JSNewClassWizardConverters.StringToClassifierReferenceConverter().updatingValueStrategy(), new N4JSNewClassWizardConverters.ClassifierReferenceToStringConverter().updatingValueStrategy()); //// Enable n4js <-> Definition value(external) is selected IObservableValue n4jsUIEnabled = WidgetProperties.enabled().observe(mainForm.getN4jsAnnotationBox()); databindingContext.bindValue(n4jsUIEnabled, externalValue); // Validation property result binding observableValidationValue = BeanProperties.value(N4JSClassWizardModelValidator.VALIDATION_RESULT) .observe(this.validator); observableValidationValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { onValidationChange((ValidationResult) event.diff.getNewValue()); } }); }
From source file:eu.numberfour.n4js.ui.wizard.workspace.WorkspaceWizardPage.java
License:Open Source License
private void setupBindings(WorkspaceWizardPageForm wizardForm) { databindingContext = new DataBindingContext(); WorkspaceWizardModelValidator<M> validator = getValidator(); // Project property binding IObservableValue projectModelValue = BeanProperties .value(WorkspaceWizardModel.class, WorkspaceWizardModel.PROJECT_PROPERTY).observe(model); IObservableValue projectUI = WidgetProperties.text(SWT.Modify).observe(wizardForm.getProjectText()); // Note: No model to UI conversation here as IPath is castable to String (default behavior) databindingContext.bindValue(projectUI, projectModelValue, new StringToPathConverter().updatingValueStrategy(), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); // Source folder property binding IObservableValue sourceFolderModelValue = BeanProperties .value(WorkspaceWizardModel.class, WorkspaceWizardModel.SOURCE_FOLDER_PROPERTY).observe(model); IObservableValue sourceFolderUI = WidgetProperties.text(SWT.Modify) .observe(wizardForm.getSourceFolderText()); // Note: No model to UI conversation (see above) databindingContext.bindValue(sourceFolderUI, sourceFolderModelValue, new StringToPathConverter().updatingValueStrategy(), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); IObservableValue projectValidModelValue = BeanProperties .value(WorkspaceWizardModelValidator.class, WorkspaceWizardModelValidator.PROJECT_PROPERTY_VALID) .observe(validator);// www . j a va 2s. co m IObservableValue sourceFolderBrowseEnabled = WidgetProperties.enabled() .observe(wizardForm.getSourceFolderBrowseButton()); databindingContext.bindValue(sourceFolderBrowseEnabled, projectValidModelValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); // Module specifier property binding IObservableValue moduleSpecifierModelValue = BeanProperties .value(WorkspaceWizardModel.class, WorkspaceWizardModel.MODULE_SPECIFIER_PROPERTY).observe(model); IObservableValue moduleSpecifierUI = BeanProperties.value(SuffixText.class, SuffixText.TEXT_PROPERTY) .observe(wizardForm.getModuleSpecifierText()); databindingContext.bindValue(moduleSpecifierUI, moduleSpecifierModelValue); // Conditional activation of the browse buttons according to the precedent input fields validity IObservableValue moduleSpecifierBrowseEnabled = WidgetProperties.enabled() .observe(wizardForm.getModuleSpecifierBrowseButton()); IObservableValue sourceFolderValidValue = BeanProperties.value(WorkspaceWizardModelValidator.class, WorkspaceWizardModelValidator.SOURCE_FOLDER_PROPERTY_VALID).observe(validator); IObservableValue projectValidValue = BeanProperties .value(WorkspaceWizardModelValidator.class, WorkspaceWizardModelValidator.PROJECT_PROPERTY_VALID) .observe(validator); ConditionalConverter moduleSpecifierBrowseableConverter = new ConditionalConverter() { @Override public boolean validate(Object object) { return validator.getSourceFolderValid() && validator.getProjectValid(); } }; // Bind model changes of project or source folder property to the enabled state of the module specifier browse // button. databindingContext.bindValue(moduleSpecifierBrowseEnabled, projectValidValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), moduleSpecifierBrowseableConverter.updatingValueStrategy()); databindingContext.bindValue(moduleSpecifierBrowseEnabled, sourceFolderValidValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), moduleSpecifierBrowseableConverter.updatingValueStrategy()); }
From source file:gov.redhawk.datalist.ui.views.OptionsComposite.java
License:Open Source License
public void createControl(Composite main) { final Composite parent = new Composite(main, SWT.None); parent.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); parent.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create()); final ComboViewer captureCombo = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER); captureCombo.setContentProvider(new ArrayContentProvider()); captureCombo.setLabelProvider(new LabelProvider()); captureCombo.setInput(new Object[] { CaptureMethod.NUMBER, CaptureMethod.INDEFINITELY }); ctx.bindValue(ViewerProperties.singleSelection().observe(captureCombo), BeanProperties.value("processType").observe(settings)); samplesTxt = new Text(parent, SWT.BORDER); samplesTxt.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); ctx.bindValue(WidgetProperties.enabled().observe(samplesTxt), BeanProperties.value("processType").observe(settings), new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy().setConverter(new Converter(CaptureMethod.class, Boolean.class) { @Override/*from ww w . j a v a2 s.co m*/ public Object convert(Object fromObject) { if (fromObject == CaptureMethod.INDEFINITELY) { return false; } return true; } })); Binding binding = ctx.bindValue(WidgetProperties.text(SWT.Modify).observe(samplesTxt), BeanProperties.value("samples").observe(settings), new UpdateValueStrategy().setBeforeSetValidator(new IValidator() { @Override public IStatus validate(Object obj) { Double value = (Double) obj; if (Double.valueOf(value) <= 0) { return ValidationStatus.error(settings.getProcessType() + " must be greater than 0."); } if (value > Integer.MAX_VALUE) { return ValidationStatus.error(settings.getProcessType() + " must be less than or equal to " + Integer.MAX_VALUE + "."); } if ((value - value.intValue()) > 0) { return ValidationStatus .error(settings.getProcessType() + " must be a positive integer."); } if (value > 1000000) { return ValidationStatus.warning("For this sample size, you may run out of heap space."); } return ValidationStatus.ok(); } }), null); ControlDecorationSupport.create(binding, SWT.TOP | SWT.LEFT); final IObservableValue running = BeanProperties.value("running").observe(state); final IObservableValue pType = BeanProperties.value("processType").observe(settings); ComputedValue enabledSamples = new ComputedValue(Boolean.class) { @Override protected Object calculate() { return !(Boolean) running.getValue() && pType.getValue() != CaptureMethod.INDEFINITELY; } }; ctx.bindValue(WidgetProperties.enabled().observe(samplesTxt), enabledSamples, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null); final Label unitsLabel = new Label(parent, SWT.None); unitsLabel.setText(""); GridData unitsLayout = new GridData(); unitsLayout.widthHint = 20; unitsLabel.setLayoutData(unitsLayout); settings.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if ("processType".equals(evt.getPropertyName())) { CaptureMethod method = (CaptureMethod) evt.getNewValue(); if (method == CaptureMethod.INDEFINITELY) { settings.setSamples(1); unitsLabel.setText(""); } else { if (method == CaptureMethod.CLOCK_TIME || method == CaptureMethod.SAMPLE_TIME) { unitsLabel.setText("(s)"); } else { unitsLabel.setText(""); } settings.setSamples(1024); } } } }); Label label = new Label(parent, SWT.None); label.setText("Number of Dimensions:"); Combo columnsCombo = new Combo(parent, SWT.BORDER | SWT.SINGLE | SWT.DROP_DOWN); columnsCombo.setText(REAL); columnsCombo.add(REAL, 0); columnsCombo.add(COMPLEX, 1); columnsCombo.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); ctx.bindValue(WidgetProperties.enabled().observe(columnsCombo), BeanProperties.value("running").observe(state), new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy().setConverter(new Converter(Boolean.class, Boolean.class) { @Override public Boolean convert(Object fromObject) { return !((Boolean) fromObject); } })); binding = ctx.bindValue(WidgetProperties.selection().observe(columnsCombo), BeanProperties.value("dimensions").observe(settings), new UpdateValueStrategy().setAfterGetValidator(new IValidator() { @Override public IStatus validate(Object value) { if (REAL.equalsIgnoreCase((String) value)) { return ValidationStatus.ok(); } else if (COMPLEX.equalsIgnoreCase((String) value)) { return ValidationStatus.ok(); } else { try { Integer intValue = Integer.valueOf((String) value); if (intValue > 0) { return ValidationStatus.ok(); } } catch (NumberFormatException e) { // PASS } } return ValidationStatus .error("Please enter a positive integer or choose one of the options below."); } }).setConverter(new Converter(String.class, Integer.class) { @Override public Object convert(Object fromObject) { if (REAL.equalsIgnoreCase((String) fromObject)) { return 1; } else if (COMPLEX.equalsIgnoreCase((String) fromObject)) { return 2; } else { return Integer.valueOf((String) fromObject); } } }), null); ControlDecorationSupport.create(binding, SWT.TOP | SWT.LEFT); button = new Button(parent, SWT.None); button.setLayoutData(GridDataFactory.fillDefaults().create()); button.setImage(resources.get("icons/start.gif")); button.setToolTipText("Start Acquire"); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { if (state.isRunning) { stopAcquire(); } else { startAcquire(); } } }); ctx.bindValue(WidgetProperties.enabled().observe(button), new AggregateValidationStatus(ctx, AggregateValidationStatus.MAX_SEVERITY), new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy().setConverter(new Converter(IStatus.class, Boolean.class) { @Override public Object convert(Object fromObject) { return ((IStatus) fromObject).getSeverity() != IStatus.ERROR; } })); }
From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java
License:Open Source License
private Composite createAnalogIn(Composite parent) { Composite analogIn = new Composite(parent, SWT.SHADOW_NONE); analogIn.setLayout(new GridLayout(2, false)); Label numAnalogLabel = new Label(analogIn, SWT.None); numAnalogLabel.setText("Number of Analog input ports: "); Spinner numAnalogSpinner = new Spinner(analogIn, SWT.BORDER); numAnalogSpinner.setMinimum(1);/* w w w.jav a 2s . c o m*/ GC gc = new GC(numAnalogSpinner); try { Point size = gc.textExtent("XXX"); numAnalogSpinner.setLayoutData(GridDataFactory.fillDefaults().hint(size.x, SWT.DEFAULT).create()); } finally { gc.dispose(); } UpdateValueStrategy uvs = booleanConverter(); ctx.bindValue(WidgetProperties.selection().observe(numAnalogSpinner), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__NUMBER_OF_ANALOG_INPUTS)); ctx.bindValue(WidgetProperties.enabled().observe(numAnalogSpinner), EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT), uvs, uvs); return analogIn; }
From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java
License:Open Source License
private Composite createDigitalIn(Composite parent) { Composite digitalIn = new Composite(parent, SWT.SHADOW_NONE); digitalIn.setLayout(new GridLayout(2, false)); Label digitalInputTypeLabel = new Label(digitalIn, SWT.None); digitalInputTypeLabel.setText("Digital Input Type: "); ComboViewer digitalInputCombo = new ComboViewer(digitalIn, SWT.READ_ONLY); digitalInputCombo.setContentProvider(new ArrayContentProvider()); digitalInputCombo.setLabelProvider(definitionComboViewerLabelProvider); digitalInputCombo.setInput(propertyTypes); ctx.bindValue(ViewersObservables.observeSingleSelection(digitalInputCombo), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__DIGITAL_INPUT_TYPE)); ctx.bindValue(WidgetProperties.enabled().observe(digitalInputCombo.getCombo()), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT)); return digitalIn; }
From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java
License:Open Source License
private void createOutputControl(Group parent) { Composite outputContainer = new Composite(parent, SWT.None); outputContainer.setLayout(new GridLayout(1, false)); outputContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); Button analogOutputButton = new Button(outputContainer, SWT.RADIO); analogOutputButton.setText("Analog Output"); analogOutputButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false, 2, 1)); UpdateValueStrategy uvs = booleanConverter(); ctx.bindValue(WidgetProperties.enabled().observe(analogOutputButton), EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT), uvs, uvs);//from w w w .java2 s . c om ctx.bindValue(WidgetProperties.selection().observe(analogOutputButton), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_OUTPUT), uvs, uvs); Button digitalOutputButton = new Button(outputContainer, SWT.RADIO); digitalOutputButton.setText("Digital Output (default)"); digitalOutputButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false, 2, 1)); createDigitalOut(outputContainer); ctx.bindValue(WidgetProperties.selection().observe(digitalOutputButton), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_OUTPUT)); }
From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java
License:Open Source License
private Composite createDigitalOut(Composite parent) { Composite digitalOut = new Composite(parent, SWT.SHADOW_NONE); digitalOut.setLayout(new GridLayout(2, false)); digitalOut.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(30, 0) .align(SWT.CENTER, SWT.CENTER).create()); Label digitalOutputTypeLabel = new Label(digitalOut, SWT.None); digitalOutputTypeLabel.setText("Digital Output Type: "); ComboViewer digitalOutputCombo = new ComboViewer(digitalOut, SWT.READ_ONLY); digitalOutputCombo.setContentProvider(new ArrayContentProvider()); digitalOutputCombo.setLabelProvider(definitionComboViewerLabelProvider); digitalOutputCombo.setInput(propertyTypes); ctx.bindValue(ViewersObservables.observeSingleSelection(digitalOutputCombo), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__DIGITAL_OUTPUT_TYPE)); ctx.bindValue(WidgetProperties.enabled().observe(digitalOutputCombo.getCombo()), EMFObservables .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_OUTPUT)); Button multiOutCheck = new Button(digitalOut, SWT.CHECK); multiOutCheck.setText("Multi-out"); ctx.bindValue(WidgetProperties.selection().observe(multiOutCheck), EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__MULTI_OUT)); ctx.bindValue(WidgetProperties.enabled().observe(multiOutCheck), EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_OUTPUT)); return digitalOut; }