Access control module: begin porting.

... from DM3 to DM4.

Part 1: Adapt migration.
Access control module part 2: extend model.

Doesn't compile yet.
Merge branch 'master' into accesscontrol
Access Control module: consume Factes service.

Doesn't compile yet.
Webclient: "Many Cardinality" Pt.7 (#76).

Revise TopicRenderer.create_fields() and class TopicRenderer.Field. Change APIs.
In preparation of "extended composite request format".

See ticket 76
Webclient: introduce class PageModel (#237).

That is TopicRenderer.PageModel
In preparation of "Full composite structure in update requests".

See ticket 237
Webclient: new update request format (#237).

Update requests contain the full composite structure.

Change field renderer contract: read_form_value() returns an entire topic model, not just a simple value.

Server-side processing is pending.

See ticket 237
Core: process new update request format (#237).

There are 2 topic serialization formats supported now:
1) canonic format -- contains entire topic models.
2) compact format -- contains the topic value only (simple or composite).
   This format remains there to keep the simple cases simple.

Webbrowser plugin needs to be adadpted.

Furthermore in Webservice module: improve exception handling.

See ticket 237
Core: process compact format topic refs (#237).

The Webbrowser plugin works now.

Close ticket 237
Fix Icon Picker.
Webclient: fix editing simple topics.

Partly revert commit 0dc588 (April 10):
Change field renderer contract again: read_form_value() returns a simple value or a topic reference (REF_PREFIX notation), not an entire topic model.

Partly revert commit e13a55 (April 13):
Adapt to field renderer contract.

Furthermore: fix rendering of non-viewable/non-editable pages.

See ticket 237
Begin of "Nested content panel rendering" (#104).

Change Field Renderer framework:
A field renderer constructor got only one parameter: "field_model" (a FieldModel object).
The former "topic" parameter is accessible as field_model.toplevel_topic
The former "rel_topics" parameter is dropped.

Add "interface" FieldRenderer.
It will provide default method implementations and serves for documentation purposes.

Add to webclient.css: box styles for each nesting levels.

No visible results yet.

See ticket 104
Webclient: nested content panel rendering (#104).

The content panel visualizes the composite structure as nested boxes, filled with a distinct color for each nesting-level.

Change Field Renderer contract:

- The render_field() method gets a "parent_element" and is responsible for rendering into that. At calling time the parent_element is already part of the DOM.
Nothing is to be returned.

- The same applies to the render_form_element() method.

- The post_render_form_element() method is dropped.

See ticket 104
Webclient: show "Add another ..." buttons (#76).

Not yet funcional.

See ticket 76
Webclient: "Add ..." button extends form (#76).

Server-side processing is pending.

See ticket 76
Core: extend storage layer.

Add method to retrieve an association by type, topic IDs, *and* role types:

    AssociationModel getAssociation(String assocTypeUri, long topic1Id, long topic2Id,
                                                         String roleTypeUri1, String roleTypeUri2)

Requires Neo4j Mehtagraph 0.9-SNAPSHOT
Core: Editing multiple-value topics works (#76).

Editing e.g. all the Person's multiple-value fieds (Phone, Email, Website, Address) works for the first time.

In general
- many simple topics works
- many compositioned topics works
- many aggregated topics is pending (not used in standard distribution topic types)

See ticket 76
Type Editor panel: change association type (#77).

Changing the association type in the type editor panel works.
Still pending:
- Change cardinality
- Visually update possible association definitions on the canvas (e.g. color)

Furthermore in Core:

1) Introduce service implementation class ObjectFactory. Its responsibility is to load domain objects from DB.
This makes for a more clean design and reduces complications (no model-less domain objects are constructed).
The domain object's own fetch() methods are about to be dropped.
For the moment only one domain object -- AssociationDefinition -- is transformed.

2) Change AssociationDefinition interface: Add method
    void update(AssociationDefinitionModel model, ClientState clientState, Directives directives)

3) Change Association interface: New method
    getRole(RoleModel model)
replaces
    getRole(long objectId)

4) Change Role interface: Add method
    RoleModel getModel()

See ticket 77
Core fix: change role types.

Interactive change of the association's role types works again.
Was broken in previous commit (today).
Type Editor panel: change cardinality works (#77).

Changing the cardinality in the type editor panel works.
Click a topic type -> press Edit -> change Cardinality -> press Save.

Still pending:
- Visually update possible association definitions on the canvas (e.g. color)

See ticket 77