150 likes | 174 Views
This project provides a tool for modeling with Eclipse, focusing on error message precision and growth plan generation based on selected nodes and strategies. The tool facilitates generating colored node lists and class graphs, enhancing user experience. Separate Views, Models, and Controllers are utilized for robust communication and event handling within the tool. The project follows Eclipse House Rules and best practices explained in the book "Contributing to Eclipse" by Erich Gamma and Kent Beck.
E N D
Project Help CSU 670 Fall 2004 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 Oct. 29 • N not in SELECTORS. • SELECTORS is syntactically incorrect • SELECTORS is semantically incorrect
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 • 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!!!