*/
package jalview.bin;
+import java.awt.Color;
import java.io.*;
import java.util.*;
* </li>
* <li>SHOW_WSDISCOVERY_ERRORS (true) Controls if the web service URL discovery
* warning dialog box is displayed.</li>
+ * <li>ANNOTATIONCOLOUR_MIN (orange) Shade used for minimum value of annotation when shading by annotation</li>
+ * <li>ANNOTATIONCOLOUR_MAX (red) Shade used for maximum value of annotation when shading by annotation</li>
*
* <li></li>
*
/** Default file is ~/.jalview_properties */
static String propertiesFile;
+ private static boolean propsAreReadOnly=false;
+
public static void initLogger()
{
if (log != null)
{
propertiesFile = System.getProperty("user.home") + File.separatorChar
+ ".jalview_properties";
+ } else {
+ // don't corrupt the file we've been given.
+ propsAreReadOnly = true;
}
try
{
InputStream fis;
- try {
+ try
+ {
fis = new java.net.URL(propertiesFile).openStream();
- System.out.println("Loading jalview properties from : "+propertiesFile);
- } catch (Exception ex) {fis=null;}
- if (fis==null) {
+ System.out.println("Loading jalview properties from : "
+ + propertiesFile);
+ System.out
+ .println("Disabling Jalview writing to user's local properties file.");
+ propsAreReadOnly = true;
+
+ } catch (Exception ex)
+ {
+ fis = null;
+ }
+ if (fis == null)
+ {
fis = new FileInputStream(propertiesFile);
}
applicationProperties.load(fis);
*/
public static String setProperty(String key, String obj)
{
+
try
{
- FileOutputStream out = new FileOutputStream(propertiesFile);
applicationProperties.setProperty(key, obj);
- applicationProperties.store(out, "---JalviewX Properties File---");
- out.close();
+ if (!propsAreReadOnly)
+ {
+ FileOutputStream out = new FileOutputStream(propertiesFile);
+ applicationProperties.store(out, "---JalviewX Properties File---");
+ out.close();
+ }
} catch (Exception ex)
{
System.out.println("Error setting property: " + key + " " + obj
*/
public static void saveProperties()
{
- try
- {
- FileOutputStream out = new FileOutputStream(propertiesFile);
- applicationProperties.store(out, "---JalviewX Properties File---");
- out.close();
- } catch (Exception ex)
+ if (!propsAreReadOnly)
{
- System.out.println("Error saving properties: " + ex);
+ try
+ {
+ FileOutputStream out = new FileOutputStream(propertiesFile);
+ applicationProperties.store(out, "---JalviewX Properties File---");
+ out.close();
+ } catch (Exception ex)
+ {
+ System.out.println("Error saving properties: " + ex);
+ }
}
}
}
}
+ /**
+ * get the user's default colour if available
+ * @param property
+ * @param defcolour
+ * @return
+ */
+ public static Color getDefaultColour(String property, Color defcolour)
+ {
+ String colprop = getProperty(property);
+ if (colprop==null) {
+ return defcolour;
+ }
+ Color col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName(colprop);
+ if (col==null)
+ {
+ try {
+ col = new jalview.schemes.UserColourScheme(colprop).findColour('A');
+ } catch (Exception ex)
+ {
+ log.warn("Couldn't parse '"+colprop+"' as a colour for "+property);
+ col=null;
+ }
+ }
+ return (col==null) ? defcolour: col;
+ }
+
+ /**
+ * store a colour as a Jalview user default property
+ * @param property
+ * @param colour
+ */
+ public static void setColourProperty(String property, Color colour)
+ {
+ setProperty(property, jalview.util.Format
+ .getHexString(colour));
+ }
}