Diff coloring done.

master
Wizard Atman 11 years ago
parent e41d91e7e1
commit f924dc2e0a

@ -370,6 +370,18 @@ public static final org.idp.laf.Color[] HG = {
}; };
// </editor-fold> // </editor-fold>
// <editor-fold desc="DIFF" defaultstate="collapsed">
public static final org.idp.laf.Color[] DIFF = {
new org.idp.laf.Color("addedColor", org.idp.laf.Color.ColorClass.AT, 48, 94, 9, 255, ""),
new org.idp.laf.Color("changedColor", org.idp.laf.Color.ColorClass.AT, 6, 63, 63, 255, ""),
new org.idp.laf.Color("deletedColor", org.idp.laf.Color.ColorClass.AT, 94, 9, 35, 255, ""),
new org.idp.laf.Color("merge.appliedColor", org.idp.laf.Color.ColorClass.AT, 30, 93, 93, 255, ""),
new org.idp.laf.Color("merge.notappliedColor", org.idp.laf.Color.ColorClass.AT, 138, 45, 73, 255, ""),
new org.idp.laf.Color("merge.unresolvedColor", org.idp.laf.Color.ColorClass.AT, 155, 98, 50, 255, ""),
new org.idp.laf.Color("sidebar.changedColor", org.idp.laf.Color.ColorClass.AT, 155, 98, 50, 255, ""),
new org.idp.laf.Color("sidebar.deletedColor", org.idp.laf.Color.ColorClass.AT, 87, 138, 45, 255, "")
};
// </editor-fold>
public static final HashMap <String, HashMap <String, AttributeSetConfigured>> color_map; public static final HashMap <String, HashMap <String, AttributeSetConfigured>> color_map;

@ -17,6 +17,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.prefs.BackingStoreException; import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences; import java.util.prefs.Preferences;
import javax.swing.UIManager;
import javax.swing.text.AttributeSet; import javax.swing.text.AttributeSet;
import javax.swing.text.SimpleAttributeSet; import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants; 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_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_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_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; private static final boolean no_load = false;
@ -86,16 +88,101 @@ public class TitanEditor {
private static Class provider_SVN = null; private static Class provider_SVN = null;
private static Class provider_HG = null; private static Class provider_HG = null;
private static Class provider_CLASS = null; private static Class provider_CLASS = null;
private static Class provider_DIFF = null;
private static Method provider_getInstance; private static Method provider_getInstance;
private static Method provider_getColors; private static Method provider_getColors;
private static Method provider_colorsChanged; private static Method provider_colorsChanged;
private static Method provider_getDefault;
private static Method provider_getPreferences;
private static ClassLoader working_classLoader = null; 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 () private static boolean pre_load ()
@ -105,68 +192,69 @@ public class TitanEditor {
{ {
try { try {
COLOR_MODEL = working_classLoader.loadClass( COLOR_MODEL_CLASS_NAME ); COLOR_MODEL = working_classLoader.loadClass( COLOR_MODEL_CLASS_NAME );
EDITOR_SETTINGS = working_classLoader.loadClass(EDITOR_SETTINGS_CLASS_NAME); EDITOR_SETTINGS = working_classLoader.loadClass(EDITOR_SETTINGS_CLASS_NAME);
ANNOTATION_TYPE = working_classLoader.loadClass(ANNOTATION_TYPE_CLASS_NAME); ANNOTATION_TYPE = working_classLoader.loadClass(ANNOTATION_TYPE_CLASS_NAME);
DisplayName = EDITOR_SETTINGS.getField("DisplayName"); //NOI18N DisplayName = EDITOR_SETTINGS.getField("DisplayName"); //NOI18N
WaveUnderlineColor = EDITOR_SETTINGS.getField("WaveUnderlineColor"); //NOI18N WaveUnderlineColor = EDITOR_SETTINGS.getField("WaveUnderlineColor"); //NOI18N
getProfiles = COLOR_MODEL.getDeclaredMethod( "getProfiles", new Class[0] ); //NOI18N getProfiles = COLOR_MODEL.getDeclaredMethod( "getProfiles", new Class[0] ); //NOI18N
getCurrentProfile = COLOR_MODEL.getDeclaredMethod( "getCurrentProfile", new Class[0] ); //NOI18N getCurrentProfile = COLOR_MODEL.getDeclaredMethod( "getCurrentProfile", new Class[0] ); //NOI18N
setCurrentProfile = COLOR_MODEL.getDeclaredMethod( "setCurrentProfile", String.class ); //NOI18N setCurrentProfile = COLOR_MODEL.getDeclaredMethod( "setCurrentProfile", String.class ); //NOI18N
getHighlight = ANNOTATION_TYPE.getDeclaredMethod( "getHighlight", new Class[0] ); //NOI18N getHighlight = ANNOTATION_TYPE.getDeclaredMethod( "getHighlight", new Class[0] ); //NOI18N
getForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "getForegroundColor", new Class[0] ); //NOI18N getForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "getForegroundColor", new Class[0] ); //NOI18N
getWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "getWaveUnderlineColor", new Class[0] ); //NOI18N getWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "getWaveUnderlineColor", new Class[0] ); //NOI18N
setHighlight = ANNOTATION_TYPE.getDeclaredMethod( "setHighlight", java.awt.Color.class ); //NOI18N setHighlight = ANNOTATION_TYPE.getDeclaredMethod( "setHighlight", java.awt.Color.class ); //NOI18N
setForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "setForegroundColor", java.awt.Color.class ); //NOI18N setForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "setForegroundColor", java.awt.Color.class ); //NOI18N
setWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "setWaveUnderlineColor", java.awt.Color.class ); //NOI18N setWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "setWaveUnderlineColor", java.awt.Color.class ); //NOI18N
isUseHighlightColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseHighlightColor", new Class[0] ); //NOI18N isUseHighlightColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseHighlightColor", new Class[0] ); //NOI18N
isInheritForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "isInheritForegroundColor", new Class[0] ); //NOI18N isInheritForegroundColor = ANNOTATION_TYPE.getDeclaredMethod( "isInheritForegroundColor", new Class[0] ); //NOI18N
isUseWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseWaveUnderlineColor", new Class[0] ); //NOI18N isUseWaveUnderlineColor = ANNOTATION_TYPE.getDeclaredMethod( "isUseWaveUnderlineColor", new Class[0] ); //NOI18N
getAnnotations = COLOR_MODEL.getDeclaredMethod( "getAnnotations", String.class ); //NOI18N getAnnotations = COLOR_MODEL.getDeclaredMethod( "getAnnotations", String.class ); //NOI18N
getHighlightings = COLOR_MODEL.getDeclaredMethod( "getHighlightings", String.class ); //NOI18N getHighlightings = COLOR_MODEL.getDeclaredMethod( "getHighlightings", String.class ); //NOI18N
getCategories = COLOR_MODEL.getDeclaredMethod( "getCategories",String.class, String.class ); //NOI18N getCategories = COLOR_MODEL.getDeclaredMethod( "getCategories",String.class, String.class ); //NOI18N
setAnnotations = COLOR_MODEL.getDeclaredMethod( "setAnnotations", String.class, Collection.class ); //NOI18N setAnnotations = COLOR_MODEL.getDeclaredMethod( "setAnnotations", String.class, Collection.class ); //NOI18N
setHighlightings = COLOR_MODEL.getDeclaredMethod( "setHighlightings", String.class, Collection.class ); //NOI18N setHighlightings = COLOR_MODEL.getDeclaredMethod( "setHighlightings", String.class, Collection.class ); //NOI18N
setCategories = COLOR_MODEL.getDeclaredMethod( "setCategories",String.class, String.class, Collection.class ); //NOI18N setCategories = COLOR_MODEL.getDeclaredMethod( "setCategories",String.class, String.class, Collection.class ); //NOI18N
getLanguages = COLOR_MODEL.getDeclaredMethod( "getLanguages", new Class[0] ); //NOI18N getLanguages = COLOR_MODEL.getDeclaredMethod( "getLanguages", new Class[0] ); //NOI18N
const_DisplayName = DisplayName.get(EDITOR_SETTINGS); const_DisplayName = DisplayName.get(EDITOR_SETTINGS);
const_WaveUnderlineColor = WaveUnderlineColor.get(EDITOR_SETTINGS); const_WaveUnderlineColor = WaveUnderlineColor.get(EDITOR_SETTINGS);
colorModel = COLOR_MODEL.newInstance(); colorModel = COLOR_MODEL.newInstance();
provider_CLASS = working_classLoader.loadClass(PROVIDER_CLASS_NAME); 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) if (provider_CLASS != null)
{ {
try { try {
provider_HG = working_classLoader.loadClass(PROVIDER_HG_CLASS_NAME); provider_HG = working_classLoader.loadClass(PROVIDER_HG_CLASS_NAME);
} catch (ClassNotFoundException ex) { } catch (ClassNotFoundException ex) {}
//Exceptions.printStackTrace(ex);
}
try { try {
provider_SVN = working_classLoader.loadClass(PROVIDER_SVN_CLASS_NAME); provider_SVN = working_classLoader.loadClass(PROVIDER_SVN_CLASS_NAME);
} catch (ClassNotFoundException ex) { } catch (ClassNotFoundException ex) {}
//Exceptions.printStackTrace(ex);
}
try { try {
provider_GIT = working_classLoader.loadClass(PROVIDER_GIT_CLASS_NAME); provider_GIT = working_classLoader.loadClass(PROVIDER_GIT_CLASS_NAME);
} catch (ClassNotFoundException ex) { } catch (ClassNotFoundException ex) {}
//Exceptions.printStackTrace(ex);
}
provider_getColors = provider_CLASS.getDeclaredMethod( "getColors", new Class[0] ); //NOI18N provider_getColors = provider_CLASS.getDeclaredMethod( "getColors", new Class[0] ); //NOI18N
provider_colorsChanged = provider_CLASS.getDeclaredMethod( "colorsChanged", Map.class ); //NOI18N provider_colorsChanged = provider_CLASS.getDeclaredMethod( "colorsChanged", Map.class ); //NOI18N
} }
@ -347,7 +435,7 @@ public class TitanEditor {
extractColorsForModule ("HG", provider_HG); extractColorsForModule ("HG", provider_HG);
extractDiffModule();
} }
else else
@ -381,6 +469,9 @@ public class TitanEditor {
applyColorForModule (provider_SVN, ColorTheme.SVN); applyColorForModule (provider_SVN, ColorTheme.SVN);
applyColorForModule (provider_HG, ColorTheme.HG); applyColorForModule (provider_HG, ColorTheme.HG);
applyColorForDiffModule ();
} }
} catch (IllegalAccessException ex) { } catch (IllegalAccessException ex) {
Exceptions.printStackTrace(ex); Exceptions.printStackTrace(ex);

Loading…
Cancel
Save