Skip to content

Commit d258c34

Browse files
committed
ref #6 show all themes; refactor to simplify; add comments;
1 parent 05467bf commit d258c34

File tree

3 files changed

+75
-12
lines changed

3 files changed

+75
-12
lines changed

README.md

+10
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ Default themes for a Category are defined in `pm.eclipse.editbox\src\pm\eclipse\
8282
In eclipse with PDE (e.g. Enide Studio)
8383
open `plugin.xml` , click `Launch an Eclipse application`.
8484

85+
Preferences are saved to file
86+
`<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\pm.eclipse.editbox.prefs`
87+
see `pm.eclipse.editbox\docs` for an example.
88+
89+
### Terms
90+
91+
Provider is Category.
92+
Catalog is list of Themes.
93+
Theme is set of colors.
94+
8595
### Build
8696

8797
`mvn package` to make update site and zip archive.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
ENABLED=true
2+
eclipse.preferences.version=1
3+
pm.eclipse.editbox.provider.JavaScript_catalog=Default
4+
pm.eclipse.editbox.provider.java_Default=\#COMMENT\r\n\#Thu Apr 24 10\:02\:18 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
5+
pm.eclipse.editbox.provider.java_catalog=Default
6+
pm.eclipse.editbox.provider.java_default=Default
7+
pm.eclipse.editbox.provider.java_enabled=true
8+
pm.eclipse.editbox.provider.java_fileNames=*.java,*.class
9+
pm.eclipse.editbox.provider.js_Default=\#COMMENT\r\n\#Thu Apr 24 10\:02\:18 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
10+
pm.eclipse.editbox.provider.js_default=Default
11+
pm.eclipse.editbox.provider.js_enabled=true
12+
pm.eclipse.editbox.provider.js_fileNames=*.js
13+
pm.eclipse.editbox.provider.markup_Default=\#COMMENT\r\n\#Thu Apr 24 10\:02\:18 CST 2014\r\nHighlightOne\=false\r\nFillGradient\=true\r\nFillSelected\=true\r\nRoundBox\=false\r\nBorderColorType\=1\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\=808080\r\nFillKeyModifier\=null\r\nHighlightColorType\=3\r\nFillGradientColor\=dadcc2\r\nBuilder\=Markup\r\nHighlightDrawLine\=false\r\nFillSelectedColor\=ffffff\r\nBorderLineStyle\=0\r\nColors\=d4d0c8-d9dbc0-dee6b8\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=true\r\n
14+
pm.eclipse.editbox.provider.markup_default=Default
15+
pm.eclipse.editbox.provider.markup_enabled=true
16+
pm.eclipse.editbox.provider.markup_fileNames=*.*ml,*.jsp
17+
pm.eclipse.editbox.provider.python_Default=\#COMMENT\r\n\#Thu Apr 24 10\:02\:18 CST 2014\r\nHighlightOne\=true\r\nFillGradient\=false\r\nFillSelected\=true\r\nRoundBox\=true\r\nBorderColorType\=1\r\nName\=Default\r\nExpandBox\=false\r\nBorderDrawLine\=true\r\nFillOnMove\=true\r\nAlpha\=0\r\nHighlightWidth\=1\r\nBorderWidth\=1\r\nHighlightColor\=000000\r\nBorderColor\=00bbbb\r\nFillKeyModifier\=Alt\r\nHighlightColorType\=3\r\nFillGradientColor\=e1e1d0\r\nBuilder\=Text2\r\nHighlightDrawLine\=false\r\nFillSelectedColor\=e1e1d0\r\nBorderLineStyle\=0\r\nColors\=ffffff\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
18+
pm.eclipse.editbox.provider.python_default=Default
19+
pm.eclipse.editbox.provider.python_enabled=true
20+
pm.eclipse.editbox.provider.python_fileNames=*.py
21+
pm.eclipse.editbox.provider.text_Default=\#COMMENT\r\n\#Thu Apr 24 10\:02\:18 CST 2014\r\nHighlightOne\=true\r\nFillGradient\=false\r\nFillSelected\=true\r\nRoundBox\=true\r\nBorderColorType\=1\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\=2\r\nFillGradientColor\=null\r\nBuilder\=Text\r\nHighlightDrawLine\=false\r\nFillSelectedColor\=ffffc4\r\nBorderLineStyle\=0\r\nColors\=c4c7b1-d0dd9b-cdd8b9-e2e3ac-f2fabc\r\nHighlightLineStyle\=0\r\nNoBackground\=false\r\nCirculateLevelColors\=false\r\n
22+
pm.eclipse.editbox.provider.text_default=Default
23+
pm.eclipse.editbox.provider.text_enabled=false
24+
pm.eclipse.editbox.provider.text_fileNames=*.txt,*.*
25+
proivders=java,python,markup,text,js

pm.eclipse.editbox/src/pm/eclipse/editbox/impl/BoxProviderRegistry.java

+40-12
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.List;
99
import java.util.Map;
1010

11+
import org.eclipse.jface.preference.IPreferenceStore;
1112
import org.eclipse.ui.IPartListener2;
1213
import org.eclipse.ui.IPartService;
1314
import org.eclipse.ui.IWorkbenchPart;
@@ -17,12 +18,15 @@
1718
import pm.eclipse.editbox.IBoxProvider;
1819

1920
/**
21+
* Default settings
2022
* @author Piotr Metel
2123
* @author Paul Verest : added "RainbowDrops" and ALL_THEMES_LIST to be used in every category
2224
*/
2325
public class BoxProviderRegistry {
2426

25-
private static final String PROIVDERS = "proivders";
27+
//used to get Preferences, if changed, user preferences are gone after update
28+
private static final String PROVIDERS = "proivders";
29+
// always added. Is it useless?
2630
private static final String PROVIDER_ID_ = "pm.eclipse.editbox.provider.";
2731
//+
2832
private static final List<String> ALL_THEMES_LIST = Arrays.asList(
@@ -35,24 +39,47 @@ public class BoxProviderRegistry {
3539
protected Map<IWorkbenchPart, IBoxDecorator> decorators;
3640
protected Map<IPartService, IPartListener2> partListeners;
3741

42+
//
3843
public Collection<IBoxProvider> getBoxProviders() {
39-
if (providers == null)
40-
providers = loadProviders();
41-
if (providers == null)
44+
if (providers == null){
45+
providers = loadProvidersFromPreferences();
46+
}
47+
if (providers == null){
4248
providers = defaultProviders();
49+
}else{
50+
// comparing providers from Preferences with defaultProviders
51+
// can be here
52+
// proivders=java,python,markup,text,js
53+
// createProvider(String name)
54+
//
55+
}
4356
return providers;
4457
}
4558

46-
protected Collection<IBoxProvider> loadProviders() {
59+
//{ like in BoxSettingsStoreImpl
60+
protected IPreferenceStore store;
61+
protected IPreferenceStore getStore(){
62+
if (store == null)
63+
store = EditBox.getDefault().getPreferenceStore();
64+
return store;
65+
}
66+
//}
67+
68+
// Preferences have string like
69+
// proivders=java,python,markup,text,js
70+
// calls createProvider(name)
71+
protected Collection<IBoxProvider> loadProvidersFromPreferences() {
4772
List<IBoxProvider> result = null;
48-
String pSetting = EditBox.getDefault().getPreferenceStore().getString(PROIVDERS);
73+
String pSetting = getStore().getString(PROVIDERS);
4974
if (pSetting != null && pSetting.length() > 0) {
5075
String[] split = pSetting.split(",");
5176
if (split.length > 0)
5277
result = new ArrayList<IBoxProvider>();
53-
for (String s : split)
54-
if (s.trim().length() > 0)
55-
result.add(createProvider(s.trim()));
78+
for (String s : split){
79+
String name = s.trim();
80+
if (name.length() > 0)
81+
result.add(createProvider(name));
82+
}
5683
}
5784
return result;
5885
}
@@ -68,7 +95,7 @@ public void storeProviders(){
6895
if (sb.length()!=0) sb.append(",");
6996
sb.append(p.getName());
7097
}
71-
EditBox.getDefault().getPreferenceStore().setValue(PROIVDERS,sb.toString());
98+
getStore().setValue(PROVIDERS,sb.toString());
7299
}
73100
}
74101

@@ -93,14 +120,15 @@ protected Collection<IBoxProvider> defaultProviders() {
93120
}
94121

95122
/**
96-
* is used in createProviderForNameAndExtentions() and providerForName()
123+
* is used in createProviderForNameAndExtentions(), providerForName()
124+
* and loadProviders() to load from Preferences
97125
*/
98126
protected BoxProviderImpl createProvider(String name) {
99127
BoxProviderImpl provider = new BoxProviderImpl();
100128
provider.setId(PROVIDER_ID_ + name);
101129
provider.setName(name);
102130
provider.setBuilders(defaultBuilders());
103-
provider.setDefaultSettingsCatalog(Arrays.asList("Default"));
131+
provider.setDefaultSettingsCatalog(ALL_THEMES_LIST); // was Arrays.asList("Default")
104132
return provider;
105133
}
106134

0 commit comments

Comments
 (0)