Example usage for org.eclipse.jface.fieldassist ControlDecoration addSelectionListener

List of usage examples for org.eclipse.jface.fieldassist ControlDecoration addSelectionListener

Introduction

In this page you can find the example usage for org.eclipse.jface.fieldassist ControlDecoration addSelectionListener.

Prototype

public void addSelectionListener(SelectionListener listener) 

Source Link

Document

Adds the listener to the collection of listeners who will be notified when the decoration is selected, by sending it one of the messages defined in the SelectionListener interface.

Usage

From source file:org.eclipse.emf.cdo.security.internal.ui.editor.AbstractDetailsPage.java

License:Open Source License

protected void addRevertDecoration(final Control control, final EStructuralFeature feature) {
    final ControlDecoration decoration = new ControlDecoration(control, SWT.RIGHT | SWT.CENTER);
    decoration.hide();//from ww  w  . j av  a2 s. co m
    decoration.setDescriptionText(Messages.AbstractDetailsPage_3);
    decoration.setImage(ExtendedImageRegistry.getInstance()
            .getImage(URI.createPlatformPluginURI(OM.BUNDLE_ID + "/icons/full/elcl16/revert.gif", true))); //$NON-NLS-1$
    decoration.setMarginWidth(2);

    decoration.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Command command = SetCommand.create(getEditingDomain(), getInput(), feature,
                    SetCommand.UNSET_VALUE);
            if (command.canExecute()) {
                getEditingDomain().getCommandStack().execute(command);
            }
        }
    });

    control.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

    // Show the decoration when the user hovers over the control and auto-hide after leaving the control
    MouseTrackListener showHideListener = new MouseTrackAdapter() {
        private Runnable hideRunnable;

        @Override
        public void mouseHover(MouseEvent e) {
            hideRunnable = null;
            if (control.isEnabled()) {
                decoration.show();
            }
        }

        @Override
        public void mouseExit(MouseEvent e) {
            if (control.isEnabled()) {
                hideRunnable = new Runnable() {

                    public void run() {
                        if (hideRunnable == this) {
                            hideRunnable = null;
                            decoration.hide();
                        }
                    }
                };

                control.getDisplay().timerExec(1000, hideRunnable);
            }
        }
    };

    control.addMouseTrackListener(showHideListener);
    control.getParent().addMouseTrackListener(showHideListener);
}

From source file:org.eclipse.m2e.editor.pom.MavenPomEditorPage.java

License:Open Source License

/**
 * creates a text field/Ccombo decoration that shows the evaluated value
 * /*  w ww.j a  v  a 2s  .c o m*/
 * @param control
 */
public final void createEvaluatorInfo(final Control control) {
    if (!(control instanceof Text || control instanceof CCombo)) {
        throw new IllegalArgumentException("Not a Text or CCombo");
    }
    FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
    final ControlDecoration decoration = new ControlDecoration(control, SWT.RIGHT | SWT.TOP) {

        /* (non-Javadoc)
         * @see org.eclipse.jface.fieldassist.ControlDecoration#getDescriptionText()
         */
        @Override
        public String getDescriptionText() {
            MavenProject mp = getPomEditor().getMavenProject();
            if (mp != null) {
                return FormUtils.simpleInterpolate(mp,
                        control instanceof Text ? ((Text) control).getText() : ((CCombo) control).getText());
            }
            return "Cannot interpolate expressions, not resolvable file.";
        }

    };
    decoration.setShowOnlyOnFocus(false);
    decoration.setImage(fieldDecoration.getImage());
    decoration.setShowHover(true);
    decoration.hide(); //hide and wait for the value to be set.
    decoration.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            decoration.showHoverText(decoration.getDescriptionText());
        }
    });
    ModifyListener listener = new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            String text = control instanceof Text ? ((Text) control).getText() : ((CCombo) control).getText();
            if (text.indexOf("${") != -1 && text.indexOf("}") != -1) {
                decoration.show();
            } else {
                decoration.hide();
            }
        }
    };
    if (control instanceof Text) {
        ((Text) control).addModifyListener(listener);
    } else {
        ((CCombo) control).addModifyListener(listener);
    }
    control.addMouseTrackListener(new MouseTrackListener() {
        public void mouseHover(MouseEvent e) {
            decoration.showHoverText(decoration.getDescriptionText());
        }

        public void mouseExit(MouseEvent e) {
            decoration.hideHover();
        }

        public void mouseEnter(MouseEvent e) {
        }
    });
}

From source file:org.eclipse.rap.demo.controls.ControlDecorationTab.java

License:Open Source License

private void configureDecoration(ControlDecoration decoration) {
    decoration.setShowHover(showHover);/*from   ww  w. j  a  v a2s  .  c  o m*/
    decoration.setShowOnlyOnFocus(showOnlyOnFocus);
    decoration.setDescriptionText(description);
    if (hasCreateProperty(PROP_SELECTION_LISTENER)) {
        decoration.addSelectionListener(listener);
    } else {
        decoration.removeSelectionListener(listener);
    }
}

From source file:org.eclipse.ui.examples.fieldassist.FieldAssistTestDialog.java

License:Open Source License

void createSecurityGroup(Composite parent) {

    Group main = new Group(parent, SWT.NONE);
    main.setLayoutData(new GridData(GridData.FILL_BOTH));
    main.setText(TaskAssistExampleMessages.ExampleDialog_SecurityGroup);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;// ww w.jav a2 s.  c  o  m
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    main.setLayout(layout);

    Label label = new Label(main, SWT.LEFT);
    label.setText(TaskAssistExampleMessages.ExampleDialog_UserName);

    // Create a field representing a user name
    Text text = new Text(main, SWT.BORDER);
    ControlDecoration dec = new ControlDecoration(text, getDecorationLocationBits());
    dec.setMarginWidth(marginWidth);
    dec.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            MessageDialog.openInformation(getShell(), TaskAssistExampleMessages.ExampleDialog_SelectionTitle,
                    TaskAssistExampleMessages.ExampleDialog_SelectionMessage);
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            // Nothing on default select
        }
    });

    textField = new UserField(dec, text, new TextContentAdapter());
    dec.addMenuDetectListener(new MenuDetectListener() {
        public void menuDetected(MenuDetectEvent event) {
            // no quick fix if we aren't in error state.
            if (textField.isValid()) {
                return;
            }
            if (textField.quickFixMenu == null) {
                textField.quickFixMenu = createQuickFixMenu(textField);
            }
            textField.quickFixMenu.setLocation(event.x, event.y);
            textField.quickFixMenu.setVisible(true);
        }
    });
    if (showRequiredFieldLabelIndicator && textField.isRequiredField()) {
        addRequiredFieldIndicator(label);
    }
    text.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent event) {
            handleModify(textField);
        }
    });

    text.setText(username);
    installContentProposalAdapter(text, new TextContentAdapter());
    text.setLayoutData(getFieldGridData());

    label = new Label(main, SWT.LEFT);
    label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);

    // Create a combo field representing a user name
    Combo combo = new Combo(main, SWT.BORDER | SWT.DROP_DOWN);
    dec = new ControlDecoration(combo, getDecorationLocationBits());
    dec.setMarginWidth(marginWidth);
    comboField = new UserField(dec, combo, new ComboContentAdapter());

    dec.addMenuDetectListener(new MenuDetectListener() {
        public void menuDetected(MenuDetectEvent event) {
            // no quick fix if we aren't in error state.
            if (comboField.isValid()) {
                return;
            }
            if (comboField.quickFixMenu == null) {
                comboField.quickFixMenu = createQuickFixMenu(comboField);
            }
            comboField.quickFixMenu.setLocation(event.x, event.y);
            comboField.quickFixMenu.setVisible(true);
        }
    });
    dec.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent event) {
            MessageDialog.openInformation(getShell(),
                    TaskAssistExampleMessages.ExampleDialog_DefaultSelectionTitle,
                    TaskAssistExampleMessages.ExampleDialog_DefaultSelectionMessage);
        }

        public void widgetSelected(SelectionEvent e) {
            // Do nothing on selection
        }
    });

    if (showRequiredFieldLabelIndicator) {
        addRequiredFieldIndicator(label);
    }
    combo.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent event) {
            handleModify(comboField);
        }
    });

    combo.setText(username);
    combo.setItems(validUsers);
    combo.setLayoutData(getFieldGridData());
    installContentProposalAdapter(combo, new ComboContentAdapter());

    // Create a spinner representing a user age
    label = new Label(main, SWT.LEFT);
    label.setText(TaskAssistExampleMessages.ExampleDialog_Age);

    Spinner spinner = new Spinner(main, SWT.BORDER);
    dec = new ControlDecoration(spinner, getDecorationLocationBits());
    dec.setMarginWidth(marginWidth);

    if (showRequiredFieldLabelIndicator) {
        addRequiredFieldIndicator(label);
    }
    final SmartField spinnerField = new AgeField(dec, spinner, new SpinnerContentAdapter());
    spinner.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent event) {
            handleModify(spinnerField);
        }
    });
    spinner.setSelection(40);
    spinner.setLayoutData(getFieldGridData());

    // This field has no decorator
    label = new Label(main, SWT.LEFT);
    label.setText(TaskAssistExampleMessages.ExampleDialog_Password);
    text = new Text(main, SWT.BORDER | SWT.PASSWORD);
    text.setText("******"); //$NON-NLS-1$
    text.setLayoutData(getFieldGridData());
    if (showRequiredFieldLabelIndicator) {
        addRequiredFieldIndicator(label);
    }

    // This tests multi-line text popup placement
    label = new Label(main, SWT.LEFT);
    label.setText(TaskAssistExampleMessages.FieldAssistTestDialog_Comments);
    text = new Text(main, SWT.BORDER | SWT.MULTI | SWT.WRAP);
    text.setText(TaskAssistExampleMessages.FieldAssistTestDialog_CommentsDefaultContent);
    text.setLayoutData(getMultiLineTextFieldGridData());
    if (showRequiredFieldLabelIndicator) {
        addRequiredFieldIndicator(label);
    }
    installContentProposalAdapter(text, new TextContentAdapter());

}