Hi all,
as you may already know, the current view
concept in JWT is scheduled for reimplementation, since 1. it is not powerful
enough to meet the new demands and 2. the implementation has become quite
confusing over time. In the past weeks we’ve collected many new requirements
(see Bugs 238259, 238259, 248565, 250897, 251662, 257403) and I’d like to begin
working on these somewhere in the next days. To get an overview for the
community, I’ve summarized the given requirements and suggested implementations.
Please feel free to make comments, suggestions,
corrections…
A view controls:
1. Visibility: Determines if an element is
visible under the given view (affects graphical editor, standard palette,
outline)
2. Naming: The names and descriptions of
views (multilang) and the icons shown in the palette (currently read from
plugin.properties)
3. Figures: The graphical representation of
the elements (one default figure per element, multiple alternative
figures)
4. Palette: A custom implementation of the
palette
View configuration
contains:
1. View Meta Data: View Name (multilang),
Version, Internal ID, View Icon
2. Configuration: Visibility, Naming,
Figures, Palette
Implementation:
* Configuration through an XML file
(extension *.view, not compatible with current *.view
files)
* View configuration file is registered
using an extension point
* Concrete files (Java implementations of
Figures and Palette, Icon files) are registered through an “resource” extension
point, where they are given a unique ID. The *.view file refers only to these
IDs
Additional view-related
issues:
* Support different element positions/sizes
in different views (requires modification of the meta
model)
* Support bend-points for edges (requires
modification of the meta model)
* Store view-related information
(position/size/icon/References/ReferenceEdges) in an external
file
* Put default views (business &
technical) in a separate plugin (requires that jwt-we can run without a loaded
view)
Views and aspects:
* Four possible implementations (at the
moment):
1. Always
display everything which is added by aspects
2.Setting a
default behavior per view (display aspects or hide
aspects)
3. Create ONE
view file for an aspect that complements the main view chosen by the
user
4. Create
MULTIPLE view files for an aspect (the user chooses: 1 view for standard
elements, 1 view for aspect related elements)
Regards,
Chris