JAL-4298 Fixed initial log level to see .jalview_properties setting. Moved Java Conso...
[jalview.git] / src / jalview / gui / Console.java
index 6a6cb56..4600719 100644 (file)
@@ -53,6 +53,7 @@ import javax.swing.JTextArea;
 import javax.swing.border.Border;
 import javax.swing.text.DefaultCaret;
 
+import jalview.bin.Cache;
 import jalview.log.JLoggerI.LogLevel;
 import jalview.log.JLoggerLog4j;
 import jalview.log.JalviewAppender;
@@ -106,7 +107,7 @@ public class Console extends WindowAdapter
 
   private JComboBox<LogLevel> logLevelCombo = new JComboBox<LogLevel>();
 
-  protected LogLevel startingLogLevel = LogLevel.INFO;
+  protected LogLevel startingLogLevel = null;
 
   public Console()
   {
@@ -147,6 +148,7 @@ public class Console extends WindowAdapter
     scrollPane.setBorder(noBorder);
     textArea.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mouseClicked(MouseEvent e)
       {
         if (e.getButton() == MouseEvent.BUTTON1)
@@ -172,6 +174,7 @@ public class Console extends WindowAdapter
             MessageManager.getString("label.copy_to_clipboard"));
     copyToClipboardButton.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         copyConsoleTextToClipboard();
@@ -183,12 +186,14 @@ public class Console extends WindowAdapter
 
       private Color fg = textArea.getForeground();
 
+      @Override
       public void mousePressed(MouseEvent e)
       {
         textArea.setBackground(textArea.getSelectionColor());
         textArea.setForeground(textArea.getSelectedTextColor());
       }
 
+      @Override
       public void mouseReleased(MouseEvent e)
       {
         textArea.setBackground(bg);
@@ -212,11 +217,35 @@ public class Console extends WindowAdapter
     // logLevelCombo.addItem(LogLevel.ERROR);
     // logLevelCombo.addItem(LogLevel.OFF);
     // set startingLogLevel
-    startingLogLevel = jalview.bin.Console.log == null ? LogLevel.INFO
-            : jalview.bin.Console.log.getLevel();
+    if (jalview.bin.Console.log == null)
+    {
+      try
+      {
+        startingLogLevel = LogLevel
+                .valueOf(Cache.getDefault(Cache.JALVIEWLOGLEVEL, null));
+      } catch (IllegalArgumentException e1)
+      {
+        jalview.bin.Console.debug(
+                "Invalid value for preference " + Cache.JALVIEWLOGLEVEL);
+      } catch (NullPointerException e2)
+      {
+        // no value in preferences
+      } finally
+      {
+        if (startingLogLevel == null)
+        {
+          startingLogLevel = LogLevel.INFO;
+        }
+      }
+    }
+    else
+    {
+      startingLogLevel = jalview.bin.Console.log.getLevel();
+    }
     setChosenLogLevelCombo();
     logLevelCombo.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         if (jalview.bin.Console.log != null)
@@ -313,7 +342,7 @@ public class Console extends WindowAdapter
         boolean added = false;
         for (int i = 0; i < logLevelCombo.getItemCount(); i++)
         {
-          LogLevel l = (LogLevel) logLevelCombo.getItemAt(i);
+          LogLevel l = logLevelCombo.getItemAt(i);
           if (l.compareTo(setLogLevel) >= 0)
           {
             logLevelCombo.insertItemAt(setLogLevel, i);
@@ -475,27 +504,15 @@ public class Console extends WindowAdapter
    */
   public Console(Desktop desktop)
   {
-    this(desktop, true);
-  }
-
-  /**
-   * attach a console to the desktop - the desktop will open it if requested.
-   * 
-   * @param desktop
-   * @param showjconsole
-   *          - if true, then redirect stdout immediately
-   */
-  public Console(Desktop desktop, boolean showjconsole)
-  {
     parent = desktop;
     // window name - get x,y,width, height possibly scaled
-    Rectangle bounds = desktop.getLastKnownDimensions("JAVA_CONSOLE_");
+    Rectangle bounds = parent.getLastKnownDimensions("JAVA_CONSOLE_");
     if (bounds == null)
     {
       frame = initFrame(
               ChannelProperties.getProperty("app_name") + " Java Console",
-              desktop.getWidth() / 2, desktop.getHeight() / 4,
-              desktop.getX(), desktop.getY());
+              parent.getWidth() / 2, parent.getHeight() / 4, parent.getX(),
+              parent.getY());
     }
     else
     {
@@ -504,7 +521,7 @@ public class Console extends WindowAdapter
               bounds.width, bounds.height, bounds.x, bounds.y);
     }
     frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
-    // desktop.add(frame);
+    // parent.add(frame);
     initConsole(false);
     LogLevel level = (LogLevel) logLevelCombo.getSelectedItem();
     if (!Platform.isJS())