On Mar 10, 2010, at 8:33 AM, Marius Dumitru Florea wrote:
> 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.
Ok I see.
How do you get default param values for java macros? For example for the
velocity macro I see that the default value for the "filter" parameter is in
execute().
Thanks
-Vincent
> 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
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs