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