MCDDPUI is a scala/java library written in scala for modular command driven data processing UI applications with full historisation.
<dependency> <groupId>ch.awae</groupId> <artifactId>mcddpui</artifactId> <version>LATEST</version> </dependency>
ch.waanpackage to the
ch.awaepackage. Therefore version
0.4.0and later are not compatible with version
ch.waanpackage to the
ViewInsensitiveRecordas a wrapper
Recordthat does not create a new snapshot for simple view stack modifications but instead alters the current snapshot to include the new view stack. Changes to the data section or the configuration map always produce a new snapshot
CardViewApplicationWindow. For this implementation the following types were also introduced:
ViewWindowfor allowing a view to request beeing displayed in a window.
viewimplementation handling view lifecycle transistions and display requests and providing a root UI component for integration into a window.
ViewDatatrait allowing the view data to provide a window title.
MutationCommand.andThenthat resulted in an exception beeing thrown every time.
InfiniteBranchedRecordas a default
Recordimplementation that allows for infinite numbers of branches. The branches are indexed according to the order of access, i.e. the most recent branch will always be at index
0and the second most recent one at index
Serializableto most core types:
ViewDataare all serializable and therefore allow full serialisation of any record snapshot.
Serializableand therefore forces all implementations to be serializable.
InfiniteBranchedRecord) are also serializable.
ViewManagerimplements that trait.
predef. This class serves as a command executor combined with a
ViewManager. View updates after command execution is handled internally. Exception handling and a custom update method must be implemented externally. The custom update method is executed alongside the internal view updates and provides a hook-point for updates of elements that are not directly associated with a specific view (i.e. a window shared between views).
UI system basics & minor core rework
Command.MutationFunctionmoved to top-level object.
apipackage object. This allows scaladoc to include handle them correctly.
RedoCommandis now a case class since an
indexparameter was required.
Recordwas modified to provide the required functionality
MutationCommandnow also provides a
namestring. Matching utilities and implicits are provided
InfiniteLinearRecord. This implementation keeps the previous functionality of only one redo path. Whenever a new branch is created, the previous one is discarded.
CommandLike. The object
RedoCommandto top-level objects. Previous locations in the
Commandobject replaced by accessor methods.
MCDDPUIExceptionas a common base class for all