170 likes | 314 Views
Project Help. CSU 670 Fall 2003 Karl Lieberherr. New Book on Eclipse. @BOOK{gamma-beck:eclipse, AUTHOR = "Erich Gamma and Kent Beck", TITLE = "Contributing to Eclipse", PUBLISHER = "Addison Wesley", YEAR = 2003, SERIES = "Eclipse Series" }. Project (Model View). Inputs:
E N D
Project Help CSU 670 Fall 2003 Karl Lieberherr
New Book on Eclipse @BOOK{gamma-beck:eclipse, 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 Nov. 12 !! • N not in SELECTORS. • SELECTORS is syntactically incorrect • SELECTORS is semantically incorrect
Semantically incorrect strategies ( // there must be at least one strategy s1 = from A via B to C; s2 = { A -> B B -> C}; s2 = { X.A -> X.B X.B -> X.C}; ) node sets ( // zero or more node sets ns1 = (nodes s7); )
Semantically correct strategies ( // there must be at least one strategy s1 = from A via B to C; s2 = { A -> B B -> C}; s2 = { X.A -> X.B X.B -> X.C}; ) node sets ( // zero or more node sets ns0 = (nodes s2); ns1 = {A, B, C}; )
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 based on GEF plugin. • Controller: GEF-based 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 • Users you • Configurers you • Extenders you • Publishers some of you • Enablers few 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!!!