[jira] [Created] (ISIS-477) Update JDO/DataNucleus objectstore to DN 3.2.6

2013-07-23 Thread Dan Haywood (JIRA)
Dan Haywood created ISIS-477:


 Summary: Update JDO/DataNucleus objectstore to DN 3.2.6
 Key: ISIS-477
 URL: https://issues.apache.org/jira/browse/ISIS-477
 Project: Isis
  Issue Type: Task
  Components: Objectstore: JDO
Affects Versions: objectstore-jdo-1.1.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: objectstore-jdo-1.2.0


NB:[ 
http://issues.datanucleus.org/browse/NUCCORE-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=21144#action_21144
 ]

Andy Jefferson commented on NUCCORE-1037:
-

Note that in datanucleus-core 3.2.6 RDBMS will default to using 
ReferentialJDOStateManager and non-RDBMS datastores will default to using 
JDOStateManager as per NUCCORE-675, so if you have extended an existing DN 
StateManager you may need to update this


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


[jira] [Commented] (ISIS-469) Provide implementations of certain layout facets that read from a common Xxx.layout config file.

2013-07-23 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13718011#comment-13718011
 ] 

ASF subversion and git services commented on ISIS-469:
--

Commit f38fdb92941172eabb12e0943509f239e6d5925f in branch refs/heads/master 
from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=f38fdb9 ]

ISIS-468,ISIS-469: change to @MemberGroupLayout, downloading of layouts

- @MemberGroupLayout#columnSpans is now a simple int[]
- changes suffix from isis.properties to layout.properties
- changed suffix from isis.json to layout.json
- added guard in case @MemberGroupLayout refers to non-existent groups
- fixed download code of zip of xxx.layout.json (and put into directories 
following package of each class)


 Provide implementations of certain layout facets that read from a common 
 Xxx.layout config 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: 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

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


[jira] [Commented] (ISIS-468) Provide better layout management of pages in the Wicket viewer.

2013-07-23 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13718010#comment-13718010
 ] 

ASF subversion and git services commented on ISIS-468:
--

Commit f38fdb92941172eabb12e0943509f239e6d5925f in branch refs/heads/master 
from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=f38fdb9 ]

ISIS-468,ISIS-469: change to @MemberGroupLayout, downloading of layouts

- @MemberGroupLayout#columnSpans is now a simple int[]
- changes suffix from isis.properties to layout.properties
- changed suffix from isis.json to layout.json
- added guard in case @MemberGroupLayout refers to non-existent groups
- fixed download code of zip of xxx.layout.json (and put into directories 
following package of each class)


 Provide better layout management of pages in the Wicket viewer.
 ---

 Key: ISIS-468
 URL: https://issues.apache.org/jira/browse/ISIS-468
 Project: Isis
  Issue Type: New Feature
  Components: Core, Viewer: Wicket
Affects Versions: viewer-wicket-1.2.0, core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: viewer-wicket-1.3.0, core-1.3.0


 In the Wicket viewer, it can be difficult to distinguish different types of 
 entities, moreover for some entities (with more properties than collections) 
 there is a lot of real-estate wasted.
 This ticket is to provide the ability for laying the properties out over up 
 to three columns, and optionally suppressing the collections column.
 Moreover it should be able to specify the relative width of those columns, 
 and, ideally, the website should be responsive.
 ~~~
 In the applib, introduce a new @MemberGroupLayout annotation, replacing the 
 current @MemberGroups annotation, allowing this information to be specified, 
 eg:
 @MemberGroupLayout(
columnSpans=ColumnSpans._3_3_0_6,
left={General, Dates}
middle={Notes}
 }
 would place the properties in two columns taking up half the page, and 
 collections (fourth column) to the far right. taking up the remaining 50%.
 eg:
 @MemberGroupLayout(
columnSpans=ColumnSpans._4_4_4_0,
left={General, Dates}
middle={Notes},
right={Other}
 }
 would suppress the collections.

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


[jira] [Commented] (ISIS-475) Dynamic layout using JSON

2013-07-23 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13718013#comment-13718013
 ] 

ASF subversion and git services commented on ISIS-475:
--

Commit a5ad5dcf4502e94cdb0e6931d04cd3c01ade19c3 in branch refs/heads/master 
from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=a5ad5dc ]

ISIS-475: dynamic layouts from JSON

- new LayoutMetadataReader interface
- new impls for properties and for json
- new classes representing LayoutMetadata (serializable to JSON)
- FacetedMethodsBuilder now uses the new LayoutMetadataReader interface
  - searches for json impl, then properties impl
- utility classes/methods (ObjectAssociations, ObjectSpecifications, 
EntityActionUtil.memberOrderOf) moved from viewer-wicket to core-metamodel
- example layout for ToDoItem converted to *.isis.json
- DeveloperUtilitiesService allows ability to download layout
- factored out MemberOrderFacetComparator from MemberOrderComparator, so can 
reuse.


also:
- ArrayUtils and ArrayUtil classes removed
- combined Resources utility class with ResourceUtil utility class, unused 
methods removed
- unused methods in PropertyUtil removed

also:
- little bit of CSS cosmetic change in table td left borders


 Dynamic layout using JSON
 -

 Key: ISIS-475
 URL: https://issues.apache.org/jira/browse/ISIS-475
 Project: Isis
  Issue Type: New Feature
  Components: Archetypes, Core, Examples, Viewer: Wicket
Affects Versions: archetype-wrj-1.0.3, viewer-wicket-1.2.0, core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: archetype-wrj-1.0.4, viewer-wicket-1.3.0, core-1.3.0


 Load layout metadata from a .isis.json file.
 Allow .isis.json file to be downloaded (using DeveloperUtilitiesService).
 Dynamically reload metadata; log any errors if does not parse etc.

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


[jira] [Resolved] (ISIS-470) Provide the ability to rebuild the metamodel for individual classes, thus allowing dynamic layout capability...

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood resolved ISIS-470.
--

Resolution: Fixed

 Provide the ability to rebuild the metamodel for individual classes, thus 
 allowing dynamic layout capability...
 ---

 Key: ISIS-470
 URL: https://issues.apache.org/jira/browse/ISIS-470
 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


 ... when used in conjunction with ISIS-469.

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


[jira] [Resolved] (ISIS-475) Dynamic layout using JSON

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood resolved ISIS-475.
--

Resolution: Fixed

 Dynamic layout using JSON
 -

 Key: ISIS-475
 URL: https://issues.apache.org/jira/browse/ISIS-475
 Project: Isis
  Issue Type: New Feature
  Components: Archetypes, Core, Examples, Viewer: Wicket
Affects Versions: archetype-wrj-1.0.3, viewer-wicket-1.2.0, core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: archetype-wrj-1.0.4, viewer-wicket-1.3.0, core-1.3.0


 Load layout metadata from a .isis.json file.
 Allow .isis.json file to be downloaded (using DeveloperUtilitiesService).
 Dynamically reload metadata; log any errors if does not parse etc.

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


[jira] [Updated] (ISIS-469) Provide implementations of certain layout facets that read from a common Xxx.layout.properties or Xxx.layout.json file

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood updated ISIS-469:
-

Summary: Provide implementations of certain layout facets that read from a 
common Xxx.layout.properties or Xxx.layout.json file  (was: Provide 
implementations of certain layout facets that read from a common Xxx.layout 
config file.)

 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: 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

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


[jira] [Updated] (ISIS-469) Provide implementations of certain layout facets that read from a common Xxx.layout.properties or Xxx.layout.json file

2013-07-23 Thread Dan Haywood (JIRA)

 [ 
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


[jira] [Updated] (ISIS-469) Provide implementations of certain layout facets that read from a Xxx.layout.properties file

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood updated ISIS-469:
-

Summary: Provide implementations of certain layout facets that read from a 
Xxx.layout.properties file  (was: Provide implementations of certain layout 
facets that read from a common Xxx.layout.properties or Xxx.layout.json 
file)

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


[jira] [Updated] (ISIS-469) Provide implementations of certain layout facets that read from a common Xxx.layout.properties or Xxx.layout.json file

2013-07-23 Thread Dan Haywood (JIRA)

 [ 
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: {
   

[jira] [Updated] (ISIS-475) Dynamic layout using JSON, using an Xxx.layout.json file

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood updated ISIS-475:
-

Summary: Dynamic layout using JSON, using an Xxx.layout.json file  (was: 
Dynamic layout using JSON)

 Dynamic layout using JSON, using an Xxx.layout.json file
 

 Key: ISIS-475
 URL: https://issues.apache.org/jira/browse/ISIS-475
 Project: Isis
  Issue Type: New Feature
  Components: Archetypes, Core, Examples, Viewer: Wicket
Affects Versions: archetype-wrj-1.0.3, viewer-wicket-1.2.0, core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: archetype-wrj-1.0.4, viewer-wicket-1.3.0, core-1.3.0


 Load layout metadata from a .isis.json file.
 Allow .isis.json file to be downloaded (using DeveloperUtilitiesService).
 Dynamically reload metadata; log any errors if does not parse etc.

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


[jira] [Resolved] (ISIS-469) Provide implementations of certain layout facets that read from a Xxx.layout.properties file

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood resolved ISIS-469.
--

Resolution: Fixed

 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


[jira] [Updated] (ISIS-475) Dynamic layout using JSON, using an Xxx.layout.json file

2013-07-23 Thread Dan Haywood (JIRA)

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

Dan Haywood updated ISIS-475:
-

Description: 
Load layout metadata from a .layout.json file (this is a successor to ISIS-469)

Also allow this .layout.json file to be downloaded (using 
DeveloperUtilitiesService), either for an individual class, or a zip of all the 
classes in the metamodel

Dynamically reload metadata; log any errors if does not parse etc.

~~~

The format of the Xxx.layout.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: {}
}
}





  was:
Load layout metadata from a .isis.json file.

Allow .isis.json file to be downloaded (using DeveloperUtilitiesService).

Dynamically reload metadata; log any errors if does not parse etc.




 Dynamic layout using JSON, using an Xxx.layout.json file
 

 Key: ISIS-475
 URL: https://issues.apache.org/jira/browse/ISIS-475
 Project: Isis
  Issue Type: New Feature
  Components: Archetypes, Core, Examples, Viewer: Wicket
Affects Versions: archetype-wrj-1.0.3, viewer-wicket-1.2.0, core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: archetype-wrj-1.0.4, viewer-wicket-1.3.0, core-1.3.0


 Load layout metadata from a .layout.json file (this is a successor to 
 ISIS-469)
 Also allow this .layout.json file to be downloaded (using 
 DeveloperUtilitiesService), either for an individual class, or a zip of all 
 the classes in the metamodel
 Dynamically reload metadata; log any errors if does not parse etc.
 ~~~
 The format of the Xxx.layout.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: {}
 }
 }
 

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


[jira] [Updated] (ISIS-469) Provide implementations of certain layout facets that read from a Xxx.layout.properties file

2013-07-23 Thread Dan Haywood (JIRA)

 [ 
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