[ 
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.

This ticket defines the metadata informatino in an Xxx.layout.properties file.  
(Note that  ISIS-475 takes this idea further and specifies a JSON file.  This 
latter idea is probably to be preferred in most cases).

The format of the property file (Xxx.layout.properties) 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, 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).

There also should be the ability to 

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


    
> Provide implementations of certain layout facets that read from a 
> "Xxx.layout.properties" 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.
> This ticket defines the metadata informatino in an Xxx.layout.properties 
> file.  (Note that  ISIS-475 takes this idea further and specifies a JSON 
> file.  This latter idea is probably to be preferred in most cases).
> The format of the property file (Xxx.layout.properties) 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