SlideShare a Scribd company logo
Interfacing to Eclipse Standard Views




Eclipse contains a large number of standard views that can be extended
to support new languages or data models. This model focus on the
interface to the most common Eclipse views: Problems View, Outline
View, and the Properties View.




Redistribution and other use of this material requires written permission from The RCP Company.

L0001 - 2010-11-27
Problems View


The problems view is used to show resource markers, which can represent
anything(!), but normally are error conditions

Markers are installed on resources (IResource)
     The file of an editor is found via the editor input (IEditorInput) via
      adaption
       IFile res = (IFile)editor.getEditorInput().getAdapter(IFile.class);



     This only works for files in the workspace – not files opened via
      “File”→”Open File…” – for the later the above construct returns null




2
                                                                              L0001 - 2010-11-27
Markers (IMarker)


Markers are associated as detail data on resources (IResource)
Markers have a type, an unique ID (per resource) and a set of text attributes
New marker types are defined with the org.eclipse.core.resources.markers extension point
     Each marker type has a name, a set of super-marker-types, a persistence and a set
      of attributes
     The resulting new marker type will inherit all attributes from super-markertypes

Only persistent markers are saved between invocations
     A new marker type is non-persistent unless explicitly set

Basic marker types related to problems
     org.eclipse.core.resources.problemmarker – with attributes severity, message, and
      location
     org.eclipse.core.resources.textmarker – with attributes charStart, charEnd,
      lineNumber
All relevant marker related constants are defined in IMarker
Makers can be grouped in the Problems View via support in the
org.eclipse.ui.ide.markerSupport extension point


3
                                                                                          L0001 - 2010-11-27
Creating a new Marker Type


The extension for a new marker type is special
     The id of the new marker type is specified directly in the extension and
      not in a sub-element (like for views and perspectives)
     If no id is specified, the target Eclipse cannot start!!!



        <extension id="problem" name=“My Personal Problem"
            point="org.eclipse.core.resources.markers">
          <super type="org.eclipse.core.resources.problemmarker" />
        </extension>




4
                                                                           L0001 - 2010-11-27
Markers Manipulation


Markers are accessed using methods of IResource
     createMarker(type) – creates and returns a new marker of the specified
      type
     findMarker(id) – find a specific marker
     deleteMarkers(type, includeSubtypes, depth) – deletes all markers of the
      specified type
     …and many more…

Markers also has a large set of methods
     delete() – deletes the marker
     getType() – returns the type
     getAttribute(name) – returns the value of the attribute
     setAttribute(name, value) – sets the value of the attribute
     setAttributes(String[] attributeNames, Object[] values) – sets the values
      of many attributes


5
                                                                              L0001 - 2010-11-27
Working with Markers


To create a “problem” marker for a complete file, just use the following



         try {
            IFile file = myEditor.getFile();
            IMarker marker = file.createMarker(IMarker.PROBLEM);
            marker.setAttribute(IMarker.MESSAGE, "hello");
         } catch (CoreException e) {
            e.printStackTrace();
         }




6
                                                                          L0001 - 2010-11-27
Lab Exercise


Add a new marker type for your problems
     Use problemmarker and textmarker as super-types

Create markers for all errors at the end of each parse
     Remember to delete old markers

Do they show up in the problems view?

Do you see annotations and squibbles in the editor?




7
                                                         L0001 - 2010-11-27
Outline View


The Outline view shows an outline of domain model of the current editor
     Requires a domain model has been built
     Has dependency on org.eclipse.ui.views

The content of the outline view is supplied by the active editor via adaption
to IContentOutlinePage
     Result should inherit from ContentOutlinePage
     Cache returned object as this method is called often

        private IContentOutlinePage myContentOutlinePage = null;
        @Override
        public Object getAdapter(Class adapter) {
           if (adapter == IContentOutlinePage.class) {
               if (myContentOutlinePage == null) {
                   myContentOutlinePage = new NINEditorOutlinePage(this);
               }
               return myContentOutlinePage;
           }
           return super.getAdapter(adapter);
        }




8
                                                                            L0001 - 2010-11-27
Outline of Outline Page




public class NINEditorOutlinePage extends ContentOutlinePage {
  @Override
  public void createControl(Composite parent) {
     super.createControl(parent);
     final TreeViewer tree = getTreeViewer();
     tree.setLabelProvider(new MyLabelProvider());
     tree.setContentProvider(new MyContentProvider());
     tree.setInput(new Object());
     // Add listener on model, so tree can be refreshed when model is updated
  }
  private class MyLabelProvider extends LabelProvider { … }
  private class MyContentProvider implements ITreeContentProvider { … }
}




9
                                                                                L0001 - 2010-11-27
Outline View Extras


 To get popup menu
      Just install it in the tree – remember to register it

 To synchronize view with editor navigation
      Add navigation tracker in the editor and let the view listen

 To synchronize editor with selection in view
      Add selection listener in editor
      If current selection is a domain object of the editor, move to that
       position
        
            Use ITextViewer.revealRange(int offset, int length)

 To add filtering and sorting to view
      Extend ContentOutlinePage.setActionBars(IActionBars)




10
                                                                             L0001 - 2010-11-27
Lab Exercise


 Extend editor with support for outline view

 Synchronize the editor with the current selection in the view




11
                                                                 L0001 - 2010-11-27
Properties View


 The Properties view shows properties of the current selection
      Requires a domain model as been built in editor
      Has dependency on org.eclipse.ui.views

 A property source (IPropertySource) describes how the property view should
 show the properties of an object

 The content of the property view is supplied by the current selection via
 inheritance from or adaption to IPropertySource
      Inherits from IPropertySource
      Implements IAdaptable.getAdapter(IPropertySource.class)
        
            Can be accomplished via adapter factory




12
                                                                             L0001 - 2010-11-27
Implementation of Property Sources (IPropertySource)


 A property source describes the supported properties using descriptors
 (IPropertyDescriptor)
      A descriptor includes information about
        
            name, description, help
        
            optionally a label provider, how to create a property editor
        
            If it can create a property editor, it is settable
      The platform includes a number of standard descriptors
        
            PropertyDescriptor – read-only property
        
            TextPropertyDescriptor – text based property
        
            ColorPropertyDescriptor – color property
        
            ComboBoxPropertyDescriptor – list based property

 A property source can get and possibly set and reset property values




13
                                                                           L0001 - 2010-11-27
Interesting Parts of Property Source

public class ExPropertySource implements IPropertySource {
  … myObject;
  public IPropertyDescriptor[] getPropertyDescriptors() {
     return IPropertyDescriptor[] = { new TextPropertyDescriptor("name", "name") };
  }
  public Object getPropertyValue(Object id) {
     if ("name".equals(id)) {
         return myObject.getName();
     } else {
         return null;
     }
  }
  public void setPropertyValue(Object id, Object value) {
     if ("name".equals(id)) {
         myObject.setName((String) value);
     }
  }
}




14
                                                                                      L0001 - 2010-11-27
Lab Exercise


 Extend editor with support for properties view

 Add support for setting the name in the domain model
      Use IDocument.replace(offset, length, text)




15
                                                        L0001 - 2010-11-27
More Information


 “Mark My Words: Using markers to tell users about problems and tasks”
      http://www.eclipse.org/resources/resource.php?id=237
      
          Somewhat basic article on markers

 “Take control of your properties”
      http://www.eclipse.org/resources/resource.php?id=214
      
          Good introduction with plenty of code examples

 “The Eclipse Tabbed Properties View”
      http://www.eclipse.org/resources/resource.php?id=138
      
          Introduction to the new tabbed properties view




16
                                                                         L0001 - 2010-11-27

More Related Content

What's hot

Z blue introduction to gui (39023299)
Z blue   introduction to gui (39023299)Z blue   introduction to gui (39023299)
Z blue introduction to gui (39023299)
Narayana Swamy
 
Swing
SwingSwing
Java Swing
Java SwingJava Swing
Java Swing
Shraddha
 
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
Dave Steinberg
 
Eclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIsEclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIs
Luca D'Onofrio
 
java swing
java swingjava swing
java swing
Waheed Warraich
 
Lab3-Android
Lab3-AndroidLab3-Android
Lab3-Android
Lilia Sfaxi
 
Basic using of Swing in Java
Basic using of Swing in JavaBasic using of Swing in Java
Basic using of Swing in Java
suraj pandey
 
Java swing
Java swingJava swing
Java swing
Apurbo Datta
 
Swing and Graphical User Interface in Java
Swing and Graphical User Interface in JavaSwing and Graphical User Interface in Java
Swing and Graphical User Interface in Java
babak danyal
 
introduction of Java beans
introduction of Java beansintroduction of Java beans
introduction of Java beans
shravan kumar upadhayay
 
Complete java swing
Complete java swingComplete java swing
Complete java swing
jehan1987
 
Swings in java
Swings in javaSwings in java
Swings in java
Jyoti Totla
 
Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1
PRN USM
 
Unit iv
Unit ivUnit iv
Unit iv
bhushan_adavi
 
Java Beans
Java BeansJava Beans
Java Beans
Ankit Desai
 

What's hot (20)

Introdu.awt
Introdu.awtIntrodu.awt
Introdu.awt
 
Chapter 1 swings
Chapter 1 swingsChapter 1 swings
Chapter 1 swings
 
Z blue introduction to gui (39023299)
Z blue   introduction to gui (39023299)Z blue   introduction to gui (39023299)
Z blue introduction to gui (39023299)
 
Swing
SwingSwing
Swing
 
Java Swing
Java SwingJava Swing
Java Swing
 
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
EclipseCon 2005: Everything You Always Wanted to do with EMF (But were Afraid...
 
Eclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIsEclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIs
 
java swing
java swingjava swing
java swing
 
Lab3-Android
Lab3-AndroidLab3-Android
Lab3-Android
 
Basic using of Swing in Java
Basic using of Swing in JavaBasic using of Swing in Java
Basic using of Swing in Java
 
Java swing
Java swingJava swing
Java swing
 
Swing and Graphical User Interface in Java
Swing and Graphical User Interface in JavaSwing and Graphical User Interface in Java
Swing and Graphical User Interface in Java
 
introduction of Java beans
introduction of Java beansintroduction of Java beans
introduction of Java beans
 
Bean Intro
Bean IntroBean Intro
Bean Intro
 
Complete java swing
Complete java swingComplete java swing
Complete java swing
 
Swings in java
Swings in javaSwings in java
Swings in java
 
Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1
 
Unit iv
Unit ivUnit iv
Unit iv
 
Java Beans
Java BeansJava Beans
Java Beans
 
javabeans
javabeansjavabeans
javabeans
 

Similar to L0043 - Interfacing to Eclipse Standard Views

react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
DayNightGaMiNg
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
DayNightGaMiNg
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
janet736113
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
Pankhuree Srivastava
 
Swift Tableview iOS App Development
Swift Tableview iOS App DevelopmentSwift Tableview iOS App Development
Swift Tableview iOS App Development
Ketan Raval
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
Neelesh Shukla
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Toru Wonyoung Choi
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
ddrschiw
 
Joel Landis Net Portfolio
Joel Landis Net PortfolioJoel Landis Net Portfolio
Joel Landis Net Portfolio
jlshare
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
Una Daly
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworks
MD Sayem Ahmed
 
OOPS IN PHP.pptx
OOPS IN PHP.pptxOOPS IN PHP.pptx
OOPS IN PHP.pptx
rani marri
 
EMF Tips n Tricks
EMF Tips n TricksEMF Tips n Tricks
EMF Tips n Tricks
Kaniska Mandal
 
-Kotlin_Camp_Unit2.pptx
-Kotlin_Camp_Unit2.pptx-Kotlin_Camp_Unit2.pptx
-Kotlin_Camp_Unit2.pptx
RishiGandhi19
 
-Kotlin Camp Unit2.pptx
-Kotlin Camp Unit2.pptx-Kotlin Camp Unit2.pptx
-Kotlin Camp Unit2.pptx
IshwariKulkarni6
 
Intro to iOS Development • Made by Many
Intro to iOS Development • Made by ManyIntro to iOS Development • Made by Many
Intro to iOS Development • Made by Many
kenatmxm
 
Context and Dependency Injection 2.0
Context and Dependency Injection 2.0Context and Dependency Injection 2.0
Context and Dependency Injection 2.0
Brian S. Paskin
 
Intro to Core Data
Intro to Core DataIntro to Core Data
Intro to Core Data
Make School
 
Introduction to java beans
Introduction to java beansIntroduction to java beans
Introduction to java beans
Hitesh Parmar
 

Similar to L0043 - Interfacing to Eclipse Standard Views (20)

react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Swift Tableview iOS App Development
Swift Tableview iOS App DevelopmentSwift Tableview iOS App Development
Swift Tableview iOS App Development
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
 
Joel Landis Net Portfolio
Joel Landis Net PortfolioJoel Landis Net Portfolio
Joel Landis Net Portfolio
 
Advance RCP
Advance RCPAdvance RCP
Advance RCP
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworks
 
OOPS IN PHP.pptx
OOPS IN PHP.pptxOOPS IN PHP.pptx
OOPS IN PHP.pptx
 
EMF Tips n Tricks
EMF Tips n TricksEMF Tips n Tricks
EMF Tips n Tricks
 
-Kotlin_Camp_Unit2.pptx
-Kotlin_Camp_Unit2.pptx-Kotlin_Camp_Unit2.pptx
-Kotlin_Camp_Unit2.pptx
 
-Kotlin Camp Unit2.pptx
-Kotlin Camp Unit2.pptx-Kotlin Camp Unit2.pptx
-Kotlin Camp Unit2.pptx
 
Intro to iOS Development • Made by Many
Intro to iOS Development • Made by ManyIntro to iOS Development • Made by Many
Intro to iOS Development • Made by Many
 
Context and Dependency Injection 2.0
Context and Dependency Injection 2.0Context and Dependency Injection 2.0
Context and Dependency Injection 2.0
 
Intro to Core Data
Intro to Core DataIntro to Core Data
Intro to Core Data
 
Introduction to java beans
Introduction to java beansIntroduction to java beans
Introduction to java beans
 

More from Tonny Madsen

L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse Configuration
Tonny Madsen
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
Tonny Madsen
 
L0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse PlatformL0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse Platform
Tonny Madsen
 
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
Tonny Madsen
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
Tonny Madsen
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Tonny Madsen
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Tonny Madsen
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
Tonny Madsen
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)
Tonny Madsen
 
IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)
Tonny Madsen
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Tonny Madsen
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
Tonny Madsen
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
Tonny Madsen
 
ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
Tonny Madsen
 
eclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hoodeclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hood
Tonny Madsen
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupTonny Madsen
 
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Tonny Madsen
 
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
Tonny Madsen
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
Tonny Madsen
 
ITU - MDD – Modeling Techniques
ITU - MDD – Modeling TechniquesITU - MDD – Modeling Techniques
ITU - MDD – Modeling Techniques
Tonny Madsen
 

More from Tonny Madsen (20)

L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse Configuration
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
 
L0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse PlatformL0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse Platform
 
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)
 
IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
 
eclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hoodeclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hood
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user group
 
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
 
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
ITU - MDD – Modeling Techniques
ITU - MDD – Modeling TechniquesITU - MDD – Modeling Techniques
ITU - MDD – Modeling Techniques
 

Recently uploaded

How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
Steve Thomason
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
AzmatAli747758
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
rosedainty
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
PedroFerreira53928
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 

Recently uploaded (20)

How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 

L0043 - Interfacing to Eclipse Standard Views

  • 1. Interfacing to Eclipse Standard Views Eclipse contains a large number of standard views that can be extended to support new languages or data models. This model focus on the interface to the most common Eclipse views: Problems View, Outline View, and the Properties View. Redistribution and other use of this material requires written permission from The RCP Company. L0001 - 2010-11-27
  • 2. Problems View The problems view is used to show resource markers, which can represent anything(!), but normally are error conditions Markers are installed on resources (IResource)  The file of an editor is found via the editor input (IEditorInput) via adaption IFile res = (IFile)editor.getEditorInput().getAdapter(IFile.class);  This only works for files in the workspace – not files opened via “File”→”Open File…” – for the later the above construct returns null 2 L0001 - 2010-11-27
  • 3. Markers (IMarker) Markers are associated as detail data on resources (IResource) Markers have a type, an unique ID (per resource) and a set of text attributes New marker types are defined with the org.eclipse.core.resources.markers extension point  Each marker type has a name, a set of super-marker-types, a persistence and a set of attributes  The resulting new marker type will inherit all attributes from super-markertypes Only persistent markers are saved between invocations  A new marker type is non-persistent unless explicitly set Basic marker types related to problems  org.eclipse.core.resources.problemmarker – with attributes severity, message, and location  org.eclipse.core.resources.textmarker – with attributes charStart, charEnd, lineNumber All relevant marker related constants are defined in IMarker Makers can be grouped in the Problems View via support in the org.eclipse.ui.ide.markerSupport extension point 3 L0001 - 2010-11-27
  • 4. Creating a new Marker Type The extension for a new marker type is special  The id of the new marker type is specified directly in the extension and not in a sub-element (like for views and perspectives)  If no id is specified, the target Eclipse cannot start!!! <extension id="problem" name=“My Personal Problem" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.core.resources.problemmarker" /> </extension> 4 L0001 - 2010-11-27
  • 5. Markers Manipulation Markers are accessed using methods of IResource  createMarker(type) – creates and returns a new marker of the specified type  findMarker(id) – find a specific marker  deleteMarkers(type, includeSubtypes, depth) – deletes all markers of the specified type  …and many more… Markers also has a large set of methods  delete() – deletes the marker  getType() – returns the type  getAttribute(name) – returns the value of the attribute  setAttribute(name, value) – sets the value of the attribute  setAttributes(String[] attributeNames, Object[] values) – sets the values of many attributes 5 L0001 - 2010-11-27
  • 6. Working with Markers To create a “problem” marker for a complete file, just use the following try { IFile file = myEditor.getFile(); IMarker marker = file.createMarker(IMarker.PROBLEM); marker.setAttribute(IMarker.MESSAGE, "hello"); } catch (CoreException e) { e.printStackTrace(); } 6 L0001 - 2010-11-27
  • 7. Lab Exercise Add a new marker type for your problems  Use problemmarker and textmarker as super-types Create markers for all errors at the end of each parse  Remember to delete old markers Do they show up in the problems view? Do you see annotations and squibbles in the editor? 7 L0001 - 2010-11-27
  • 8. Outline View The Outline view shows an outline of domain model of the current editor  Requires a domain model has been built  Has dependency on org.eclipse.ui.views The content of the outline view is supplied by the active editor via adaption to IContentOutlinePage  Result should inherit from ContentOutlinePage  Cache returned object as this method is called often private IContentOutlinePage myContentOutlinePage = null; @Override public Object getAdapter(Class adapter) { if (adapter == IContentOutlinePage.class) { if (myContentOutlinePage == null) { myContentOutlinePage = new NINEditorOutlinePage(this); } return myContentOutlinePage; } return super.getAdapter(adapter); } 8 L0001 - 2010-11-27
  • 9. Outline of Outline Page public class NINEditorOutlinePage extends ContentOutlinePage { @Override public void createControl(Composite parent) { super.createControl(parent); final TreeViewer tree = getTreeViewer(); tree.setLabelProvider(new MyLabelProvider()); tree.setContentProvider(new MyContentProvider()); tree.setInput(new Object()); // Add listener on model, so tree can be refreshed when model is updated } private class MyLabelProvider extends LabelProvider { … } private class MyContentProvider implements ITreeContentProvider { … } } 9 L0001 - 2010-11-27
  • 10. Outline View Extras To get popup menu  Just install it in the tree – remember to register it To synchronize view with editor navigation  Add navigation tracker in the editor and let the view listen To synchronize editor with selection in view  Add selection listener in editor  If current selection is a domain object of the editor, move to that position  Use ITextViewer.revealRange(int offset, int length) To add filtering and sorting to view  Extend ContentOutlinePage.setActionBars(IActionBars) 10 L0001 - 2010-11-27
  • 11. Lab Exercise Extend editor with support for outline view Synchronize the editor with the current selection in the view 11 L0001 - 2010-11-27
  • 12. Properties View The Properties view shows properties of the current selection  Requires a domain model as been built in editor  Has dependency on org.eclipse.ui.views A property source (IPropertySource) describes how the property view should show the properties of an object The content of the property view is supplied by the current selection via inheritance from or adaption to IPropertySource  Inherits from IPropertySource  Implements IAdaptable.getAdapter(IPropertySource.class)  Can be accomplished via adapter factory 12 L0001 - 2010-11-27
  • 13. Implementation of Property Sources (IPropertySource) A property source describes the supported properties using descriptors (IPropertyDescriptor)  A descriptor includes information about  name, description, help  optionally a label provider, how to create a property editor  If it can create a property editor, it is settable  The platform includes a number of standard descriptors  PropertyDescriptor – read-only property  TextPropertyDescriptor – text based property  ColorPropertyDescriptor – color property  ComboBoxPropertyDescriptor – list based property A property source can get and possibly set and reset property values 13 L0001 - 2010-11-27
  • 14. Interesting Parts of Property Source public class ExPropertySource implements IPropertySource { … myObject; public IPropertyDescriptor[] getPropertyDescriptors() { return IPropertyDescriptor[] = { new TextPropertyDescriptor("name", "name") }; } public Object getPropertyValue(Object id) { if ("name".equals(id)) { return myObject.getName(); } else { return null; } } public void setPropertyValue(Object id, Object value) { if ("name".equals(id)) { myObject.setName((String) value); } } } 14 L0001 - 2010-11-27
  • 15. Lab Exercise Extend editor with support for properties view Add support for setting the name in the domain model  Use IDocument.replace(offset, length, text) 15 L0001 - 2010-11-27
  • 16. More Information “Mark My Words: Using markers to tell users about problems and tasks”  http://www.eclipse.org/resources/resource.php?id=237  Somewhat basic article on markers “Take control of your properties”  http://www.eclipse.org/resources/resource.php?id=214  Good introduction with plenty of code examples “The Eclipse Tabbed Properties View”  http://www.eclipse.org/resources/resource.php?id=138  Introduction to the new tabbed properties view 16 L0001 - 2010-11-27

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. Now it&amp;#x2019;s time for the lab.\n
  8. \n
  9. \n
  10. \n
  11. Now it&amp;#x2019;s time for the lab.\n
  12. \n
  13. ColumnLabelProviders &amp;#x2013; as described in module L0011 &amp;#x201C;Contributing to the Eclipse User Interface&amp;#x201D; &amp;#x2013; can be used. (3.3 edition)\n
  14. \n
  15. Now it&amp;#x2019;s time for the lab.\n
  16. \n