Example usage for org.eclipse.jface.viewers ComboViewer getCombo

List of usage examples for org.eclipse.jface.viewers ComboViewer getCombo

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ComboViewer getCombo.

Prototype

public Combo getCombo() 

Source Link

Document

Returns this list viewer's list control.

Usage

From source file:at.medevit.menus.dialog.AddPersonDialog.java

License:Open Source License

/**
 * Create contents of the dialog.//from   w  w  w.java2s . c  o m
 * @param parent
 */
@Override
protected Control createDialogArea(Composite parent) {
    setMessage("Add a new person to the system.");
    setTitle("Add person");
    Composite area = (Composite) super.createDialogArea(parent);
    Composite container = new Composite(area, SWT.NONE);
    container.setLayout(new GridLayout(2, false));
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    txtFirstname = new Text(container, SWT.BORDER);
    txtFirstname.setMessage("firstname");
    txtFirstname.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

    txtLastname = new Text(container, SWT.BORDER);
    txtLastname.setMessage("lastname");
    txtLastname.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

    ComboViewer comboViewer = new ComboViewer(container, SWT.NONE);
    comboGender = comboViewer.getCombo();
    comboGender.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    comboViewer.setContentProvider(ArrayContentProvider.getInstance());
    comboViewer.setInput(Gender.VALUES);
    comboViewer.setSelection(new StructuredSelection(Gender.MALE));
    new Label(container, SWT.NONE);

    return area;
}

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);/*  w  w w .  ja va  2  s  .co  m*/
    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.SingleADParameter.java

License:Open Source License

@Override
public void createParameterUI(Composite parent, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(6, 4).numColumns(7).applyTo(parent);
    //      GridLayoutFactory.swtDefaults().numColumns(6).applyTo(parent);
    final 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());
    addSelectionValidator(scanVariableCombo.getCombo(), ParameterValidator.notEmptyValidator);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(scanVariableCombo.getCombo());

    //      GridDataFactory.swtDefaults().hint(WIDTH_COMBO, SWT.DEFAULT).applyTo(scanVariableCombo.getCombo());

    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 stepSizeText = toolkit.createText(parent, "");
    GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.TOP).hint(WIDTH_PARAMETER_LONG, SWT.DEFAULT)
            .applyTo(stepSizeText);/*ww w  . j a v  a  2 s  . c  o  m*/
    addValidator(stepSizeText, ParameterValidator.floatValidator);

    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.Modify),
                    BeansObservables.observeValue(getInstance(), "startPosition"), new UpdateValueStrategy() {

                        /* (non-Javadoc)
                         * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                         */
                        @Override
                        public Object convert(Object value) {
                            if ("*".equals(String.valueOf(value)))
                                return Float.NaN;
                            else
                                return super.convert(value);
                        }

                        @Override
                        public IStatus validateAfterGet(Object value) {
                            if ("*".equals(value)) {
                                return Status.OK_STATUS;
                            }
                            return super.validateAfterGet(value);
                        }

                    }, new UpdateValueStrategy() {

                        /* (non-Javadoc)
                         * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                         */
                        @Override
                        public Object convert(Object value) {
                            if (value instanceof Float)
                                if (Float.isNaN((Float) value))
                                    return "*";
                                else
                                    super.convert(value);
                            return super.convert(value);
                        }

                        @Override
                        public IStatus validateAfterGet(Object value) {
                            if ("*".equals(value)) {
                                return Status.OK_STATUS;
                            }
                            return super.validateAfterGet(value);
                        }

                    });
            bindingContext.bindValue(SWTObservables.observeText(finishPositionText, SWT.Modify),
                    BeansObservables.observeValue(getInstance(), "finishPosition"), new UpdateValueStrategy() {

                        /* (non-Javadoc)
                         * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                         */
                        @Override
                        public Object convert(Object value) {
                            if ("*".equals(String.valueOf(value)))
                                return Float.NaN;
                            else
                                return super.convert(value);
                        }

                    }, new UpdateValueStrategy() {

                        /* (non-Javadoc)
                         * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                         */
                        @Override
                        public Object convert(Object value) {
                            if (value instanceof Float)
                                if (Float.isNaN((Float) value))
                                    return "*";
                                else
                                    super.convert(value);
                            return super.convert(value);
                        }
                    });
            bindingContext.bindValue(SWTObservables.observeText(stepSizeText, SWT.Modify),
                    BeansObservables.observeValue(getInstance(), "stepSize"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    final AbstractScanCommand command = commandView.getCommand();

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

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

    DragSource dragSource = new DragSource(dragLabel, DND.DROP_MOVE);
    dragSource.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
    final SingleADParameter 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(parentParameter);
                transferData.setChild(child);
                LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(transferData));
            }
        }
    });
}

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

License:Open Source License

@Override
public void createParameterUI(Composite parent, final AbstractScanCommandView commandView,
        final FormToolkit toolkit) {
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(6, 4).numColumns(4).applyTo(parent);
    //      GridLayoutFactory.swtDefaults().numColumns(6).applyTo(parent);
    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());

    final Text positionText = 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(positionText);/*from   ww w  .  ja va  2s. co  m*/
    addValidator(positionText, ParameterValidator.floatValidator);

    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(positionText, SWT.Modify),
                    BeansObservables.observeValue(getInstance(), "position"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    final AbstractScanCommand command = commandView.getCommand();

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

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

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().numColumns(3).applyTo(parent);
    //      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);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(5).applyTo(parameterComposite);
    GridDataFactory.swtDefaults().indent(2, 0).align(SWT.BEGINNING, SWT.TOP).applyTo(parameterComposite);
    if (command.getParameterList().size() == 0) {
        AdvancedParameter parameter = new AdvancedParameter();
        //      parameter.setScanVariable("sx");
        command.insertParameter(parameter);
    }//from w  ww . jav  a 2s  . c o  m
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 10)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 10)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    //      DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    //      dropTarget.setTransfer(new Transfer[]{LocalSelectionTransfer.getTransfer()});
    //      dropTarget.addDropListener(new DropTargetAdapter(){
    //         @Override
    //         public void drop(DropTargetEvent event) {
    //            if (event.data instanceof IStructuredSelection) {
    //               DndTransferData transferData = (DndTransferData) (
    //                     (StructuredSelection) event.data).getFirstElement();
    //               Object parent = transferData.getParent();
    //               Object child = transferData.getChild();
    //               if (parent == command){
    //                  Point relativePoint = parameterComposite.toControl(
    //                        new Point(event.x, event.y));
    //                  int index = 0;
    //                  for (Control control : parameterComposite.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);
    //                     refreshParameterComposite();
    //                  }
    //               }
    //            }
    //         }
    //      });
}

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().numColumns(3).applyTo(parent);
    //      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);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(3).applyTo(parameterComposite);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(parameterComposite);
    if (command.getParameterList().size() == 0) {
        HmmscanParameter parameter = new HmmscanParameter();
        //      parameter.setScanVariable("sx");
        command.insertParameter(parameter);
    }// www .java  2s  . c  om
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    dropTarget.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
    dropTarget.addDropListener(new DropTargetAdapter() {
        @Override
        public void drop(DropTargetEvent event) {
            if (event.data instanceof StructuredSelection) {
                Object elementData = ((StructuredSelection) event.data).getFirstElement();
                if (elementData instanceof DndTransferData) {
                    DndTransferData transferData = (DndTransferData) elementData;
                    Object parentData = transferData.getParent();
                    Object childData = transferData.getChild();
                    if (parentData == command) {
                        Point relativePoint = parameterComposite.toControl(new Point(event.x, event.y));
                        int index = 0;
                        for (Control control : parameterComposite.getChildren()) {
                            if (control instanceof Group) {
                                if (relativePoint.y < control.getBounds().y + control.getBounds().height) {
                                    break;
                                }
                                index++;
                            }
                        }
                        if (childData instanceof HmmscanParameter) {
                            HmmscanParameter parameter = (HmmscanParameter) childData;
                            int currentIndex = command.indexOfParameter(parameter);
                            if (currentIndex == index) {
                                return;
                            }
                            command.removeParameter(parameter);
                            command.insertParameter(index, parameter);
                            refreshParameterComposite();
                        }
                    }
                }
            }
        }
    });
}

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().margins(6, 8).numColumns(3).applyTo(parent);
    //      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, 4).applyTo(titleLabel);
    //      GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).applyTo(titleLabel);

    parameterComposite = getToolkit().createComposite(parent);
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }//from www  .jav a  2 s  .  com

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    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 parent = transferData.getParent();
                Object child = transferData.getChild();
                if (parent == command) {
                    Point relativePoint = parameterComposite.toControl(new Point(event.x, event.y));
                    int index = 0;
                    for (Control control : parameterComposite.getChildren()) {
                        if (control instanceof Combo) {
                            if (relativePoint.y < (control.getBounds().y + control.getBounds().height)) {
                                break;
                            }
                            index++;
                        }
                    }
                    if (child instanceof AbstractScanParameter) {
                        AbstractScanParameter parameter = (AbstractScanParameter) child;
                        int currentIndex = command.indexOfParameter(parameter);
                        if (currentIndex == index) {
                            return;
                        }
                        command.removeParameter(parameter);
                        command.insertParameter(index, parameter);
                        refreshParameterComposite();
                    }
                }
            }
        }
    });
}

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().numColumns(3).applyTo(parent);
    //      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);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(5).applyTo(parameterComposite);
    GridDataFactory.swtDefaults().indent(2, 0).align(SWT.BEGINNING, SWT.TOP).applyTo(parameterComposite);
    if (command.getParameterList().size() == 0) {
        AdvancedParameter parameter = new AdvancedParameter();
        //      parameter.setScanVariable("sx");
        command.insertParameter(parameter);
    }/*  w  ww. j  a  v  a2 s  .  c  o m*/
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count", "MONITOR_1", "MONITOR_2", "MONITOR_3" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 10)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 10)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    //      DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    //      dropTarget.setTransfer(new Transfer[]{LocalSelectionTransfer.getTransfer()});
    //      dropTarget.addDropListener(new DropTargetAdapter(){
    //         @Override
    //         public void drop(DropTargetEvent event) {
    //            if (event.data instanceof IStructuredSelection) {
    //               DndTransferData transferData = (DndTransferData) (
    //                     (StructuredSelection) event.data).getFirstElement();
    //               Object parent = transferData.getParent();
    //               Object child = transferData.getChild();
    //               if (parent == command){
    //                  Point relativePoint = parameterComposite.toControl(
    //                        new Point(event.x, event.y));
    //                  int index = 0;
    //                  for (Control control : parameterComposite.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);
    //                     refreshParameterComposite();
    //                  }
    //               }
    //            }
    //         }
    //      });
}

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().numColumns(3).applyTo(parent);
    //      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);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(3).applyTo(parameterComposite);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(parameterComposite);
    if (command.getParameterList().size() == 0) {
        HmmscanParameter parameter = new HmmscanParameter();
        //      parameter.setScanVariable("sx");
        command.insertParameter(parameter);
    }//  w  w  w.j  a  v a  2s  .c  om
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count", "MONITOR_1", "MONITOR_2", "MONITOR_3" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 12)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    dropTarget.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
    dropTarget.addDropListener(new DropTargetAdapter() {
        @Override
        public void drop(DropTargetEvent event) {
            if (event.data instanceof StructuredSelection) {
                Object elementData = ((StructuredSelection) event.data).getFirstElement();
                if (elementData instanceof DndTransferData) {
                    DndTransferData transferData = (DndTransferData) elementData;
                    Object parentData = transferData.getParent();
                    Object childData = transferData.getChild();
                    if (parentData == command) {
                        Point relativePoint = parameterComposite.toControl(new Point(event.x, event.y));
                        int index = 0;
                        for (Control control : parameterComposite.getChildren()) {
                            if (control instanceof Group) {
                                if (relativePoint.y < control.getBounds().y + control.getBounds().height) {
                                    break;
                                }
                                index++;
                            }
                        }
                        if (childData instanceof HmmscanParameter) {
                            HmmscanParameter parameter = (HmmscanParameter) childData;
                            int currentIndex = command.indexOfParameter(parameter);
                            if (currentIndex == index) {
                                return;
                            }
                            command.removeParameter(parameter);
                            command.insertParameter(index, parameter);
                            refreshParameterComposite();
                        }
                    }
                }
            }
        }
    });
}

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

License:Open Source License

@Override
protected void createPartControl(Composite parent, final AbstractScanCommand command) {
    super.createPartControl(parent, command);
    GridLayoutFactory.swtDefaults().margins(6, 8).numColumns(3).applyTo(parent);
    //      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, 4).applyTo(titleLabel);
    //      GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).applyTo(titleLabel);

    parameterComposite = getToolkit().createComposite(parent);
    //      GridLayoutFactory.swtDefaults().spacing(3, 3).applyTo(parameterComposite);
    for (AbstractScanParameter parameter : command.getParameterList()) {
        parameter.createParameterUI(parameterComposite, this, getToolkit());
    }//from  w w w  . ja  v  a2s .c  om

    final ComboViewer modeCombo = new ComboViewer(parent, SWT.READ_ONLY);
    modeCombo.setContentProvider(new ArrayContentProvider());
    modeCombo.setLabelProvider(new LabelProvider());
    modeCombo.setSorter(new ViewerSorter());
    modeCombo.setInput(new String[] { "time", "count", "MONITOR_1", "MONITOR_2", "MONITOR_3" });
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP)
            .hint(AbstractScanParameter.WIDTH_PARAMETER_SHORT, SWT.DEFAULT).applyTo(modeCombo.getCombo());

    final Text presetText = getToolkit().createText(parent, "");
    //      GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(presetText);
    //      GridDataFactory.fillDefaults().grab(true, false).applyTo(presetText);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP)
            .hint(AbstractScanParameter.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(ViewersObservables.observeSingleSelection(modeCombo),
                    BeansObservables.observeValue(command, "scan_mode"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(presetText, SWT.Modify),
                    BeansObservables.observeValue(command, "preset"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });

    DropTarget dropTarget = new DropTarget(parameterComposite, DND.DROP_MOVE);
    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 parent = transferData.getParent();
                Object child = transferData.getChild();
                if (parent == command) {
                    Point relativePoint = parameterComposite.toControl(new Point(event.x, event.y));
                    int index = 0;
                    for (Control control : parameterComposite.getChildren()) {
                        if (control instanceof Combo) {
                            if (relativePoint.y < (control.getBounds().y + control.getBounds().height)) {
                                break;
                            }
                            index++;
                        }
                    }
                    if (child instanceof AbstractScanParameter) {
                        AbstractScanParameter parameter = (AbstractScanParameter) child;
                        int currentIndex = command.indexOfParameter(parameter);
                        if (currentIndex == index) {
                            return;
                        }
                        command.removeParameter(parameter);
                        command.insertParameter(index, parameter);
                        refreshParameterComposite();
                    }
                }
            }
        }
    });
}