2010-10-19 5 views
12

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?

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.

+0

Was ist der Teil, der RCP erfordert? Die 'PlatformUI.getWorkbench() ...'? – Mot

+0

perfekt! ja, ich brauchte es für eine RCP-App, so dass dies den Trick schön :) – Alb

+0

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