X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Futil%2FChannelProperties.java;h=c4c083f30c6c1091373c23bf0344e43384ad6709;hb=eb3e681d6e82ccdd5d312d1981dfb306e7f479f0;hp=c33198b1670aeccb5d7778d116b057abe237624b;hpb=04e2d97b71fad3d9d02abbe292ea1fa9ba6d1438;p=jalview.git diff --git a/src/jalview/util/ChannelProperties.java b/src/jalview/util/ChannelProperties.java index c33198b..c4c083f 100644 --- a/src/jalview/util/ChannelProperties.java +++ b/src/jalview/util/ChannelProperties.java @@ -1,6 +1,29 @@ +/* + * 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ 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 +36,12 @@ import java.util.Properties; import javax.swing.ImageIcon; -import jalview.bin.Cache; - public class ChannelProperties { - private static final String CHANNEL_PROPERTIES_FILENAME = "/channel_properties"; + public static final String CHANNEL_PROPERTIES_FILENAME = "channel.props"; - private static final Properties channelProps; + private static Properties channelProps; private static final Properties defaultProps; @@ -55,16 +76,21 @@ public class ChannelProperties defaultProps.put("uod_banner.32", "/default_images/UoD_banner-32.png"); defaultProps.put("default_appbase", "https://www.jalview.org/getdown/release/1.8"); + defaultProps.put("preferences.filename", ".jalview_properties"); + defaultProps.put("channel", "none"); // 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 - + "' file, using defaults"); + jalview.bin.Console.errPrintln("Failed to find '/" + + CHANNEL_PROPERTIES_FILENAME + "' file at '" + + (channelPropsURL == null ? "null" + : channelPropsURL.toString()) + + "'. Using class defaultProps."); tryChannelProps = defaultProps; } else @@ -76,7 +102,7 @@ public class ChannelProperties channelPropsIS.close(); } catch (IOException e) { - Cache.log.warn(e.getMessage()); + jalview.bin.Console.errPrintln(e.getMessage()); // return false; } } @@ -109,7 +135,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); @@ -118,6 +146,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) + { + jalview.bin.Console.errPrintln(e.getMessage()); + } catch (IOException e) + { + jalview.bin.Console.errPrintln(e.getMessage()); + } + } + } + private static Properties channelProps() { return channelProps; @@ -167,7 +214,8 @@ public class ChannelProperties } else { - System.err.println("Failed to get channel property '" + key + "'"); + jalview.bin.Console + .errPrintln("Failed to get channel property '" + key + "'"); } } return null; @@ -215,10 +263,11 @@ 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( + jalview.bin.Console.errPrintln( "Failed to load channel image " + key + "=" + path); if (!useClassDefaultImage) { @@ -245,7 +294,7 @@ public class ChannelProperties { return urlMap().getOrDefault(key, null); } - System.err.println( + jalview.bin.Console.errPrintln( "Do not use getImageURL(key) before using getImage(key...)"); } return null; @@ -258,4 +307,4 @@ public class ChannelProperties { return iconList; } -} \ No newline at end of file +}