Vincent Massol wrote:
> Hi Asiri,
>
> Don't we have any tests for wiki macros? I don't see any test providing that
> it works. Since wiki macros are something introduced recently I'm surprised
> we don't have tests for it (or do we?).
>
> Also could you explain the need for default parameter values in wiki macro
> parameter descriptor?
> Since the macro content is available in the content field, isn't it easy to
> use a default value there?
>
> So is this just for convenience or is there something I don't see?
The WYSIWYG editor can't extract the default values from the wiki macro
content. If a macro parameter has a default value then the WYSIWYG user
should see it.
Marius
>
> Thanks
> -Vincent
>
> On Mar 10, 2010, at 7:43 AM, asiri (SVN) wrote:
>
>> Author: asiri
>> Date: 2010-03-10 07:43:01 +0100 (Wed, 10 Mar 2010)
>> New Revision: 27562
>>
>> Modified:
>>
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>>
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>>
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>>
>> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> Log:
>> XWIKI-4944: Add support for Default Values for XWiki Wiki Macros.
>>
>> * Applied anamaria's patch without changes.
>>
>> Modified:
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>> ===================================================================
>> ---
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroFactory.java
>> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -191,7 +191,8 @@
>> String parameterDescription =
>> macroParameter.getStringValue(PARAMETER_DESCRIPTION_PROPERTY);
>> boolean parameterMandatory =
>>
>> (macroParameter.getIntValue(PARAMETER_MANDATORY_PROPERTY) == 0) ? false :
>> true;
>> -
>> + String parameterDefaultValue =
>> macroParameter.getStringValue(PARAMETER_DEFAULT_VALUE_PROPERTY);
>> +
>> // Verify parameter name.
>> if (StringUtils.isEmpty(parameterName)) {
>> throw new WikiMacroException(String.format(
>> @@ -203,10 +204,15 @@
>> String errorMessage = "Incomplete macro definition in
>> [%s], macro parameter description is empty";
>> getLogger().debug(String.format(errorMessage,
>> documentReference));
>> }
>> +
>> + // If field empty, assume no default value was provided.
>> + if (StringUtils.isEmpty(parameterDefaultValue)) {
>> + parameterDefaultValue = null;
>> + }
>>
>> // Create the parameter descriptor.
>> parameterDescriptors.add(new
>> WikiMacroParameterDescriptor(parameterName, parameterDescription,
>> - parameterMandatory));
>> + parameterMandatory, parameterDefaultValue));
>> }
>> }
>>
>>
>> Modified:
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>> ===================================================================
>> ---
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/DefaultWikiMacroInitializer.java
>> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -235,6 +235,7 @@
>> needsUpdate |= bclass.addTextField(PARAMETER_NAME_PROPERTY,
>> "Parameter name", 30);
>> needsUpdate |=
>> bclass.addTextAreaField(PARAMETER_DESCRIPTION_PROPERTY, "Parameter
>> description", 40, 5);
>> needsUpdate |= bclass.addBooleanField(PARAMETER_MANDATORY_PROPERTY,
>> "Parameter mandatory", "yesno");
>> + needsUpdate |=
>> bclass.addTextField(PARAMETER_DEFAULT_VALUE_PROPERTY, "Parameter default
>> value", 30);
>>
>> if (needsUpdate) {
>> update(doc);
>>
>> Modified:
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>> ===================================================================
>> ---
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/internal/WikiMacroConstants.java
>> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -111,4 +111,10 @@
>> * Constant for representing parameter mandatory property.
>> */
>> String PARAMETER_MANDATORY_PROPERTY = "mandatory";
>> +
>> + /**
>> + * Constant for representing parameter defaultValue property.
>> + * @since 2.3M1
>> + */
>> + String PARAMETER_DEFAULT_VALUE_PROPERTY = "defaultValue";
>> }
>>
>> Modified:
>> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> ===================================================================
>> ---
>> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> 2010-03-10 05:11:59 UTC (rev 27561)
>> +++
>> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-wikibridge/src/main/java/org/xwiki/rendering/macro/wikibridge/WikiMacroParameterDescriptor.java
>> 2010-03-10 06:43:01 UTC (rev 27562)
>> @@ -54,6 +54,11 @@
>> private boolean mandatory;
>>
>> /**
>> + * Default value of the parameter.
>> + */
>> + private Object defaultValue;
>> +
>> + /**
>> * Creates a new {...@link WikiMacroParameterDescriptor} instance.
>> *
>> * @param id parameter identifier.
>> @@ -68,6 +73,23 @@
>> }
>>
>> /**
>> + * Creates a new {...@link WikiMacroParameterDescriptor} instance.
>> + *
>> + * @param id parameter identifier.
>> + * @param description parameter description.
>> + * @param mandatory if the parameter is mandatory.
>> + * @param defaultValue parameter default value.
>> + * @since 2.3M1
>> + */
>> + public WikiMacroParameterDescriptor(String id, String description,
>> boolean mandatory, Object defaultValue)
>> + {
>> + this.id = id;
>> + this.description = description;
>> + this.mandatory = mandatory;
>> + this.defaultValue = defaultValue;
>> + }
>> +
>> + /**
>> * {...@inheritdoc}
>> */
>> public String getId()
>> @@ -106,7 +128,7 @@
>> */
>> public Object getDefaultValue()
>> {
>> - return null;
>> + return this.defaultValue;
>> }
>>
>> /**
>>
>> _______________________________________________
>> notifications mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/notifications
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs