private void onMouseEnter(Event e) { Hyperlink link = (Hyperlink) e.widget; previousBackground = link.getBackground(); previousForeground = link.getForeground(); if (isActiveBackgroundSet) link.setBackground(getActiveBackground()); if (isActiveForegroundSet) link.setForeground(getActiveForeground()); if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER) link.setUnderlined(true); link.setCursor(getHyperlinkCursor()); }
/** * Sets the group foreground and also sets the background of all the currently managed links. * * @param fg the new foreground */ @Override public void setForeground(Color fg) { super.setForeground(fg); isForegroundSet = true; if (links != null) { for (int i = 0; i < links.size(); i++) { Hyperlink label = links.get(i); label.setForeground(fg); } } }
/* * (non-Javadoc) * @see org.eclipse.ice.viz.service.widgets.PlotComposite#createInfoContent(org.eclipse.swt.widgets.Composite, int) */ @Override protected Composite createInfoContent(Composite parent, int style) { // Get the info Composite and its child with the message label. final Composite infoComposite = super.createInfoContent(parent, style); final Composite msgComposite = (Composite) infoComposite.getChildren()[1]; // Get a Display and Shell used to create the hyperlink. final Display display = infoComposite.getDisplay(); final Shell shell = infoComposite.getShell(); // Set the text to display in the hyperlink. final String linkText = "Click here to update the connection " + "preferences."; // Create a link to the preference page. link = new Hyperlink(msgComposite, SWT.NONE); link.setText(linkText); link.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); link.setUnderlined(true); link.setForeground(display.getSystemColor(SWT.COLOR_LINK_FOREGROUND)); // Add the listener to redirect the user to the preferences. link.addHyperlinkListener( new IHyperlinkListener() { @Override public void linkActivated(HyperlinkEvent e) { // Open up the viz service connection preferences. PreferencesUtil.createPreferenceDialogOn( shell, getConnectionPreferencePageID(), null, null) .open(); } @Override public void linkEntered(HyperlinkEvent e) { // Nothing to do yet. } @Override public void linkExited(HyperlinkEvent e) { // Nothing to do yet. } }); return infoComposite; }
private void onMouseExit(Event e) { Hyperlink link = (Hyperlink) e.widget; if (isActiveBackgroundSet) link.setBackground(previousBackground); if (isActiveForegroundSet) link.setForeground(previousForeground); if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER) link.setUnderlined(false); }
/** * Adds a hyperlink to the group to be jointly managed. Hyperlink will be managed until it is * disposed. Settings like colors, cursors and modes will affect all managed hyperlinks. * * @param link */ public void add(Hyperlink link) { if (isBackgroundSet) link.setBackground(getBackground()); if (isForegroundSet) link.setForeground(getForeground()); if (getHyperlinkUnderlineMode() == UNDERLINE_ALWAYS) link.setUnderlined(true); hook(link); }
@Override public void createControl(Composite parent) { GridData gd; Composite composite = new Composite(parent, SWT.NULL); setControl(composite); composite.setLayout(new GridLayout(1, 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 = 100; tree.setLayoutData(gd); viewer = new TreeViewer(tree); contentProvider = new RepoTemplateContentProvider(false); viewer.setContentProvider(contentProvider); viewer.setLabelProvider(new RepoTemplateLabelProvider(loadedImages)); viewer.addFilter(latestFilter); setTemplates(Collections.singletonList(emptyTemplate)); 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 = 100; 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 = 100; 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) 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)); } } }); }