1414import pm .eclipse .editbox .IBoxSettingsStore ;
1515
1616
17+ /**
18+ * Saving to pm.eclipse.editbox.prefs
19+ <pre>
20+ pm.eclipse.editbox.provider.java_Default=\#COMMENT\r\n\#Mon Jun 30 17\:24\:47 CST 2014\r\nHighlightOne\=false\r\nFillGradient\=false\r\nFillSelected\=true\r\nRoundBox\=true\r\nBorderColorType\=1\r\nName\=Default\r\nExpandBox\=false\r\nBorderDrawLine\=false\r\nFillOnMove\=true\r\nAlpha\=0\r\nHighlightWidth\=1\r\nBorderWidth\=1\r\nHighlightColor\=acb3b7\r\nBorderColor\=c0c0c0\r\nFillKeyModifier\=Alt\r\nHighlightColorType\=3\r\nFillGradientColor\=dadcc2\r\nBuilder\=Java\r\nHighlightDrawLine\=false\r\nFillSelectedColor\=ffffff\r\nBorderLineStyle\=2\r\nColors\=ffffff-c5d0ac-d9e3b7-e8ecd9\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
21+ pm.eclipse.editbox.provider.java_RainbowDrops=\#COMMENT\r\n\#Wed Jul 09 17\:06\:50 CST 2014\r\nHighlightOne\=true\r\nFillGradient\=false\r\nFillSelected\=false\r\nRoundBox\=false\r\nBorderColorType\=0\r\nName\=RainbowDrops\r\nExpandBox\=false\r\nBorderDrawLine\=true\r\nFillOnMove\=false\r\nAlpha\=0\r\nHighlightWidth\=1\r\nBorderWidth\=1\r\nHighlightColor\=00ff00\r\nBorderColor\=00bbbb\r\nFillKeyModifier\=Alt\r\nHighlightColorType\=0\r\nFillGradientColor\=null\r\nBuilder\=Java\r\nHighlightDrawLine\=true\r\nFillSelectedColor\=202020\r\nBorderLineStyle\=1\r\nColors\=202020-null\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
22+ pm.eclipse.editbox.provider.java_catalog=Default,Whitebox,OnClick,GreyGradient,Java_v_20,RainbowDropsLine,RainbowDropsLineFill,BlueToDeepBlue,OrangeToRed,BlueGradient22WithDarkBoldLeftBorder,BlueLight,Java_PaleBlue,RainbowDrops
23+ pm.eclipse.editbox.provider.java_default=RainbowDrops
24+ pm.eclipse.editbox.provider.java_enabled=true
25+ pm.eclipse.editbox.provider.java_fileNames=*.java,*.class,*.gradle,*.groovy,*.scala
26+ pm.eclipse.editbox.provider.js_Default=\#COMMENT\r\n\#Fri Jul 04 11\:28\:13 CST 2014\r\nHighlightOne\=true\r\nFillGradient\=false\r\nFillSelected\=true\r\nRoundBox\=true\r\nBorderColorType\=0\r\nName\=Default\r\nExpandBox\=false\r\nBorderDrawLine\=false\r\nFillOnMove\=false\r\nAlpha\=0\r\nHighlightWidth\=1\r\nBorderWidth\=1\r\nHighlightColor\=000000\r\nBorderColor\=00bbbb\r\nFillKeyModifier\=Alt\r\nHighlightColorType\=0\r\nFillGradientColor\=null\r\nBuilder\=Text\r\nHighlightDrawLine\=false\r\nFillSelectedColor\=ffffc4\r\nBorderLineStyle\=0\r\nColors\=null-d0dd9b-cdd8b9-e9f58b\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
27+ pm.eclipse.editbox.provider.js_RainbowDropsLineFill=\#COMMENT\r\n\#Wed Jul 09 17\:06\:50 CST 2014\r\nHighlightOne\=true\r\nFillGradient\=false\r\nFillSelected\=true\r\nRoundBox\=false\r\nBorderColorType\=0\r\nName\=RainbowDropsLineFill\r\nExpandBox\=false\r\nBorderDrawLine\=true\r\nFillOnMove\=true\r\nAlpha\=0\r\nHighlightWidth\=1\r\nBorderWidth\=1\r\nHighlightColor\=00ff00\r\nBorderColor\=00bbbb\r\nFillKeyModifier\=\r\nHighlightColorType\=0\r\nFillGradientColor\=null\r\nBuilder\=Java\r\nHighlightDrawLine\=true\r\nFillSelectedColor\=000080\r\nBorderLineStyle\=1\r\nColors\=202020-null\r\nHighlightLineStyle\=1\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
28+ pm.eclipse.editbox.provider.js_default=RainbowDropsLineFill
29+ pm.eclipse.editbox.provider.js_enabled=true
30+ pm.eclipse.editbox.provider.js_fileNames=*.js,*.jjs,*.jshintrc,*.mjs,*.njs,*.pjs,*.vjs,*.ts,*.coffee,*.dart
31+ </pre>
32+ * where java or js is providerId
33+ * keys starting with Capital are actually themes names
34+ */
1735public class BoxSettingsStoreImpl implements IBoxSettingsStore {
1836
1937 private static final String FILE_NAMES = "fileNames" ;
2038 private static final String TXT_POSTFIX = "$txt" ;
21- private static final String DEFAULT = "default" ;
39+ private static final String DEFAULT = "default" ; //what theme to use as default
2240 private static final String ENABLED = "enabled" ;
41+ private static final String CATALOG = "catalog" ;
2342 protected String providerId ;
2443 protected IPreferenceStore store ;
2544 private Set <String > catalog ;
@@ -31,54 +50,60 @@ protected IPreferenceStore getStore(){
3150 return store ;
3251 }
3352
34- protected String key (String postfix ){
53+ protected String providerKey (String postfix ){
3554 return providerId +"_" +postfix ;
3655 }
3756
57+ @ Override
3858 public void setProviderId (String id ) {
3959 this .providerId = id ;
4060 }
4161
62+ @ Override
4263 public void loadDefaults (IBoxSettings editorsSettings ) {
43- String defaultName = getStore ().getString (key (DEFAULT ));
44- if (isEmpty (defaultName )) defaultName = providerId ;
45- load (defaultName ,editorsSettings );
46- }
47-
48- public void load (String name , IBoxSettings editorsSettings ) {
49- String value = getStore ().getString (key (name ));
50- if (!isEmpty (value ))
51- editorsSettings .load (value );
64+ String defaultThemeName = getStore ().getString (providerKey (DEFAULT ));
65+ if (isEmpty (defaultThemeName )){
66+ defaultThemeName = providerId ;
67+ }
68+ load (defaultThemeName , editorsSettings );
69+ }
70+
71+ @ Override
72+ public void load (String themeName , IBoxSettings editorsSettings ) {
73+ String themeInsideString = getStore ().getString (providerKey (themeName ));
74+ if (!isEmpty (themeInsideString ))
75+ editorsSettings .load (themeInsideString );
5276 else
5377 try {
54- editorsSettings .load (getClass ().getResourceAsStream ("/" +name + ".eb" ));
78+ editorsSettings .load (getClass ().getResourceAsStream ("/" +themeName + ".eb" ));
5579 } catch (Exception e ) {
56- EditBox .logError (this , "Error loading settings: " +name , e );
80+ EditBox .logError (this , "Error loading settings: " +themeName , e );
5781 }
5882 editorsSettings .setEnabled (getIsEnabled ());
5983 editorsSettings .setFileNames (getFileNames ());
6084 }
6185
62- protected boolean isEmpty (String s ) {
86+ protected static boolean isEmpty (String s ) {
6387 return s == null || s .length () == 0 ;
6488 }
6589
6690 protected boolean getIsEnabled () {
67- String key = key (ENABLED );
91+ String key = providerKey (ENABLED );
6892 if (getStore ().contains (key ))
6993 return getStore ().getBoolean (key );
7094 return true ;
7195 }
7296
97+ @ Override
7398 public void saveDefaults (IBoxSettings settings ) {
74- getStore ().setValue (key (ENABLED ), settings .getEnabled ()?"true" :"false" );
75- getStore ().setValue (key (DEFAULT ),settings .getName ());
99+ getStore ().setValue (providerKey (ENABLED ), settings .getEnabled ()?"true" :"false" );
100+ getStore ().setValue (providerKey (DEFAULT ), settings .getName ());
76101 store (settings );
77102 }
78103
79104 public void store (IBoxSettings settings ) {
80105 String name = settings .getName ();
81- getStore ().setValue (key (name ),settings .export ());
106+ getStore ().setValue (providerKey (name ),settings .export ());
82107 setFileNames (settings .getFileNames ());
83108 addToCatalog (name );
84109 EditBox .getDefault ().savePluginPreferences ();
@@ -98,13 +123,14 @@ private void storeCatalog(Set<String> cat) {
98123 if (sb .length ()>0 ) sb .append ("," );
99124 sb .append (c );
100125 }
101- getStore ().setValue (key ( "catalog" ), sb .toString ());
126+ getStore ().setValue (providerKey ( CATALOG ), sb .toString ());
102127 }
103128
129+ @ Override
104130 public Set <String > getCatalog () {
105131 if (catalog == null ){
106132 catalog = new LinkedHashSet <String >();
107- String cstr = getStore ().getString (key ( "catalog" ));
133+ String cstr = getStore ().getString (providerKey ( CATALOG ));
108134 if (!isEmpty (cstr ))
109135 for (String s : cstr .split ("," ))
110136 catalog .add (s );
@@ -119,11 +145,12 @@ public void setDefaultSettingsCatalog(Collection<String> cat){
119145 defaultCatalog = cat ;
120146 }
121147
148+ @ Override
122149 public void remove (String name ) {
123150 if (getCatalog ().remove (name ))
124151 storeCatalog (getCatalog ());
125- getStore ().setValue (key (name ), "" );
126- getStore ().setValue (key (name +TXT_POSTFIX ), "" );
152+ getStore ().setValue (providerKey (name ), "" );
153+ getStore ().setValue (providerKey (name +TXT_POSTFIX ), "" );
127154 EditBox .getDefault ().savePluginPreferences ();
128155 }
129156
@@ -138,14 +165,14 @@ protected void setFileNames(Collection<String> fileNames) {
138165 first = false ;
139166 }
140167 }
141- getStore ().setValue (key (FILE_NAMES ), sb .toString ());
168+ getStore ().setValue (providerKey (FILE_NAMES ), sb .toString ());
142169 }
143170
144171 /*
145172 * @return null if settings never stored before
146173 */
147174 protected Collection <String > getFileNames () {
148- String key = key (FILE_NAMES );
175+ String key = providerKey (FILE_NAMES );
149176
150177 if (!getStore ().contains (key ))
151178 return null ;
0 commit comments