Search in sources :

Example 26 with Hyperlink

use of org.eclipse.ui.forms.widgets.Hyperlink in project bndtools by bndtools.

the class MessageHyperlinkAdapter method showPopup.

private void showPopup(final HyperlinkEvent e) {
    Hyperlink link = (Hyperlink) e.getSource();
    link.setToolTipText(null);
    if (popupDialog != null)
        popupDialog.close();
    IMessage[] messages = (IMessage[]) e.data;
    if (messages == null) {
        messages = new IMessage[0];
    } else {
        messages = Stream.of(messages).filter(Objects::nonNull).toArray(IMessage[]::new);
    }
    if (messages.length == 0) {
        MessageDialog.openInformation(part.getSite().getShell(), part.getTitle(), "No further information available.");
    } else {
        popupDialog = new MessagesPopupDialog(link, (IMessage[]) e.data, part);
        popupDialog.open();
    }
}
Also used : IMessage(org.eclipse.ui.forms.IMessage) Objects(java.util.Objects) Hyperlink(org.eclipse.ui.forms.widgets.Hyperlink)

Example 27 with Hyperlink

use of org.eclipse.ui.forms.widgets.Hyperlink in project bndtools by bndtools.

the class TemplateSelectionWizardPage method createControl.

@Override
public void createControl(Composite parent) {
    // $NON-NLS-1$
    setImageDescriptor(Plugin.imageDescriptorFromPlugin("icons/bndtools-wizban.png"));
    GridData gd;
    Composite composite = new Composite(parent, SWT.NULL);
    setControl(composite);
    composite.setLayout(new GridLayout(1, false));
    Control headerControl = createHeaderControl(composite);
    if (headerControl != null)
        headerControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    new Label(composite, SWT.NONE).setText("Select Template:");
    tree = new Tree(composite, SWT.BORDER | SWT.FULL_SELECTION);
    gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd.heightHint = 150;
    tree.setLayoutData(gd);
    defaultTemplateImage = AbstractUIPlugin.imageDescriptorFromPlugin(Plugin.PLUGIN_ID, "icons/template.gif").createImage(parent.getDisplay());
    viewer = new TreeViewer(tree);
    contentProvider = new RepoTemplateContentProvider(false);
    viewer.setContentProvider(contentProvider);
    viewer.setLabelProvider(new RepoTemplateLabelProvider(loadedImages, defaultTemplateImage));
    viewer.addFilter(latestFilter);
    setTemplates(emptyTemplate != null ? Collections.singletonList(emptyTemplate) : Collections.<Template>emptyList());
    btnLatestOnly = new Button(composite, SWT.CHECK);
    btnLatestOnly.setText("Show latest versions only");
    btnLatestOnly.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
    btnLatestOnly.setSelection(true);
    new Label(composite, SWT.NONE).setText("Description:");
    Composite cmpDescription = new Composite(composite, SWT.BORDER);
    cmpDescription.setBackground(tree.getBackground());
    txtDescription = new ScrolledFormText(cmpDescription, SWT.V_SCROLL | SWT.H_SCROLL, false);
    FormText formText = new FormText(txtDescription, SWT.NO_FOCUS);
    txtDescription.setFormText(formText);
    txtDescription.setBackground(tree.getBackground());
    formText.setBackground(tree.getBackground());
    formText.setForeground(tree.getForeground());
    formText.setFont("fixed", JFaceResources.getTextFont());
    formText.setFont("italic", JFaceResources.getFontRegistry().getItalic(""));
    GridData gd_cmpDescription = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd_cmpDescription.heightHint = 25;
    cmpDescription.setLayoutData(gd_cmpDescription);
    GridLayout layout_cmpDescription = new GridLayout(1, false);
    cmpDescription.setLayout(layout_cmpDescription);
    GridData gd_txtDescription = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_txtDescription.heightHint = 25;
    txtDescription.setLayoutData(gd_txtDescription);
    Hyperlink linkRetina = new Hyperlink(composite, SWT.NONE);
    linkRetina.setText("Why is this text blurred?");
    linkRetina.setUnderlined(true);
    linkRetina.setForeground(JFaceColors.getHyperlinkText(getShell().getDisplay()));
    linkRetina.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Object element = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
            setTemplate(element instanceof Template ? (Template) element : null);
            getContainer().updateButtons();
        }
    });
    viewer.addOpenListener(new IOpenListener() {

        @Override
        public void open(OpenEvent event) {
            Object element = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
            setTemplate(element instanceof Template ? (Template) element : null);
            getContainer().updateButtons();
            IWizardPage nextPage = getNextPage();
            if (nextPage != null && selected != null)
                getContainer().showPage(nextPage);
        }
    });
    btnLatestOnly.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean latestOnly = btnLatestOnly.getSelection();
            if (latestOnly)
                viewer.addFilter(latestFilter);
            else
                viewer.removeFilter(latestFilter);
        }
    });
    linkRetina.addHyperlinkListener(new HyperlinkAdapter() {

        @Override
        public void linkActivated(HyperlinkEvent ev) {
            try {
                IWorkbenchBrowserSupport browser = PlatformUI.getWorkbench().getBrowserSupport();
                browser.getExternalBrowser().openURL(new URL("https://github.com/bndtools/bndtools/wiki/Blurry-Form-Text-on-High-Resolution-Displays"));
            } catch (Exception e) {
                log.log(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, "Browser open error", e));
            }
        }
    });
    txtDescription.getFormText().addHyperlinkListener(new HyperlinkAdapter() {

        @Override
        public void linkActivated(HyperlinkEvent ev) {
            try {
                PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL((String) ev.getHref()));
            } catch (Exception ex) {
                log.log(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, "Browser open error", ex));
            }
        }
    });
}
Also used : HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) TreeViewer(org.eclipse.jface.viewers.TreeViewer) Label(org.eclipse.swt.widgets.Label) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) ScrolledFormText(org.eclipse.ui.forms.widgets.ScrolledFormText) URL(java.net.URL) Template(org.bndtools.templating.Template) GridLayout(org.eclipse.swt.layout.GridLayout) Control(org.eclipse.swt.widgets.Control) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Tree(org.eclipse.swt.widgets.Tree) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) Composite(org.eclipse.swt.widgets.Composite) FormText(org.eclipse.ui.forms.widgets.FormText) ScrolledFormText(org.eclipse.ui.forms.widgets.ScrolledFormText) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) InvalidSyntaxException(org.osgi.framework.InvalidSyntaxException) InvocationTargetException(java.lang.reflect.InvocationTargetException) IOException(java.io.IOException) IOpenListener(org.eclipse.jface.viewers.IOpenListener) GridData(org.eclipse.swt.layout.GridData) IWizardPage(org.eclipse.jface.wizard.IWizardPage) IWorkbenchBrowserSupport(org.eclipse.ui.browser.IWorkbenchBrowserSupport) Hyperlink(org.eclipse.ui.forms.widgets.Hyperlink) OpenEvent(org.eclipse.jface.viewers.OpenEvent) HyperlinkAdapter(org.eclipse.ui.forms.events.HyperlinkAdapter)

Example 28 with Hyperlink

use of org.eclipse.ui.forms.widgets.Hyperlink in project arduino-eclipse-plugin by Sloeber.

the class ThirdPartyHardwareSelectionPage method createFieldEditors.

@Override
protected void createFieldEditors() {
    String[] selectedJsons = BoardsManager.getJsonURLList();
    final Composite parent = getFieldEditorParent();
    // Composite control = new Composite(parent, SWT.NONE);
    Label title = new Label(parent, SWT.UP);
    title.setFont(parent.getFont());
    title.setText(Messages.ui_url_for_index_file);
    title.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    this.urlsText = new Text(parent, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.WRAP);
    GridData gd = new GridData(GridData.FILL_BOTH);
    this.urlsText.setLayoutData(gd);
    this.urlsText.setText(StringUtil.join(selectedJsons, System.lineSeparator()));
    this.upDateJsons = new BooleanFieldEditor(KEY_UPDATE_JASONS, Messages.json_update, BooleanFieldEditor.DEFAULT, parent);
    addField(this.upDateJsons);
    IPreferenceStore prefstore = getPreferenceStore();
    prefstore.setValue(KEY_UPDATE_JASONS, Preferences.getUpdateJsonFiles());
    prefstore.setDefault(KEY_UPDATE_JASONS, true);
    final Hyperlink link = new Hyperlink(parent, SWT.NONE);
    link.setText(Messages.json_find);
    // $NON-NLS-1$
    link.setHref("https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls");
    link.setUnderlined(true);
    link.addHyperlinkListener(new HyperlinkAdapter() {

        @Override
        public void linkActivated(HyperlinkEvent he) {
            try {
                org.eclipse.swt.program.Program.launch(link.getHref().toString());
            } catch (IllegalArgumentException e) {
                log(new Status(IStatus.ERROR, PLUGIN_ID, Messages.json_browser_fail, e));
            }
        }
    });
}
Also used : Status(org.eclipse.core.runtime.Status) IStatus(org.eclipse.core.runtime.IStatus) HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) Composite(org.eclipse.swt.widgets.Composite) Label(org.eclipse.swt.widgets.Label) Text(org.eclipse.swt.widgets.Text) BooleanFieldEditor(org.eclipse.jface.preference.BooleanFieldEditor) GridData(org.eclipse.swt.layout.GridData) IPreferenceStore(org.eclipse.jface.preference.IPreferenceStore) Hyperlink(org.eclipse.ui.forms.widgets.Hyperlink) HyperlinkAdapter(org.eclipse.ui.forms.events.HyperlinkAdapter)

Aggregations

Hyperlink (org.eclipse.ui.forms.widgets.Hyperlink)28 HyperlinkEvent (org.eclipse.ui.forms.events.HyperlinkEvent)18 Composite (org.eclipse.swt.widgets.Composite)17 HyperlinkAdapter (org.eclipse.ui.forms.events.HyperlinkAdapter)16 GridLayout (org.eclipse.swt.layout.GridLayout)12 GridData (org.eclipse.swt.layout.GridData)11 Label (org.eclipse.swt.widgets.Label)8 FormToolkit (org.eclipse.ui.forms.widgets.FormToolkit)7 IStatus (org.eclipse.core.runtime.IStatus)6 Status (org.eclipse.core.runtime.Status)6 SelectionEvent (org.eclipse.swt.events.SelectionEvent)6 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)5 ArrayList (java.util.ArrayList)4 EntityNameCombo (org.eclipse.jpt.jpa.ui.internal.details.EntityNameCombo)4 IdClassChooser (org.eclipse.jpt.jpa.ui.internal.details.IdClassChooser)4 HibernateTableComposite (org.jboss.tools.hibernate.jpt.ui.internal.details.HibernateTableComposite)4 InvocationTargetException (java.lang.reflect.InvocationTargetException)3 AccessTypeComboViewer (org.eclipse.jpt.jpa.ui.internal.details.AccessTypeComboViewer)3 PartInitException (org.eclipse.ui.PartInitException)3 ExpandableComposite (org.eclipse.ui.forms.widgets.ExpandableComposite)3