JAL-3949 fixed failing commandlinetests due to more output and line count limit
[jalview.git] / src / jalview / util / ChannelProperties.java
index 109eaa5..40f6110 100644 (file)
@@ -1,6 +1,9 @@
 package jalview.util;
 
 import java.awt.Image;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -13,14 +16,12 @@ import java.util.Properties;
 
 import javax.swing.ImageIcon;
 
-import jalview.bin.Cache;
-
 public class ChannelProperties
 {
 
-  private static final String CHANNEL_PROPERTIES_FILENAME = "/channel.props";
+  public static final String CHANNEL_PROPERTIES_FILENAME = "channel.props";
 
-  private static final Properties channelProps;
+  private static Properties channelProps;
 
   private static final Properties defaultProps;
 
@@ -60,11 +61,11 @@ public class ChannelProperties
     // load channel_properties
     Properties tryChannelProps = new Properties();
     URL channelPropsURL = ChannelProperties.class
-            .getResource(CHANNEL_PROPERTIES_FILENAME);
+            .getResource("/" + CHANNEL_PROPERTIES_FILENAME);
     if (channelPropsURL == null)
     {
       // complete failure of channel_properties, set all properties to defaults
-      System.err.println("Failed to find '" + CHANNEL_PROPERTIES_FILENAME
+      System.err.println("Failed to find '/" + CHANNEL_PROPERTIES_FILENAME
               + "' file at '"
               + (channelPropsURL == null ? "null"
                       : channelPropsURL.toString())
@@ -80,7 +81,7 @@ public class ChannelProperties
         channelPropsIS.close();
       } catch (IOException e)
       {
-        Cache.log.warn(e.getMessage());
+        System.err.println(e.getMessage());
         // return false;
       }
     }
@@ -113,7 +114,9 @@ public class ChannelProperties
         Image logo = null;
         String path = defaultProps.getProperty("logo." + size);
         URL imageURL = ChannelProperties.class.getResource(path);
-        logo = new ImageIcon(imageURL).getImage();
+        ImageIcon imgIcon = imageURL == null ? null
+                : new ImageIcon(imageURL);
+        logo = imgIcon == null ? null : imgIcon.getImage();
         if (logo != null)
         {
           iconList.add(logo);
@@ -122,6 +125,25 @@ public class ChannelProperties
     }
   }
 
+  protected static void loadProps(File dir)
+  {
+    File channelPropsFile = new File(dir, CHANNEL_PROPERTIES_FILENAME);
+    if (channelPropsFile.exists())
+    {
+      try
+      {
+        InputStream is = new FileInputStream(channelPropsFile);
+        channelProps.load(is);
+      } catch (FileNotFoundException e)
+      {
+        System.err.println(e.getMessage());
+      } catch (IOException e)
+      {
+        System.err.println(e.getMessage());
+      }
+    }
+  }
+
   private static Properties channelProps()
   {
     return channelProps;
@@ -219,7 +241,8 @@ public class ChannelProperties
       }
 
       URL imageURL = ChannelProperties.class.getResource(path);
-      img = new ImageIcon(imageURL).getImage();
+      ImageIcon imgIcon = imageURL == null ? null : new ImageIcon(imageURL);
+      img = imgIcon == null ? null : imgIcon.getImage();
       if (img == null)
       {
         System.err.println(