From: <mwl...@us...> - 2008-04-07 19:54:30
|
Revision: 774 http://cishell.svn.sourceforge.net/cishell/?rev=774&view=rev Author: mwlinnem Date: 2008-04-07 12:53:22 -0700 (Mon, 07 Apr 2008) Log Message: ----------- Fixed a couple weird bugs. Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java Modified: trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java 2008-04-03 16:04:19 UTC (rev 773) +++ trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamAD.java 2008-04-07 19:53:22 UTC (rev 774) @@ -15,8 +15,7 @@ this.log = log; this.realAD = realAD; - - this.defaultValueOverride = defaultValueOverride; + this.defaultValueOverride = replaceSpecialValues(defaultValueOverride); } public int getCardinality() { @@ -58,5 +57,23 @@ public String validate(String value) { return this.realAD.validate(value); } + + private String[] replaceSpecialValues(String[] overrideValues) { + try { + String[] defaultValues = realAD.getDefaultValue(); + String[] replacedValues = new String[defaultValues.length]; + for (int i = 0; i < defaultValues.length; i++) { + if (defaultValues[i] != null && defaultValues[i].contains(":") && overrideValues[i] != null && overrideValues[i].equals("")) { + replacedValues[i] = defaultValues[i].substring(0, defaultValues[i].indexOf(":") + 1); + } else { + replacedValues[i] = overrideValues[i]; + } + } + return replacedValues; + } catch (Exception e) { + e.printStackTrace(); + return overrideValues; + } + } } Modified: trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java 2008-04-03 16:04:19 UTC (rev 773) +++ trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/metatypewrapper/ParamOCD.java 2008-04-07 19:53:22 UTC (rev 774) @@ -11,7 +11,9 @@ public class ParamOCD implements ObjectClassDefinition { private ObjectClassDefinition realOCD; - private ParamAD[] wrappedADs; + private ParamAD[] allWrappedADs; + private ParamAD[] requiredWrappedADs; + private ParamAD[] optionalWrappedADs; private LogService log; @@ -21,8 +23,9 @@ this.realOCD = realOCD; this.defaultOverrider = defaultOverrider; - //TODO: don't always return all attributeDefinitions, regardless of filter - this.wrappedADs = wrapAttributeDefinitions(realOCD.getAttributeDefinitions(ObjectClassDefinition.ALL)); + this.allWrappedADs = wrapAttributeDefinitions(realOCD.getAttributeDefinitions(ObjectClassDefinition.ALL)); + this.requiredWrappedADs = wrapAttributeDefinitions(realOCD.getAttributeDefinitions(ObjectClassDefinition.REQUIRED)); + this.optionalWrappedADs = wrapAttributeDefinitions(realOCD.getAttributeDefinitions(ObjectClassDefinition.OPTIONAL)); } private ParamAD[] wrapAttributeDefinitions(AttributeDefinition[] realAttributeDefinitions) { @@ -55,7 +58,17 @@ } public AttributeDefinition[] getAttributeDefinitions(int filter) { - return wrappedADs; + if (filter == ObjectClassDefinition.ALL) { + return allWrappedADs; + } else if (filter == ObjectClassDefinition.REQUIRED) { + return requiredWrappedADs; + } else if (filter == ObjectClassDefinition.OPTIONAL) { + return optionalWrappedADs; + } else { + this.log.log(LogService.LOG_WARNING, "Requested filter of unrecognized type " + filter + + " in getAttributeDefinitions in ParamOCD. Treating as if your meant to return all attributes"); + return allWrappedADs; + } } public String getDescription() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |