Add help callback on F1 press : open browser on DavMail website
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@177 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
414eb1e72c
commit
b9763f8028
|
@ -14,6 +14,7 @@ import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* About frame
|
* About frame
|
||||||
|
@ -49,29 +50,11 @@ public class AboutFrame extends JFrame {
|
||||||
public void hyperlinkUpdate(HyperlinkEvent hle) {
|
public void hyperlinkUpdate(HyperlinkEvent hle) {
|
||||||
if (HyperlinkEvent.EventType.ACTIVATED.equals(hle.getEventType())) {
|
if (HyperlinkEvent.EventType.ACTIVATED.equals(hle.getEventType())) {
|
||||||
try {
|
try {
|
||||||
// trigger ClassNotFoundException
|
DesktopBrowser.browse(hle.getURL().toURI());
|
||||||
ClassLoader classloader = AboutFrame.class.getClassLoader();
|
} catch (URISyntaxException e) {
|
||||||
classloader.loadClass("java.awt.Desktop");
|
|
||||||
|
|
||||||
// Open link in default browser
|
|
||||||
AwtDesktopBrowser.browse(hle.getURL().toURI());
|
|
||||||
dispose();
|
|
||||||
} catch (ClassNotFoundException e) {
|
|
||||||
DavGatewayTray.debug("Java 6 Desktop class not available");
|
|
||||||
// failover : try SWT
|
|
||||||
try {
|
|
||||||
// trigger ClassNotFoundException
|
|
||||||
ClassLoader classloader = AboutFrame.class.getClassLoader();
|
|
||||||
classloader.loadClass("org.eclipse.swt.program.Program");
|
|
||||||
SwtDesktopBrowser.browse(hle.getURL().toURI());
|
|
||||||
} catch (ClassNotFoundException e2) {
|
|
||||||
DavGatewayTray.error("Open link not supported (tried AWT Desktop and SWT Program");
|
|
||||||
} catch (Exception e2) {
|
|
||||||
DavGatewayTray.error("Unable to open link", e2);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
DavGatewayTray.error("Unable to open link", e);
|
DavGatewayTray.error("Unable to open link", e);
|
||||||
}
|
}
|
||||||
|
dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
package davmail.ui;
|
||||||
|
|
||||||
|
import davmail.tray.DavGatewayTray;
|
||||||
|
|
||||||
|
import javax.swing.event.HyperlinkEvent;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open default browser.
|
||||||
|
*/
|
||||||
|
public class DesktopBrowser {
|
||||||
|
public static void browse(URI location) {
|
||||||
|
try {
|
||||||
|
// trigger ClassNotFoundException
|
||||||
|
ClassLoader classloader = AboutFrame.class.getClassLoader();
|
||||||
|
classloader.loadClass("java.awt.Desktop");
|
||||||
|
|
||||||
|
// Open link in default browser
|
||||||
|
AwtDesktopBrowser.browse(location);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
DavGatewayTray.debug("Java 6 Desktop class not available");
|
||||||
|
// failover : try SWT
|
||||||
|
try {
|
||||||
|
// trigger ClassNotFoundException
|
||||||
|
ClassLoader classloader = AboutFrame.class.getClassLoader();
|
||||||
|
classloader.loadClass("org.eclipse.swt.program.Program");
|
||||||
|
SwtDesktopBrowser.browse(location);
|
||||||
|
} catch (ClassNotFoundException e2) {
|
||||||
|
DavGatewayTray.error("Open link not supported (tried AWT Desktop and SWT Program");
|
||||||
|
} catch (Exception e2) {
|
||||||
|
DavGatewayTray.error("Unable to open link", e2);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
DavGatewayTray.error("Unable to open link", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void browse(String location) {
|
||||||
|
try {
|
||||||
|
DesktopBrowser.browse(new URI(location));
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
DavGatewayTray.error("Unable to open link", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void browse(HyperlinkEvent hle) {
|
||||||
|
try {
|
||||||
|
DesktopBrowser.browse(hle.getURL().toURI());
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
DavGatewayTray.error("Unable to open link", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,6 +9,8 @@ import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DavMail settings frame
|
* DavMail settings frame
|
||||||
|
@ -177,6 +179,14 @@ public class SettingsFrame extends JFrame {
|
||||||
setIconImage(DavGatewayTray.getFrameIcon());
|
setIconImage(DavGatewayTray.getFrameIcon());
|
||||||
|
|
||||||
JTabbedPane tabbedPane = new JTabbedPane();
|
JTabbedPane tabbedPane = new JTabbedPane();
|
||||||
|
// add help (F1 handler)
|
||||||
|
tabbedPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke("F1"),
|
||||||
|
"help");
|
||||||
|
tabbedPane.getActionMap().put("help", new AbstractAction() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
DesktopBrowser.browse("http://davmail.sourceforge.net");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
JPanel mainPanel = new JPanel();
|
JPanel mainPanel = new JPanel();
|
||||||
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
|
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
|
||||||
|
|
Loading…
Reference in New Issue