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

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

Introduction

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

Prototype

@Deprecated
public static ISWTObservableValue observeSelection(Control control) 

Source Link

Document

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

Usage

From source file:EditWidgetFactoryWidgetDeclarationTemplate.java

License:Open Source License

public ElementPickerCombo createElementCombo(Composite parent, ElementPickerComboParameter params) {
    ElementPickerCombo elementCombo = new ElementPickerCombo(parent, SWT.NONE, params.getContentProvider(),
            params.getTableLabelProvider(), "", false);
    DataBindingContext bindingContext = new DataBindingContext();
    IObservableValue uiElement;//from  ww  w  .  j ava 2 s  .  c om
    IObservableValue modelElement;
    uiElement = SWTObservables.observeSelection(elementCombo.getCombo());
    modelElement = BeansObservables.observeValue(model, OBSERVE_VALUE);
    bindingContext.bindValue(uiElement, modelElement, null, null);
    elementCombo.addSelectionListener(new DatatypeComboHandler(model));
    return elementCombo;
}

From source file:au.gov.ansto.bragg.kowari.exp.command.AdvancedParameter.java

License:Open Source License

@Override
public void createParameterUI(final Composite parent, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    final Group parameterGroup = new Group(parent, SWT.NULL);
    //      toolkit.adapt(parameterGroup);
    //      parameterGroup.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
    parameterGroup.setBackground(parent.getBackground());
    parameterGroup.setText("Dimension-" + commandView.getCommand().indexOfParameter(this));

    //      GridLayoutFactory.swtDefaults().spacing(6, 0).numColumns(5).applyTo(parameterGroup);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(parameterGroup);

    //      Composite singleParameterComposite = toolkit.createComposite(parent);
    //      GridLayoutFactory.swtDefaults().margins(0, 0).spacing(6, 4).numColumns(5).applyTo(singleParameterComposite);
    if (parameters.size() == 0) {
        SingleADParameter parameter = new SingleADParameter(this);
        parameter.setScanVariable("sx");
        parameters.add(parameter);//from w ww .j av  a 2s. c om
    }
    for (SingleADParameter parameter : parameters) {
        parameter.createParameterUI(parameterGroup, commandView, toolkit);
    }

    final Text numberOfPointsText = toolkit.createText(parent, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 12)
            .hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT).applyTo(numberOfPointsText);
    addValidator(numberOfPointsText, ParameterValidator.integerValidator);

    final Button multiFileButton = toolkit.createButton(parent, "multiple_files", SWT.RADIO);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 12).hint(80, SWT.DEFAULT)
            .applyTo(multiFileButton);

    multiFileButton.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            firePropertyChange("multiple files", null, true);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent arg0) {
        }
    });

    Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
        public void run() {
            DataBindingContext bindingContext = new DataBindingContext();
            bindingContext.bindValue(SWTObservables.observeText(numberOfPointsText, SWT.Modify),
                    BeansObservables.observeValue(getInstance(), "numberOfPoints"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeSelection(multiFileButton),
                    BeansObservables.observeValue(getInstance(), "doCreateFile"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    final AbstractScanCommand command = commandView.getCommand();

    Button addButton = toolkit.createButton(parent, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 9).hint(24, 24).applyTo(addButton);
    try {
        addButton.setImage(SicsBatchUIUtils.getBatchEditorImage("ADD"));
    } catch (FileNotFoundException e2) {
        LoggerFactory.getLogger(this.getClass()).error("can not find ADD image", e2);
    }
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            addNewParameter(command);
            commandView.refreshParameterComposite();
            //            notifyPropertyChanged(newCommand, null);
        }
    });

    Button removeButton = toolkit.createButton(parent, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 9).hint(24, 24).applyTo(removeButton);
    try {
        removeButton.setImage(SicsBatchUIUtils.getBatchEditorImage("REMOVE"));
    } catch (FileNotFoundException e1) {
        LoggerFactory.getLogger(this.getClass()).error("can not find REMOVE image", e1);
    }
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeParameter(command);
            commandView.refreshParameterComposite();
        }
    });

    DragSource dragSource = new DragSource(parameterGroup, DND.DROP_MOVE);
    dragSource.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
    final AdvancedParameter parameter = this;
    dragSource.addDragListener(new DragSourceAdapter() {

        @Override
        public void dragFinished(DragSourceEvent event) {
            LocalSelectionTransfer.getTransfer().setSelection(null);
        }

        @Override
        public void dragSetData(DragSourceEvent event) {
            if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
                DndTransferData transferData = new DndTransferData();
                transferData.setParent(command);
                transferData.setChild(parameter);
                LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(transferData));
            }
        }
    });

    DropTarget dropTarget = new DropTarget(parameterGroup, DND.DROP_MOVE);
    final AdvancedParameter parentParameter = this;
    dropTarget.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
    dropTarget.addDropListener(new DropTargetAdapter() {
        @Override
        public void drop(DropTargetEvent event) {
            if (event.data instanceof StructuredSelection) {
                DndTransferData transferData = (DndTransferData) ((StructuredSelection) event.data)
                        .getFirstElement();
                Object parentData = transferData.getParent();
                Object child = transferData.getChild();
                if (parentData == parentParameter) {
                    Point relativePoint = parameterGroup.toControl(new Point(event.x, event.y));
                    int index = 0;
                    for (Control control : parameterGroup.getChildren()) {
                        if (control instanceof Combo) {
                            if (relativePoint.y < control.getBounds().y + control.getBounds().height) {
                                break;
                            }
                            index++;
                        }
                    }
                    if (child instanceof SingleADParameter) {
                        SingleADParameter parameter = (SingleADParameter) child;
                        int currentIndex = indexOfSingleADParameter(parameter);
                        if (currentIndex == index) {
                            return;
                        }
                        removeSigleParameter(parameter);
                        insertSigleADParameter(index, parameter);
                        commandView.refreshParameterComposite();
                    }
                } else if (parentData == command) {
                    Point relativePoint = parent.toControl(new Point(event.x, event.y));
                    int index = 0;
                    for (Control control : parent.getChildren()) {
                        if (control instanceof Group) {
                            if (relativePoint.y < (control.getBounds().y + control.getBounds().height)) {
                                break;
                            }
                            index++;
                        }
                    }
                    if (child instanceof AdvancedParameter) {
                        AdvancedParameter parameter = (AdvancedParameter) child;
                        int currentIndex = command.indexOfParameter(parameter);
                        if (currentIndex == index) {
                            return;
                        }
                        command.removeParameter(parameter);
                        command.insertParameter(index, parameter);
                        commandView.refreshParameterComposite();
                    }
                }
            }
        }
    });
}

From source file:au.gov.ansto.bragg.kowari.exp.command.SimpleNDParameter.java

License:Open Source License

@Override
public void createParameterUI(final Composite parent, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(6, 4).numColumns(9).applyTo(parent);
    //      GridLayoutFactory.swtDefaults().numColumns(6).applyTo(parent);
    Label dragLabel = toolkit.createLabel(parent, "\u2022");
    dragLabel.setCursor(parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
    final ComboViewer scanVariableCombo = new ComboViewer(parent, SWT.READ_ONLY);
    scanVariableCombo.setContentProvider(new ArrayContentProvider());
    scanVariableCombo.setLabelProvider(new LabelProvider());
    scanVariableCombo.setSorter(new ViewerSorter());
    scanVariableCombo.setInput(SicsBatchUIUtils.getSicsDrivableIds());
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).hint(WIDTH_COMBO, SWT.DEFAULT)
            .applyTo(scanVariableCombo.getCombo());
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(scanVariableCombo.getCombo());
    //      GridDataFactory.swtDefaults().hint(WIDTH_COMBO, SWT.DEFAULT).applyTo(scanVariableCombo.getCombo());
    addSelectionValidator(scanVariableCombo.getCombo(), ParameterValidator.notEmptyValidator);

    final Text startPositionText = toolkit.createText(parent, "");
    //      GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER, SWT.DEFAULT).applyTo(startPositionText);
    //      GridData data = new GridData();
    //      data.grabExcessHorizontalSpace = true;
    //      data.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
    //      data.heightHint = SWT.DEFAULT;
    //      startPositionText.setLayoutData(data);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(startPositionText);
    addValidator(startPositionText, ParameterValidator.floatValidator);

    final Text finishPositionText = toolkit.createText(parent, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(finishPositionText);
    addValidator(finishPositionText, ParameterValidator.floatValidator);

    final Text stepSizeBox = toolkit.createText(parent, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(stepSizeBox);//from   w w  w. j  a v a 2  s. com
    addValidator(stepSizeBox, ParameterValidator.floatValidator);

    final Text nostepsText = toolkit.createText(parent, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(nostepsText);
    addValidator(nostepsText, ParameterValidator.integerValidator);

    final Button multiFileButton = toolkit.createButton(parent, "multiple_files", SWT.RADIO);
    GridDataFactory.swtDefaults().hint(80, SWT.DEFAULT).applyTo(multiFileButton);

    multiFileButton.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            firePropertyChange("multiple files", null, true);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent arg0) {
        }
    });

    startPositionText.addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent arg0) {
        }

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.keyCode == SWT.KEYPAD_CR || arg0.keyCode == SWT.CR)
                finishPositionText.setFocus();
        }
    });

    finishPositionText.addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent arg0) {
        }

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.keyCode == SWT.KEYPAD_CR || arg0.keyCode == SWT.CR)
                stepSizeBox.setFocus();
        }
    });

    stepSizeBox.addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent arg0) {
        }

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.keyCode == SWT.KEYPAD_CR || arg0.keyCode == SWT.CR) {
                nostepsText.setFocus();
            }
        }
    });

    nostepsText.addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent arg0) {
        }

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.keyCode == SWT.KEYPAD_CR || arg0.keyCode == SWT.CR) {
                parent.setFocus();
                nostepsText.setFocus();
            }
        }
    });

    Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
        public void run() {
            DataBindingContext bindingContext = new DataBindingContext();
            bindingContext.bindValue(ViewersObservables.observeSingleSelection(scanVariableCombo),
                    BeansObservables.observeValue(getInstance(), "scanVariable"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(startPositionText, SWT.FocusOut),
                    BeansObservables.observeValue(getInstance(), "startPosition"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(finishPositionText, SWT.FocusOut),
                    BeansObservables.observeValue(getInstance(), "finishPosition"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(stepSizeBox, SWT.FocusOut),
                    BeansObservables.observeValue(getInstance(), "stepSize"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(nostepsText, SWT.FocusOut),
                    BeansObservables.observeValue(getInstance(), "numberOfPoints"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeSelection(multiFileButton),
                    BeansObservables.observeValue(getInstance(), "doCreateFile"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    final AbstractScanCommand command = commandView.getCommand();

    final Button addButton = toolkit.createButton(parent, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(18, 18).applyTo(addButton);
    try {
        addButton.setImage(SicsBatchUIUtils.getBatchEditorImage("ADD"));
    } catch (FileNotFoundException e2) {
        LoggerFactory.getLogger(this.getClass()).error("can not find ADD image", e2);
    }
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            addNewParameter(command);
            commandView.refreshParameterComposite();
            //            notifyPropertyChanged(newCommand, null);
        }
    });

    final Button removeButton = toolkit.createButton(parent, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(18, 18).applyTo(removeButton);
    try {
        removeButton.setImage(SicsBatchUIUtils.getBatchEditorImage("REMOVE"));
    } catch (FileNotFoundException e1) {
        LoggerFactory.getLogger(this.getClass()).error("can not find REMOVE image", e1);
    }
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeParameter(command);
            commandView.refreshParameterComposite();
        }
    });

    //      initDnD(command, this);
    //   }
    //
    //   private void initDnD(final AbstractScanCommand command, final AbstractScanParameter parameter) {
    int operations = DND.DROP_MOVE;
    DragSource dragSource = new DragSource(dragLabel, operations);

    LocalSelectionTransfer transferObject = LocalSelectionTransfer.getTransfer();

    Transfer[] types = new Transfer[] { transferObject };
    dragSource.setTransfer(types);
    final SimpleNDParameter child = this;
    dragSource.addDragListener(new DragSourceAdapter() {

        @Override
        public void dragFinished(DragSourceEvent event) {
            LocalSelectionTransfer.getTransfer().setSelection(null);
        }

        @Override
        public void dragSetData(DragSourceEvent event) {
            if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
                DndTransferData transferData = new DndTransferData();
                transferData.setParent(command);
                transferData.setChild(child);
                LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(transferData));
            }
        }
    });

}

From source file:au.gov.ansto.bragg.kowari.exp.command.TableScanParameter.java

License:Open Source License

@Override
public void createParameterUI(Composite parent, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    if (command.getNumberOfMotor() == 4) {
        final Label dragLabel = toolkit.createLabel(parent, "\u2022");
        dragLabel.setCursor(parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND));

        final Button selectBox = toolkit.createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 2).applyTo(selectBox);

        final Text sxText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(sxText);/*from   w  ww .  ja v a 2s.com*/
        addValidator(sxText, ParameterValidator.floatValidator);

        final Text syText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(syText);
        addValidator(syText, ParameterValidator.floatValidator);

        final Text szText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(szText);
        addValidator(szText, ParameterValidator.floatValidator);

        final Text somText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(somText);
        addValidator(somText, ParameterValidator.floatValidator);

        final Text timeText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(timeText);
        addValidator(timeText, ParameterValidator.floatValidator);

        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeSelection(selectBox),
                        BeansObservables.observeValue(getInstance(), "isSelected"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(sxText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sx"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(syText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sy"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(szText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sz"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(somText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "som"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(timeText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "time"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }
        });
    } else if (command.getNumberOfMotor() == 7) {
        final Label dragLabel = toolkit.createLabel(parent, "\u2022");
        dragLabel.setCursor(parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND));

        final Button selectBox = toolkit.createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 2).applyTo(selectBox);

        final Text sxText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(sxText);
        addValidator(sxText, ParameterValidator.floatValidator);

        final Text syText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(syText);
        addValidator(syText, ParameterValidator.floatValidator);

        final Text szText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(szText);
        addValidator(szText, ParameterValidator.floatValidator);

        final Text somText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(somText);
        addValidator(somText, ParameterValidator.floatValidator);

        final Text eomText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(eomText);
        addValidator(eomText, ParameterValidator.floatValidator);

        final Text echiText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(echiText);
        addValidator(echiText, ParameterValidator.floatValidator);

        final Text ephiText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(ephiText);
        addValidator(ephiText, ParameterValidator.floatValidator);

        final Text timeText = toolkit.createText(parent, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(timeText);
        addValidator(timeText, ParameterValidator.floatValidator);

        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeSelection(selectBox),
                        BeansObservables.observeValue(getInstance(), "isSelected"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(sxText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sx"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(syText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sy"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(szText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "sz"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(somText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "som"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(eomText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "ga"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(echiText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "gb"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(ephiText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "gc"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeText(timeText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), "time"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }
        });
    }

}

From source file:au.gov.ansto.bragg.kowari.exp.commandView.SimpleScanCommandView.java

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().applyTo(parent);
    createLabelArea(parent, (SimpleTableScanCommand) command);
    //      Label titleLabel = getToolkit().createLabel(parent, command.getCommandName());
    //      titleLabel.setFont(new Font(titleLabel.getFont().getDevice(), new FontData[]{new FontData("Courier New", 10, SWT.BOLD)}));
    //      GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12).applyTo(titleLabel);
    //      GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).applyTo(titleLabel);
    //      parameterComposite = getToolkit().createComposite(parent);
    if (((SimpleTableScanCommand) command).getNumberOfMotor() == 4) {
        //         GridLayoutFactory.swtDefaults().margins(0, 0).spacing(6, 4).numColumns(7).applyTo(parent);
        final Button check1 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().span(3, 1).indent(34, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check1);
        final Button check2 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check2);
        final Button check3 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check3);
        final Button check4 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).span(2, 1).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check4);

        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeSelection(check1),
                        BeansObservables.observeValue(command, "column1"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check2),
                        BeansObservables.observeValue(command, "column2"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check3),
                        BeansObservables.observeValue(command, "column3"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check4),
                        BeansObservables.observeValue(command, "column4"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }/* w w  w .  ja va 2s  .c om*/
        });
    } else if (((SimpleTableScanCommand) command).getNumberOfMotor() == 7) {
        final Button check1 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().span(3, 1).indent(34, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check1);
        final Button check2 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check2);
        final Button check3 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check3);
        final Button check4 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check4);
        final Button check5 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check5);
        final Button check6 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check6);
        final Button check7 = getToolkit().createButton(parent, "", SWT.CHECK);
        GridDataFactory.swtDefaults().indent(4, 0).span(2, 1).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check7);

        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeSelection(check1),
                        BeansObservables.observeValue(command, "column1"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check2),
                        BeansObservables.observeValue(command, "column2"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check3),
                        BeansObservables.observeValue(command, "column3"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check4),
                        BeansObservables.observeValue(command, "column4"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check5),
                        BeansObservables.observeValue(command, "column5"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check6),
                        BeansObservables.observeValue(command, "column6"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
                bindingContext.bindValue(SWTObservables.observeSelection(check7),
                        BeansObservables.observeValue(command, "column7"), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }
        });
    }
    for (AbstractScanParameter parameter : command.getParameterList()) {
        ((TableScanParameter) parameter).createParameterUI(parent, this, getToolkit());
    }

    final Button selectAll = getToolkit().createButton(parent, "Select/Deselect All", SWT.CHECK);
    GridDataFactory.swtDefaults().span(7, 1).indent(9, 2).align(SWT.BEGINNING, SWT.BOTTOM).applyTo(selectAll);
    boolean isAllSelected = true;
    for (AbstractScanParameter parameter : command.getParameterList()) {
        if (!((TableScanParameter) parameter).getIsSelected()) {
            isAllSelected = false;
            break;
        }
    }
    selectAll.setSelection(isAllSelected);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                Object parameter = evt.getSource();
                if (parameter instanceof TableScanParameter)
                    if (evt.getPropertyName().equals("isSelected")) {
                        if (!((Boolean) evt.getNewValue())) {
                            selectAll.setSelection(false);
                        } else {
                            boolean isAllSelected = true;
                            for (AbstractScanParameter parm : command.getParameterList()) {
                                if (!((TableScanParameter) parm).getIsSelected()) {
                                    isAllSelected = false;
                                    break;
                                }
                            }
                            selectAll.setSelection(isAllSelected);
                        }
                    }
            }
        });
    }
    selectAll.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean isSelected = selectAll.getSelection();
            for (AbstractScanParameter parameter : command.getParameterList()) {
                ((TableScanParameter) parameter).setIsSelected(isSelected);
            }
        }

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

From source file:au.gov.ansto.bragg.nbi.ui.core.commands.SimpleScanCommandView.java

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    //      GridLayoutFactory.swtDefaults().applyTo(parent);
    //      parameterComposite = getToolkit().createComposite(parent);
    parameterComposite = parent;/*from   www  .  j a  v  a 2 s .c  o m*/
    parameterComposite.setBackgroundMode(SWT.INHERIT_DEFAULT);
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(4, 4)
            .numColumns(((SimpleTableScanCommand) command).getNumberOfMotor() + 5).applyTo(parameterComposite);
    createLabelArea(parameterComposite, (SimpleTableScanCommand) command);

    //      Label titleLabel = getToolkit().createLabel(parent, command.getCommandName());
    //      titleLabel.setFont(new Font(titleLabel.getFont().getDevice(), new FontData[]{new FontData("Courier New", 10, SWT.BOLD)}));
    //      GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12).applyTo(titleLabel);
    //      GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).applyTo(titleLabel);
    //      parameterComposite = getToolkit().createComposite(parent);
    int numberOfMotors = ((SimpleTableScanCommand) command).getNumberOfMotor();
    Label spaceLabel = getToolkit().createLabel(parameterComposite, "");
    GridDataFactory.swtDefaults().span(2, 1).applyTo(spaceLabel);
    for (int i = 0; i < numberOfMotors; i++) {
        final Button check = getToolkit().createButton(parameterComposite, "", SWT.CHECK);
        final String columnName = "column" + i;
        GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.BOTTOM).applyTo(check);
        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeSelection(check),
                        BeansObservables.observeValue(command, columnName), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }
        });
    }
    spaceLabel = getToolkit().createLabel(parameterComposite, "");
    GridDataFactory.swtDefaults().span(3, 1).applyTo(spaceLabel);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        Composite parComposite = createParameterComposite((TableScanParameter) parameter);
        parComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    }

    final Button selectAll = getToolkit().createButton(parameterComposite, "Select/Deselect All", SWT.CHECK);
    GridDataFactory.swtDefaults().span(numberOfMotors + 3, 1).indent(9, 2).align(SWT.BEGINNING, SWT.BOTTOM)
            .applyTo(selectAll);
    boolean isAllSelected = true;
    for (AbstractScanParameter parameter : command.getParameterList()) {
        if (!((TableScanParameter) parameter).getIsSelected()) {
            isAllSelected = false;
            break;
        }
    }
    selectAll.setSelection(isAllSelected);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                Object parameter = evt.getSource();
                if (parameter instanceof TableScanParameter)
                    if (evt.getPropertyName().equals("isSelected")) {
                        if (!((Boolean) evt.getNewValue())) {
                            selectAll.setSelection(false);
                        } else {
                            boolean isAllSelected = true;
                            for (AbstractScanParameter parm : command.getParameterList()) {
                                if (!((TableScanParameter) parm).getIsSelected()) {
                                    isAllSelected = false;
                                    break;
                                }
                            }
                            selectAll.setSelection(isAllSelected);
                        }
                    }
            }
        });
    }
    selectAll.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean isSelected = selectAll.getSelection();
            for (AbstractScanParameter parameter : command.getParameterList()) {
                ((TableScanParameter) parameter).setIsSelected(isSelected);
            }
        }

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

From source file:au.gov.ansto.bragg.nbi.ui.core.commands.TableScanParameter.java

License:Open Source License

@Override
public void createParameterUI(final Composite parameterComposite, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    //         final Label dragLabel = toolkit.createLabel(parent, "\u2022");
    //      parameterComposite = toolkit.createComposite(parent);
    //      parameterComposite = new Composite(parent, SWT.NONE);
    final Label dragLabel = toolkit.createLabel(parameterComposite, "\u2022");
    dragLabel.setCursor(parameterComposite.getDisplay().getSystemCursor(SWT.CURSOR_HAND));

    final Button selectBox = toolkit.createButton(parameterComposite, "", SWT.CHECK);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).indent(0, 2).applyTo(selectBox);

    selectBox.addSelectionListener(new SelectionListener() {

        @Override/*from w  w w .j  a  va 2s.c o m*/
        public void widgetSelected(SelectionEvent e) {
            Control[] children = parameterComposite.getChildren();
            for (Control child : children) {
                if (child instanceof Text) {
                    child.setEnabled(selectBox.getSelection());
                }
            }
        }

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

    for (int i = 0; i < getLength(); i++) {
        final String name = "p" + i;
        final Text pText = toolkit.createText(parameterComposite, "");
        GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
                .applyTo(pText);
        addValidator(pText, ParameterValidator.floatValidator);
        Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
            public void run() {
                DataBindingContext bindingContext = new DataBindingContext();
                bindingContext.bindValue(SWTObservables.observeText(pText, SWT.Modify),
                        BeansObservables.observeValue(getInstance(), name), new UpdateValueStrategy(),
                        new UpdateValueStrategy());
            }
        });
    }

    final Text presetText = toolkit.createText(parameterComposite, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(presetText);
    addValidator(presetText, ParameterValidator.floatValidator);

    Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
        public void run() {
            DataBindingContext bindingContext = new DataBindingContext();
            bindingContext.bindValue(SWTObservables.observeSelection(selectBox),
                    BeansObservables.observeValue(getInstance(), "isSelected"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(getInstance(), "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    Button addButton = toolkit.createButton(parameterComposite, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 0).applyTo(addButton);
    try {
        addButton.setImage(SicsBatchUIUtils.getBatchEditorImage("ADD"));
    } catch (FileNotFoundException e2) {
        LoggerFactory.getLogger(this.getClass()).error("can not find ADD image", e2);
    }
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            addNewParameter(command);
            commandView.refreshParameterComposite();
            //            notifyPropertyChanged(newCommand, null);
        }
    });

    Button removeButton = toolkit.createButton(parameterComposite, "", SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).indent(0, 0).applyTo(removeButton);
    try {
        removeButton.setImage(SicsBatchUIUtils.getBatchEditorImage("REMOVE"));
    } catch (FileNotFoundException e1) {
        LoggerFactory.getLogger(this.getClass()).error("can not find REMOVE image", e1);
    }
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeParameter(command);
            commandView.refreshParameterComposite();
        }
    });

    DragSource dragSource = new DragSource(dragLabel, DND.DROP_MOVE);

    LocalSelectionTransfer transferObject = LocalSelectionTransfer.getTransfer();

    Transfer[] types = new Transfer[] { transferObject };
    dragSource.setTransfer(types);
    final TableScanParameter child = this;
    dragSource.addDragListener(new DragSourceAdapter() {

        @Override
        public void dragFinished(DragSourceEvent event) {
            LocalSelectionTransfer.getTransfer().setSelection(null);
        }

        @Override
        public void dragSetData(DragSourceEvent event) {
            if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
                DndTransferData transferData = new DndTransferData();
                transferData.setParent(command);
                transferData.setChild(child);
                LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(transferData));
            }
        }
    });

}

From source file:ch.acanda.eclipse.pmd.properties.PMDPropertyPage.java

License:Open Source License

private DataBindingContext initDataBindings() {
    final DataBindingContext bindingContext = new DataBindingContext();
    ///*from   ww  w. j a v  a  2s  .c  o m*/
    final IObservableValue btnEnablePmdForObserveSelectionObserveWidget = SWTObservables
            .observeSelection(enablePMDCheckbox);
    final IObservableValue modelPMDEnabledObserveValue = BeansObservables.observeValue(controller.getModel(),
            "PMDEnabled");
    bindingContext.bindValue(btnEnablePmdForObserveSelectionObserveWidget, modelPMDEnabledObserveValue, null,
            null);
    //
    final IObservableValue addObserveEnabledObserveWidget = SWTObservables.observeEnabled(addRuleSet);
    bindingContext.bindValue(addObserveEnabledObserveWidget, modelPMDEnabledObserveValue, null, null);
    //
    return bindingContext;
}

From source file:com.amazonaws.eclipse.android.sdk.newproject.AndroidProjectWizardPage.java

License:Open Source License

private void bindControls() {
    ISWTObservableValue projectNameTextObservableValue = SWTObservables.observeText(projectNameText,
            SWT.Modify);/*from w w  w .j a v  a2s . com*/
    IObservableValue projectNameDataModelObservableValue = PojoObservables.observeValue(dataModel,
            "projectName");
    bindingContext.bindValue(projectNameTextObservableValue, projectNameDataModelObservableValue,
            new UpdateValueStrategy().setAfterConvertValidator(new ProjectNameValidator()), null);

    ISWTObservableValue packageNameTextObservableValue = SWTObservables.observeText(packageNameText,
            SWT.Modify);
    IObservableValue packageNameDataModelObservableValue = PojoObservables.observeValue(dataModel,
            "packageName");
    bindingContext.bindValue(packageNameTextObservableValue, packageNameDataModelObservableValue,
            new UpdateValueStrategy().setAfterConvertValidator(new PackageNameValidator()), null);

    ISWTObservableValue sampleCodeButtonObservableValue = SWTObservables.observeSelection(sampleCodeButton);
    IObservableValue sampleCodeDataModelObservableValue = PojoObservables.observeValue(dataModel,
            "sampleCodeIncluded");
    bindingContext.bindValue(sampleCodeButtonObservableValue, sampleCodeDataModelObservableValue, null, null);

    IObservableValue androidTargetObservableValue = new AndroidTargetObservableValue(sdkTargetSelector);
    IObservableValue androidTargetModelObservableValue = PojoObservables.observeValue(dataModel,
            "androidTarget");
    bindingContext.bindValue(androidTargetObservableValue, androidTargetModelObservableValue,
            new UpdateValueStrategy().setAfterConvertValidator(new AndroidTargetValidator()), null);

    aggregateValidationStatus = new AggregateValidationStatus(bindingContext.getBindings(),
            AggregateValidationStatus.MAX_SEVERITY);

    aggregateValidationStatus.addChangeListener(new IChangeListener() {
        public void handleChange(ChangeEvent event) {
            updateErrorMessage();
        }
    });
}

From source file:com.amazonaws.eclipse.core.ui.setupwizard.ConfigureAccountWizardPage.java

License:Apache License

public void createControl(Composite parent) {
    parent.setLayout(new GridLayout());

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(450, 250));
    composite.setLayout(new GridLayout(2, false));
    setControl(composite);//  w w  w .ja  v a  2s  .  c o m

    WebLinkListener linkListener = new WebLinkListener();
    GridDataFactory fullRowGridDataFactory = GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.TOP)
            .grab(true, false).span(2, 1);
    GridDataFactory firstColumnGridDataFactory = GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.CENTER);
    GridDataFactory secondColumnGridDataFactory = GridDataFactory.swtDefaults().align(SWT.FILL, SWT.TOP)
            .grab(true, false);

    Label label = new Label(composite, SWT.WRAP);
    label.setText("Before you can start using the toolkit, you need to configure an AWS account.");
    fullRowGridDataFactory.applyTo(label);

    Link link = new Link(composite, SWT.WRAP);
    link.addListener(SWT.Selection, linkListener);
    link.setText("Use your <a href=\"" + SECURITY_CREDENTIALS_URL + "\">existing credentials</a> or "
            + "<a href=\"" + CREATE_ACCOUNT_URL + "\">create a new AWS account</a>.");
    fullRowGridDataFactory.applyTo(link);

    // AWS Access Key ID row
    Label accessKeyLabel = new Label(composite, SWT.NONE);
    accessKeyLabel.setText("Access Key ID:");
    firstColumnGridDataFactory.copy().indent(10, 5).applyTo(accessKeyLabel);
    Text accessKeyText = new Text(composite, SWT.BORDER);
    secondColumnGridDataFactory.copy().indent(0, 5).applyTo(accessKeyText);
    accessKeyText.setFocus();

    IObservableValue accessKeyModelObservable = PojoObservables.observeValue(dataModel,
            dataModel.ACCESS_KEY_ID);
    bindingContext.bindValue(SWTObservables.observeText(accessKeyText, SWT.Modify), accessKeyModelObservable);
    bindingContext.addValidationStatusProvider(new ChainValidator<String>(accessKeyModelObservable,
            new NotEmptyValidator("Please provide an AWS Access Key ID")));

    // AWS Secret Key row
    Label secretKeyLabel = new Label(composite, SWT.NONE);
    secretKeyLabel.setText("Secret Access Key:");
    firstColumnGridDataFactory.copy().indent(10, 0).applyTo(secretKeyLabel);
    Text secretKeyText = new Text(composite, SWT.BORDER);
    secondColumnGridDataFactory.applyTo(secretKeyText);

    IObservableValue secretKeyModelObservable = PojoObservables.observeValue(dataModel,
            dataModel.SECRET_ACCESS_KEY);
    bindingContext.bindValue(SWTObservables.observeText(secretKeyText, SWT.Modify), secretKeyModelObservable);
    bindingContext.addValidationStatusProvider(new ChainValidator<String>(secretKeyModelObservable,
            new NotEmptyValidator("Please provide an AWS Secret Access Key")));

    // Open Explorer view row
    openExplorerCheckBox = new Button(composite, SWT.CHECK);
    openExplorerCheckBox.setText("Open the AWS Explorer view");
    openExplorerCheckBox.setSelection(true);
    fullRowGridDataFactory.indent(0, 5).applyTo(openExplorerCheckBox);
    bindingContext.bindValue(SWTObservables.observeSelection(openExplorerCheckBox),
            PojoObservables.observeValue(dataModel, dataModel.OPEN_EXPLORER));

    Composite spacer = new Composite(composite, SWT.NONE);
    spacer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 2, 1));

    link = new Link(composite, SWT.WRAP);
    link.addListener(SWT.Selection, linkListener);
    link.setText("For a full walkthrough of the features available in the AWS Toolkit for Eclipse, "
            + "see the <a href=\"" + GETTING_STARTED_GUIDE_URL
            + "\">AWS Toolkit for Eclipse Getting Started Guide</a>.");
    fullRowGridDataFactory.applyTo(link);

    aggregateValidationStatus.addChangeListener(new IChangeListener() {
        public void handleChange(ChangeEvent event) {
            Object value = aggregateValidationStatus.getValue();
            if (value instanceof IStatus == false)
                return;

            IStatus status = (IStatus) value;
            setPageComplete(status.isOK());
        }
    });

    setPageComplete(false);
    parent.getShell().pack(true);

    Rectangle workbenchBounds = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getBounds();
    Point dialogSize = this.getShell().getSize();

    this.getShell().setLocation(workbenchBounds.x + (workbenchBounds.width - dialogSize.x) / 2,
            workbenchBounds.y + (workbenchBounds.height - dialogSize.y) / 2);
}