ABC of Platform Workspace | Copyright © IBM Corp., 2008. ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab.

Slides:



Advertisements
Similar presentations
Ganymede Simultaneous Release Review © 2008 by Borland Software Corp., made available under the EPL v1.0 MDT UML2Tools 0.8 Ganymede Simultaneous Release.
Advertisements

IBM Rational Team Concert
Copyright © IBM Corp., All rights reserved. The presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. RESTful Service Oriented.
Copyright © IBM Corp., Introducing the new Web Tools JavaScript™ Features Phil Berkland IBM Software Group 9/26/2007.
Goals Give you a feeling of what Eclipse is.
RTC Agile Planning Component
MP IP Strategy Stateye-GUI Provided by Edotronik Munich, May 05, 2006.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
Eclipse Architecture Dwight Deugo Nesa Matic
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
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.
Views Dwight Deugo Nesa Matic
1 Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu.
© Copyright 2008 IBM Corp. All rights reserved. This presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Using Commands and Menu Contributions.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
© 2009 IBM Corporation 1 RTC ClearQuest Importer and Synchronizer Lorelei Ngooi – RTC ClearQuest Synchronizer Lead.
Kimberley Peter. Copyright © IBM Corp., All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of.
Copyright © IBM Corp., All rights reserved. Plastic Surgery For Eclipse: Custom SWT Widgets, RCP Customization, and more Benjamin Pasero.
1 IBM Software Group ® PRJ270: Essentials of Rational Unified Process Module 5: Tailoring RUP.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
Conditions and Terms of Use
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
Copyright © IBM Corp., All rights reserved. This presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. OpenDocument Format.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 19, 2008 | Short Talk Extending TPTP for TTCN-3 Paul Slauenwhite.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Copyright © IBM Corp., The Eclipse™ Babel Project Translation Server Kit Lo IBM™ Corporation.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
© 2008 by Matt Flaherty & Mary Ruddy; made available under the EPL v1.0 Security & Identity : From present to future Matt Flaherty, IBM Mary Ruddy, Meristic.
ABC of Platform Workspace | Copyright © IBM Corp., All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder.
Click to add text © 2012 IBM Corporation 1 Visualization of View Data Susan L. Cline SWS Visualization.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Copyright © IBM Corp., | March | Creating Robust Scalable DSLs with UML Tutorial (172) James Bruck, Christian Damus IBM Rational Software.
Copyright © IBM Corp., Introduction to the Eclipse™ Babel Project Kit Lo IBM™ Corporation.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 18, 2008 | Nitin Dahyabhai What can the WTP Snippets View do.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Functional Testing with Eclipse TPTP | Copyright © IBM Corp., All rights reserved. Source code in this presentation is made available under.
Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.
© 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.
12 Copyright © 2009, Oracle. All rights reserved. Managing Backups, Development Changes, and Security.
Click to add text © 2012 IBM Corporation 1 InfoSphere Streams Streams Console Applications InfoSphere Streams Version 3.0 Warren Acker InfoSphere Streams.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Copyright (c) 2006 IBM Corporation; made available under the EPL v1.0 Update Policy ~ Where we are in 3.2.
Eclipse Debug Views Update Policy. 2 Copyright (c) 2005 IBM Corporation and others. All rights reserved. This program and the accompanying materials are.
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Domino iSeries Multi-Versioning © 2002 IBM Corporation | Lotus software © 2002 IBM Corporation Domino Multi-Versioning Mike Gordon – IBM Global Services.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
IBM Software Group ® Jazz Team Build – Part 1 Overview Jonathan.
Comparison between EPF Composer and Rational Method Composer
© 2013 IBM Corporation IBM UrbanCode Deploy v6.0 Support Enablement Training Jenkins plug-in 1 November 2013.
IBM Software Group ® Jazz Process Component —Process Template Management Thomas.
David Hatten Developer, UrbanCode 17 October 2013
Goals Give you a feeling of what Eclipse is.
Kristy Foster – L2 Software Engineer March 18, 2014
Deploy Plugins Developer 29 October 2013
COSC-4840 Software Engineering
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Presentation transcript:

ABC of Platform Workspace | Copyright © IBM Corp., ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab

ABC of Platform Workspace | Copyright © IBM Corp., Agenda Resources  Workspace  Resources  Properties  Preferences  Content types  Linked resources  Markers  Natures  Builders  Alternate file systems  Demo Team/Compare  Repository Integration Framwork  Compare Framework  Demo Summary and questions

ABC of Platform Workspace | Copyright © IBM Corp., Resources overview What is Resources plug-in? The resources plug-in provides  services for accessing the projects, folders, and files that a user is working with  provides services for managing meta-data associated with resources  Markers: breakpoints, tasks, bookmarks, etc  Properties: arbitrary objects associated with resources

ABC of Platform Workspace | Copyright © IBM Corp., Workspace and resources Workspace is a central hub for user’s files From the user perspective there are three different types of resources: projects, folders, files Derived resources are resources that are not original data, and can be recreated from their source files. It is common for derived files to be excluded from certain kinds of processing.

ABC of Platform Workspace | Copyright © IBM Corp., Properties Properties can be used to store meta-information about the resource. This mechanism can be used in user plug-ins to hold information specific for that plug-in. When a resource is deleted, its properties are deleted too. There are two kinds of properties Session properties  allow your plug-ins to easily cache information about a resource in key-value pairs  the values are arbitrary objects  these properties are maintained in memory and lost when a resource is deleted from the workspace, or when the project or workspace is closed Persistent properties  store information on disc in the workspace metadata  the value of a persistent property is an arbitrary string  the strings are intended to be short (under 2KB)  Properties are maintained across platform shutdown and restart To manipulate properties API is provided (see IResource class)

ABC of Platform Workspace | Copyright © IBM Corp., Project preferences Preferences in Eclipse (short overview) Eclipse provide the infrastructure for defining and storing preferences with different scopes and org.eclipse.core.runtime.preferences extension can be used to define additional scopes for preferences. The platform resources plug-in defines its own preference scope for projects. Project-scoped preferences are stored in a file located inside the project. Using project scope preference

ABC of Platform Workspace | Copyright © IBM Corp., Content types What is content type? There are some features of Eclipse that are content-sensitive, such as automatic encoding determination, editor selection, and menu contributions. The content type registry is extensible so plug-ins can contribute new content type definitions. How to define new content type © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Linked resources Linked resources are provided so that files and folders inside a project can be stored in a file system outside of the project's location. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Markers What is Marker? A marker is an extra note stuck to a resource. On the marker you can record information about a problem or a task to be done. How to manipulate markers? How to add new marker type Plug-ins can declare their own marker types using the org.eclipse.core.resources.markers extension point. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Natures Project natures allow to mark a project as a specific kind of project. This mechanism can be used to add a specific behaviour to projects. A project can have more than one nature. However, when you define a project nature, you can define special constraints for the nature Constraints:  one-of-nature  requires-nature Plug-ins can contribute implementations for natures using the org.eclipse.core.resources.natures extension point and supplying a class which implements IProjectNature © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Linked resources and natures What if a plug-in is not able to handle linked resources? © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Content types and natures Natures can declare affinity with arbitrary content types, affecting the way content type determination happens for files in the workspace. In case of conflicts, the content type having affinity with any of the natures configured for the corresponding project will be chosen. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Builders An incremental project builder is an object that manipulates the resources in a project in a particular way. Builders can apply a transformation on resources. Resources created by a builder are typically marked as derived resources. From an API point of view, the platform defines two basic types of builds:  A full build  An incremental build Plug-ins can contribute implementations for builder using the org.eclipse.core.resources.builders extension point and supplying a class which extends IncrementalProjectBuilder.

ABC of Platform Workspace | Copyright © IBM Corp., Alternate file systems What is EFS? EFS (The Eclipse FileSystem) is an abstract filesystem API that allows to work with other filesystems e.g. FTP, zip files, in-memory filesystem, and even CVS. File system providers By default, the org.eclipse.core.filesystem plug-in only includes a file system implementation for the local file system. Plug-ins can contribute implementations for other file systems using the org.eclipse.core.filesystem.filesystems extension point. File system providers must provide subclasses of FileStore and FileSystem. UI support for EFS There are several places in the UI where the user can select file system, e.g. wizards. The UI support for EFS can be added via the org.eclipse.ui.ide.fileSystemSupport extension point. The class attribute of these schema must be a org.eclipse.ui.ide.fileSystem.FileSystemContributor which is used to supply validation and browsing of the other file systems. Additional resources on EFS © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Overview The Repository Integration Framwork The Compare Framework Demo

ABC of Platform Workspace | Copyright © IBM Corp., Repository Integration Framework The workflow that your repository users know The concepts defined in workbench

ABC of Platform Workspace | Copyright © IBM Corp., Big picture Configure project (share) Add functionality to a resource’s menu Decorate resources with team specific information Provide customized view with team specific information Add Import/Export wizards Add team oriented perspectives Add Help

ABC of Platform Workspace | Copyright © IBM Corp., Basic steps: Start-up Define a RepositoryProvider  dependency org.eclipse.team.core  extension point org.eclipse.team.core.repository  Subclass org.eclipse.team.core.RepositoryProvider Provide a configuration wizard for sharing projects  extension point org.eclipse.team.ui.configurationWizard Add actions to the Team menu  extension point org.eclipse.ui.popupMenus

ABC of Platform Workspace | Copyright © IBM Corp., Basic steps: Views and Editing Enhancing resource views  Implement decorators  Add preference pages  Use team private members Handling user editing  FileModificationValidator: validateSave and validateEdit  IMoveDeleteHook  ResourceRuleFactory  Use linked resources if needed Additional enhancements  Use project sets to export projects  Honor the ignore extension  Add own views  Add own perspective

ABC of Platform Workspace | Copyright © IBM Corp., Additional info and details Eclipse SDK Help  Platform Plug-in Developer Guide > Team Support > Rich Team Integration  form.doc.isv/guide/team_howto.htm form.doc.isv/guide/team_howto.htm Examples:  org.eclipse.team.examples.filesystem  org.eclipse.team.cvs.* Repository projects supporting Eclipse 

ABC of Platform Workspace | Copyright © IBM Corp., The Compare Framework What is the purpose of the Compare framework  Support comparison of alternate states of a file system or data store What does the Compare framework provide?  API to define the input to a comparison  Extensions for associating viewers with input types  Containers to host comparisons in the UI

ABC of Platform Workspace | Copyright © IBM Corp., Overview of Compare Architecture

ABC of Platform Workspace | Copyright © IBM Corp., What does the Compare Framework Provide? API defining the input to the Comparison  Supports single node or a tree  Defines interfaces for accessing contributor state  Content is generally stream based (but not necessarily) API and infrastructure for defining viewers for various data types  Content, structure and merge viewers  Implementations for text, image and zips Various containers for hosting comparisons  In editors, views or dialogs A differencing engine  For tree or range based differences API and actions related to file system resources  Compare with Each Other, Local History, Apply Patch

ABC of Platform Workspace | Copyright © IBM Corp., Merge viewers A simple text merge viewer and the JDT merge viewer

ABC of Platform Workspace | Copyright © IBM Corp., How to create the simplest compare editor? Ingredients:  DiffNode computed in a CompareEditorInput subclass  An action to open the compare editor  To specify which of the panes is editable use CompareConfiguration  A CompareItem that implements  ITypedElement for name, image and content type of the object  IModificationDate for timestamp  IStreamContentAccessor to supply the content  A contribution in org.eclipse.ui.popupMenus extension point

ABC of Platform Workspace | Copyright © IBM Corp., The input and the action © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., The item and the popup menu entry © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., Result

ABC of Platform Workspace | Copyright © IBM Corp., How do I enhance my text merger? Add extension for contentMergeViewer  Register an IViewerCreator factory  Association is through content type or file extension Implement a subclass of TextMergeViewer  To provide syntax highlighting  getDocumentPartitioner/getDocumentPartitioning  configureTextViewer to provide a source viewer configuration  JDT reuses these components from the Java TM Editor  Provide custom toolbar items  createToolItems/updateToolItems  JDT doesn’t provide custom actions  Provide token comparator for breaking a line into tokens  createTokenComparator  JDT provides a custom comparator

ABC of Platform Workspace | Copyright © IBM Corp., How do I provide a structure merge viewer? Add an extension of structureMergeViewer  Provide instance or subclass of StructureDiffViewer Add an extension of structureCreator  Provide a instance of IStructureCreator  Provides the structure of a single element (e.g. file)  i.e. a tree representation of the element  Nodes are subclasses of DocumentRangeNode  Need a unique type (“java2” for java)  Also provides API to write changes back to the element  Subclass StructureCreator to be file buffer aware  Viewer uses the differencing engine to create a tree representation of the differences

ABC of Platform Workspace | Copyright © IBM Corp., Example snippet from the Java merge viewer © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.

ABC of Platform Workspace | Copyright © IBM Corp., What do I need to do for non-text artifacts? Add extension for contentMergeViewer Subclass ContentMergeViewer  Manages the arrangement of ancestor, left and right panes  Provides copy operations for complete contents  Simple example  org.eclipse.compare.internal.ImageMergeViewer Or subclass Viewer  If you want something totally different

ABC of Platform Workspace | Copyright © IBM Corp., How is the combination of content and structure managed? CompareEditorInput  Manages the panes of a comparison  Input  Structure (1 or 2 panes)  Content  Is hosted in a container that could be an editor, dialog or view.  CompareUI#openIn  Client provides the compare input  Used to feed input and content panes  Selection in input pane also feeds structure and content panes  Input pane is optional  i.e. the input pane is not used if the input has no children  Allows tree to be shown in a separate view  e.g. Synchronize or History view

ABC of Platform Workspace | Copyright © IBM Corp., The Panes of a Compare Editor Input

ABC of Platform Workspace | Copyright © IBM Corp., The Panes of the Apply Patch wizard

ABC of Platform Workspace | Copyright © IBM Corp., The Ancestor pane in the Apply Patch wizard

ABC of Platform Workspace | Copyright © IBM Corp., Demo

ABC of Platform Workspace | Copyright © IBM Corp., Legal Notice  Copyright © IBM Corp., All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.  IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation, in the United States, other countries or both.  Java and all Java-based marks, among others, are trademarks or registered trademarks of Sun Microsystems in the United States, other countries or both.  Eclipse and the Eclipse logo are trademarks of Eclipse Foundation, Inc.  Other company, product and service names may be trademarks or service marks of others.  THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION, IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, SUCH INFORMATION. ANY INFORMATION CONCERNING IBM'S PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE.