Example usage for org.eclipse.jface.databinding.swt WidgetProperties selection

List of usage examples for org.eclipse.jface.databinding.swt WidgetProperties selection

Introduction

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

Prototype

public static IWidgetValueProperty selection() 

Source Link

Document

Returns a value property for observing the selection state of a Button , CCombo , Combo , DateTime , List , MenuItem (since 1.5), Scale , Slider (since 1.5) or Spinner .

Usage

From source file:gov.redhawk.frontend.ui.wizard.TunerAllocationWizardPage.java

License:Open Source License

private void addBindings() {

    // Tuner Type combo
    UpdateValueStrategy tunerTypeStrategy = new UpdateValueStrategy();
    tunerTypeStrategy.setAfterGetValidator(new TargetableValidator(typeCombo.getControl()));
    ControlDecorationSupport.create(context.bindValue(ViewerProperties.singleSelection().observe(typeCombo),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.TUNER_TYPE.getId())),
            tunerTypeStrategy, null), SWT.TOP | SWT.LEFT);
    typeCombo.addSelectionChangedListener(tunerTypeListener);
    typeCombo.setInput(FrontEndUIActivator.SUPPORTED_TUNER_TYPES.toArray(new String[0]));
    if (tuner.getTunerType() != null) {
        typeCombo.setSelection(new StructuredSelection(tuner.getTunerType()));
    } else {//from  w  w w.j  av  a 2s  . c om
        typeCombo.setSelection(new StructuredSelection(FRONTEND.TUNER_TYPE_RX_DIGITIZER.value));
    }

    // allocation ID Text
    UpdateValueStrategy allocIdStrategy = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return value;
        }
    };
    allocIdStrategy.setAfterGetValidator(new TargetableValidator(allocIdText));

    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(allocIdText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.ALLOCATION_ID.getId())),
            allocIdStrategy, null), SWT.TOP | SWT.LEFT);
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(allocIdText),
            SCAObservables.observeSimpleProperty(listenerAllocationStruct
                    .getSimple(ListenerAllocationProperties.LISTENER_ALLOCATION_ID.getId())),
            allocIdStrategy, null), SWT.TOP | SWT.LEFT);
    allocIdText.setText(getUsername() + ":" + uuid.toString());
    allocIdText.setBackground(allocIdText.getDisplay().getSystemColor(SWT.COLOR_CYAN));
    allocIdText.addFocusListener(new TargetableFocusListener(allocIdText));

    // Existing allocation ID Text
    UpdateValueStrategy existingAllocIdStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return value;
        }
    };
    UpdateValueStrategy existingAllocIdStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return value;
        }
    };
    existingAllocIdStrategy1.setAfterGetValidator(new TargetableValidator(targetAllocText));
    existingAllocIdStrategy2.setAfterGetValidator(new TargetableValidator(targetAllocText));

    ControlDecorationSupport
            .create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(targetAllocText),
                    SCAObservables.observeSimpleProperty(listenerAllocationStruct
                            .getSimple(ListenerAllocationProperties.EXISTING_ALLOCATION_ID.getId())),
                    existingAllocIdStrategy1, existingAllocIdStrategy2), SWT.TOP | SWT.LEFT);
    targetAllocText.addFocusListener(new TargetableFocusListener(targetAllocText));
    targetAllocText.addModifyListener(allocIdListener);

    // CF Text
    UpdateValueStrategy cfStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            try {
                Double.parseDouble((String) value);
            } catch (NumberFormatException e) {
                return null;
            }
            return Double.valueOf((String) value)
                    * getUnitsConversionFactor(TunerAllocationProperties.CENTER_FREQUENCY);
        }
    };
    UpdateValueStrategy cfStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Double) {
                if (((Double) value).doubleValue() == 0.) {
                    return "";
                }
                double retVal = (Double) value
                        / getUnitsConversionFactor(TunerAllocationProperties.CENTER_FREQUENCY);
                return String.valueOf(nf.format(retVal));
            }
            return null;
        }
    };
    cfStrategy1.setAfterGetValidator(new TargetableValidator(cfText));
    cfStrategy2.setAfterConvertValidator(new TargetableValidator(cfText));
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(cfText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.CENTER_FREQUENCY.getId())),
            cfStrategy1, cfStrategy2), SWT.TOP | SWT.LEFT);
    cfText.addFocusListener(new TargetableFocusListener(cfText));

    // BW Text
    UpdateValueStrategy bwStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            try {
                Double.parseDouble((String) value);
            } catch (NumberFormatException e) {
                return null;
            }
            return Double.valueOf((String) value)
                    * getUnitsConversionFactor(TunerAllocationProperties.BANDWIDTH);
        }
    };
    UpdateValueStrategy bwStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Double) {
                if (((Double) value).intValue() == 0) {
                    return "";
                }
                double retVal = (Double) value / getUnitsConversionFactor(TunerAllocationProperties.BANDWIDTH);
                return String.valueOf(nf.format(retVal));
            }
            return null;
        }
    };
    bwStrategy1.setAfterGetValidator(new TargetableValidator(bwText));
    bwStrategy2.setAfterConvertValidator(new TargetableValidator(bwText));
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(bwText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.BANDWIDTH.getId())),
            bwStrategy1, bwStrategy2), SWT.TOP | SWT.LEFT);
    bwText.addFocusListener(new TargetableFocusListener(bwText));

    // SR Text
    UpdateValueStrategy srStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            try {
                Double.parseDouble((String) value);
            } catch (NumberFormatException e) {
                return null;
            }
            return Double.valueOf((String) value)
                    * getUnitsConversionFactor(TunerAllocationProperties.SAMPLE_RATE);
        }
    };
    UpdateValueStrategy srStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Double) {
                if (((Double) value).intValue() == 0) {
                    return "";
                }
                double retVal = (Double) value
                        / getUnitsConversionFactor(TunerAllocationProperties.SAMPLE_RATE);
                return String.valueOf(nf.format(retVal));
            }
            return null;
        }
    };
    srStrategy1.setAfterGetValidator(new TargetableValidator(srText));
    srStrategy2.setAfterConvertValidator(new TargetableValidator(srText));
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(srText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.SAMPLE_RATE.getId())),
            srStrategy1, srStrategy2), SWT.TOP | SWT.LEFT);
    srText.addFocusListener(new TargetableFocusListener(srText));

    // BW Tolerance Text
    UpdateValueStrategy bwTolStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            try {
                Double.parseDouble((String) value);
            } catch (NumberFormatException e) {
                return null;
            }
            return Double.valueOf((String) value);
        }
    };
    UpdateValueStrategy bwTolStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Double) {
                if (((Double) value).doubleValue() == 0.) {
                    return "";
                }
                double retVal = (Double) value;
                return String.valueOf(nf.format(retVal));
            }
            return null;
        }
    };
    bwTolStrategy1.setAfterGetValidator(new TargetableValidator(bwTolText));
    bwTolStrategy2.setAfterGetValidator(new TargetableValidator(bwTolText));
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(bwTolText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.BANDWIDTH_TOLERANCE.getId())),
            bwTolStrategy1, bwTolStrategy2), SWT.TOP | SWT.LEFT);
    bwTolText.setText("20");
    bwTolText.addFocusListener(new TargetableFocusListener(bwTolText));

    // SR Tolerance Text
    UpdateValueStrategy srTolStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            try {
                Double.parseDouble((String) value);
            } catch (NumberFormatException e) {
                return null;
            }
            return Double.valueOf((String) value);
        }
    };
    UpdateValueStrategy srTolStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Double) {
                if (((Double) value).doubleValue() == 0.) {
                    return "";
                }
                double retVal = (Double) value;
                return String.valueOf(nf.format(retVal));
            }
            return null;
        }
    };
    srTolStrategy1.setAfterGetValidator(new TargetableValidator(srTolText));
    srTolStrategy2.setAfterGetValidator(new TargetableValidator(srTolText));
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(srTolText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.SAMPLE_RATE_TOLERANCE.getId())),
            srTolStrategy1, srTolStrategy2), SWT.TOP | SWT.LEFT);
    srTolText.setText("20");
    srTolText.addFocusListener(new TargetableFocusListener(srTolText));

    // Listener Allocation Check Box
    UpdateValueStrategy listenerAllocStrategy1 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            // If selected, set device control to false
            if (value instanceof Boolean) {
                Boolean selected = (Boolean) value;
                return new Boolean(!selected);
            }
            return new Boolean(true);
        }
    };
    UpdateValueStrategy listenerAllocStrategy2 = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            // If selected, set device control to false
            if (value instanceof Boolean) {
                Boolean selected = (Boolean) value;
                return new Boolean(!selected);
            }
            return null;
        }
    };
    context.bindValue(WidgetProperties.selection().observe(listenerAlloc),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.DEVICE_CONTROL.getId())),
            listenerAllocStrategy1, listenerAllocStrategy2);

    // RF FLow ID Text
    ControlDecorationSupport.create(context.bindValue(WidgetProperties.text(SWT.Modify).observe(rfFlowIdText),
            SCAObservables.observeSimpleProperty(
                    tunerAllocationStruct.getSimple(TunerAllocationProperties.RF_FLOW_ID.getId())),
            null, null), SWT.TOP | SWT.LEFT);
}

From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java

License:Open Source License

private void createInputControl(Group parent) {
    Composite inputContainer = new Composite(parent, SWT.None);
    inputContainer.setLayout(new GridLayout(1, false));
    inputContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    GridData layoutData = GridDataFactory.fillDefaults().grab(true, false).indent(30, 0)
            .align(SWT.LEFT, SWT.CENTER).create();

    Button analogInputButton = new Button(inputContainer, SWT.RADIO);
    analogInputButton.setText("Analog Input (default)");
    analogInputButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false, 2, 1));
    createAnalogIn(inputContainer).setLayoutData(layoutData);
    UpdateValueStrategy uvs = booleanConverter();
    ctx.bindValue(WidgetProperties.selection().observe(analogInputButton),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT),
            uvs, uvs);/*w  w  w. ja v a2 s  .c  om*/

    Button digitalInputButton = new Button(inputContainer, SWT.RADIO);
    digitalInputButton.setText("Digital Input");
    digitalInputButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false, 2, 1));
    createDigitalIn(inputContainer).setLayoutData(layoutData);
    ctx.bindValue(WidgetProperties.selection().observe(digitalInputButton), EMFObservables
            .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT));

    digitalInputButton.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            feiDevice.setHasDigitalOutput(true);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });
}

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);//from   w w w .ja v  a2  s  .  c  om
    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 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 ww  .ja  v a  2 s.  co m*/
    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;
}

From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java

License:Open Source License

private void createTransmitterGroup(Composite client) {
    Group transmitterGroup = new Group(client, SWT.SHADOW_ETCHED_IN);
    transmitterGroup.setText("Transmitter Properties");
    transmitterGroup.setLayout(new GridLayout(4, false));
    transmitterGroup.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    Label numDigitalInLabel = new Label(transmitterGroup, SWT.None);
    numDigitalInLabel.setText("Number of Digital input ports: ");

    Spinner numDigitalSpinner = new Spinner(transmitterGroup, SWT.BORDER);
    GC gc = new GC(numDigitalSpinner);
    try {/* w w  w. ja v  a2  s .com*/
        Point size = gc.textExtent("XXX");
        numDigitalSpinner.setLayoutData(GridDataFactory.fillDefaults().hint(size.x, SWT.DEFAULT).create());
    } finally {
        gc.dispose();
    }
    numDigitalSpinner.setMinimum(1);
    ctx.bindValue(WidgetProperties.selection().observe(numDigitalSpinner), EMFObservables.observeValue(
            this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__NUMBER_OF_DIGITAL_INPUTS_FOR_TX));

    Label digitalInputTypeLabel = new Label(transmitterGroup, SWT.None);
    digitalInputTypeLabel.setText("Digital Input Type: ");
    digitalInputTypeLabel
            .setLayoutData(GridDataFactory.fillDefaults().indent(50, 0).align(SWT.CENTER, SWT.CENTER).create());

    ComboViewer digitalInputCombo = new ComboViewer(transmitterGroup, 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_FOR_TX));
}

From source file:gov.redhawk.ide.dcd.ui.wizard.ScaDeviceProjectPropertiesWizardPage.java

License:Open Source License

/**
 * {@inheritDoc}//w w w  .jav a2s  .c om
 */
@Override
public void customCreateControl(final Composite parent) {
    if (this.showDeviceGroup) {
        // Device Group
        deviceGroup = new Group(parent, SWT.NONE);
        deviceGroup.setText(getResourceType());
        deviceGroup.setLayout(new GridLayout(2, false));
        GridDataFactory.generate(deviceGroup, 2, 1);

        deviceTypeCombo = new Combo(deviceGroup, SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY);
        deviceTypeCombo.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
        deviceTypeCombo.setItems(RedhawkIdePreferenceConstants.DEVICE_TYPES);
        deviceTypeCombo.select(0);

        aggregateButton = new Button(deviceGroup, SWT.CHECK);
        aggregateButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(1, 1).create());
        aggregateButton.setText(RedhawkIdePreferenceConstants.AGGREGATE_DEVICE + " device");

        context.bindValue(WidgetProperties.text().observe(deviceTypeCombo),
                PojoProperties.value("deviceType").observe(this.deviceProjSettings));
        context.bindValue(WidgetProperties.selection().observe(aggregateButton),
                PojoProperties.value("aggregate").observe(this.deviceProjSettings));
        deviceTypeCombo.addDisposeListener(new DisposeListener() {

            @Override
            public void widgetDisposed(DisposeEvent e) {
                if (context != null) {
                    context.dispose();
                    context = null;
                }
            }
        });
    }
}

From source file:gov.redhawk.ide.octave.ui.wizard.MFileSelectionWizardPage.java

License:Open Source License

private void bindValues() {
    // create new Context
    DataBindingContext ctx = new DataBindingContext();

    // Defining the Model objects as Beans
    IObservableValue primaryMFileModel = BeanProperties.value("primaryMFile").observe(this.octaveProjProps);
    IObservableValue currentDepFileModel = BeanProperties.value("currentDepFile").observe(this.octaveProjProps);
    IObservableValue hasDepsModel = BeanProperties.value("hasDeps").observe(this.octaveProjProps);

    // Defining the Target objects
    IObservableValue primaryMFileTarget = WidgetProperties.text(SWT.Modify).observe(this.primaryMFileTextBox);
    IObservableValue currentDepFileTarget = WidgetProperties.text(SWT.Modify).observe(this.dependencyTextBox);
    IObservableValue hasDepsTarget = WidgetProperties.selection().observe(this.dependencyCheckBox);

    // The target objects that need to be disabled when the hasDeps model object changes.
    IObservableValue depsTextBoxTarget = WidgetProperties.enabled().observe(this.dependencyTextBox);
    IObservableValue depsAddButtonTarget = WidgetProperties.enabled().observe(this.depsAddButton);
    IObservableValue depsBrowseButtonTarget = WidgetProperties.enabled().observe(this.depsBrowseButton);
    IObservableValue depsRemoveButtonTarget = WidgetProperties.enabled().observe(this.depsRemoveButton);
    IObservableValue depsListViewerTarget = WidgetProperties.enabled()
            .observe(this.depsListViewer.getControl());

    // Define my strategy for the Primary & Deps M-File bindings.
    UpdateValueStrategy primaryMFileUpdateStrat = new UpdateValueStrategy();
    primaryMFileUpdateStrat.setConverter(getStringToFileConverter());
    primaryMFileUpdateStrat.setAfterConvertValidator(getPrimaryMFileNameValidator());

    UpdateValueStrategy depsMFileUpdateStrat = new UpdateValueStrategy();
    depsMFileUpdateStrat.setConverter(getStringToFileConverter());
    depsMFileUpdateStrat.setAfterConvertValidator(getDepMFileNameValidator());

    // connect them
    primaryMFileBindValue = ctx.bindValue(primaryMFileTarget, primaryMFileModel, primaryMFileUpdateStrat, null);
    currentDepBindValue = ctx.bindValue(currentDepFileTarget, currentDepFileModel, depsMFileUpdateStrat, null);
    ctx.bindValue(hasDepsTarget, hasDepsModel);

    // The bindings for the disabling of the controls
    ctx.bindValue(depsTextBoxTarget, hasDepsModel, null, new UpdateValueStrategy());
    ctx.bindValue(depsAddButtonTarget, hasDepsModel, null, new UpdateValueStrategy());
    ctx.bindValue(depsBrowseButtonTarget, hasDepsModel, null, new UpdateValueStrategy());
    ctx.bindValue(depsRemoveButtonTarget, hasDepsModel, null, new UpdateValueStrategy());
    ctx.bindValue(depsListViewerTarget, hasDepsModel, null, new UpdateValueStrategy());

    // add cool control decoration
    ControlDecorationSupport.create(primaryMFileBindValue, SWT.TOP | SWT.LEFT);
    ControlDecorationSupport.create(currentDepBindValue, SWT.TOP | SWT.LEFT);

    WizardPageSupport.create(this, ctx);
}

From source file:gov.redhawk.ide.snapshot.ui.SnapshotWizardPage.java

License:Open Source License

protected void createOutputControls(final Composite parent) {
    Label label;/*from ww w . j  a  va 2  s.  co  m*/
    // Add Label and combo box to select file type
    label = new Label(parent, SWT.None);
    label.setText("File Type:");
    ComboViewer fileTypeCombo = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.SIMPLE);
    fileTypeCombo.getControl()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
    fileTypeCombo.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((IDataWriterDesc) element).getName();
        }
    });
    fileTypeCombo.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances
    IDataWriterDesc[] input = SnapshotActivator.getDataReceiverRegistry().getRecieverDescs();
    fileTypeCombo.setInput(input);
    fileTypeCombo.setSorter(new ViewerSorter()); // sort combo items alphabetically (this selects last item?)
    context.bindValue(ViewerProperties.singleSelection().observe(fileTypeCombo),
            BeansObservables.observeValue(settings, "dataWriter"));
    if (input.length > 0) {
        fileTypeCombo.setSelection(new StructuredSelection(fileTypeCombo.getElementAt(0))); // select first sorted element
    }

    // add check box to see if the user wants to save to their workspace
    workspaceCheck = new Button(parent, SWT.CHECK);
    workspaceCheck.setText("Save to Workspace");

    // add check box to see if user wants to confirm overwrite of existing file(s)
    final Button confirmOverwrite = new Button(parent, SWT.CHECK);
    confirmOverwrite.setText("Confirm overwrite");
    context.bindValue(WidgetProperties.selection().observe(confirmOverwrite),
            BeansObservables.observeValue(settings, "confirmOverwrite"));

    // region to hold the different pages for saving to the workspace or the file system
    fileFinder = new Group(parent, SWT.SHADOW_ETCHED_IN);
    fileFinder.setText("Save to");
    fileFinder.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).span(3, 2).create());
    fileFinderLayout = new StackLayout();
    fileFinderLayout.marginHeight = 5;
    fileFinderLayout.marginWidth = 5;
    fileFinder.setLayout(fileFinderLayout);

    // the different pages: search file system, search workspace
    searchFileSystem = makeFileSystemSave(fileFinder);
    searchFileSystem.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).span(3, 2).create());
    searchWorkbench = makeWorkbenchTree(fileFinder);
    searchWorkbench.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).span(3, 2).create());

    // This binding must be defined after all controls have been configured, because its update strategy
    // implementation calls setSaveLocation(), which depends on the controls being already configured
    context.bindValue(WidgetProperties.selection().observe(workspaceCheck),
            BeansObservables.observeValue(settings, "saveToWorkspace"), createWsCheckUpdateStrategy(),
            createWsCheckUpdateStrategy());

    restoreWidgetValues(settings);

    // determining which page starts on top
    setSaveLocationComposite(workspaceCheck.getSelection(), true);

    // switching pages
    workspaceCheck.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setSaveLocationComposite(workspaceCheck.getSelection(), true);
        }
    });

}

From source file:gov.redhawk.internal.ui.port.nxmplot.handlers.PlotWizardPage.java

License:Open Source License

@Override
public void createControl(Composite root) {
    Composite parent = new Composite(root, SWT.None);
    parent.setLayout(new GridLayout(2, false));

    Label label;/*from  w w  w .  j  av a 2s.c om*/
    Group group;

    // == PLOT Block settings (e.g. plot type, plot mode, frame size, etc.) ==
    group = new Group(parent, SWT.None);
    group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
    group.setText("PLOT");
    label = new Label(group, SWT.None);
    label.setText("&Type:");
    ComboViewer viewer = new ComboViewer(group, SWT.READ_ONLY);
    viewer.setLabelProvider(new LabelProvider());
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setInput(PlotType.getStandardPlotTypes());
    viewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    if (plotSettings.getPlotType() == null) {
        plotSettings.setPlotType(PlotType.LINE);
    }
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(viewer),
            PojoProperties.value("plotType").observe(plotSettings));

    label = new Label(group, SWT.None);
    label.setText("&Mode:");
    viewer = new ComboViewer(group, SWT.READ_ONLY);
    viewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((PlotMode) element).getLabel();
        }
    });
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setInput(PlotMode.getStandardModes());
    viewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(viewer),
            PojoProperties.value("plotMode").observe(plotSettings));

    new PlotNxmBlockControls(plotBlockSettings, dataBindingContext).createControls(group);

    // === BULKIO settings ===
    if (bulkIOBlockSettings != null) {
        group = new Group(parent, SWT.None);
        group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
        group.setText("BULKIO");
        new BulkIONxmBlockControls(bulkIOBlockSettings, dataBindingContext).createControls(group);
    }

    // == BULKIO SDDS settings ===
    if (sddsBlockSettings != null) {
        group = new Group(parent, SWT.None);
        group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
        group.setText("BULKIO SDDS");
        new SddsNxmBlockControls(sddsBlockSettings, dataBindingContext).createControls(group);
    }

    // == FFT settings ==

    final Group fftGroup = new Group(parent, SWT.None);

    final Button button = new Button(fftGroup, SWT.CHECK);
    button.setText("Take &FFT");
    button.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
    dataBindingContext.bindValue(WidgetProperties.selection().observe(button),
            PojoProperties.value("fft").observe(this));
    fftGroup.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
    fftGroup.setText("FFT");

    final List<Control> skip = Arrays.asList(fftGroup, button);

    new FftNxmBlockControls(fftBlockSettings, dataBindingContext).createControls(fftGroup);
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            setFftEnabled(fftGroup, button.getSelection(), skip);
        }
    });
    setFftEnabled(fftGroup, button.getSelection(), skip);

    WizardPageSupport.create(this, dataBindingContext);

    setControl(parent);
}