diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
index 4b4b73d..b10ea6f 100644
--- a/nbproject/genfiles.properties
+++ b/nbproject/genfiles.properties
@@ -1,8 +1,8 @@
-build.xml.data.CRC32=22fb9f16
+build.xml.data.CRC32=45912724
build.xml.script.CRC32=1097797e
build.xml.stylesheet.CRC32=a56c6a5b@2.67.1
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=22fb9f16
+nbproject/build-impl.xml.data.CRC32=45912724
nbproject/build-impl.xml.script.CRC32=e0c60086
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.67.1
diff --git a/nbproject/project.xml b/nbproject/project.xml
index 154e67c..1b9e74d 100644
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -31,6 +31,14 @@
1.51.1
+
+ org.openide.actions
+
+
+
+ 6.35.1
+
+
org.openide.awt
diff --git a/src/org/idp/laf/Color.java b/src/org/idp/laf/Color.java
index 8de7f24..a420874 100644
--- a/src/org/idp/laf/Color.java
+++ b/src/org/idp/laf/Color.java
@@ -18,16 +18,24 @@ public class Color implements Serializable{
public void printJava() {
- String res = "color_map.add(new Color(\"";
+ String res = "color_map.add(";
+ res += this.getString();
+ res += ");";
+ System.out.println(res);
+ }
+
+ public String getString() {
+
+ String res = "new org.idp.laf.Color(\"";
res += this.pname + "\", ";
if (this.cls ==SF)
{
- res += "Color.ColorClass.SF, ";
+ res += "org.idp.laf.Color.ColorClass.SF, ";
}
else
{
- res += "Color.ColorClass.AT, ";
+ res += "org.idp.laf.Color.ColorClass.AT, ";
}
res += R + ", ";
@@ -36,9 +44,10 @@ public class Color implements Serializable{
res += A + ", ";
res += "\"" +this.description + "\"";
- res += "));";
- System.out.println(res);
+ res += ")";
+ return res;
}
+
public enum ColorClass {
diff --git a/src/org/idp/laf/ColorTheme.java b/src/org/idp/laf/ColorTheme.java
index de400f2..50d4563 100644
--- a/src/org/idp/laf/ColorTheme.java
+++ b/src/org/idp/laf/ColorTheme.java
@@ -14,6 +14,8 @@ import java.util.HashMap;
*/
public class ColorTheme {
+// EDITOR THEME
+
//
private static final AttributeSetConfigured [] annotations = {
new AttributeSetConfigured ("Multiple Enabled and Disabled Breakpoints", new Color (255, 0, 255, 255), null, null, true, true, false, null, new Color (255, 0, 255, 255), null, null, null),
@@ -344,6 +346,32 @@ private static final AttributeSetConfigured [] lang_All_Languages = {
};
//
+// VERSIONONING THEME
+
+//
+public static final org.idp.laf.Color[] GIT = {
+ new org.idp.laf.Color("Modified In Working Tree", org.idp.laf.Color.ColorClass.AT, 62, 176, 176, 255, ""),
+ new org.idp.laf.Color("Conflict", org.idp.laf.Color.ColorClass.AT, 230, 31, 91, 255, ""),
+ new org.idp.laf.Color("Removed In Working Tree", org.idp.laf.Color.ColorClass.AT, 255, 135, 35, 255, ""),
+ new org.idp.laf.Color("Added In Working Tree", org.idp.laf.Color.ColorClass.AT, 121, 229, 31, 255, ""),
+ new org.idp.laf.Color("Added To Index", org.idp.laf.Color.ColorClass.AT, 150, 233, 82, 255, ""),
+ new org.idp.laf.Color("Additional Text Annotation", org.idp.laf.Color.ColorClass.AT, 166, 165, 165, 255, ""),
+ new org.idp.laf.Color("Ignored", org.idp.laf.Color.ColorClass.AT, 134, 134, 134, 255, ""),
+};
+//
+
+//
+public static final org.idp.laf.Color[] SVN = {
+};
+//
+
+//
+public static final org.idp.laf.Color[] HG = {
+};
+//
+
+
+
public static final HashMap > color_map;
static
diff --git a/src/org/idp/laf/Defaults.java b/src/org/idp/laf/Defaults.java
index 6419025..e01d195 100644
--- a/src/org/idp/laf/Defaults.java
+++ b/src/org/idp/laf/Defaults.java
@@ -378,6 +378,16 @@ public class Defaults {
color_map.add(new Color("nb.diff.sidebar.changed.color", Color.ColorClass.SF, 38, 29, 2, 255, "..."));
color_map.add(new Color("nb.diff.sidebar.deleted.color", Color.ColorClass.SF, 171, 66, 200, 255, "..."));
color_map.add(new Color("nb.versioning.tooltip.background.color", Color.ColorClass.SF, 0, 0, 255, 255, "..."));
+
+// "nb.versioning.added.color"
+// "nb.versioning.modified.color"
+// "nb.versioning.deleted.color"
+// "nb.versioning.conflicted.color"
+// "nb.versioning.ignored.color"
+// "nb.versioning.textannotation.color"
+
+
+
color_map.add(new Color("nb.formdesigner.gap.fixed.color", Color.ColorClass.SF, 142, 200, 230, 255, "..."));
color_map.add(new Color("nb.formdesigner.gap.resizing.color", Color.ColorClass.SF, 26, 72, 208, 255, "..."));
color_map.add(new Color("nb.formdesigner.gap.min.color", Color.ColorClass.SF, 134, 54, 215, 255, "..."));
diff --git a/src/org/idp/laf/TitanEditor.java b/src/org/idp/laf/TitanEditor.java
index 3429932..be53ba7 100644
--- a/src/org/idp/laf/TitanEditor.java
+++ b/src/org/idp/laf/TitanEditor.java
@@ -8,10 +8,15 @@ package org.idp.laf;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.AbstractMap;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.Map;
import java.util.Set;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
import javax.swing.text.AttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
@@ -28,12 +33,17 @@ public class TitanEditor {
private static final String EDITOR_SETTINGS_CLASS_NAME = "org.netbeans.api.editor.settings.EditorStyleConstants"; //NOI18N
private static final String ANNOTATION_TYPE_CLASS_NAME = "org.netbeans.editor.AnnotationType"; //NOI18N
+ private static final String PROVIDER_CLASS_NAME = "org.netbeans.modules.versioning.util.OptionsPanelColorProvider"; //NOI18N
+ private static final String PROVIDER_GIT_CLASS_NAME = "org.netbeans.modules.git.options.AnnotationColorProvider"; //NOI18N
+ private static final String PROVIDER_SVN_CLASS_NAME = "org.netbeans.modules.subversion.options.AnnotationColorProvider"; //NOI18N
+ private static final String PROVIDER_HG_CLASS_NAME = "org.netbeans.modules.mercurial.options.AnnotationColorProvider"; //NOI18N
+
private static final boolean no_load = false;
private static Class COLOR_MODEL;
private static Class EDITOR_SETTINGS;
private static Class ANNOTATION_TYPE;
-
+
private static Field DisplayName;
private static Field WaveUnderlineColor;
@@ -71,16 +81,33 @@ public class TitanEditor {
private static final String DEFAULT_THEME_NAME = "NetBeans"; //NOI18N
private static final String TITAN_THEME_NAME = "[idP!] Titan"; //NOI18N
+
+ private static Class provider_GIT = null;
+ private static Class provider_SVN = null;
+ private static Class provider_HG = null;
+ private static Class provider_CLASS = null;
+
+
+ private static Method provider_getInstance;
+ private static Method provider_getColors;
+ private static Method provider_colorsChanged;
+
+ private static ClassLoader working_classLoader = null;
+
+
+
+
private static boolean pre_load ()
{
- ClassLoader cl = Lookup.getDefault().lookup( ClassLoader.class );
- if( null != cl )
+ working_classLoader = Lookup.getDefault().lookup( ClassLoader.class );
+ if( null != working_classLoader )
{
try {
- COLOR_MODEL = cl.loadClass( COLOR_MODEL_CLASS_NAME );
- EDITOR_SETTINGS = cl.loadClass(EDITOR_SETTINGS_CLASS_NAME);
- ANNOTATION_TYPE = cl.loadClass(ANNOTATION_TYPE_CLASS_NAME);
+
+ COLOR_MODEL = working_classLoader.loadClass( COLOR_MODEL_CLASS_NAME );
+ EDITOR_SETTINGS = working_classLoader.loadClass(EDITOR_SETTINGS_CLASS_NAME);
+ ANNOTATION_TYPE = working_classLoader.loadClass(ANNOTATION_TYPE_CLASS_NAME);
DisplayName = EDITOR_SETTINGS.getField("DisplayName"); //NOI18N
WaveUnderlineColor = EDITOR_SETTINGS.getField("WaveUnderlineColor"); //NOI18N
@@ -88,10 +115,7 @@ public class TitanEditor {
getProfiles = COLOR_MODEL.getDeclaredMethod( "getProfiles", new Class[0] ); //NOI18N
getCurrentProfile = COLOR_MODEL.getDeclaredMethod( "getCurrentProfile", new Class[0] ); //NOI18N
setCurrentProfile = COLOR_MODEL.getDeclaredMethod( "setCurrentProfile", String.class ); //NOI18N
-
-
- //public java.net.URL getGlyph()
-
+
getHighlight = ANNOTATION_TYPE.getDeclaredMethod( "getHighlight", new Class[0] ); //NOI18N
getForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "getForegroundColor", new Class[0] ); //NOI18N
getWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "getWaveUnderlineColor", new Class[0] ); //NOI18N
@@ -100,15 +124,10 @@ public class TitanEditor {
setForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "setForegroundColor", java.awt.Color.class ); //NOI18N
setWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "setWaveUnderlineColor", java.awt.Color.class ); //NOI18N
-
-
-
-
isUseHighlightColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseHighlightColor", new Class[0] ); //NOI18N
isInheritForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "isInheritForegroundColor", new Class[0] ); //NOI18N
isUseWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseWaveUnderlineColor", new Class[0] ); //NOI18N
-
-
+
getAnnotations = COLOR_MODEL.getDeclaredMethod( "getAnnotations", String.class ); //NOI18N
getHighlightings = COLOR_MODEL.getDeclaredMethod( "getHighlightings", String.class ); //NOI18N
getCategories = COLOR_MODEL.getDeclaredMethod( "getCategories",String.class, String.class ); //NOI18N
@@ -122,6 +141,35 @@ public class TitanEditor {
const_DisplayName = DisplayName.get(EDITOR_SETTINGS);
const_WaveUnderlineColor = WaveUnderlineColor.get(EDITOR_SETTINGS);
colorModel = COLOR_MODEL.newInstance();
+
+ provider_CLASS = working_classLoader.loadClass(PROVIDER_CLASS_NAME);
+
+ if (provider_CLASS != null)
+ {
+
+ try {
+ provider_HG = working_classLoader.loadClass(PROVIDER_HG_CLASS_NAME);
+ } catch (ClassNotFoundException ex) {
+ //Exceptions.printStackTrace(ex);
+ }
+
+ try {
+ provider_SVN = working_classLoader.loadClass(PROVIDER_SVN_CLASS_NAME);
+ } catch (ClassNotFoundException ex) {
+ //Exceptions.printStackTrace(ex);
+ }
+
+ try {
+ provider_GIT = working_classLoader.loadClass(PROVIDER_GIT_CLASS_NAME);
+ } catch (ClassNotFoundException ex) {
+ //Exceptions.printStackTrace(ex);
+ }
+
+ provider_getColors = provider_CLASS.getDeclaredMethod( "getColors", new Class[0] ); //NOI18N
+ provider_colorsChanged = provider_CLASS.getDeclaredMethod( "colorsChanged", Map.class ); //NOI18N
+
+ }
+
return true;
} catch (ClassNotFoundException ex) {
Exceptions.printStackTrace(ex);
@@ -166,6 +214,103 @@ public class TitanEditor {
//}
}
+ private static void extractColorsForModule (String name, Class provider) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
+ {
+ ;
+ String res = "// " +
+ "\npublic static final org.idp.laf.Color[] " + name + " = {\n";
+ if (provider != null)
+ {
+ ArrayList colors_list = new ArrayList();
+
+ try {
+ provider_getInstance = provider.getDeclaredMethod( "getInstance", new Class[0] ); //NOI18N
+
+ Object provider_obj = provider_getInstance.invoke(null, new Object[0]);
+
+ Map colors = (Map) provider_getColors.invoke(provider_obj, new Object[0]);
+
+
+
+ for (String str : colors.keySet())
+ {
+
+ java.awt.Color[] val_arr = colors.get(str);
+ java.awt.Color cc = val_arr[0];
+ //System.out.println("val_arr L = " + val_arr.length);
+
+ res += " " + (new Color(str, Color.ColorClass.AT,
+ cc.getRed(),
+ cc.getGreen(),
+ cc.getBlue(),
+ cc.getAlpha(), "")).getString() + ",\n";
+
+
+// colors_list.add);
+ }
+ } catch (NoSuchMethodException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (SecurityException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ for (org.idp.laf.Color cc : colors_list)
+ {
+ res += cc.getString() + ",\n";
+ }
+
+ }
+ res += "};\n";
+ res += "// \n";
+
+
+ System.out.println(res);
+ }
+
+ private static void applyColorForModule (Class provider, org.idp.laf.Color[] colors_theme) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
+ {
+ if (provider != null)
+ {
+ try
+ {
+ provider_getInstance = provider.getDeclaredMethod( "getInstance", new Class[0] ); //NOI18N
+
+ Object provider_obj = provider_getInstance.invoke(null, new Object[0]);
+
+ Map colors = (Map) provider_getColors.invoke(provider_obj, new Object[0]);
+
+ Map new_colours = new HashMap();
+ boolean found_new = false;
+ for (String str : colors.keySet())
+ {
+ found_new = false;
+ for (org.idp.laf.Color cc : colors_theme)
+ {
+ if (cc.getName().equals(str))
+ {
+ java.awt.Color toSet = (java.awt.Color) cc.getObject();
+ new_colours.put(str, toSet);
+ found_new = true;
+ break;
+ }
+ }
+ if (!found_new)
+ {
+ new_colours.put(str, colors.get(str)[0]);
+ }
+ }
+
+ provider_colorsChanged.invoke(provider_obj, new_colours);
+
+ } catch (NoSuchMethodException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (SecurityException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ }
+ }
+
public static void load_editor ()
{
if (!pre_load()) return;
@@ -196,6 +341,14 @@ public class TitanEditor {
process_set (str, category, false);
}
}
+
+ extractColorsForModule ("GIT", provider_GIT);
+ extractColorsForModule ("SVN", provider_SVN);
+ extractColorsForModule ("HG", provider_HG);
+
+
+
+
}
else
{
@@ -223,7 +376,11 @@ public class TitanEditor {
}
}
-
+
+ applyColorForModule (provider_GIT, ColorTheme.GIT);
+ applyColorForModule (provider_SVN, ColorTheme.SVN);
+ applyColorForModule (provider_HG, ColorTheme.HG);
+
}
} catch (IllegalAccessException ex) {
Exceptions.printStackTrace(ex);