Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Simple to setup for basic operation
    Configure the id, label and entity and Weave will do the rest.
  • Customisable for advanced operation
    Refine geometry setting and input parameters, and provide pre-defined lists of values for input.
  • Supports editing on an entity with multiple spatial layers
    A single entity that is composed of separate point, line and/or polygon tables is transparently handled by Weave.
  • Creation and updating on an entity in the client can be initiated from URL parameters
    The Weave client can be started with parameters in the URL to immediately begin the editing process for a specific entity for the user.
  • Auditing of editing operations
    Custom auditing can be setup to write a new log records to a database table for each edit operation performed by a user.
  • Snapping of geometry
    Configurable snapping is available to help with drawing geometry.
  • I18n support
    All of the text/labels for the editing components can be customized for multiple languages or even just having the default text changed.
  • "Identity" columns
    It's possible to specify that an attribute for a new record is based on incrementing the previous highest value of the column, or that the column will be automatically generated by the underlying database system.
  • Read-only columns
    It's possible to specify that an attribute can be displayed but not changed (readonly), can only be changed when the entity is created (readonlyonupdate) or can only be changed when an entity is updated (readonlyoncreate).
  • Hidden columns
    It's possible to specify attributes that aren't visible to the user but are still written when an edit is performed, using either a fixed value or one of a number of supported functions.
  • Formula columns
    It's possible to specify a number of in-built formulas as the value for a column, including things like userid(), datetime(), entity(), area() and length(). These can be used for both the spatial and audit tables.
  • Restrictions on the number and types of geometry
    Geometry input can be constrained to indicate a minimum and maximum number of geometries that can be entered when creating an entity and the types of geometries can be specified.
  • Customization of client view
    The display of the input panel can be customized via the configuration. Some things that can be customized are if text and/or icons are display in buttons, which buttons are displayed (hiding the polygon button for example) and the locations of some of the buttons.

Limitations:

  • Currently only attributes directly attached to the spatial table can be edited
    Weave will only write to the spatial table when editing an entity, currently having some attributes written to the spatial table and other attributes written to separate database tables is not supported. Audit tables may provide enough functionality to support the required workflow though.
  • Spatial mapper for entity must have <dynamic> set to true and <cache> set to false
    But this is generally the case for any entity that can have it's underlying data altered on the fly.

...

Code Block
xml
xml
titleAdding edit plugin to client
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>

<config xmlns="urn:com.cohga.server.config#1.0" xmlns:client="urn:com.cohga.html.client#1.0">

  <client:config id="edit">
    <!-- more config items here -->

    <view id="com.cohga.html.client.map.mapView">
      <label>Map</label>
      <location>center</location>



    <plugin id="weave.edit"/> <!-- Register the edit plugin with the map view -->
      <plugin id="weave.edit"/>

      <!-- map config items here -->
    </view>

    <!-- more config items here -->
  </client:config>

</config>

...

Code Block
xml
xml
titleAdding edit view to client
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>

<config xmlns="urn:com.cohga.server.config#1.0" xmlns:client="urn:com.cohga.html.client#1.0">

  <client:config id="edit">
    <!-- more config items here -->

    <view id="com.cohga.client.panel.edit"> <!-- Add the Edit panel to the client -->
    <view id="com.cohga.client.panel.edit">
      <label>Edit</label>
      <location>west</location>
    </view>

    <view id="com.cohga.html.client.map.mapView">
      <label>Map</label>
      <location>center</location>


     <plugin id="weave.edit"/> <!-- Register the edit plugin with the map view -->
      <plugin id="weave.edit"/>

      <!-- more config items here -->
    </view>

    <!-- more config items here -->
  </client:config>

</config>

...