Project Help CSU 670 Fall 2004 Karl Lieberherr
New Book on AUTHOR = "Erich Gamma and Kent Beck", TITLE = "Contributing to Eclipse", PUBLISHER = "Addison Wesley", YEAR = 2003, SERIES = "Eclipse Series" }
Project (Model View) Inputs: –MY-CLASS-DICTIONARY satisfying the class dictionary for class dictionaries called STANDARD-SELF-DESCRIBING. –SELECTORS satisfying class dictionary SELECTORS-CD –Selector name N defined in SELECTORS.
Project (Model View) Output: –Show effect of selection (SELECTORS, N): Effect 1: if the selector name N is a node set name: The list of nodes selected in MY-CLASS-DICTIONARY. Effect 2: if the selector name N is a strategy name: The class graph computed by the constructor. ClassGraph(Traversal tg) where tg is the traversal graph constructed from the strategy with name N and MY-CLASS-DICTIONARY. –Users of the tool expect to get good error messages if they make mistakes in SELECTORS or N.
Analysis (Derive Growth Plan) Good cases: –Effect 1: Select one node with N. Colored node list should contain only that node. –Effect 1: Select several nodes using (nodes s1) where s1 is a strategy. Colored node list should contain nodes in “scope” of s1. –Effect 2: Select several nodes and edges using a strategy s1. –…
Analysis (Derive Growth Plan) Error cases: Due Oct. 29 –N not in SELECTORS. –SELECTORS is syntactically incorrect –SELECTORS is semantically incorrect
What else can go wrong? ??
Section 29: It’s Just a View Tip 42: Separate Views from Models Communication between objects through events Event: a special message: something interesting happened Sender of event does not have to know receiver
Publish/Subscribe Objects register to receive only events they need. View registers for certain events that happen in model. Can have multiple views of the same model.
Useful beyond GUIs Model: The abstract data model representing the target object. The model has no direct knowledge of any views or controllers. View: A way to interpret the model. It subscribes to changes in the model and logical events from the controller. Controller: A way to control the view and provide the model with new data. It publishes events to both the Model and View.
Our models and views Model: class dictionary STANDARD- SELF-DESCRIBING. View: Eclipse based view in text editor. Controller: control of view updating the Model.
Our models and views Model: SELECTORS-CD View: Syntax sensitive editor for SELECTORS- CD language Controller: Editor commands to update the objects defined by SELECTORS-CD.
Eclipse stages In this course Usersyou Configurersyou Extendersyou Publisherssome of you Enablersfew of you Committers
Eclipse House Rules (Extender) Monkey see / Monkey do rule: Always start by copying the structure of a similar plug- in. User Continuity Rule: Preserve the user interface state across sessions. Responsibility Rule: Clearly identify your plug-ins as the source of problems.
Plug-ins Eclipse base plus Java Environment: more than 60 large plug-ins Websphere Application Development environment: adds another 500 plug-ins Plug-ins loaded lazily Lotus Notes is put onto Eclipse: Eclipse is much more that an IDE!!!