TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2.

Slides:



Advertisements
Similar presentations
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Advertisements

Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Goals Give you a feeling of what Eclipse is.
© by Pearson Education, Inc. All Rights Reserved.
 2006 Pearson Education, Inc. All rights reserved Introduction to the Visual C# 2005 Express Edition IDE.
Eclipse Architecture Dwight Deugo Nesa Matic
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
WebDynpro for ABAP Short introduction.
Chapter 1 Getting Started With Dreamweaver. Explore the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
1 Standard Widget Toolkit. 2 SWT l a widget toolkit for Java developers l provides a portable API and tight integration with the underlying native OS.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
JFace 吳昆澤. UI framework for plug-ins JFace provides classes for handling common UI programming tasks: Viewers handle the drudgery of populating, sorting,
XP New Perspectives on Introducing Microsoft Office XP Tutorial 1 1 Introducing Microsoft Office XP Tutorial 1.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Microsoft Visual Basic 2005: Reloaded Second Edition
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Deutsches Elektronen-Synchrotron DESY Helmholtz Association of German Research Centres Hamburg, Germany The European X-Ray Laser Project.
IE 411/511: Visual Programming for Industrial Applications
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Domain 3 Understanding the Adobe Dreamweaver CS5 Interface.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 4.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Chapter 3 – Part 1 Word Processing Writer for Linux CMPF 112 : COMPUTING SKILLS.
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 1.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Welcome To Eclipse. Basic Concepts Workspace – directory where your projects are stored –Projects grouping of related works –Resources generic term to.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
Eclipse 3.1 IDE Overview.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Chapter 1 Getting Started With Dreamweaver. Exploring the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
XP Tutorial 8 New Perspectives on Microsoft Windows XP 1 Microsoft Windows XP Object Linking and Embedding Tutorial 8.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Word Create a basic TOC. Course contents Overview: table of contents basics Lesson 1: About tables of contents Lesson 2: Format your table of contents.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
 2007 Pearson Education, Inc. All rights reserved Introduction to the Visual Basic Express 2005 IDE.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
DHTML.
Working in the Forms Developer Environment
Goals Give you a feeling of what Eclipse is.
ATS Application Programming: Java Programming
LMEvents SharePoint Portal How-to Guide
COSC-4840 Software Engineering
Chapter 2 – Introduction to the Visual Studio .NET IDE
Presentation transcript:

TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2

Workbench and UI Toolkits Workbench = desktop development environment -provides the overall structure, -presents an extensible UI to the user. Common paradigm for the creation, management, and navigation of workspace resources  seamless tool integration and controlled openness. The workbench API and implementation are built from two toolkits: SWT - a widget set and graphics library tightly integrated with the native window system but with an OS-independent API. JFace - a UI toolkit implemented using SWT that simplifies common UI programming tasks.

Standard Widget Toolkit (SWT) Issue: the tension between portable toolkits and native window system integration. Solution: Java AWT -low-level widgets (lists, text fields, buttons) implemented directly with native widgets on all underlying window systems -NO high-level widgets (trees, tables, rich text). Building a UI using AWT alone means programming to the least common denominator of all OS window systems. Java Swing toolkit -emulates high-level widgets. -provides look and feel emulation layers that attempt to make applications look like the underlying native window system. -emulated widgets invariably lag behind the look and feel of the native widgets  the user interaction with emulated widgets is usually different enough to be noticeable.

Standard Widget Toolkit (SWT) SWT -defines a common API that is available across a number of supported window systems. -SWT implementation uses native widgets wherever possible; where no native widget is available, the SWT implementation provides a suitable emulation. -common low-level widgets are implemented natively everywhere. -some generally useful higher-level widgets may need to be emulated on some window systems. This strategy allows SWT to: -maintain a consistent programming model in all environments -allow the underlying native window system's look and feel to shine through to the greatest extent possible.

Standard Widget Toolkit (SWT) SWT -exposes native window system-specific API, that is segregated into aptly named packages to indicate the fact that it is inherently non-portable. -interacts with native desktop features such as drag and drop, and can use components developed with OS component models ( like Windows ActiveX controls ). -provides separate and distinct implementations, expressed entirely in Java code, for each native window system. ( The Java native libraries are completely different, with each surfacing the APIs specific to the underlying window system ). This strategy greatly simplifies implementing, debugging, and maintaining SWT because it allows all interesting development to be done in Java. Of course, this is of no direct concern for ordinary clients of SWT since these natives are completely hidden behind the window system-independent SWT API. Ex. Any Windows programmer would find the Java implementation of SWT for Windows instantly familiar, since it consists of calls to the Windows API that they already know from programming in C.

JFace Def. JFace = UI toolkit with classes for handling many common UI programming tasks. Characteristics: -window-system-independent in both its API and implementation. -designed to work with SWT without hiding it. -includes the usual UI toolkit components of -image and font registries -Dialog -Preference -wizard frameworks -progress reporting for long running operations. Interesting features: -actions -viewers.

JFace features Def. Action = a command that can be triggered by the user via a button, menu item, or item in a tool bar. Key UI properties (ex. label, icon, tool tip) - used to construct appropriate widgets for presenting the action. Action mechanism -allows user commands to be defined independently from their exact whereabouts in the UI This separation allows the same action to be used in several places in the UI, and means that it is easy to change where an action is presented in the UI without having to change the code for the action itself.

JFace features Def. Viewers = model-based adapters for certain SWT widgets. -Handle common behavior. -Provide higher-level semantics than available from the SWT widgets. -Can optionally be configured with element-based filters and sorters. -Clients are notified of selections and events in terms of the domain elements they provide to the viewer. The standard viewers for lists, trees, and tables: -support populating the viewer with elements from the client's domain and keeping the widgets in synch with changes to that domain. -are configured with a content provider and a label provider. The content provider knows how to map the viewer's input element to the expected viewer content, and how to parlay domain changes into corresponding viewer updates. The label provider knows how to produce the specific string label and icon needed to display any given domain element in the widget.

JFace features Viewer implementation handles the mapping between domain elements and SWT widgets by: -adjusting for a filtered view of the elements -re-sorting when necessary. The standard viewer for text supports common operations ( such as double click behavior, undo, coloring, and navigating by character index or line number ). Text viewers -provide a document model to the client -manage the conversion of the document to the information required by the SWT styled text widget. Multiple viewers can be opened on the same model or document; all are updated automatically when the model or document changes in any of them.

Workbench Provides the UI personality of the Eclipse Platform. Supplies the structures in which tools interact with the user. Role (central and defining) = Eclipse Platform UI as a whole Workbench API – built using -SWT API (mainly) -JFace API

Workbench Eclipse Platform UI paradigm based on: -Editors -Views = support editors and provide alternative presentations as well as ways to navigate the information in Workbench. A view might appear by itself, or stacked with other views in a tabbed notebook. You can change the layout of a perspective by opening and closing views and by docking them in different positions in the Workbench window. -Perspective(s) – defines a set and layout of views in the Workbench window; groups together and organizes UI elements that relate to a specific task or workflow.

Workbench Editors allow the user to open, edit, and save objects. -follow an open-save-close lifecycle ( much like file system based tools ) -( more ) tightly integrated into the workbench. Eclipse Platform - provides a standard editor for text resources Other plug-ins – can supply more specific editors.

Workbench Views - provide information about some object that the user is working with in the workbench. Used to: -navigate resources -display properties of resources May assist an editor by providing information about the document being edited. For example, the standard content outline view shows a structured outline for the content of the active editor if one is available. May augment other views by providing information about the currently selected object. For example, the standard properties view presents the properties of the object selected in another view. Have a simpler lifecycle than editors: modifications made in a view (such as changing a property value) are generally saved immediately, and the changes are reflected immediately in other related parts of the UI. Eclipse Platform provides several standard views; additional views are supplied by other plug-ins.

Workbench Perspective -one or more per workbench window; share the same set of editors -only one visible -has its own views and editors that are arranged (tiled, stacked, or detached) for presentation on the screen (some may be hidden at any given moment). -Several different types of views and editors can be open at the same time within a perspective. -A perspective controls initial view visibility, layout, and action visibility. -The user can quickly switch perspective to work on a different task, and can easily rearrange and customize a perspective to better suit a particular task. -Eclipse Platform provides standard perspectives for general resource navigation, online help, and team support tasks. -Additional perspectives are supplied by other plug-ins.

Workbench Tools Integrate into this editors-views-perspectives UI paradigm in well-defined ways. The main extension points allow tools to augment the workbench: Add new types of editors. Add new types of views. Add new perspectives, which arrange old and new views to suit new user tasks. Eclipse Platform's standard views and editors are all contributed using these mechanisms. Tools May also augment existing editors, views, and perspectives: Add new actions to an existing view's local menu and tool bar. Add new actions to the workbench menu and tool bar when an existing editor becomes active. Add new actions to the pop-up content menu of an existing view or editor. Add new views, action sets, and shortcuts to an existing perspective.

Workbench Workbench window and perspective management: Editors and views: -automatically instantiated as needed -disposed of when no longer needed. -active editor or view ( of a perspective ) can use workbench services for tracking activation and selection. The part service tracks view and editor activation within the perspective, reporting activation and deactivation events to registered listeners. -view or editor can register with the selection service as a source for selections. The selection service feeds selection change events to all parties that have registered interest. This is how, for example, the standard properties view is notified of the domain object selected in the currently active editor or view. Workbench can create menus and tool bars without activating the contributing plug-ins ( using the display labels and icons for actions contributed by a tool are listed in the plug-in manifest ). Workbench activates the plug-in when the user attempts to use functionality that the plug-in provides.

UI Integration SWT and JFace - general purpose UI toolkits. Workbench – reflects UI personality of the Eclipse Platform. Tools written in Java using the Platform APIs achieve the highest level of integration with the Platform. External tools launched from within the Platform must open their own separate windows in order to communicate with the user and must access user data via the underlying file system. Tools integration - very loose, especially at the UI level. Levels of integration between these extremes are supported. Examples: The workbench has built-in support for embedding any OLE document as an editor (Windows only). This option provides tight UI integration. A plug-in tool can implement a container that bridges the Eclipse Platform API to an ActiveX control so that it can be used in an editor, view, dialog, or wizard (Windows only). SWT provides the requisite low-level support. This option provides tight UI integration. A plug-in tool can use AWT or Swing to open separate windows. This option provides loose UI integration, but allows tight integration below the UI. Of course, AWT and Swing would need to be present in the configuration of the underlying Java runtime environment that runs the Eclipse Platform.

Team Support Project ( in the workspace ) - associated to a team repository  placed under: Multiple team repository providers can coexist. Eclipse Platform includes support for CVS repositories accessed via either -pserver protocol -ssh protocol. -version -configuration management-extension points -repository provider to plug in new kinds of team repositories

Team Support Eclipse Platform: Allows each team repository provider to define its own workflow. Supplies basic hooks to allow a team repository provider to intervene in certain operations that manipulate resources in a project. These hooks provide good support for both optimistic and pessimistic models. Supplies placeholders for certain actions, preferences, and properties. Leaves it to each repository provider to define corresponding UI elements. Provides simple, extendable configuration wizard to associate projects with repositories. Extendable with UI elements for collecting information specific to the kind of repository specific to the extender.

Help mechanism Allows tools to define and contribute documentation to one or more online books. For example, a tool usually contributes help style documentation to a user guide, and API documentation (if it has any) to a separate programmer guide. Separation: -Raw content - HTML files. -Add-on navigation structures for raw content - XML files. Allows pre-existing HTML documentation to be incorporated directly into online books without needing to edit or rewrite them. Navigation structure - a tree of topics. Topic – can have a link to a raw content page. A single book - multiple alternate lists of top-level topics allowing  same information presented in completely different organizations; for example, organized by task or by tool.

Help mechanism The XML navigation files and HTML content files are stored in a plug-in's root directory or subdirectories. Small tools usually put their help documentation in the same plug-in as the code. Large tools often have separate help plug-ins. The Platform uses its own internal documentation server to provide the actual web pages from within the document web. This custom server allows the Platform to resolve special inter-plug-in links and extract HTML pages from ZIP archives. When organizing a help system, a full topic tree is only possible when the set of tools to be documented is closed. With the Eclipse Platform, the set of tools is open- ended, and, consequently, the structure of the help documentation needs to be modular. The Platform Help mechanism allows tools to contribute both raw content and sets of topics, and to indicate where to insert its topics into a pre-existing topic tree at predefined insertion points.

Conclusion -Eclipse Platform provides a nucleus of generic building blocks and APIs like the workspace and the workbench, and various extension points through which new functionality can be integrated. -Through these extension points, tools written as separate plug-ins can extend the Eclipse Platform. -The user is presented with an IDE specialized by the set of available tool plug-ins. -Tools may also define new extension points and APIs of their own and thereby serve as building blocks and integration points for yet other tools.