Administrator
|
Cool, thanks Adrian!
Jacques From: <[hidden email]> > Author: adrianc > Date: Mon Apr 13 16:56:06 2009 > New Revision: 764527 > > URL: http://svn.apache.org/viewvc?rev=764527&view=rev > Log: > Added expression escaping to FlexibleStringExpander.java, and put some examples in the Example component. > > Modified: > ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java > ofbiz/trunk/framework/example/config/ExampleUiLabels.xml > ofbiz/trunk/framework/example/widget/example/FormWidgetExampleForms.xml > > Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java?rev=764527&r1=764526&r2=764527&view=diff > ============================================================================== > --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java (original) > +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java Mon Apr 13 16:56:06 2009 > @@ -221,15 +221,16 @@ > Debug.logWarning("Found a ${ without a closing } (curly-brace) in the String: " + original, module); > break; > } > + // check for escaped expression > + boolean escapedExpression = (start - 1 >= 0 && original.charAt(start - 1) == '\\'); > if (start > currentInd) { > // append everything from the current index to the start of the var > - strElems.add(new ConstElem(original.substring(currentInd, start))); > + strElems.add(new ConstElem(original.substring(currentInd, escapedExpression ? start -1 : start))); > } > - > - if (original.indexOf("bsh:", start + 2) == start + 2) { > + if (original.indexOf("bsh:", start + 2) == start + 2 && !escapedExpression) { > // checks to see if this starts with a "bsh:", if so treat the rest of the string as a bsh scriptlet > strElems.add(new BshElem(original.substring(start + 6, end))); > - } else if (original.indexOf("groovy:", start + 2) == start + 2) { > + } else if (original.indexOf("groovy:", start + 2) == start + 2 && !escapedExpression) { > // checks to see if this starts with a "groovy:", if so treat the rest of the string as a groovy scriptlet > strElems.add(new GroovyElem(original.substring(start + 9, end))); > } else { > @@ -243,7 +244,9 @@ > } > String expression = original.substring(start + 2, end); > // Evaluation sequence is important - do not change it > - if (expression.contains("?currency(")) { > + if (escapedExpression) { > + strElems.add(new ConstElem(original.substring(start, end + 1))); > + } else if (expression.contains("?currency(")) { > strElems.add(new CurrElem(expression)); > } else if (expression.contains(openBracket)) { > strElems.add(new NestedVarElem(expression)); > > Modified: ofbiz/trunk/framework/example/config/ExampleUiLabels.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/config/ExampleUiLabels.xml?rev=764527&r1=764526&r2=764527&view=diff > ============================================================================== > --- ofbiz/trunk/framework/example/config/ExampleUiLabels.xml (original) > +++ ofbiz/trunk/framework/example/config/ExampleUiLabels.xml Mon Apr 13 16:56:06 2009 > @@ -87,6 +87,14 @@ > <value xml:lang="fr">La même chose mais la variable nowTimestamp (toujours disponible dans context) est utilisée pour > affecter la valeur par défaut à "maintenant"</value> > <value xml:lang="it">Lo stesso di sopra, usare la variabile nowTimestamp (sempre disponibile nel contesto della form) per > impostare il valore di default ad adesso</value> > </property> > + <property key="ExampleDateField11Title"> > + <value xml:lang="en">Field11: date and time selection field with default value</value> > + <value xml:lang="fr">Champ 11 : sélection de date et temps (valeur par défaut)</value> > + <value xml:lang="it">Campo11: campo di selezione con valore di default per data e ora</value> > + </property> > + <property key="ExampleDateField11Tooltip"> > + <value xml:lang="en">Uses the \${date:dayStart(nowTimestamp, timeZone, locale)} UEL expression to set the default value > to the start of today</value> > + </property> > <property key="ExampleDateField1Title"> > <value xml:lang="en">Field1: date and time selection field</value> > <value xml:lang="fr">Champ 1 : sélection de date et temps</value> > @@ -148,9 +156,9 @@ > <value xml:lang="it">Campo9: campo di selezione con valore di default per data e ora</value> > </property> > <property key="ExampleDateField9Tooltip"> > - <value xml:lang="en">Same as above, uses the $ {groovy:...} notation to call an util method to get the now > timestamp</value> > - <value xml:lang="fr">La même chose mais utilise la notation $ {groovy:...} pour appeler un méthode utilitaire pour > obtenir l'heure du moment</value> > - <value xml:lang="it">Lo stesso di sopra, usare la notazione $ {groovy:...} per eseguire un metodo di utilità per ottenere > un nuovo timestamp</value> > + <value xml:lang="en">Same as above, uses the \${groovy:...} notation to call an util method to get the now > timestamp</value> > + <value xml:lang="fr">La même chose mais utilise la notation \${groovy:...} pour appeler un méthode utilitaire pour > obtenir l'heure du moment</value> > + <value xml:lang="it">Lo stesso di sopra, usare la notazione \${groovy:...} per eseguire un metodo di utilità per ottenere > un nuovo timestamp</value> > </property> > <property key="ExampleDateTimeFields"> > <value xml:lang="en">Date/Time fields</value> > > Modified: ofbiz/trunk/framework/example/widget/example/FormWidgetExampleForms.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/FormWidgetExampleForms.xml?rev=764527&r1=764526&r2=764527&view=diff > ============================================================================== > --- ofbiz/trunk/framework/example/widget/example/FormWidgetExampleForms.xml (original) > +++ ofbiz/trunk/framework/example/widget/example/FormWidgetExampleForms.xml Mon Apr 13 16:56:06 2009 > @@ -50,6 +50,14 @@ > <date-time default-value="${nowTimestamp}"/> > </field> > <!-- ***************** --> > + <!-- *** field11 *** --> > + <!-- ***************** --> > + <field name="field11" > + title="${uiLabelMap.ExampleDateField11Title}" > + tooltip="${uiLabelMap.ExampleDateField11Tooltip}"> > + <date-time default-value="${date:dayStart(nowTimestamp, timeZone, locale)}"/> > + </field> > + <!-- ***************** --> > <!-- *** field2 *** --> > <!-- ***************** --> > <field name="field2" > > |
Free forum by Nabble | Edit this page |