package aliview; import java.awt.Component; import java.awt.Dialog; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import javax.swing.JFrame; import org.apache.log4j.Logger; import utils.DialogUtils; import utils.OSNativeUtils; import aliview.messenges.Messenger; import aliview.settings.Settings; public class HelpUtils { private static final Logger logger = Logger.getLogger(HelpUtils.class); public static final String EXTERNAL_COMMANDS = "EXTERNAL_COMMANDS"; public static final String ALIGNER_SETTINGS_ALL = "ALIGNER_SETTINS_ALL"; public static final String ALIGNER_SETTINGS_ADD = "ALIGNER_SETTINS_ADD"; public static final String General_settings = "General_settings"; public static final String Find_Primer_settings = "Find_Primer_settings"; public static final String TOP_HELP = "TOP_HELP"; public static final String DOWNLOAD = "DOWNLOAD"; public static final String BUG_OR_FEATURE = "BUG_OR_FEATURE"; public static final String MEMORY_SETTINGS = "memory_settings"; public static final String EDIT_CHARSETS_DIALOG = "EDIT_CHARSETS_DIALOG"; protected static String baseURL = Settings.getAliViewHelpWebPage(); protected static String localBaseURL = "file:///home/anders/maven/AliView/web/help/help.html"; /* public static void display(String bookmark) { display(bookmark,DialogUtils.getDialogParent()); } */ public static void display(String bookmark, JFrame parentFrame) { URL location = getURL(bookmark); try { openWebpage(location); } catch (Exception e) { // Nothing to do Messenger.showOKOnlyMessage(Messenger.COULD_NOT_OPEN_HELP_IN_BROWSER, parentFrame); e.printStackTrace(); } } private static URL getURL(String bookmark) { String baseLocation = baseURL; String username = System.getenv("USERNAME"); if(username != null && username.equals("anders-not-being-used")){ baseLocation = localBaseURL; } URL location = null; try { location = new URL(baseLocation + "#" + bookmark); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return location; } public static void openWebpage(URL url) throws Exception { ArrayList<String> cmds = new ArrayList<String>(); if (OSNativeUtils.isMac()) { cmds.add("open"); cmds.add(url.toString()); } else if (OSNativeUtils.isWindows()) { cmds.add("cmd.exe"); cmds.add("/c"); cmds.add("start"); cmds.add(url.toString()); } else{ cmds.add("xdg-open"); cmds.add(url.toString()); } ProcessBuilder builder = new ProcessBuilder(cmds); builder.start(); // I skipped Desktop.class since it is Java 1.6 // // Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; // if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { // try { // desktop.browse(uri); // } catch (Exception e) { // e.printStackTrace(); // } // } } public static void displayVersionDownload(String version){ try { String versionDownloadURL = "http://www.ormbunkar.se/aliview/version.php?ver=" + version; URL location = new URL(versionDownloadURL); openWebpage(location); } catch (Exception e) { // Nothing to do //Messenger.showOKOnlyMessage(Messenger.COULD_NOT_OPEN_HELP_IN_BROWSER, null); e.printStackTrace(); } } public static void displayVersionHistory(){ try { String versionDownloadURL = "http://www.ormbunkar.se/aliview/version_history.txt"; URL location = new URL(versionDownloadURL); openWebpage(location); } catch (Exception e) { // Nothing to do //Messenger.showOKOnlyMessage(Messenger.COULD_NOT_OPEN_HELP_IN_BROWSER, null); e.printStackTrace(); } } }