1 / 23

Selena Extension

Selena Extension. Ideas, Concepts, Requests, Discussion Base,. Christian Brand ( christian.brand@sap.com ) Eckart Langhuth ( eckart.langhuth@sap.com ) Matthias Metzler ( matthias.metzler@sap.com ). Contents. Selena Framework – Our View Generic Data Model Tree Viewer Filter Concept

hester
Télécharger la présentation

Selena Extension

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Selena Extension Ideas, Concepts, Requests, Discussion Base, ... Christian Brand (christian.brand@sap.com)Eckart Langhuth (eckart.langhuth@sap.com)Matthias Metzler (matthias.metzler@sap.com)

  2. Contents • Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  3. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  4. 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 – Our View

  5. Element Model API – Our View • 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 • ...

  6. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  7. 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 Generic Data Model Tree Viewer

  8. Generic Data Model Tree Viewer - Screenshot project, file and folder view filter to show only nodes supplied by own providers icons depend on data source 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

  9. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  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)

  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

  12. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  13. 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) Filtered Data Model Framework

  14. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  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

  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

  17. Selena Framework – Our View • Generic Data Model Tree Viewer • Filter Concept • Filtered Data Model • Programming Model • Questions, Discussion, ...

  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/

  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?

  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.

  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

  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!

  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?

More Related