2010-10-19 23 views
12

? ¿Cómo puedo hacer un hipervínculo en un diálogo de JFace que cuando hace clic abre el enlace en el navegador web predeterminado? Un ejemplo completo sería útil. Sé que hay un paquete org.eclipse.jface.text.hyperlink pero no puedo encontrar un ejemplo adecuado.¿Cómo puedo agregar un hipervínculo a un diálogo de JFace

Respuesta

20

¿Está ejecutando una aplicación RCP?

Si es así, entonces el siguiente código se abrirá su enlace en el navegador de sistema operativo por defecto:

// '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(); 
      } 
     } 
    }); 

Lo anterior supone que usted no desea escanear texto existente para hipervínculos, sino que simplemente desea crear una programación. Si se requiere lo primero, entonces necesitarás usar la API de los paquetes de texto de JFace o similares.

+0

¿Cuál es la parte que requiere RCP? El 'PlatformUI.getWorkbench() ...'? – Mot

+0

¡perfecto! sí, lo necesitaba para una aplicación RCP, así que esto funcionó muy bien :) – Alb

+0

mklhmm: Sí, la llamada PlatformUI.getWorkbench() requiere el paquete org.eclipse.ui que es parte del SDK de RCP. Me alegra que esto haya funcionado para ti, Alb. – tbone

Cuestiones relacionadas