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

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

Introduction

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

Prototype

public void setShowHover(boolean showHover) 

Source Link

Document

Set the boolean that controls whether the decoration's description text should be shown in a hover when the user hovers over the decoration.

Usage

From source file:bndtools.editor.components.ComponentDetailsPage.java

License:Open Source License

void fillMainSection(FormToolkit toolkit, Section section) {
    FieldDecoration contentProposalDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
    ControlDecoration decor;

    Composite composite = toolkit.createComposite(section);
    section.setClient(composite);/*from  w  ww .j a va  2 s .  c  o  m*/

    Hyperlink lnkName = toolkit.createHyperlink(composite, "Name:", SWT.NONE);
    txtName = toolkit.createText(composite, "", SWT.BORDER);
    decor = new ControlDecoration(txtName, SWT.LEFT | SWT.TOP, composite);
    decor.setImage(contentProposalDecoration.getImage());
    decor.setDescriptionText("Content assist available"); // TODO: keystrokes
    decor.setShowHover(true);
    decor.setShowOnlyOnFocus(true);

    KeyStroke assistKeyStroke = null;
    try {
        assistKeyStroke = KeyStroke.getInstance("Ctrl+Space");
    } catch (ParseException x) {
        // Ignore
    }
    ComponentNameProposalProvider proposalProvider = new ComponentNameProposalProvider(
            new FormPartJavaSearchContext(this));
    ContentProposalAdapter proposalAdapter = new ContentProposalAdapter(txtName, new TextContentAdapter(),
            proposalProvider, assistKeyStroke, UIConstants.autoActivationCharacters());
    proposalAdapter.addContentProposalListener(proposalProvider);
    proposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    proposalAdapter.setAutoActivationDelay(1500);
    proposalAdapter.setLabelProvider(ComponentNameProposalProvider.createLabelProvider());

    toolkit.createLabel(composite, ""); // Spacer
    btnEnabled = toolkit.createButton(composite, "Enabled", SWT.CHECK);

    // Listeners
    lnkName.addHyperlinkListener(new HyperlinkAdapter() {
        @Override
        public void linkActivated(HyperlinkEvent e) {
            listPart.doOpenComponent(selected.getName());
        }
    });
    txtName.addListener(SWT.Modify, new Listener() {
        public void handleEvent(Event event) {
            if (refreshers.get() == 0) {
                String oldName = selected.getName();
                String newName = txtName.getText();
                selected.setName(newName);

                listPart.updateLabel(oldName, newName);
                markDirty(PROP_COMPONENT_NAME);
                updateVisibility();
            }
        }
    });
    btnEnabled.addListener(SWT.Modify, new MarkDirtyListener(ServiceComponent.COMPONENT_ENABLED));

    // Layout
    GridData gd;
    composite.setLayout(new GridLayout(2, false));

    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtName.setLayoutData(gd);

    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtName.setLayoutData(gd);
}

From source file:bndtools.editor.components.ComponentDetailsPage.java

License:Open Source License

void fillLifecycleSection(FormToolkit toolkit, Section section) {
    FieldDecoration infoDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
    ControlDecoration decor;

    Composite composite = toolkit.createComposite(section);
    section.setClient(composite);//from  www . ja  v  a 2s  .  c  om

    // Create controls
    toolkit.createLabel(composite, "Activate method:");
    txtActivate = toolkit.createText(composite, "", SWT.BORDER);
    toolkit.createLabel(composite, "Deactivate method:");
    txtDeactivate = toolkit.createText(composite, "", SWT.BORDER);
    toolkit.createLabel(composite, "Modified method:");
    txtModified = toolkit.createText(composite, "", SWT.BORDER);

    toolkit.createLabel(composite, ""); // Spacer
    btnImmediate = toolkit.createButton(composite, "Immediate", SWT.CHECK);
    decor = new ControlDecoration(btnImmediate, SWT.RIGHT, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText("The component will be activated immediately,\n"
            + "even when it provides a service and no consumers\n" + "of the service exist.");
    decor.setShowHover(true);

    toolkit.createLabel(composite, ""); // Spacer
    btnSvcFactory = toolkit.createButton(composite, "Service Factory", SWT.CHECK);
    decor = new ControlDecoration(btnSvcFactory, SWT.RIGHT, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText("An instance of the component will be created\nfor each service consumer.");
    decor.setShowHover(true);

    toolkit.createLabel(composite, "Factory ID:");
    txtFactoryId = toolkit.createText(composite, "", SWT.BORDER);
    decor = new ControlDecoration(txtFactoryId, SWT.LEFT | SWT.BOTTOM, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText(
            "Makes the component a 'factory component', published\nunder the ComponentFactory service, with the specified ID.");

    // Listeners
    txtActivate.addListener(SWT.Modify, new MarkDirtyListener(ServiceComponent.COMPONENT_ACTIVATE));
    txtDeactivate.addListener(SWT.Modify, new MarkDirtyListener(ServiceComponent.COMPONENT_DEACTIVATE));
    txtModified.addListener(SWT.Modify, new MarkDirtyListener(ServiceComponent.COMPONENT_MODIFIED));
    txtFactoryId.addListener(SWT.Modify, new MarkDirtyListener(ServiceComponent.COMPONENT_FACTORY));
    btnImmediate.addListener(SWT.Selection, new MarkDirtyListener(ServiceComponent.COMPONENT_IMMEDIATE));
    btnSvcFactory.addListener(SWT.Selection, new MarkDirtyListener(ServiceComponent.COMPONENT_SERVICEFACTORY));

    // Layout
    composite.setLayout(new GridLayout(2, false));

    GridData gd;
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtActivate.setLayoutData(gd);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtDeactivate.setLayoutData(gd);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtModified.setLayoutData(gd);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalIndent = 5;
    txtFactoryId.setLayoutData(gd);
}

From source file:bndtools.editor.components.ComponentDetailsPage.java

License:Open Source License

void fillConfigPolicySection(FormToolkit toolkit, Section section) {
    FieldDecoration infoDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
    ControlDecoration decor;

    Composite composite = toolkit.createComposite(section);
    section.setClient(composite);/*  w  w w  .jav  a2s  .c  om*/
    btnConfigPolicyOptional = toolkit.createButton(composite, "Optional", SWT.RADIO);
    decor = new ControlDecoration(btnConfigPolicyOptional, SWT.RIGHT, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText(
            "The component will be activated whether or not\nmatching configuration data is available.");
    decor.setShowHover(true);
    btnConfigPolicyRequire = toolkit.createButton(composite, "Require", SWT.RADIO);
    decor = new ControlDecoration(btnConfigPolicyRequire, SWT.RIGHT, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText(
            "The component will be activated ONLY if matching\nconfiguration data is available.");
    decor.setShowHover(true);
    btnConfigPolicyIgnore = toolkit.createButton(composite, "Ignore", SWT.RADIO);
    decor = new ControlDecoration(btnConfigPolicyIgnore, SWT.RIGHT, composite);
    decor.setImage(infoDecoration.getImage());
    decor.setDescriptionText("The component will not receive configuration\ndata from Configuration Admin.");
    decor.setShowHover(true);

    // Listeners
    MarkDirtyListener configPolicyDirtyListener = new MarkDirtyListener(
            ServiceComponent.COMPONENT_CONFIGURATION_POLICY);
    btnConfigPolicyOptional.addListener(SWT.Selection, configPolicyDirtyListener);
    btnConfigPolicyRequire.addListener(SWT.Selection, configPolicyDirtyListener);
    btnConfigPolicyIgnore.addListener(SWT.Selection, configPolicyDirtyListener);

    // Layout
    GridLayout layout = new GridLayout(3, false);
    layout.horizontalSpacing = 15;
    composite.setLayout(layout);
}

From source file:bndtools.editor.components.ComponentSvcRefWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    setTitle("Edit Service Reference");

    KeyStroke assistKeyStroke = null;
    try {/*from  w w  w  . j  av a2  s.c o m*/
        assistKeyStroke = KeyStroke.getInstance("Ctrl+Space");
    } catch (ParseException x) {
        // Ignore
    }
    FieldDecoration assistDecor = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);

    Composite composite = new Composite(parent, SWT.NONE);

    new Label(composite, SWT.NONE).setText("Name:");
    txtName = new Text(composite, SWT.BORDER);

    new Label(composite, SWT.NONE).setText("Interface:");
    txtInterface = new Text(composite, SWT.BORDER);
    ControlDecoration decorInterface = new ControlDecoration(txtInterface, SWT.LEFT | SWT.TOP, composite);
    decorInterface.setImage(assistDecor.getImage());
    decorInterface.setDescriptionText("Content assist available");
    decorInterface.setShowHover(true);
    decorInterface.setShowOnlyOnFocus(true);

    // Add content proposal to svc interface field
    SvcInterfaceProposalProvider proposalProvider = new SvcInterfaceProposalProvider(searchContext);
    ContentProposalAdapter interfaceProposalAdapter = new ContentProposalAdapter(txtInterface,
            new TextContentAdapter(), proposalProvider, assistKeyStroke,
            UIConstants.autoActivationCharacters());
    interfaceProposalAdapter.addContentProposalListener(proposalProvider);
    interfaceProposalAdapter.setAutoActivationDelay(1500);
    interfaceProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    interfaceProposalAdapter.setLabelProvider(new JavaContentProposalLabelProvider());

    new Label(composite, SWT.NONE).setText("Bind:");
    txtBind = new Text(composite, SWT.BORDER);
    ControlDecoration decorBind = new ControlDecoration(txtBind, SWT.LEFT | SWT.TOP, composite);
    decorBind.setImage(assistDecor.getImage());
    decorBind.setDescriptionText("Content assist available");
    decorBind.setShowHover(true);
    decorBind.setShowOnlyOnFocus(true);

    MethodProposalProvider bindProposalProvider = new MethodProposalProvider(searchContext);
    ContentProposalAdapter bindProposalAdapter = new ContentProposalAdapter(txtBind, new TextContentAdapter(),
            bindProposalProvider, assistKeyStroke, UIConstants.autoActivationCharacters());
    bindProposalAdapter.addContentProposalListener(bindProposalProvider);
    bindProposalAdapter.setAutoActivationDelay(1500);
    bindProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    bindProposalAdapter.setLabelProvider(new MethodProposalLabelProvider());

    new Label(composite, SWT.NONE).setText("Unbind:");
    txtUnbind = new Text(composite, SWT.BORDER);
    ControlDecoration decorUnbind = new ControlDecoration(txtUnbind, SWT.LEFT | SWT.TOP, composite);
    decorUnbind.setImage(assistDecor.getImage());
    decorUnbind.setDescriptionText("Content assist available");
    decorUnbind.setShowHover(true);
    decorUnbind.setShowOnlyOnFocus(true);
    ContentProposalAdapter unbindProposalAdapter = new ContentProposalAdapter(txtUnbind,
            new TextContentAdapter(), bindProposalProvider, assistKeyStroke,
            UIConstants.autoActivationCharacters());
    unbindProposalAdapter.addContentProposalListener(bindProposalProvider);
    unbindProposalAdapter.setAutoActivationDelay(1500);
    unbindProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    unbindProposalAdapter.setLabelProvider(new MethodProposalLabelProvider());

    new Label(composite, SWT.NONE); // Spacer
    Composite pnlButtons = new Composite(composite, SWT.NONE);
    btnOptional = new Button(pnlButtons, SWT.CHECK);
    btnOptional.setText("Optional");
    btnMultiple = new Button(pnlButtons, SWT.CHECK);
    btnMultiple.setText("Multiple");
    btnDynamic = new Button(pnlButtons, SWT.CHECK);
    btnDynamic.setText("Dynamic");

    new Label(composite, SWT.NONE).setText("Target Filter:");
    txtTargetFilter = new Text(composite, SWT.BORDER);

    // Initialise
    initialiseFields();
    validate();

    // Listeners
    ModifyListener nameAndInterfaceModifyListener = new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            String name = emptyToNull(txtName.getText());
            String clazz = emptyToNull(txtInterface.getText());
            if (name == null)
                name = clazz;

            serviceReference.setName(name);
            serviceReference.setServiceClass(clazz);
            validate();
        }
    };
    txtName.addModifyListener(nameAndInterfaceModifyListener);
    txtInterface.addModifyListener(nameAndInterfaceModifyListener);
    txtBind.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            serviceReference.setBind(emptyToNull(txtBind.getText()));
            validate();
        }
    });
    txtUnbind.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            serviceReference.setUnbind(emptyToNull(txtUnbind.getText()));
            validate();
        }
    });
    btnOptional.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            serviceReference.setOptional(btnOptional.getSelection());
            validate();
        }
    });
    btnMultiple.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            serviceReference.setMultiple(btnMultiple.getSelection());
            validate();
        }
    });
    btnDynamic.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            serviceReference.setDynamic(btnDynamic.getSelection());
            validate();
        }
    });
    txtTargetFilter.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            serviceReference.setTargetFilter(emptyToNull(txtTargetFilter.getText()));
        }
    });

    // Layout
    GridLayout layout;

    layout = new GridLayout(4, false);
    composite.setLayout(layout);
    txtName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
    txtInterface.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
    txtBind.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    txtUnbind.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    txtTargetFilter.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));

    pnlButtons.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 3, 1));
    layout = new GridLayout(1, true);
    //      layout.horizontalSpacing = 0;
    //      layout.verticalSpacing = 0;
    //      layout.marginHeight = 0;
    //      layout.marginWidth = 0;
    pnlButtons.setLayout(layout);

    setControl(composite);
}

From source file:bndtools.editor.components.SvcInterfaceSelectionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Control dialogArea = super.createDialogArea(parent);

    FieldDecoration proposalDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);

    KeyStroke assistKeyStroke = null;
    try {//from  w w  w.j  ava2 s .  c  o m
        assistKeyStroke = KeyStroke.getInstance("Ctrl+Space");
    } catch (ParseException x) {
        // Ignore
    }

    Text textField = getText();
    ControlDecoration decor = new ControlDecoration(textField, SWT.LEFT | SWT.TOP);
    decor.setImage(proposalDecoration.getImage());
    decor.setDescriptionText(MessageFormat.format(
            "Content Assist is available. Press {0} or start typing to activate", assistKeyStroke.format()));
    decor.setShowHover(true);
    decor.setShowOnlyOnFocus(true);

    SvcInterfaceProposalProvider proposalProvider = new SvcInterfaceProposalProvider(searchContext);
    ContentProposalAdapter proposalAdapter = new ContentProposalAdapter(textField, new TextContentAdapter(),
            proposalProvider, assistKeyStroke, UIConstants.autoActivationCharacters());
    proposalAdapter.addContentProposalListener(proposalProvider);
    proposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    proposalAdapter.setLabelProvider(new JavaContentProposalLabelProvider());
    proposalAdapter.setAutoActivationDelay(1500);

    return dialogArea;
}

From source file:bndtools.editor.contents.GeneralInfoPart.java

License:Open Source License

private void createSection(Section section, FormToolkit toolkit) {
    section.setText("Basic Information");

    KeyStroke assistKeyStroke = null;
    try {//  w ww  .ja v a2  s . c  o m
        assistKeyStroke = KeyStroke.getInstance("Ctrl+Space");
    } catch (ParseException x) {
        // Ignore
    }
    FieldDecoration contentAssistDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);

    Composite composite = toolkit.createComposite(section);
    section.setClient(composite);

    toolkit.createLabel(composite, "Version:");
    txtVersion = toolkit.createText(composite, "", SWT.BORDER);
    ToolTips.setupMessageAndToolTipFromSyntax(txtVersion, Constants.BUNDLE_VERSION);

    Hyperlink linkActivator = toolkit.createHyperlink(composite, "Activator:", SWT.NONE);
    txtActivator = toolkit.createText(composite, "", SWT.BORDER);
    ToolTips.setupMessageAndToolTipFromSyntax(txtActivator, Constants.BUNDLE_ACTIVATOR);

    toolkit.createLabel(composite, "Declarative Services:");
    cmbComponents = new Combo(composite, SWT.READ_ONLY);

    // Content Proposal for the Activator field
    ContentProposalAdapter activatorProposalAdapter = null;

    ActivatorClassProposalProvider proposalProvider = new ActivatorClassProposalProvider();
    activatorProposalAdapter = new ContentProposalAdapter(txtActivator, new TextContentAdapter(),
            proposalProvider, assistKeyStroke, UIConstants.autoActivationCharacters());
    activatorProposalAdapter.addContentProposalListener(proposalProvider);
    activatorProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    activatorProposalAdapter.setLabelProvider(new JavaContentProposalLabelProvider());
    activatorProposalAdapter.setAutoActivationDelay(1000);

    // Decorator for the Activator field
    ControlDecoration decorActivator = new ControlDecoration(txtActivator, SWT.LEFT | SWT.CENTER, composite);
    decorActivator.setImage(contentAssistDecoration.getImage());
    decorActivator.setMarginWidth(3);
    if (assistKeyStroke == null) {
        decorActivator.setDescriptionText("Content Assist is available. Start typing to activate");
    } else {
        decorActivator.setDescriptionText(
                MessageFormat.format("Content Assist is available. Press {0} or start typing to activate",
                        assistKeyStroke.format()));
    }
    decorActivator.setShowOnlyOnFocus(true);
    decorActivator.setShowHover(true);

    // Decorator for the Components combo
    ControlDecoration decorComponents = new ControlDecoration(cmbComponents, SWT.LEFT | SWT.CENTER, composite);
    decorComponents.setImage(FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage());
    decorComponents.setMarginWidth(3);
    decorComponents.setDescriptionText("Use Java annotations to detect Declarative Service Components.");
    decorComponents.setShowOnlyOnFocus(false);
    decorComponents.setShowHover(true);

    // Listeners
    txtVersion.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            lock.ifNotModifying(new Runnable() {
                @Override
                public void run() {
                    addDirtyProperty(Constants.BUNDLE_VERSION);
                }
            });
        }
    });
    cmbComponents.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            lock.ifNotModifying(new Runnable() {
                @Override
                public void run() {
                    ComponentChoice old = componentChoice;

                    int index = cmbComponents.getSelectionIndex();
                    if (index >= 0 && index < ComponentChoice.values().length) {
                        componentChoice = ComponentChoice.values()[cmbComponents.getSelectionIndex()];
                        if (old != componentChoice) {
                            addDirtyProperty(aQute.bnd.osgi.Constants.SERVICE_COMPONENT);
                            addDirtyProperty(aQute.bnd.osgi.Constants.DSANNOTATIONS);
                            if (old == null) {
                                cmbComponents.remove(ComponentChoice.values().length);
                            }
                        }
                    }
                }
            });
        }
    });
    txtActivator.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent ev) {
            lock.ifNotModifying(new Runnable() {
                @Override
                public void run() {
                    addDirtyProperty(Constants.BUNDLE_ACTIVATOR);
                }
            });
        }
    });
    linkActivator.addHyperlinkListener(new HyperlinkAdapter() {
        @Override
        public void linkActivated(HyperlinkEvent ev) {
            String activatorClassName = txtActivator.getText();
            if (activatorClassName != null && activatorClassName.length() > 0) {
                try {
                    IJavaProject javaProject = getJavaProject();
                    if (javaProject == null)
                        return;

                    IType activatorType = javaProject.findType(activatorClassName);
                    if (activatorType != null) {
                        JavaUI.openInEditor(activatorType, true, true);
                    }
                } catch (PartInitException e) {
                    ErrorDialog.openError(getManagedForm().getForm().getShell(), "Error", null,
                            new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                    MessageFormat.format("Error opening an editor for activator class '{0}'.",
                                            activatorClassName),
                                    e));
                } catch (JavaModelException e) {
                    ErrorDialog.openError(getManagedForm().getForm().getShell(), "Error", null,
                            new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format(
                                    "Error searching for activator class '{0}'.", activatorClassName), e));
                }
            }
        }
    });
    activatorProposalAdapter.addContentProposalListener(new IContentProposalListener() {
        @Override
        public void proposalAccepted(IContentProposal proposal) {
            if (proposal instanceof JavaContentProposal) {
                String selectedPackageName = ((JavaContentProposal) proposal).getPackageName();
                if (!model.isIncludedPackage(selectedPackageName)) {
                    model.addPrivatePackage(selectedPackageName);
                }
            }
        }
    });

    // Layout
    GridLayout layout = new GridLayout(2, false);
    layout.horizontalSpacing = 15;

    composite.setLayout(layout);

    GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);

    txtVersion.setLayoutData(gd);
    txtActivator.setLayoutData(gd);
    cmbComponents.setLayoutData(gd);
}

From source file:bndtools.editor.pkgpatterns.PkgPatternsDetailsPage.java

License:Open Source License

public void createContents(Composite parent) {
    FormToolkit toolkit = getManagedForm().getToolkit();

    FieldDecoration assistDecor = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
    KeyStroke assistKeyStroke = null;
    try {//from  ww w  .  jav a2  s. c om
        assistKeyStroke = KeyStroke.getInstance("Ctrl+Space");
    } catch (ParseException x) {
        // Ignore
    }

    Section mainSection = toolkit.createSection(parent, Section.TITLE_BAR);
    mainSection.setText(title);

    mainComposite = toolkit.createComposite(mainSection);
    mainSection.setClient(mainComposite);

    toolkit.createLabel(mainComposite, "Pattern:");
    txtName = toolkit.createText(mainComposite, "", SWT.BORDER);
    ControlDecoration decPattern = new ControlDecoration(txtName, SWT.LEFT | SWT.TOP, mainComposite);
    decPattern.setImage(assistDecor.getImage());
    decPattern.setDescriptionText(MessageFormat.format(
            "Content assist is available. Press {0} or start typing to activate", assistKeyStroke.format()));
    decPattern.setShowHover(true);
    decPattern.setShowOnlyOnFocus(true);

    PkgPatternsProposalProvider proposalProvider = new PkgPatternsProposalProvider(
            new FormPartJavaSearchContext(this));
    ContentProposalAdapter patternProposalAdapter = new ContentProposalAdapter(txtName,
            new TextContentAdapter(), proposalProvider, assistKeyStroke,
            UIConstants.autoActivationCharacters());
    patternProposalAdapter.addContentProposalListener(proposalProvider);
    patternProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_IGNORE);
    patternProposalAdapter.setAutoActivationDelay(1000);
    patternProposalAdapter.setLabelProvider(new PkgPatternProposalLabelProvider());
    patternProposalAdapter.addContentProposalListener(new IContentProposalListener() {
        public void proposalAccepted(IContentProposal proposal) {
            PkgPatternProposal patternProposal = (PkgPatternProposal) proposal;
            String toInsert = patternProposal.getContent();
            int currentPos = txtName.getCaretPosition();
            txtName.setSelection(patternProposal.getReplaceFromPos(), currentPos);
            txtName.insert(toInsert);
            txtName.setSelection(patternProposal.getCursorPosition());
        }
    });

    toolkit.createLabel(mainComposite, "Version:");
    txtVersion = toolkit.createText(mainComposite, "", SWT.BORDER);

    /*
     * Section attribsSection = toolkit.createSection(parent, Section.TITLE_BAR | Section.TWISTIE);
     * attribsSection.setText("Extra Attributes"); Composite attribsComposite =
     * toolkit.createComposite(attribsSection);
     */

    // Listeners
    txtName.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            if (!modifyLock.isUnderModification()) {
                if (selectedClauses.size() == 1) {
                    selectedClauses.get(0).setName(txtName.getText());
                    if (listPart != null) {
                        listPart.updateLabels(selectedClauses);
                        listPart.validate();
                    }
                    markDirty();
                }
            }
        }
    });
    txtVersion.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            if (!modifyLock.isUnderModification()) {
                String text = txtVersion.getText();
                if (text.length() == 0)
                    text = null;

                for (HeaderClause clause : selectedClauses) {
                    clause.getAttribs().put(Constants.VERSION_ATTRIBUTE, text);
                }
                if (listPart != null) {
                    listPart.updateLabels(selectedClauses);
                    listPart.validate();
                }
                markDirty();
            }
        }
    });

    // Layout
    GridData gd;

    parent.setLayout(new GridLayout());
    mainSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    mainComposite.setLayout(new GridLayout(2, false));

    gd = new GridData(SWT.FILL, SWT.TOP, true, false);
    gd.horizontalIndent = 5;
    gd.widthHint = 100;
    txtName.setLayoutData(gd);

    gd = new GridData(SWT.FILL, SWT.TOP, true, false);
    gd.horizontalIndent = 5;
    gd.widthHint = 100;
    txtVersion.setLayoutData(gd);
}

From source file:carisma.ui.eclipse.editors.AdfEditorCheckDetailsPage.java

License:Open Source License

/**
 * Handles InputFile parameter./*from  www  . j  av  a2  s. c  o m*/
 * 
 * @param comp
 *            the composite for the parameter input elements
 * @param checkParameter
 *            the checkParamter to handle
 */
private void handleInputFileParameter(final Composite comp, final CheckParameter checkParameter) {
    final Text text = this.toolkit.createText(comp, "");
    text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    text.setEditable(false);
    text.setToolTipText(checkParameter.getDescriptor().getDescription());

    Button browse = this.toolkit.createButton(comp, AdfEditorCheckDetailsPage.BROWSE, SWT.PUSH);
    browse.setToolTipText("Browse for an\ninput file");
    browse.setLayoutData(new GridData(SWT.NONE, SWT.TOP, false, false));

    final ControlDecoration decoration = new ControlDecoration(text, SWT.LEFT | SWT.TOP);
    Image contpro = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR)
            .getImage();
    decoration.setImage(contpro);
    decoration.hide();

    // Initially check if the file can be read
    final String parameterValue;
    if (((InputFileParameter) checkParameter).getValue() != null) {
        if (((InputFileParameter) checkParameter).getValue().canRead()) {
            parameterValue = ((InputFileParameter) checkParameter).getValue().toString();
        } else {
            parameterValue = "";
            decoration.show();
            decoration.setShowHover(true);
            decoration.showHoverText("Invalid input file.\nFully qualified path is needed and has to exist.");
        }
    } else {
        parameterValue = "";
    }
    text.setText(parameterValue);

    // Hide decoration if focus has been lost
    text.addFocusListener(new FocusListener() {
        @Override
        public void focusGained(final FocusEvent e) {
        }

        @Override
        public void focusLost(final FocusEvent e) {
            decoration.hide();
        }
    });

    text.addListener(SWT.Modify, this.masterListener);

    // Open file dialog
    browse.addSelectionListener(new SelectionAdapter() {
        private FileDialog fileDialog = null;

        @Override
        public void widgetSelected(final SelectionEvent e) {
            this.fileDialog = new FileDialog(comp.getShell());
            this.fileDialog.setText("Input File Selection");
            if (!text.getText().isEmpty()) {
                this.fileDialog.setFilterPath(text.getText());
            } else {
                this.fileDialog
                        .setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
            }
            String path = this.fileDialog.open();
            if (path != null) {
                File inputFile = new File(path);
                if (inputFile.canRead()) {
                    AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, inputFile);
                    decoration.hide();
                    text.setText(inputFile.getPath());
                    text.update();
                    AdfEditorCheckDetailsPage.this.controller.setParameterQod(checkParameter, false);
                    AdfEditorCheckDetailsPage.this.qodButtonMap.get(checkParameter).setSelection(false);
                } else {
                    AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, null);
                    decoration.show();
                    decoration.setShowHover(true);
                    decoration.showHoverText(
                            "Invalid input file.\nFully qualified path is needed and has to exist.");
                    text.setText("");
                    text.update();
                    if (!checkParameter.getDescriptor().isOptional()) {
                        AdfEditorCheckDetailsPage.this.controller.setParameterQod(checkParameter, true);
                        AdfEditorCheckDetailsPage.this.qodButtonMap.get(checkParameter).setSelection(true);
                    }
                }
            }
        }
    });
}

From source file:carisma.ui.eclipse.editors.AdfEditorCheckDetailsPage.java

License:Open Source License

/**
 * Handles Folder parameter.// w  w w  .j a v a  2s. c om
 * 
 * @param comp
 *            the composite for the parameter input elements
 * @param checkParameter
 *            the checkParamter to handle
 */
private void handleFolderParameter(final Composite comp, final CheckParameter checkParameter) {
    final String folderValue;
    if (((FolderParameter) checkParameter).getValue() != null) {
        folderValue = ((FolderParameter) checkParameter).getValue().getPath();
    } else {
        folderValue = "";
    }

    final Text text = this.toolkit.createText(comp, folderValue);
    text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    text.setEditable(false);
    text.setToolTipText(checkParameter.getDescriptor().getDescription());

    final ControlDecoration decoration = new ControlDecoration(text, SWT.LEFT | SWT.TOP);
    Image contpro = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR)
            .getImage();
    decoration.setImage(contpro);
    decoration.hide();

    text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(final ModifyEvent e) {
            File inputFile = new File(text.getText());
            if (!inputFile.canRead() || !inputFile.isDirectory()) {
                AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, null);
                decoration.show();
                decoration.setShowHover(true);
                decoration.showHoverText(
                        "Invalid input folder.\nFully qualified path is needed and has to exist.");
            } else {
                AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, inputFile);
                decoration.hide();
            }
        }
    });

    text.addFocusListener(new FocusListener() {
        @Override
        public void focusGained(final FocusEvent e) {
        }

        @Override
        public void focusLost(final FocusEvent e) {
            decoration.hide();
        }
    });

    text.addListener(SWT.Modify, this.masterListener);

    Button folderOpen = this.toolkit.createButton(comp, AdfEditorCheckDetailsPage.BROWSE, SWT.PUSH);
    folderOpen.setLayoutData(new GridData(SWT.NONE, SWT.TOP, false, false));
    folderOpen.setToolTipText("Browse for a folder");

    folderOpen.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            DirectoryDialog dirDialog = new DirectoryDialog(comp.getShell());
            dirDialog.setText("Folder Selection");
            if (!text.getText().isEmpty()) {
                dirDialog.setFilterPath(text.getText());
            } else {
                dirDialog.setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
            }
            String result = dirDialog.open();
            if (result != null && !result.isEmpty()) {
                File outputFile = new File(result);
                AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, outputFile);
                text.setText(outputFile.getPath());
                text.update();
                AdfEditorCheckDetailsPage.this.controller.setParameterQod(checkParameter, false);
                AdfEditorCheckDetailsPage.this.qodButtonMap.get(checkParameter).setSelection(false);
            }
        }
    });
}

From source file:carisma.ui.eclipse.editors.AdfEditorCheckDetailsPage.java

License:Open Source License

/**
 * Handles Output parameter./* w  ww.  j a v  a2s. c  om*/
 * 
 * @param comp
 *            the composite for the parameter input elements
 * @param checkParameter
 *            the checkParamter to handle
 */
private void handleOutputParameter(final Composite comp, final CheckParameter checkParameter) {

    final String outputFileValue;
    if (((OutputFileParameter) checkParameter).getValue() != null) {
        outputFileValue = (((OutputFileParameter) checkParameter).getValue()).getPath();
    } else {
        outputFileValue = "";
    }

    final Text text = this.toolkit.createText(comp, outputFileValue);
    text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    text.setEditable(false);
    text.setToolTipText(checkParameter.getDescriptor().getDescription());

    Button outputFileOpen = this.toolkit.createButton(comp, AdfEditorCheckDetailsPage.BROWSE, SWT.PUSH);
    outputFileOpen.setLayoutData(new GridData(SWT.NONE, SWT.TOP, false, false));
    outputFileOpen.setToolTipText("Browse for an\noutput file");

    final ControlDecoration decoration = new ControlDecoration(text, SWT.LEFT | SWT.TOP);
    final Image errorImage = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage();
    decoration.setImage(errorImage);
    decoration.setShowHover(true);
    decoration.hide();

    text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(final ModifyEvent e) {
            try {
                if (!text.getText().isEmpty()) {
                    AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter,
                            new File(text.getText()));
                } else {
                    AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, null);
                }
                if (((OutputFileParameter) checkParameter).isInsertedValueValid()) {
                    decoration.hide();
                } else {
                    decoration.show();
                    decoration.showHoverText(
                            "Invalid output file.\nFully qualified path is needed and has to exist.");
                }
            } catch (SWTException exc) {
                Logger.log(LogLevel.ERROR, "", exc);
            }
        }
    });

    text.addFocusListener(new FocusListener() {
        @Override
        public void focusGained(final FocusEvent e) {
        }

        @Override
        public void focusLost(final FocusEvent e) {
            decoration.hide();
        }
    });

    text.addListener(SWT.Modify, this.masterListener);

    outputFileOpen.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            FileDialog fDialog = new FileDialog(comp.getShell(), SWT.SAVE);
            fDialog.setText("Output File Selection");
            if (!text.getText().isEmpty()) {
                fDialog.setFilterPath(text.getText());
            } else {
                fDialog.setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
            }
            String selection = fDialog.open();
            if (selection != null && !selection.isEmpty()) {
                AdfEditorCheckDetailsPage.this.controller.setParameter(checkParameter, new File(selection));
                text.setText(selection);
                text.update();
                AdfEditorCheckDetailsPage.this.controller.setParameterQod(checkParameter, false);
                AdfEditorCheckDetailsPage.this.qodButtonMap.get(checkParameter).setSelection(false);
            }
        }
    });
}