From 138df9b84c88987a4e4cb10aa8c31311a949bf12 Mon Sep 17 00:00:00 2001 From: Clochard Pagan Date: Sun, 22 Mar 2015 22:12:01 +0300 Subject: [PATCH] Windows fix --- src/org/idp/laf/Kernel.java | 192 +++++++++++------- .../idp/laf/gui/ColorEditorTopComponent.java | 44 +++- 2 files changed, 160 insertions(+), 76 deletions(-) diff --git a/src/org/idp/laf/Kernel.java b/src/org/idp/laf/Kernel.java index 22dd2b4..d2412fe 100644 --- a/src/org/idp/laf/Kernel.java +++ b/src/org/idp/laf/Kernel.java @@ -21,6 +21,7 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Random; +import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; @@ -43,7 +44,12 @@ public class Kernel { { String nb_etc = retrieve_netbeans_etc_dir(); setup_font_antialiaing_hints(nb_etc); - load_setup (nb_etc); + + + String cfh_dir = retrieve_app_folder(); + boolean a = (new File (cfh_dir).mkdirs()); + System.out.println(">>" + cfh_dir); + load_setup (cfh_dir); } else { @@ -53,6 +59,16 @@ public class Kernel { } + private static String retrieve_app_folder () + { + if (System.getProperty("os.name").startsWith("Windows")) { + return System.getenv("APPDATA") + File.separator + "idp_scheme"; + } else { + return retrieve_netbeans_etc_dir (); + } + } + + private static boolean prepare_metal_laf () { try { @@ -93,32 +109,41 @@ public class Kernel { System.setProperty("nb.useSwingHtmlRendering", "true"); Path path = FileSystems.getDefault().getPath(nb_etc, "netbeans.conf"); - List linesL = Files.readAllLines(path); - String [] lines = new String[linesL.size()]; - - int i = 0; - for (String str : linesL) + if( Files.isWritable(path)) { - lines[i] = str; - i++; - } - - for (i =0; i < lines.length; i ++) - { - if (lines[i].contains("netbeans_default_options=")) + + List linesL = Files.readAllLines(path); + String [] lines = new String[linesL.size()]; + + int i = 0; + for (String str : linesL) + { + lines[i] = str; + i++; + } + + for (i =0; i < lines.length; i ++) { - if (!lines[i].contains("-J-Dawt.useSystemAAFontSettings")) + if (lines[i].contains("netbeans_default_options=")) { - System.err.println("No rendering hints defined - fixing..."); - String [] parts = lines[i].split("\""); - String new_line = parts[0] + "\"" + parts[1] + " -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd" + "\""; - lines[i] = new_line; - write_scheme(nb_etc + "netbeans.conf", lines); - System.out.println("Reload Netbeans to update hints!"); + if (!lines[i].contains("-J-Dawt.useSystemAAFontSettings")) + { + System.err.println("No rendering hints defined - fixing..."); + String [] parts = lines[i].split("\""); + String new_line = parts[0] + "\"" + parts[1] + " -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd" + "\""; + lines[i] = new_line; + write_scheme(nb_etc + "netbeans.conf", lines); + System.out.println("Restart Netbeabs to see the effect."); + } } } + return true; + } + else + { + System.err.println("Unable to fix config - bye-bye :("); + return false; } - return true; } catch (IOException ex) { @@ -135,7 +160,7 @@ public class Kernel { if (!scheme_file.exists()) { - + init_scheme(); if (save_scheme(path)) { return read_scheme (path); @@ -176,62 +201,73 @@ public class Kernel { read_scheme (path); } - private static boolean save_scheme(String scheme_file) { + private static void init_scheme () + { + ArrayList color_map = new ArrayList(); + for (int i = 0; i < Keys.color_keys.length; i ++) + { + Object o = UIManager.get(Keys.color_keys[i]); + if (o != null) + { + if (o.getClass().equals(javax.swing.plaf.ColorUIResource.class)) + { + ColorUIResource oo = (ColorUIResource) o; + Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); + color_map.add(c); + //System.out.println( "\"" + Keys.color_keys[i] + "\","); + } + else if (o.getClass().equals(java.awt.Color.class)) + { + java.awt.Color oo = (java.awt.Color) o; + Color c = new Color(Keys.color_keys[i], Color.ColorClass.AT, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); + color_map.add(c); + //System.out.println( "\"" + Keys.color_keys[i] + "\","); + } + } + else + { + ColorUIResource oo = new ColorUIResource(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); + color_map.add(c); + //System.out.println( " \"" + Keys.color_keys[i] + "\","); + } + } -// ArrayList color_map = new ArrayList(); -// for (int i = 0; i < Keys.color_keys.length; i ++) -// { -// -// Object o = UIManager.get(Keys.color_keys[i]); -// if (o != null) -// { -// if (o.getClass().equals(javax.swing.plaf.ColorUIResource.class)) -// { -// ColorUIResource oo = (ColorUIResource) o; -// Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); -// color_map.add(c); -// //System.out.println( "\"" + Keys.color_keys[i] + "\","); -// } -// else if (o.getClass().equals(java.awt.Color.class)) -// { -// java.awt.Color oo = (java.awt.Color) o; -// Color c = new Color(Keys.color_keys[i], Color.ColorClass.AT, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); -// color_map.add(c); -// //System.out.println( "\"" + Keys.color_keys[i] + "\","); -// } -// } -// else -// { -// ColorUIResource oo = new ColorUIResource(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); -// Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); -// color_map.add(c); -// //System.out.println( " \"" + Keys.color_keys[i] + "\","); -// } -// } -// -// + color_scheme_loaded = new Color[color_map.size()]; + color_map.toArray(color_scheme_loaded); + } + + + private static boolean save_scheme(String scheme_file) { + Path path = FileSystems.getDefault().getPath(scheme_file); + try - { - PrintWriter writer = new PrintWriter(scheme_file , "UTF-8"); - for (int i = 0; i < color_scheme_loaded.length; i ++) { - writer.println(color_scheme_loaded[i].toStringC()); + PrintWriter writer = new PrintWriter(scheme_file , "UTF-8"); + for (int i = 0; i < color_scheme_loaded.length; i ++) + { + writer.println(color_scheme_loaded[i].toStringC()); + } + writer.close(); + return true; + } + catch (FileNotFoundException ex) + { + Exceptions.printStackTrace(ex); + return false; + } + catch (UnsupportedEncodingException ex) + { + Exceptions.printStackTrace(ex); + return false; } - writer.close(); - return true; - } - catch (FileNotFoundException ex) - { - Exceptions.printStackTrace(ex); - return false; - } - catch (UnsupportedEncodingException ex) - { - Exceptions.printStackTrace(ex); - return false; - } - + //} +// else +// { +// JOptionPane.showMessageDialog(null, "Unable to write '" + scheme_file + "'" ); +// return false; +// } } public static Color[] color_scheme_loaded; @@ -280,7 +316,6 @@ public class Kernel { private static void write_scheme(String path, String [] data) throws IOException { - File fout = new File(path); FileOutputStream fos = new FileOutputStream(fout); @@ -296,7 +331,14 @@ public class Kernel { } public static Color[] getColors() { - return color_scheme_loaded; + if (color_scheme_loaded == null) + { + return new Color[0]; + } + else + { + return color_scheme_loaded; + } } } diff --git a/src/org/idp/laf/gui/ColorEditorTopComponent.java b/src/org/idp/laf/gui/ColorEditorTopComponent.java index c30158e..3b32633 100644 --- a/src/org/idp/laf/gui/ColorEditorTopComponent.java +++ b/src/org/idp/laf/gui/ColorEditorTopComponent.java @@ -431,6 +431,7 @@ public final class ColorEditorTopComponent extends TopComponent { this.color_R.setEnabled(false); this.color_G.setEnabled(false); this.color_B.setEnabled(false); + this.color_desc.setEnabled(false); this.save_btn.setEnabled(false); this.load_btn.setEnabled(false); @@ -456,6 +457,7 @@ public final class ColorEditorTopComponent extends TopComponent { this.color_R.setEnabled(true); this.color_G.setEnabled(true); this.color_B.setEnabled(true); + this.color_desc.setEnabled(true); this.save_btn.setEnabled(true); this.load_btn.setEnabled(true); @@ -573,7 +575,47 @@ public final class ColorEditorTopComponent extends TopComponent { Color[] colors = Kernel.getColors (); this.color_list.setListData(colors); - this.color_list.setSelectedIndex(0); + + if (colors.length == 0) + { + this.color_list.setEnabled(false); + + this.color_hex.setEnabled(false); + this.color_R.setEnabled(false); + this.color_G.setEnabled(false); + this.color_B.setEnabled(false); + this.color_desc.setEnabled(false); + + this.color_hex.setText(""); + this.color_R.setText(""); + this.color_G.setText(""); + this.color_B.setText(""); + this.color_desc.setText(""); + + this.save_btn.setEnabled(false); + this.load_btn.setEnabled(false); + this.reload_btn.setEnabled(false); + this.color_desc.setEnabled(false); + + + + } + else + { + this.color_list.setSelectedIndex(0); + this.color_list.setEnabled(true); + + this.color_hex.setEnabled(true); + this.color_R.setEnabled(true); + this.color_G.setEnabled(true); + this.color_B.setEnabled(true); + + this.save_btn.setEnabled(true); + this.load_btn.setEnabled(true); + this.reload_btn.setEnabled(true); + this.color_desc.setEnabled(true); + } + } @Override