X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FAWTConsole.java;h=751f9402d118505f572f22c03641db7e600bba69;hb=4a3def9f59cefe629c9a33d87483283aee085928;hp=3ac29274b984b38ec9448da393522015ead7c197;hpb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;p=jalview.git diff --git a/src/jalview/util/AWTConsole.java b/src/jalview/util/AWTConsole.java index 3ac2927..751f940 100644 --- a/src/jalview/util/AWTConsole.java +++ b/src/jalview/util/AWTConsole.java @@ -1,19 +1,21 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) - * 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. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.util; @@ -28,12 +30,26 @@ package jalview.util; // // RJHM van den Bergh , rvdb@comweb.nl -import java.io.*; -import java.awt.*; -import java.awt.event.*; +import java.awt.BorderLayout; +import java.awt.Button; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.GraphicsEnvironment; +import java.awt.Panel; +import java.awt.TextArea; +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; -public class AWTConsole extends WindowAdapter implements WindowListener, - ActionListener, Runnable +public class AWTConsole extends WindowAdapter + implements WindowListener, ActionListener, Runnable { private Frame frame; @@ -56,10 +72,10 @@ public class AWTConsole extends WindowAdapter implements WindowListener, // create all components and add them frame = new Frame("Java Console"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension frameSize = new Dimension((int) (screenSize.width / 2), - (int) (screenSize.height / 2)); - int x = (int) (frameSize.width / 2); - int y = (int) (frameSize.height / 2); + Dimension frameSize = new Dimension(screenSize.width / 2, + screenSize.height / 2); + int x = frameSize.width / 2; + int y = frameSize.height / 2; frame.setBounds(x, y, frameSize.width, frameSize.height); textArea = new TextArea(); @@ -109,11 +125,11 @@ public class AWTConsole extends WindowAdapter implements WindowListener, // Starting two seperate threads to read from the PipedInputStreams // - reader = new Thread(this); + reader = new Thread(this, "AWTConsoleReader1"); reader.setDaemon(true); reader.start(); // - reader2 = new Thread(this); + reader2 = new Thread(this, "AWTConsoleReader2"); reader2.setDaemon(true); reader2.start(); @@ -126,17 +142,20 @@ public class AWTConsole 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, "AWTConsoleErrorLog"); errorThrower.setDaemon(true); errorThrower.start(); } + @Override public synchronized void windowClosed(WindowEvent evt) { quit = true; @@ -158,17 +177,20 @@ public class AWTConsole extends WindowAdapter implements WindowListener, System.exit(0); } + @Override public synchronized void windowClosing(WindowEvent evt) { frame.setVisible(false); // default behaviour of JFrame frame.dispose(); } + @Override public synchronized void actionPerformed(ActionEvent evt) { textArea.setText(""); } + @Override public synchronized void run() { try @@ -187,7 +209,9 @@ public class AWTConsole extends WindowAdapter implements WindowListener, textArea.append(input); } if (quit) + { return; + } } while (Thread.currentThread() == reader2) @@ -204,7 +228,9 @@ public class AWTConsole extends WindowAdapter implements WindowListener, textArea.append(input); } if (quit) + { return; + } } } catch (Exception e) { @@ -222,7 +248,7 @@ public class AWTConsole extends WindowAdapter implements WindowListener, { } throw new NullPointerException( - "Application test: throwing an NullPointerException It should arrive at the console"); + MessageManager.getString("exception.application_test_npe")); } } @@ -235,7 +261,9 @@ public class AWTConsole 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); @@ -243,6 +271,11 @@ public class AWTConsole extends WindowAdapter implements WindowListener, return input; } + /** + * + * @param arg + * @j2sIgnore + */ public static void main(String[] arg) { new AWTConsole(); // create console with not reference