Wie kann ich einen Hyperlink in einem JFace-Dialog erstellen, der beim Klicken den Link im Standard-Webbrowser öffnet. Ein vollständiges Beispiel wäre nützlich. Ich weiß, dass es ein org.eclipse.jface.text.hyperlink
Paket gibt, aber ich finde kein passendes Beispiel.Wie kann ich einen Hyperlink zu einem JFace-Dialog hinzufügen?
12
A
Antwort
20
Führen Sie eine RCP-Anwendung aus?
Wenn ja, dann wird der folgende Code Ihren Link in der Standard-OS-Browser geöffnet wird:
// 'parent' is assumed to be an SWT composite
Link link = new Link(parent, SWT.NONE);
String message = "This is a link to <a href=\"www.google.com\">Google</a>";
link.setText(message);
link.setSize(400, 100);
link.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
System.out.println("You have selected: "+e.text);
try {
// Open default external browser
PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(e.text));
}
catch (PartInitException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
catch (MalformedURLException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
});
Die oben geht davon aus, dass Sie nicht vorhandenen Text für Hyperlinks scannen wollen, sondern wollen einfach ein programmatisch zu erstellen. Wenn Ersteres erforderlich ist, müssen Sie die API aus JFace-Textpaketen oder Ähnlichem verwenden.
Was ist der Teil, der RCP erfordert? Die 'PlatformUI.getWorkbench() ...'? – Mot
perfekt! ja, ich brauchte es für eine RCP-App, so dass dies den Trick schön :) – Alb
mklhmm: Ja, der Aufruf PlatformUI.getWorkbench() erfordert das org.eclipse.ui-Paket, das Teil des RCP SDK ist. Ich bin froh, dass das für dich Alb funktioniert hat. – tbone