From: <mwl...@us...> - 2008-03-21 16:00:39
|
Revision: 662 http://cishell.svn.sourceforge.net/cishell/?rev=662&view=rev Author: mwlinnem Date: 2008-03-21 09:00:09 -0700 (Fri, 21 Mar 2008) Log Message: ----------- Commiting changes for user preferences. Added Paths: ----------- branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamMetaTypeProvider.java branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java Added: branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java =================================================================== --- branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java (rev 0) +++ branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java 2008-03-21 16:00:09 UTC (rev 662) @@ -0,0 +1,62 @@ +package org.cishell.reference.gui.menumanager.menu.metatypewrapper; + +import org.osgi.service.log.LogService; +import org.osgi.service.metatype.AttributeDefinition; + +public class ParamAD implements AttributeDefinition { + + private LogService log; + + private AttributeDefinition realAD; + + private String[] defaultValueOverride; + + public ParamAD(LogService log, AttributeDefinition realAD, String[] defaultValueOverride) { + this.log = log; + + this.realAD = realAD; + + this.defaultValueOverride = defaultValueOverride; + } + + public int getCardinality() { + return this.realAD.getCardinality(); + } + + public String[] getDefaultValue() { + if (defaultValueOverride != null) { + return defaultValueOverride; + } else { + return realAD.getDefaultValue(); + } + } + + public String getDescription() { + return this.realAD.getDescription(); + } + + public String getID() { + return this.realAD.getID(); + } + + public String getName() { + return this.realAD.getName(); + } + + public String[] getOptionLabels() { + return this.realAD.getOptionLabels(); + } + + public String[] getOptionValues() { + return this.realAD.getOptionValues(); + } + + public int getType() { + return this.realAD.getType(); + } + + public String validate(String value) { + return this.realAD.validate(value); + } + +} Added: branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamMetaTypeProvider.java =================================================================== --- branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamMetaTypeProvider.java (rev 0) +++ branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamMetaTypeProvider.java 2008-03-21 16:00:09 UTC (rev 662) @@ -0,0 +1,34 @@ +package org.cishell.reference.gui.menumanager.menu.metatypewrapper; + +import java.util.Dictionary; + +import org.osgi.service.log.LogService; +import org.osgi.service.metatype.MetaTypeProvider; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class ParamMetaTypeProvider implements MetaTypeProvider { + + private MetaTypeProvider realMTP; + + private Dictionary defaultOverrider; + + public ParamMetaTypeProvider(MetaTypeProvider realMTP, Dictionary defaultOverrider) { + this.realMTP = realMTP; + this.defaultOverrider = defaultOverrider; + } + + public String[] getLocales() { + return this.realMTP.getLocales(); + } + + public ObjectClassDefinition getObjectClassDefinition(String id, + String locale) { + ObjectClassDefinition ocd = realMTP.getObjectClassDefinition(id, locale); + if (ocd != null) { + return new ParamOCD(realMTP.getObjectClassDefinition(id, locale), defaultOverrider); + } else { + return null; + } + } + +} Added: branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java =================================================================== --- branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java (rev 0) +++ branches/user_prefs/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java 2008-03-21 16:00:09 UTC (rev 662) @@ -0,0 +1,77 @@ +package org.cishell.reference.gui.menumanager.menu.metatypewrapper; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Dictionary; + +import org.osgi.service.log.LogService; +import org.osgi.service.metatype.AttributeDefinition; +import org.osgi.service.metatype.ObjectClassDefinition; + +public class ParamOCD implements ObjectClassDefinition { + + private ObjectClassDefinition realOCD; + private ParamAD[] wrappedADs; + + private LogService log; + + private Dictionary defaultOverrider; + + public ParamOCD(ObjectClassDefinition realOCD, Dictionary defaultOverrider) { + this.realOCD = realOCD; + this.defaultOverrider = defaultOverrider; + + //TODO: don't always return all attributeDefinitions, regardless of filter + this.wrappedADs = wrapAttributeDefinitions(realOCD.getAttributeDefinitions(ObjectClassDefinition.ALL)); + } + + private ParamAD[] wrapAttributeDefinitions(AttributeDefinition[] realAttributeDefinitions) { + ParamAD[] wrappedADs = new ParamAD[realAttributeDefinitions.length]; + + for (int i = 0; i < realAttributeDefinitions.length; i++) { + AttributeDefinition realAD = realAttributeDefinitions[i]; + + String[] defaultOverrideValue = getDefaultOverrideValue(realAD.getID(), defaultOverrider); + + ParamAD wrappedAD = new ParamAD(this.log, realAD, defaultOverrideValue); + + wrappedADs[i] = wrappedAD; + } + + return wrappedADs; + } + + private String[] getDefaultOverrideValue(String overrideKey, Dictionary defaultOverrider) { + if (defaultOverrider != null) { + String defaultOverrideValue = (String) defaultOverrider.get(overrideKey); + if (defaultOverrideValue != null) { + return new String[]{defaultOverrideValue}; + } else { + return null; + } + } else { + return null; + } + } + + public AttributeDefinition[] getAttributeDefinitions(int filter) { + return wrappedADs; + } + + public String getDescription() { + return this.realOCD.getDescription(); + } + + public String getID() { + return this.realOCD.getID(); + } + + public InputStream getIcon(int size) throws IOException { + return this.realOCD.getIcon(size); + } + + public String getName() { + return this.realOCD.getName(); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |