Come posso creare un collegamento ipertestuale in una finestra di dialogo JFace che, quando si fa clic, apre il collegamento nel browser Web predefinito. Un esempio completo sarebbe utile. So che c'è un pacchetto org.eclipse.jface.text.hyperlink
ma non riesco a trovare un esempio adatto.Come aggiungere un collegamento ipertestuale a una finestra di dialogo JFace
12
A
risposta
20
Stai eseguendo un'applicazione RCP?
Se è così, allora il seguente codice si aprirà il tuo link nel browser sistema operativo predefinito:
// '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();
}
}
});
È possibile che questo presuppone che non si desidera eseguire la scansione del testo già esistente per i collegamenti ipertestuali, ma semplicemente desidera creare una programmazione. Se è necessario il primo, sarà necessario utilizzare l'API dai pacchetti di testo JFace o simili.
Qual è la parte che richiede RCP? Il 'PlatformUI.getWorkbench() ...'? – Mot
perfetto! sì, ne avevo bisogno per un'applicazione RCP quindi questo ha fatto bene :) :) – Alb
mklhmm: Sì, la chiamata a PlatformUI.getWorkbench() richiede il pacchetto org.eclipse.ui che fa parte dell'SDK di RCP. Sono felice che questo abbia funzionato per te Alb. – tbone