|
|
|
|
@ -17,6 +17,7 @@ import java.util.Map;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
import java.util.prefs.BackingStoreException;
|
|
|
|
|
import java.util.prefs.Preferences;
|
|
|
|
|
import javax.swing.UIManager;
|
|
|
|
|
import javax.swing.text.AttributeSet;
|
|
|
|
|
import javax.swing.text.SimpleAttributeSet;
|
|
|
|
|
import javax.swing.text.StyleConstants;
|
|
|
|
|
@ -37,6 +38,7 @@ public class TitanEditor {
|
|
|
|
|
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 String PROVIDER_DIFF_CLASS_NAME = "org.netbeans.modules.diff.DiffModuleConfig"; //NOI18N
|
|
|
|
|
|
|
|
|
|
private static final boolean no_load = false;
|
|
|
|
|
|
|
|
|
|
@ -86,16 +88,101 @@ public class TitanEditor {
|
|
|
|
|
private static Class provider_SVN = null;
|
|
|
|
|
private static Class provider_HG = null;
|
|
|
|
|
private static Class provider_CLASS = null;
|
|
|
|
|
private static Class provider_DIFF = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static Method provider_getInstance;
|
|
|
|
|
private static Method provider_getColors;
|
|
|
|
|
private static Method provider_colorsChanged;
|
|
|
|
|
|
|
|
|
|
private static Method provider_getDefault;
|
|
|
|
|
private static Method provider_getPreferences;
|
|
|
|
|
|
|
|
|
|
private static ClassLoader working_classLoader = null;
|
|
|
|
|
|
|
|
|
|
private static void extractDiffModule () throws IllegalAccessException
|
|
|
|
|
{
|
|
|
|
|
HashMap <String, Integer> linkMap = new HashMap<String, Integer>();
|
|
|
|
|
|
|
|
|
|
java.awt.Color nb_diff_added_color = (java.awt.Color) UIManager.get ("nb.diff.added.color");
|
|
|
|
|
java.awt.Color nb_diff_changed_color = (java.awt.Color) UIManager.get ("nb.diff.changed.color");
|
|
|
|
|
java.awt.Color nb_diff_deleted_color = (java.awt.Color) UIManager.get ("nb.diff.deleted.color");
|
|
|
|
|
java.awt.Color nb_diff_applied_color = (java.awt.Color) UIManager.get ("nb.diff.applied.color");
|
|
|
|
|
java.awt.Color nb_diff_notapplied_color = (java.awt.Color) UIManager.get ("nb.diff.notapplied.color");
|
|
|
|
|
java.awt.Color nb_diff_unresolved_color = (java.awt.Color) UIManager.get ("nb.diff.unresolved.color");
|
|
|
|
|
java.awt.Color nb_diff_sidebar_deleted_color = (java.awt.Color) UIManager.get ("nb.diff.sidebar.deleted.color");
|
|
|
|
|
java.awt.Color nb_diff_sidebar_changed_color = (java.awt.Color) UIManager.get ("nb.diff.sidebar.changed.color");
|
|
|
|
|
|
|
|
|
|
String[] keys =
|
|
|
|
|
{
|
|
|
|
|
"addedColor",
|
|
|
|
|
"changedColor",
|
|
|
|
|
"deletedColor",
|
|
|
|
|
"merge.appliedColor",
|
|
|
|
|
"merge.notappliedColor",
|
|
|
|
|
"merge.unresolvedColor",
|
|
|
|
|
"sidebar.changedColor",
|
|
|
|
|
"sidebar.deletedColor"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
linkMap.put("addedColor" , nb_diff_added_color.getRGB());
|
|
|
|
|
linkMap.put("changedColor" , nb_diff_changed_color.getRGB());
|
|
|
|
|
linkMap.put("deletedColor" , nb_diff_deleted_color.getRGB());
|
|
|
|
|
linkMap.put("merge.appliedColor" , nb_diff_applied_color.getRGB());
|
|
|
|
|
linkMap.put("merge.notappliedColor" , nb_diff_notapplied_color.getRGB());
|
|
|
|
|
linkMap.put("merge.unresolvedColor" , nb_diff_unresolved_color.getRGB());
|
|
|
|
|
linkMap.put("sidebar.changedColor" , nb_diff_sidebar_deleted_color.getRGB());
|
|
|
|
|
linkMap.put("sidebar.deletedColor" , nb_diff_sidebar_changed_color.getRGB());
|
|
|
|
|
|
|
|
|
|
String res = "// <editor-fold desc=\"DIFF\" defaultstate=\"collapsed\">" +
|
|
|
|
|
"\npublic static final org.idp.laf.Color[] DIFF = {\n";
|
|
|
|
|
|
|
|
|
|
if (provider_DIFF != null)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
Object defaults = provider_getDefault.invoke(null, new Object[0]);
|
|
|
|
|
Preferences preferences = (Preferences) provider_getPreferences.invoke(defaults, new Object[0]);
|
|
|
|
|
for (int i = 0; i < keys.length; i ++)
|
|
|
|
|
{
|
|
|
|
|
java.awt.Color c = new java.awt.Color(preferences.getInt(keys[i], linkMap.get(keys[i])));
|
|
|
|
|
|
|
|
|
|
res += " " + (new Color(keys[i], Color.ColorClass.AT,
|
|
|
|
|
c.getRed(),
|
|
|
|
|
c.getGreen(),
|
|
|
|
|
c.getBlue(),
|
|
|
|
|
c.getAlpha(), "")).getString();
|
|
|
|
|
|
|
|
|
|
if (i != keys.length - 1)
|
|
|
|
|
{
|
|
|
|
|
res += ", \n";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
res += "\n";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (InvocationTargetException ex) {
|
|
|
|
|
Exceptions.printStackTrace(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res += "};\n";
|
|
|
|
|
res += "// </editor-fold>\n";
|
|
|
|
|
System.out.println(res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void applyColorForDiffModule () throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
|
|
|
|
|
{
|
|
|
|
|
Object defaults = provider_getDefault.invoke(null, new Object[0]);
|
|
|
|
|
Preferences preferences = (Preferences) provider_getPreferences.invoke(defaults, new Object[0]);
|
|
|
|
|
|
|
|
|
|
for (org.idp.laf.Color cc : ColorTheme.DIFF)
|
|
|
|
|
{
|
|
|
|
|
preferences.putInt(cc.getPname(), ((java.awt.Color)cc.getObject()).getRGB());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static boolean pre_load ()
|
|
|
|
|
@ -143,27 +230,28 @@ public class TitanEditor {
|
|
|
|
|
colorModel = COLOR_MODEL.newInstance();
|
|
|
|
|
|
|
|
|
|
provider_CLASS = working_classLoader.loadClass(PROVIDER_CLASS_NAME);
|
|
|
|
|
provider_DIFF = working_classLoader.loadClass(PROVIDER_DIFF_CLASS_NAME);
|
|
|
|
|
|
|
|
|
|
if (provider_DIFF != null)
|
|
|
|
|
{
|
|
|
|
|
provider_getDefault = provider_DIFF.getDeclaredMethod( "getDefault", new Class[0] ); //NOI18N
|
|
|
|
|
provider_getPreferences = provider_DIFF.getDeclaredMethod( "getPreferences", new Class[0] ); //NOI18N
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (provider_CLASS != null)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
provider_HG = working_classLoader.loadClass(PROVIDER_HG_CLASS_NAME);
|
|
|
|
|
} catch (ClassNotFoundException ex) {
|
|
|
|
|
//Exceptions.printStackTrace(ex);
|
|
|
|
|
}
|
|
|
|
|
} catch (ClassNotFoundException ex) {}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
provider_SVN = working_classLoader.loadClass(PROVIDER_SVN_CLASS_NAME);
|
|
|
|
|
} catch (ClassNotFoundException ex) {
|
|
|
|
|
//Exceptions.printStackTrace(ex);
|
|
|
|
|
}
|
|
|
|
|
} catch (ClassNotFoundException ex) {}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
provider_GIT = working_classLoader.loadClass(PROVIDER_GIT_CLASS_NAME);
|
|
|
|
|
} catch (ClassNotFoundException ex) {
|
|
|
|
|
//Exceptions.printStackTrace(ex);
|
|
|
|
|
}
|
|
|
|
|
} catch (ClassNotFoundException ex) {}
|
|
|
|
|
|
|
|
|
|
provider_getColors = provider_CLASS.getDeclaredMethod( "getColors", new Class[0] ); //NOI18N
|
|
|
|
|
provider_colorsChanged = provider_CLASS.getDeclaredMethod( "colorsChanged", Map.class ); //NOI18N
|
|
|
|
|
@ -347,7 +435,7 @@ public class TitanEditor {
|
|
|
|
|
extractColorsForModule ("HG", provider_HG);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extractDiffModule();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
@ -381,6 +469,9 @@ public class TitanEditor {
|
|
|
|
|
applyColorForModule (provider_SVN, ColorTheme.SVN);
|
|
|
|
|
applyColorForModule (provider_HG, ColorTheme.HG);
|
|
|
|
|
|
|
|
|
|
applyColorForDiffModule ();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} catch (IllegalAccessException ex) {
|
|
|
|
|
Exceptions.printStackTrace(ex);
|
|
|
|
|
|