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

Dan Haywood updated ISIS-469:
-----------------------------

    Description: 
Specifically, the two layout facets to capture are MemberOrderFacet and 
MemberGroupLayoutFacet (see ISIS-468).

The idea of this ticket is that information is pulled in from a separate file, 
sitting alongside the domain class.  This makes it easier to see this layout 
information in one place.

And, in conjunction with ISIS-470, this would allow dynamic updates to the 
layout, without a recompile/redeploy.

~~~
Two file formats are defined: a Xxx.layout.json file and an 
Xxx.layout.properties file.  The former is preferred (ie the .properties file 
might end up being deprecated at some point in the future).

The format of the json file (eg for ToDoItem example class) is:

{
    columns: [
    {
        span: 3,
        memberGroups: {
            General: {
                members: {
                    description: {},
                    category: {},
                    complete: {
                        actions: {
                            completed: {},
                            notYetCompleted: {}
                        }
                    }
                }
            },
            Misc: {
                members: {
                    versionSequence: {}
                }
            }
        }
    },
    {
        span: 4,
        memberGroups: {
            Detail: {
                members: {
                    dueBy: {},
                    cost: {
                        actions: {
                            updateCost:{}
                        }
                    },
                    notes: {},
                    attachment: {}
                }
            }
        }
    },
    {
        span: 0
    },
    {
        span: 5,
        collections: {
            dependencies: {
                actions: {
                    add:{},
                    delete: {}
                }
            },
            similarItems: {}
        }
    }
    ],
    actions: {
        delete: {},
        duplicate: {}
    }
}


~~~~~~~~~~~~~~~~~~~~
If specified using a property file (Xxx.layout.properties) then the format of 
the file is:

###########################################
# MemberGroupLayout
###########################################

memberGroupLayout.columnSpans=3,4,0,5
memberGroupLayout.left=General 
memberGroupLayout.middle=Detail
memberGroupLayout.right=


###########################################
# MemberOrder
###########################################

# Properties 
memberOrder.description.sequence=1
memberOrder.category.sequence=2
memberOrder.complete.sequence=3

# Properties (Detail)
memberOrder.dueBy.name=Detail
memberOrder.cost.name=Detail
memberOrder.notes.name=Detail
memberOrder.attachment.name=Detail

memberOrder.dueBy.sequence=1
memberOrder.cost.sequence=2
memberOrder.notes.sequence=3
memberOrder.attachment.sequence=4

# Properties (Misc)
memberOrder.versionSequence.name=Misc
memberOrder.versionSequence.sequence=99


#Collections
memberOrder.dependencies.sequence=1
memberOrder.similarItems.sequence=2


#Actions (freestanding)
memberOrder.delete.sequence=1
memberOrder.duplicate.sequence=2


#Actions (associated with properties)
memberOrder.completed.name=complete
memberOrder.notYetCompleted.name=complete

memberOrder.completed.sequence=1
memberOrder.notYetCompleted.sequence=2

memberOrder.updateCost.name=cost

#Actions (associated with collections)
memberOrder.add.name=dependencies

memberOrder.remove.name=dependencies


  was:
Specifically: MemberOrderFacet and MemberGroupLayoutFacet (see ISIS-468).

The format of the file is (using ToDoItem.layout as an example):

###########################################
# MemberGroupLayout
###########################################

memberGroupLayout.columnSpans=_3_4_0_5
memberGroupLayout.left=General 
memberGroupLayout.middle=Detail
memberGroupLayout.right=


###########################################
# MemberOrder
###########################################

# Properties 
memberOrder.description.sequence=1
memberOrder.category.sequence=2
memberOrder.complete.sequence=3

# Properties (Detail)
memberOrder.dueBy.name=Detail
memberOrder.cost.name=Detail
memberOrder.notes.name=Detail
memberOrder.attachment.name=Detail

memberOrder.dueBy.sequence=1
memberOrder.cost.sequence=2
memberOrder.notes.sequence=3
memberOrder.attachment.sequence=4

# Properties (Misc)
memberOrder.versionSequence.name=Misc
memberOrder.versionSequence.sequence=99


#Collections
memberOrder.dependencies.sequence=1
memberOrder.similarItems.sequence=2


#Actions (freestanding)
memberOrder.delete.sequence=1
memberOrder.duplicate.sequence=2


#Actions (associated with properties)
memberOrder.completed.name=complete
memberOrder.notYetCompleted.name=complete

memberOrder.completed.sequence=1
memberOrder.notYetCompleted.sequence=2

memberOrder.updateCost.name=cost

#Actions (associated with collections)
memberOrder.add.name=dependencies

memberOrder.remove.name=dependencies


    
> Provide implementations of certain layout facets that read from a common 
> "Xxx.layout.properties" or "Xxx.layout.json" file
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ISIS-469
>                 URL: https://issues.apache.org/jira/browse/ISIS-469
>             Project: Isis
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: core-1.2.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>            Priority: Minor
>             Fix For: core-1.3.0
>
>
> Specifically, the two layout facets to capture are MemberOrderFacet and 
> MemberGroupLayoutFacet (see ISIS-468).
> The idea of this ticket is that information is pulled in from a separate 
> file, sitting alongside the domain class.  This makes it easier to see this 
> layout information in one place.
> And, in conjunction with ISIS-470, this would allow dynamic updates to the 
> layout, without a recompile/redeploy.
> ~~~
> Two file formats are defined: a Xxx.layout.json file and an 
> Xxx.layout.properties file.  The former is preferred (ie the .properties file 
> might end up being deprecated at some point in the future).
> The format of the json file (eg for ToDoItem example class) is:
> {
>     columns: [
>     {
>         span: 3,
>         memberGroups: {
>             General: {
>                 members: {
>                     description: {},
>                     category: {},
>                     complete: {
>                         actions: {
>                             completed: {},
>                             notYetCompleted: {}
>                         }
>                     }
>                 }
>             },
>             Misc: {
>                 members: {
>                     versionSequence: {}
>                 }
>             }
>         }
>     },
>     {
>         span: 4,
>         memberGroups: {
>             Detail: {
>                 members: {
>                     dueBy: {},
>                     cost: {
>                         actions: {
>                             updateCost:{}
>                         }
>                     },
>                     notes: {},
>                     attachment: {}
>                 }
>             }
>         }
>     },
>     {
>         span: 0
>     },
>     {
>         span: 5,
>         collections: {
>             dependencies: {
>                 actions: {
>                     add:{},
>                     delete: {}
>                 }
>             },
>             similarItems: {}
>         }
>     }
>     ],
>     actions: {
>         delete: {},
>         duplicate: {}
>     }
> }
> ~~~~~~~~~~~~~~~~~~~~
> If specified using a property file (Xxx.layout.properties) then the format of 
> the file is:
> ###########################################
> # MemberGroupLayout
> ###########################################
> memberGroupLayout.columnSpans=3,4,0,5
> memberGroupLayout.left=General 
> memberGroupLayout.middle=Detail
> memberGroupLayout.right=
> ###########################################
> # MemberOrder
> ###########################################
> # Properties 
> memberOrder.description.sequence=1
> memberOrder.category.sequence=2
> memberOrder.complete.sequence=3
> # Properties (Detail)
> memberOrder.dueBy.name=Detail
> memberOrder.cost.name=Detail
> memberOrder.notes.name=Detail
> memberOrder.attachment.name=Detail
> memberOrder.dueBy.sequence=1
> memberOrder.cost.sequence=2
> memberOrder.notes.sequence=3
> memberOrder.attachment.sequence=4
> # Properties (Misc)
> memberOrder.versionSequence.name=Misc
> memberOrder.versionSequence.sequence=99
> #Collections
> memberOrder.dependencies.sequence=1
> memberOrder.similarItems.sequence=2
> #Actions (freestanding)
> memberOrder.delete.sequence=1
> memberOrder.duplicate.sequence=2
> #Actions (associated with properties)
> memberOrder.completed.name=complete
> memberOrder.notYetCompleted.name=complete
> memberOrder.completed.sequence=1
> memberOrder.notYetCompleted.sequence=2
> memberOrder.updateCost.name=cost
> #Actions (associated with collections)
> memberOrder.add.name=dependencies
> memberOrder.remove.name=dependencies

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to