X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FConsole.java;h=9d847a8da72796f9defa849730432a78b631cfa7;hb=914a9aaf5a2eeb3cdedf136c2e6b4b6e4b5d6174;hp=5f06bad6eb9ca8446598478034d178c091c30a2b;hpb=47168f025aefdaa044802bd5f8f510ffe43a4808;p=jalview.git diff --git a/src/jalview/gui/Console.java b/src/jalview/gui/Console.java index 5f06bad..9d847a8 100644 --- a/src/jalview/gui/Console.java +++ b/src/jalview/gui/Console.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -22,10 +22,25 @@ package jalview.gui; import jalview.util.MessageManager; -import java.io.*; -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.GraphicsEnvironment; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.io.PrintStream; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; import org.apache.log4j.SimpleLayout; @@ -38,8 +53,8 @@ import org.apache.log4j.SimpleLayout; * own applications RJHM van den Bergh , rvdb@comweb.nl */ -public class Console extends WindowAdapter implements WindowListener, - ActionListener, Runnable +public class Console extends WindowAdapter + implements WindowListener, ActionListener, Runnable { private JFrame frame; @@ -69,6 +84,10 @@ public class Console extends WindowAdapter implements WindowListener, // are we attached to some parent Desktop Desktop parent = null; + private int MIN_WIDTH = 300; + + private int MIN_HEIGHT = 250; + public Console() { // create all components and add them @@ -119,15 +138,15 @@ public class Console extends WindowAdapter implements WindowListener, // Starting two seperate threads to read from the PipedInputStreams // - reader = new Thread(this); + reader = new Thread(this, "ConsoleReader1"); reader.setDaemon(true); reader.start(); // - reader2 = new Thread(this); + reader2 = new Thread(this, "ConsoleReader2"); reader2.setDaemon(true); reader2.start(); // and a thread to append text to the textarea - textAppender = new Thread(this); + textAppender = new Thread(this, "ConsoleTextAppend"); textAppender.setDaemon(true); textAppender.start(); } @@ -228,13 +247,15 @@ public class Console extends WindowAdapter implements WindowListener, .getLocalGraphicsEnvironment(); String[] fontNames = ge.getAvailableFontFamilyNames(); for (int n = 0; n < fontNames.length; n++) + { System.out.println(fontNames[n]); + } // Testing part: simple an error thrown anywhere in this JVM will be printed // on the Console // We do it with a seperate Thread becasue we don't wan't to break a Thread // used by the Console. System.out.println("\nLets throw an error on this console"); - errorThrower = new Thread(this); + errorThrower = new Thread(this, "ConsoleErrorLog"); errorThrower.setDaemon(true); errorThrower.start(); } @@ -244,9 +265,13 @@ public class Console extends WindowAdapter implements WindowListener, JFrame frame = new JFrame(string); frame.setName(string); if (x == -1) - x = (int) (i / 2); + { + x = i / 2; + } if (y == -1) - y = (int) (j / 2); + { + y = j / 2; + } frame.setBounds(x, y, i, j); return frame; } @@ -280,9 +305,10 @@ public class Console extends WindowAdapter implements WindowListener, } else { - frame = initFrame("Jalview Java Console", bounds.width, - bounds.height, bounds.x, bounds.y); + frame = initFrame("Jalview Java Console", bounds.width, bounds.height, + bounds.x, bounds.y); } + frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT)); // desktop.add(frame); initConsole(false); JalviewAppender jappender = new JalviewAppender(); @@ -330,6 +356,7 @@ public class Console extends WindowAdapter implements WindowListener, // System.exit(0); } + @Override public synchronized void windowClosed(WindowEvent evt) { frame.setVisible(false); @@ -350,6 +377,7 @@ public class Console extends WindowAdapter implements WindowListener, } } + @Override public synchronized void windowClosing(WindowEvent evt) { frame.setVisible(false); // default behaviour of JFrame @@ -358,12 +386,14 @@ public class Console extends WindowAdapter implements WindowListener, // frame.dispose(); } + @Override public synchronized void actionPerformed(ActionEvent evt) { trimBuffer(true); // textArea.setText(""); } + @Override public synchronized void run() { try @@ -395,7 +425,9 @@ public class Console extends WindowAdapter implements WindowListener, // lines++; } if (quit) + { return; + } } while (Thread.currentThread() == reader2) @@ -424,7 +456,9 @@ public class Console extends WindowAdapter implements WindowListener, // lines++; } if (quit) + { return; + } } while (Thread.currentThread() == textAppender) { @@ -488,8 +522,8 @@ public class Console extends WindowAdapter implements WindowListener, textArea.append("The error is: " + e.getMessage()); // Need to uncomment this to ensure that line tally is synched. // lines += 2; - stderr.println("Console reports an Internal error.\nThe error is: " - + e); + stderr.println( + "Console reports an Internal error.\nThe error is: " + e); } // just for testing (Throw a Nullpointer after 1 second) @@ -502,7 +536,7 @@ public class Console extends WindowAdapter implements WindowListener, { } throw new NullPointerException( - "Application test: throwing an NullPointerException It should arrive at the console"); + MessageManager.getString("exception.application_test_npe")); } } @@ -516,6 +550,7 @@ public class Console extends WindowAdapter implements WindowListener, long time = System.nanoTime(); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { displayPipe.append(input); // change to stringBuffer @@ -583,7 +618,9 @@ public class Console extends WindowAdapter implements WindowListener, { int available = in.available(); if (available == 0) + { break; + } byte b[] = new byte[available]; in.read(b); input = input + new String(b, 0, b.length);