You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Roger Whitcomb (JIRA)" <ji...@apache.org> on 2014/10/29 01:11:35 UTC

[jira] [Updated] (PIVOT-960) Implement simple macro system in JSONSerializer

     [ https://issues.apache.org/jira/browse/PIVOT-960?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roger Whitcomb updated PIVOT-960:
---------------------------------
    Attachment: 960.patch

The "960.patch" file is a complete solution.  There are updates to the JSONSerializerTest using a simple macro, and testing the functionality.

One new file: org.apache.pivot.core.serialization.MacroReader
which acts as a filter on top of another Reader, doing the defining and expansion of macros.

> Implement simple macro system in JSONSerializer
> -----------------------------------------------
>
>                 Key: PIVOT-960
>                 URL: https://issues.apache.org/jira/browse/PIVOT-960
>             Project: Pivot
>          Issue Type: Improvement
>          Components: core-json
>    Affects Versions: 2.0.4
>         Environment: All
>            Reporter: Roger Whitcomb
>            Assignee: Roger Whitcomb
>            Priority: Minor
>             Fix For: 2.1
>
>         Attachments: 960.patch
>
>
> It occurred to me since we are using JSON style sheets to style our application, and it is getting quite big, that a macro system (maybe similar to C/C++ with #define or something similar) would be useful, especially for repeated colors, and other constants (like padding values, fonts, etc.)  This would enable using custom values consistently while avoiding inconsistencies due to typos or changes introduced one place and not others.
> I was thinking of a simple
> #define NAME value
> as in C/C++, and then using $(NAME) as the substitution token.  This is easily implemented in JSONSerializer.
> I'm open to suggestions for the syntax, but I believe the feature will be very useful, especially for the JSON stylesheet.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)