From a8ce6286d9ca83c6fa044cc8584f2256c0235db3 Mon Sep 17 00:00:00 2001 From: jprocter Date: Mon, 26 Apr 2010 09:32:15 +0000 Subject: [PATCH] build date output in the About box, and build details output on startup when debug flag is set. --- src/jalview/appletgui/AlignFrame.java | 32 ++--- src/jalview/bin/JalviewLite.java | 221 ++++++++++++++++++++++----------- 2 files changed, 156 insertions(+), 97 deletions(-) diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 1bfc475..1518bb0 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -26,6 +26,7 @@ import java.awt.*; import java.awt.event.*; import jalview.analysis.*; +import jalview.bin.JalviewLite; import jalview.commands.*; import jalview.datamodel.*; import jalview.io.*; @@ -2360,10 +2361,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, class AboutPanel extends Canvas { String version; - - public AboutPanel(String version) + String builddate; + public AboutPanel(String version, String builddate) { this.version = version; + this.builddate = builddate; } public void paint(Graphics g) @@ -2379,6 +2381,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, // lite and application g.setFont(new Font("Helvetica", Font.BOLD, 14)); g.drawString("JalviewLite - Release " + version, x, y += fh); + g.setFont(new Font("Helvetica", Font.BOLD, 12)); + g.drawString("Build date: "+builddate, x, y += fh); g.setFont(new Font("Helvetica", Font.PLAIN, 12)); g .drawString( @@ -2401,30 +2405,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } } - String version = "test"; - java.net.URL url = getClass().getResource("/.build_properties"); - if (url != null) - { - try - { - BufferedReader reader = new BufferedReader(new InputStreamReader( - url.openStream())); - String line; - while ((line = reader.readLine()) != null) - { - if (line.indexOf("VERSION") > -1) - { - version = line.substring(line.indexOf("=") + 1); - } - } - } catch (Exception ex) - { - ex.printStackTrace(); - } - } - Frame frame = new Frame(); - frame.add(new AboutPanel(version)); + frame.add(new AboutPanel(JalviewLite.getVersion(), JalviewLite.getBuildDate())); jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 220); } diff --git a/src/jalview/bin/JalviewLite.java b/src/jalview/bin/JalviewLite.java index 43f7f19..af6e1a5 100755 --- a/src/jalview/bin/JalviewLite.java +++ b/src/jalview/bin/JalviewLite.java @@ -22,6 +22,8 @@ import java.applet.*; import java.awt.*; import java.awt.event.*; +import java.io.BufferedReader; +import java.io.InputStreamReader; import java.util.*; import jalview.appletgui.*; @@ -51,7 +53,7 @@ public class JalviewLite extends Applet /** * @param sep - * separator string or null for default + * separator string or null for default * @return String list of selected sequence IDs, each terminated by sep or * ("¬" as default) */ @@ -62,7 +64,7 @@ public class JalviewLite extends Applet /** * @param alf - * alignframe containing selection + * alignframe containing selection * @return String list of selected sequence IDs, each terminated by "¬" * */ @@ -75,9 +77,9 @@ public class JalviewLite extends Applet * get list of selected sequence IDs separated by given separator * * @param alf - * window containing selection + * window containing selection * @param sep - * separator string to use - default is "¬" + * separator string to use - default is "¬" * @return String list of selected sequence IDs, each terminated by the given * separator */ @@ -107,12 +109,12 @@ public class JalviewLite extends Applet * get sequences selected in current alignFrame and return their alignment in * format 'format' either with or without suffix * - * @param alf - - * where selection is - * @param format - - * format of alignment file - * @param suffix - - * "true" to append /start-end string to each sequence ID + * @param alf + * - where selection is + * @param format + * - format of alignment file + * @param suffix + * - "true" to append /start-end string to each sequence ID * @return selected sequences as flat file or empty string if there was no * current selection */ @@ -126,12 +128,12 @@ public class JalviewLite extends Applet * get sequences selected in alf and return their alignment in format 'format' * either with or without suffix * - * @param alf - - * where selection is - * @param format - - * format of alignment file - * @param suffix - - * "true" to append /start-end string to each sequence ID + * @param alf + * - where selection is + * @param format + * - format of alignment file + * @param suffix + * - "true" to append /start-end string to each sequence ID * @return selected sequences as flat file or empty string if there was no * current selection */ @@ -250,15 +252,15 @@ public class JalviewLite extends Applet /** * * @param text - * alignment file as a string + * alignment file as a string * @param title - * window title + * window title * @return null or new alignment frame */ public AlignFrame loadAlignment(String text, String title) { Alignment al = null; - + String format = new IdentifyFile().Identify(text, AppletFormatAdapter.PASTE); try @@ -295,29 +297,79 @@ public class JalviewLite extends Applet * AlignFrame if the applet is started as embedded on the page and then * afterwards a new view is created. */ - public static AlignFrame currentAlignFrame=null; + public static AlignFrame currentAlignFrame = null; /** * This is the first frame to be displayed, and does not change. API calls * will default to this instance if currentAlignFrame is null. */ - AlignFrame initialAlignFrame=null; + AlignFrame initialAlignFrame = null; boolean embedded = false; private boolean checkForJmol = true; - private boolean checkedForJmol = false; // ensure we don't check for jmol every time the app is re-inited + + private boolean checkedForJmol = false; // ensure we don't check for jmol + // every time the app is re-inited public boolean jmolAvailable = false; - public static boolean debug=false; + public static boolean debug = false; + + static String builddate = null, version = null; + + private static void initBuildDetails() + { + if (builddate == null) + { + builddate = "unknown"; + version = "test"; + java.net.URL url = JalviewLite.class + .getResource("/.build_properties"); + if (url != null) + { + try + { + BufferedReader reader = new BufferedReader(new InputStreamReader( + url.openStream())); + String line; + while ((line = reader.readLine()) != null) + { + if (line.indexOf("VERSION") > -1) + { + version = line.substring(line.indexOf("=") + 1); + } + if (line.indexOf("BUILD_DATE") > -1) + { + builddate = line.substring(line.indexOf("=") + 1); + } + } + } catch (Exception ex) + { + ex.printStackTrace(); + } + } + } + } + + public static String getBuildDate() + { + initBuildDetails(); + return builddate; + } + + public static String getVersion() + { + initBuildDetails(); + return version; + } /** * init method for Jalview Applet */ public void init() { - + /** * turn on extra applet debugging */ @@ -326,6 +378,13 @@ public class JalviewLite extends Applet { debug = dbg.toLowerCase().equals("true"); } + if (debug) + { + + System.err.println("JalviewLite Version "+getVersion()); + System.err.println("Build Date : "+getBuildDate()); + + } /** * if true disable the check for jmol */ @@ -445,13 +504,13 @@ public class JalviewLite extends Applet * Initialises and displays a new java.awt.Frame * * @param frame - * java.awt.Frame to be displayed + * java.awt.Frame to be displayed * @param title - * title of new frame + * title of new frame * @param width - * width if new frame + * width if new frame * @param height - * height of new frame + * height of new frame */ public static void addFrame(final Frame frame, String title, int width, int height) @@ -499,7 +558,9 @@ public class JalviewLite extends Applet /* * Probably not necessary to do this - see TODO above. (non-Javadoc) * - * @see java.awt.event.WindowAdapter#windowDeactivated(java.awt.event.WindowEvent) + * @see + * java.awt.event.WindowAdapter#windowDeactivated(java.awt.event.WindowEvent + * ) * * public void windowDeactivated(WindowEvent e) { if (currentAlignFrame == * frame) { currentAlignFrame = null; if (debug) { @@ -516,7 +577,7 @@ public class JalviewLite extends Applet * If file given in parameter not found, displays error message * * @param g - * graphics context + * graphics context */ public void paint(Graphics g) { @@ -540,14 +601,15 @@ public class JalviewLite extends Applet class LoadJmolThread extends Thread { - private boolean running=false; + private boolean running = false; public void run() { - if (running || checkedForJmol) { + if (running || checkedForJmol) + { return; } - running=true; + running = true; if (checkForJmol) { try @@ -575,8 +637,8 @@ public class JalviewLite extends Applet .println("Skipping Jmol check. Will use MCView (probably)"); } } - checkedForJmol=true; - running=false; + checkedForJmol = true; + running = false; } public boolean notFinished() @@ -601,8 +663,11 @@ public class JalviewLite extends Applet * State variable: format of file source */ String format; + String _file; + JalviewLite applet; + private void dbgMsg(String msg) { if (applet.debug) @@ -637,10 +702,10 @@ public class JalviewLite extends Applet dbgMsg("Protocol identified as '" + protocol + "'"); return file; } - + public LoadingThread(String _file, JalviewLite _applet) { - this._file=_file; + this._file = _file; applet = _applet; } @@ -651,7 +716,13 @@ public class JalviewLite extends Applet while (jmolchecker.notFinished()) { // wait around until the Jmol check is complete. - try { Thread.sleep(2); } catch (Exception e) {}; + try + { + Thread.sleep(2); + } catch (Exception e) + { + } + ; } startLoading(); } @@ -673,18 +744,23 @@ public class JalviewLite extends Applet { dbgMsg("File load exception."); ex.printStackTrace(); - if (debug) { - try { + if (debug) + { + try + { FileParse fp = new FileParse(file, protocol); String ln = null; - dbgMsg(">>>Dumping contents of '"+file+"' "+"("+protocol+")"); - while ((ln=fp.nextLine())!=null) { + dbgMsg(">>>Dumping contents of '" + file + "' " + "(" + + protocol + ")"); + while ((ln = fp.nextLine()) != null) + { dbgMsg(ln); } dbgMsg(">>>Dump finished."); } catch (Exception e) { - System.err.println("Exception when trying to dump the content of the file parameter."); + System.err + .println("Exception when trying to dump the content of the file parameter."); e.printStackTrace(); } } @@ -693,7 +769,7 @@ public class JalviewLite extends Applet { dbgMsg("Successfully loaded file."); newAlignFrame = new AlignFrame(al, applet, file, embedded); - if (initialAlignFrame==null) + if (initialAlignFrame == null) { initialAlignFrame = newAlignFrame; } @@ -705,9 +781,8 @@ public class JalviewLite extends Applet newAlignFrame.setTitle("Sequences from " + getDocumentBase()); } - newAlignFrame.statusBar.setText("Successfully loaded file " - + file); - + newAlignFrame.statusBar.setText("Successfully loaded file " + file); + String treeFile = applet.getParameter("tree"); if (treeFile == null) { @@ -765,8 +840,7 @@ public class JalviewLite extends Applet param = setProtocolState(param); if (new AnnotationFile().readAnnotationFile( - newAlignFrame.viewport.getAlignment(), param, - protocol)) + newAlignFrame.viewport.getAlignment(), param, protocol)) { newAlignFrame.alignPanel.fontChanged(); newAlignFrame.alignPanel.setScrollValues(0, 0); @@ -857,9 +931,8 @@ public class JalviewLite extends Applet tmp2.addElement(st2.nextToken()); seqstring = st2.nextToken(); } - tmp.addElement((Sequence) newAlignFrame - .getAlignViewport().getAlignment().findName( - seqstring)); + tmp.addElement((Sequence) newAlignFrame.getAlignViewport() + .getAlignment().findName(seqstring)); } seqs = new SequenceI[tmp.size()]; @@ -931,13 +1004,13 @@ public class JalviewLite extends Applet param = getParameter("hidefeaturegroups"); if (param != null) { - applet.setFeatureGroupStateOn(newAlignFrame,param, false); + applet.setFeatureGroupStateOn(newAlignFrame, param, false); } // show specific groups param = getParameter("showfeaturegroups"); if (param != null) { - applet.setFeatureGroupStateOn(newAlignFrame,param, true); + applet.setFeatureGroupStateOn(newAlignFrame, param, true); } } else @@ -952,7 +1025,7 @@ public class JalviewLite extends Applet * Discovers whether the given file is in the Applet Archive * * @param file - * String + * String * @return boolean */ boolean inArchive(String file) @@ -1120,7 +1193,7 @@ public class JalviewLite extends Applet /** * @param alf - * alignframe to get feature groups on + * alignframe to get feature groups on * @return * @see jalview.appletgui.AlignFrame#getFeatureGroups() */ @@ -1143,7 +1216,7 @@ public class JalviewLite extends Applet /** * @param alf - * align frame to get groups of state visible + * align frame to get groups of state visible * @param visible * @return * @see jalview.appletgui.AlignFrame#getFeatureGroupsOfState(boolean) @@ -1155,9 +1228,9 @@ public class JalviewLite extends Applet /** * @param groups - * tab separated list of group names + * tab separated list of group names * @param state - * true or false + * true or false * @see jalview.appletgui.AlignFrame#setFeatureGroupState(java.lang.String[], * boolean) */ @@ -1188,7 +1261,7 @@ public class JalviewLite extends Applet * List separator string * * @param separator - * the separator to set + * the separator to set */ public void setSeparator(String separator) { @@ -1196,22 +1269,26 @@ public class JalviewLite extends Applet } /** - * get boolean value of applet parameter 'name' and return default if parameter is not set - * @param name name of paremeter - * @param def the value to return otherwise + * get boolean value of applet parameter 'name' and return default if + * parameter is not set + * + * @param name + * name of paremeter + * @param def + * the value to return otherwise * @return true or false */ public boolean getDefaultParameter(String name, boolean def) { String stn; - if ((stn=getParameter(name)) == null) - { - return def; - } - if (stn.toLowerCase().equals("true")) - { - return true; - } - return false; + if ((stn = getParameter(name)) == null) + { + return def; + } + if (stn.toLowerCase().equals("true")) + { + return true; + } + return false; } } -- 1.7.10.2