Selena Extension Christian Brand ([email protected]) Eckart Langhuth ([email protected])...

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

Transcript of Selena Extension Christian Brand ([email protected]) Eckart Langhuth ([email protected])...

Page 1: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

Selena Extension

Christian Brand ([email protected])Eckart Langhuth ([email protected])Matthias Metzler ([email protected])

Ideas, Concepts, Requests, Discussion Base, ...

Page 2: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 3: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 4: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 5: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

...

Page 6: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 7: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 8: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 9: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 10: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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)

Page 11: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 12: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 13: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 14: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 15: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 16: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 17: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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, ...

Page 18: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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/

Page 19: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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?

Page 20: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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.

Page 21: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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

Page 22: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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!

Page 23: Selena Extension Christian Brand (christian.brand@sap.com) Eckart Langhuth (eckart.langhuth@sap.com) Matthias Metzler (matthias.metzler@sap.com)christian.brand@sap.comeckart.langhuth@sap.commatthias.metzler@sap.com.

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?