Selena Extension
Christian Brand ([email protected])Eckart Langhuth ([email protected])Matthias Metzler ([email protected])
Ideas, Concepts, Requests, Discussion Base, ...
SAP AG 2001, Selena Extension, chb, el, mm 2
Contents
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 3
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 4
Selena Framework – Our View
Selena Framework offers generic Element Model API
Environment can communicate with Elements,... and Model Management
Model Management creates Elements,... on demand and provides caching
Selena Framework gets all the needed information through Providers
Data modification is possible through Change (Delta) Providers
Selena Framework can also be notified about data changes through (Delta) Providers (not yet in picture)
Selena Framework
ChangeProvider
Provider
Model Management
Element ...
R R
Data
Element Model APIR
Environment
SAP AG 2001, Selena Extension, chb, el, mm 5
Element Model API – Our View
PropertyMap
Element
Entity
Model
Link Container
Property
Reference
Reference Collection
participant
childentity
parent
references
subproperty
UniqueName
uniquename
parent unique name
property
entity
Reference Container
referencescontainer
child reference collection
model
Dotted arrows show „navigation paths“
Examples: A Container can be asked for child
entities and supplies Entities (EntityEnumeration)
An Element can be asked for model and supplies a Model
...
SAP AG 2001, Selena Extension, chb, el, mm 6
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 7
Generic Data Model Tree Viewer
Generic Data Model Tree Viewer visualizes (parts of) Element Model API
(at this moment it only shows child entity relations)
Architecture JFace Tree Viewer + SWT Tree for
rendering Content and Label Provider retrieve
information from Element Model API Content Provider can be equipped with
Filter
Features Filter can be exchanged at runtime Roots can be set dynamically Refreshes on model changes
TODOs Refresh if model added or removed More navigation paths
UI
Element Model API
GenericData ModelTree Viewer
Selena Framework
ChangeProvider
Provider
Model Management
Element ...
R R
Data
ContentProvider
LabelProvider
Tree Viewer
R R
R R
FilterR
ScreenR
SAP AG 2001, Selena Extension, chb, el, mm 8
Generic Data Model Tree Viewer - Screenshot
•generic tree viewer•4 projects => 8 registered models•no filter active•special (diagnostic) label provider shows
unique names•folder icon shown, if child entities exist
•Eclipse navigation view•example: workspace with 4
projects
•project, file and folder view•filter to show only nodes
supplied by own providers•icons depend on data source
SAP AG 2001, Selena Extension, chb, el, mm 9
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 10
Filter Concept - Interface
Filters can have names (?)
Filters can be inverted
Filter can be asked for general availability of
PropertyMap Property ReferenceContainer UniqueName
Filter can be asked for availability of navigation paths
child entity parent participant ... (all navigation paths)
SAP AG 2001, Selena Extension, chb, el, mm 11
Filter Concept - Structure
...() means all the availability checking methods
Filters can be composed in Filter Sets (composite)
Filter Sets can be of type OR or AND
Default implementations are ready for useexamples:
YesManFilter (single) NoManFilter (single) MutableFilterSet ...
Filters can be subclassed or created by Filter Factory
+isInverted()+...()
«interface»IFilter
«interface»ISingleFilter
+setInverted()
«interface»IMutableFilter
+getFilters() : IFilter+getType()
«interface»IFilterSet
+addFilter()+addFilters()+removeFilter()+removeFilters()+removeAllFilters()+setType()
«interface»IMutableFilterSet
SAP AG 2001, Selena Extension, chb, el, mm 12
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 13
Filtered Data Model Framework
Every Environment, that works on top of Element Model API should also work on Filtered Element Model API
Filtered Element delegates calls to Selena Element and modifies answer after requesting filter
Multiple Instances of Filtered Data Model Framework possible
Filtered Data Model Framework contains no caching functionality (delegation-only implemantation)
FilteredData ModelFramework
Element Model API
Selena Framework
ChangeProvider
Provider
Model Management
Element ...
R R
Data
R
Filtered Element Model API
Management
FilteredElement
Filtered ...
R
Environment
FilterR
Element
FilteredElement
Filter
R
R
SAP AG 2001, Selena Extension, chb, el, mm 14
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 15
Programming Model for Tool Developers
Questions What can we recommend our tool developers? How can we support them? What has to be built to support them? ...?
Idea: Data Source Management stores table to map between unique name and data source (Object) create and add new unique name from data source check if unique name already included get corresponding data source to unique name
SAP AG 2001, Selena Extension, chb, el, mm 16
Programming Model – Example Implementation
Data Source Management can be accessed by
Providers, Filter Tree Viewer‘s Label Provider
This is the way they can get access to the Data Source Objects
Data Source Management can create Unique Names for Providers
UI
Element Model API
GenericData ModelTree Viewer
Selena Framework
Provider
Model Management
Element ...
R
ContentProvider
LabelProvider
Tree Viewer
R R
R R
FilterR
ScreenR
DataSource
R
Data SourceManagement
unique name data source
R
R R
Data
SAP AG 2001, Selena Extension, chb, el, mm 17
Selena Framework – Our View
Generic Data Model Tree Viewer
Filter Concept
Filtered Data Model
Programming Model
Questions, Discussion, ...
SAP AG 2001, Selena Extension, chb, el, mm 18
Questions
Problem:
Distributed Provider development leading to “congested, overcrowded” models?
Example: (Using Selena) Task 1: Implementation of “Eclipse” Package View. Task 2: Implementation of “Eclipse” Navigator View.
Both will need an Entity representing the Folder “src”.
T1 provides Entity with UniqueName model:packView://src/
T2 provides Entity with UniqueName model:navView://src/
SAP AG 2001, Selena Extension, chb, el, mm 19
Questions
Another possible way to provide the model data for Task 1,2 may be that a known provider already provides the folder structure.
This will lead to dependent Providers because the Providers for Task 1,2 will work only if the “known” Provider is active.
To avoid dependencies each tool has to provide all of its data itself. (Maybe including the underlying project model)
What kind of “Provider programming guidelines” follows from this?
SAP AG 2001, Selena Extension, chb, el, mm 20
Questions
In “overcrowded” models, tools have to identify “their” relevant data.
A small example is the current implementation of the UML Navigator:
Using not relevant data:
The UML-Navigator fails, trying to show the data from a model created by the “File and Folder” View.
SAP AG 2001, Selena Extension, chb, el, mm 21
Questions
Provider principles
Removing class ProvidersAccess used to avoid programmatic adding, removing Providers? Why?
Short explanation of Provider registration logic?Ideas? Binding of Providers to models, domains, subdomains, … ?
Extension Point Schema
SAP AG 2001, Selena Extension, chb, el, mm 22
Questions
Infrastructure/Organization How to structure/move sources in perforce? Who drives which subjects? Perforce sources
.classpath and .project files allways writeable on client project dependencies to projects not to libraries info.xml files for every subproject (contains the responsible developers, that
receive mails on build problems)
Technical Subjects Discussion!
SAP AG 2001, Selena Extension, chb, el, mm 23
Questions
Others:
How to realize Object valued Properties?
Image <-> Element binding?
Double domain definition?
Model <-> Project binding?
Location of metadata. (e.g diagram.xml)
Repository tree. Semantic view in Team Perspective based on the same (filtered) model (same view?) as standard browser view!?
Usage of internal packages?
Eclipse Source changes?
Recommended