ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder.

Slides:



Advertisements
Similar presentations
Unveiling ProjectWise V8 XM Edition. ProjectWise V8 XM Edition An integrated system of collaboration servers that enable your AEC project teams, your.
Advertisements

Copyright © IBM Corp., All rights reserved. The presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. RESTful Service Oriented.
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Copyright © IBM Corp., Introducing the new Web Tools JavaScript™ Features Phil Berkland IBM Software Group 9/26/2007.
Improving your OpenEdge® Development Productivity David Lund Sr. Training Program Manager, Progress.
Goals Give you a feeling of what Eclipse is.
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
Java Integrated Development Environments: ECLIPSE Part1 Installation.
Preferences in Eclipse 3.0 Present by Kun-Tse Wu.
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 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
1 Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu.
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.
Copyright © IBM Corp., All rights reserved. Plastic Surgery For Eclipse: Custom SWT Widgets, RCP Customization, and more Benjamin Pasero.
© 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
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
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.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
Welcome To Eclipse. Basic Concepts Workspace – directory where your projects are stored –Projects grouping of related works –Resources generic term to.
ABC of Platform Workspace | Copyright © IBM Corp., ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab.
© 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.
Selena Extension Christian Brand Eckart Langhuth Matthias Metzler
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.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Knowledge Management Platform Communities of Practice User Guide for CoP users Copyright © 2010 Group Technology Solutions. All Rights Reserved.
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.
Lesson 13 Databases Unit 2—Using the Computer. Computer Concepts BASICS - 22 Objectives Define the purpose and function of database software. Identify.
© 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.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
CHAPTER 9 File Storage Shared Preferences SQLite.
David Hatten Developer, UrbanCode 17 October 2013
Introduction to Entity Framework
Goals Give you a feeling of what Eclipse is.
Using E-Business Suite Attachments
COSC-4840 Software Engineering
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment.
Introduction to K2 Designer
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., 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. | ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab

ABC of Platform Workspace | 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. Introduction Workspace components  Resources  Compare  Team  CVS

ABC of Platform Workspace | 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. Resources overview An essential plug-in for Eclipse IDE applications is the resources plug-in (named org.eclipse.core.resources). The resources plug-in provides services for accessing the projects, folders, and files that a user is working on. The resources plug-in provides services for managing meta-data associated with resources (Markers: breakpoints, tasks, bookmarks, etc and Properties: arbitrary objects associated with resources)

ABC of Platform Workspace | 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. Compare, Team and CVS overview Compare  comparison of alternate states of a file system Team  repository tooling integration into Eclipse CVS  implementation of a CVS client

ABC of Platform Workspace | 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. 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., 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. Workspace Workspace is a central hub for user’s files The workspace contains a collection of resources. From the user perspective there are three different types of resources: projects, folders, files. Resources are organized in a tree. The resources plug-in provides APIs for creating, navigating, and manipulating resources in a workspace. The workbench uses these APIs to provide this functionality to the user. Your plug-in can also use these APIs. 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., 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. Resources API © 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., 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. Some useful tools See the modules in dev.eclipse.org repository org.eclipse.core.tools org.eclipse.core.tools.resources

ABC of Platform Workspace | 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. Basic plug-in Dependency to org.eclipse.core.runtime Content types Dependency to org.eclipse.core.resources Resource operations Builder framework Natures Dependency to org.eclipse.core.filesystem EFS

ABC of Platform Workspace | 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. 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., 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. 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. Preferences typically map to settings controlled by the user on the Preferences page, although this is not required by the underlying infrastructure. Plug-in preferences are key/value pairs, where the key describes the name of the preference, and the value is one of several different types (boolean, double, float, int, long, or string). Preferences can be stored and retrieved by the platform from the file system. The exact location of the saved preferences depends upon the scope of the preference. 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., 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. 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., 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. 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., 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. 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., 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. Markers (subtypes) © 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., 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. 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., 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. Natures – why use them? Configure and deconfigure when a nature is added/removed to a project (oportunity to add additional attributes to projest. Modify its metadata, add builders) propertyPages and popupMenus have filter mechanism which recognizes natures

ABC of Platform Workspace | 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. 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., 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. 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., 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. 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., 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. Builders and UI

ABC of Platform Workspace | 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. 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., 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. Demo

ABC of Platform Workspace | 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. Additional info and details Eclipse SDK Help  Platform Plug-in Developer Guide > Programmer’s Guide > Resource Overview  Platform Plug-in Developer Guide > Programmer’s Guide > Advanced Resource Concepts Examples  org.eclipse.ui.examples.filesystem

ABC of Platform Workspace | 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. Overview The Repository Integration Framework The Compare Framework Demo

ABC of Platform Workspace | 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. Repository Integration Framework Goal  Integrate the workflow that your repository users know with the concepts defined in the workbench (not just API) Example  The CVS client as a case study for integrating a team provider with the platform

ABC of Platform Workspace | 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. Repository Provider Define a RepositoryProvider  org.eclipse.team.core.repository  Subclass org.eclipse.team.core.RepositoryProvider Provide a configuration wizard for sharing projects  org.eclipse.team.ui.configurationWizard

ABC of Platform Workspace | 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. Functionality in a resource’s menu Add actions to the Team menu  org.eclipse.ui.popupMenus

ABC of Platform Workspace | 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. Decorate resources Decorate resources with team specific information  org.eclipse.ui.decorators  org.eclipse.team.ui.teamDecorators

ABC of Platform Workspace | 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. Views Provide customized view with team specific information  CVS Editors  CVS Repositories  History  Synchronize org.eclipse.ui.views

ABC of Platform Workspace | 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. Perspectives Team oriented perspective  org.eclipse.ui.perspectives

ABC of Platform Workspace | 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. Wizards Import/Export  org.eclipse.ui.importWizards  org.eclipse.ui.exportWizards New  org.eclipse.ui.newWizards Share  org.eclipse.team.ui.configurationWizards Synchronize  org.eclipse.ui.synchornizeWizards

ABC of Platform Workspace | 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. Preferences org.eclipse.ui.preferencePages Category: org.eclipse.team.ui.TeamPreferences

ABC of Platform Workspace | 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. Help

ABC of Platform Workspace | 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. 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., 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. 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., 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. Overview of Compare Architecture

ABC of Platform Workspace | 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. Compare/Merge viewers A simple text merge viewer and the JDT merge viewer

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

ABC of Platform Workspace | 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. 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., 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. 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., 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. The result

ABC of Platform Workspace | 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. 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., 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. The Panes of a Compare Editor Input

ABC of Platform Workspace | 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. The Panes of the Apply Patch wizard

ABC of Platform Workspace | 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. The Ancestor pane in the Apply Patch wizard

ABC of Platform Workspace | 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. Demo

ABC of Platform Workspace | 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. Additional info and details Eclipse SDK Help  Platform Plug-in Developer Guide > Programmer’s Guide > Compare support Examples  org.eclipse.compare.examples  org.eclipse.compare.examples.xml

ABC of Platform Workspace | 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. Web resources and contact Web    Repository  IRC:  #eclipse, #eclipse-dev  SzymonB, z4z4 Mail:  

ABC of Platform Workspace | 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. Legal Notice  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.