Skip to content

Commit

Permalink
ref #6 show all themes; refactor to simplify; add comments;
Browse files Browse the repository at this point in the history
  • Loading branch information
paulvi committed Apr 28, 2014
1 parent 05467bf commit d258c34
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 12 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,16 @@ Default themes for a Category are defined in `pm.eclipse.editbox\src\pm\eclipse\
In eclipse with PDE (e.g. Enide Studio)
open `plugin.xml` , click `Launch an Eclipse application`.

Preferences are saved to file
`<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\pm.eclipse.editbox.prefs`
see `pm.eclipse.editbox\docs` for an example.

### Terms

Provider is Category.
Catalog is list of Themes.
Theme is set of colors.

### Build

`mvn package` to make update site and zip archive.
Expand Down
25 changes: 25 additions & 0 deletions pm.eclipse.editbox/docs/1pm.eclipse.editbox.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
ENABLED=true
eclipse.preferences.version=1
pm.eclipse.editbox.provider.JavaScript_catalog=Default
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
pm.eclipse.editbox.provider.java_catalog=Default
pm.eclipse.editbox.provider.java_default=Default
pm.eclipse.editbox.provider.java_enabled=true
pm.eclipse.editbox.provider.java_fileNames=*.java,*.class
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
pm.eclipse.editbox.provider.js_default=Default
pm.eclipse.editbox.provider.js_enabled=true
pm.eclipse.editbox.provider.js_fileNames=*.js
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
pm.eclipse.editbox.provider.markup_default=Default
pm.eclipse.editbox.provider.markup_enabled=true
pm.eclipse.editbox.provider.markup_fileNames=*.*ml,*.jsp
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
pm.eclipse.editbox.provider.python_default=Default
pm.eclipse.editbox.provider.python_enabled=true
pm.eclipse.editbox.provider.python_fileNames=*.py
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
pm.eclipse.editbox.provider.text_default=Default
pm.eclipse.editbox.provider.text_enabled=false
pm.eclipse.editbox.provider.text_fileNames=*.txt,*.*
proivders=java,python,markup,text,js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.List;
import java.util.Map;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.IPartService;
import org.eclipse.ui.IWorkbenchPart;
Expand All @@ -17,12 +18,15 @@
import pm.eclipse.editbox.IBoxProvider;

/**
* Default settings
* @author Piotr Metel
* @author Paul Verest : added "RainbowDrops" and ALL_THEMES_LIST to be used in every category
*/
public class BoxProviderRegistry {

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

//
public Collection<IBoxProvider> getBoxProviders() {
if (providers == null)
providers = loadProviders();
if (providers == null)
if (providers == null){
providers = loadProvidersFromPreferences();
}
if (providers == null){
providers = defaultProviders();
}else{
// comparing providers from Preferences with defaultProviders
// can be here
// proivders=java,python,markup,text,js
// createProvider(String name)
//
}
return providers;
}

protected Collection<IBoxProvider> loadProviders() {
//{ like in BoxSettingsStoreImpl
protected IPreferenceStore store;
protected IPreferenceStore getStore(){
if (store == null)
store = EditBox.getDefault().getPreferenceStore();
return store;
}
//}

// Preferences have string like
// proivders=java,python,markup,text,js
// calls createProvider(name)
protected Collection<IBoxProvider> loadProvidersFromPreferences() {
List<IBoxProvider> result = null;
String pSetting = EditBox.getDefault().getPreferenceStore().getString(PROIVDERS);
String pSetting = getStore().getString(PROVIDERS);
if (pSetting != null && pSetting.length() > 0) {
String[] split = pSetting.split(",");
if (split.length > 0)
result = new ArrayList<IBoxProvider>();
for (String s : split)
if (s.trim().length() > 0)
result.add(createProvider(s.trim()));
for (String s : split){
String name = s.trim();
if (name.length() > 0)
result.add(createProvider(name));
}
}
return result;
}
Expand All @@ -68,7 +95,7 @@ public void storeProviders(){
if (sb.length()!=0) sb.append(",");
sb.append(p.getName());
}
EditBox.getDefault().getPreferenceStore().setValue(PROIVDERS,sb.toString());
getStore().setValue(PROVIDERS,sb.toString());
}
}

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

/**
* is used in createProviderForNameAndExtentions() and providerForName()
* is used in createProviderForNameAndExtentions(), providerForName()
* and loadProviders() to load from Preferences
*/
protected BoxProviderImpl createProvider(String name) {
BoxProviderImpl provider = new BoxProviderImpl();
provider.setId(PROVIDER_ID_ + name);
provider.setName(name);
provider.setBuilders(defaultBuilders());
provider.setDefaultSettingsCatalog(Arrays.asList("Default"));
provider.setDefaultSettingsCatalog(ALL_THEMES_LIST); // was Arrays.asList("Default")
return provider;
}

Expand Down

0 comments on commit d258c34

Please sign in to comment.