Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Custom Annotation Property Views"

(New page: __TOC__ {{backlink|Tigerstripe_APIs}} === Introduction === Annotation Framework support 4 ways to extend Annotation Property View: override properties section, add properties tabs, add ann...)
 
Line 4: Line 4:
 
Annotation Framework support 4 ways to extend Annotation Property View: override properties section, add properties tabs, add annotation actions and register custom properties editors.
 
Annotation Framework support 4 ways to extend Annotation Property View: override properties section, add properties tabs, add annotation actions and register custom properties editors.
 
=== Custom Annotation Property Section ===
 
=== Custom Annotation Property Section ===
To replace annotation property section in the Annotation Property View we need to provide new section and annotation filter. Annotation Property View based on the tabbed properties, so customizing can be done using org.eclipse.ui.views.properties.tabbed.propertySections extension point:
+
To replace annotation property section in the Annotation Property View we need to provide new section and annotation filter. Annotation Property View based on the tabbed properties, so customizing can be done using <i>org.eclipse.ui.views.properties.tabbed.propertySections</i> extension point:
  
 
   <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
 
   <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
Line 17: Line 17:
  
 
* contributorId="org.eclipse.tigerstripe.annotation.ui.properties" - identifier of the annotation property page contributor.
 
* contributorId="org.eclipse.tigerstripe.annotation.ui.properties" - identifier of the annotation property page contributor.
* tab="property.tab.PropertiesPropertySection" - properties tab identifier which we want to override.
+
* tab="property.tab.PropertiesPropertySection" - identifier of the properties tab which we want to override.
* class - annotation section class. This class should extend org.eclipse.tigerstripe.annotation.ui.core.properties.AnnotationPropertiesSection class:  
+
* class - annotation section class. This class should extend <i>org.eclipse.tigerstripe.annotation.ui.core.properties.AnnotationPropertiesSection</i> class:  
 
   public class CustomSection extends AnnotationPropertiesSection {
 
   public class CustomSection extends AnnotationPropertiesSection {
 
     public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
 
     public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
Line 29: Line 29:
 
     }
 
     }
 
   }
 
   }
* filter - annotation filter showing when annotation section should be overridden. Annotation filter should extend public class:
+
* filter - annotation filter determines if annotation section should be overridden. Annotation filter should extend <i>org.eclipse.tigerstripe.annotation.ui.core.properties.AnnotationFilter</i> class:
   CustomAnnotationFilter extends AnnotationFilter {
+
   public CustomAnnotationFilter extends AnnotationFilter {
 
     public boolean select(Annotation annotation) {
 
     public boolean select(Annotation annotation) {
 
       //return true if section should be overridden for the specified annotation
 
       //return true if section should be overridden for the specified annotation

Revision as of 23:00, 17 July 2008

< To: Tigerstripe_APIs

Introduction

Annotation Framework support 4 ways to extend Annotation Property View: override properties section, add properties tabs, add annotation actions and register custom properties editors.

Custom Annotation Property Section

To replace annotation property section in the Annotation Property View we need to provide new section and annotation filter. Annotation Property View based on the tabbed properties, so customizing can be done using org.eclipse.ui.views.properties.tabbed.propertySections extension point:

 <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
   <propertySections contributorId="org.eclipse.tigerstripe.annotation.ui.properties">
     <propertySection
       class="org.eclipse.tigerstripe.annotation.ui.example.customview.CustomSection"
       filter="org.eclipse.tigerstripe.annotation.ui.example.customview.CustomAnnotationFilter"
       id="property.section.CustomSection"
       tab="property.tab.PropertiesPropertySection"/>
   </propertySections>
 </extension>
  • contributorId="org.eclipse.tigerstripe.annotation.ui.properties" - identifier of the annotation property page contributor.
  • tab="property.tab.PropertiesPropertySection" - identifier of the properties tab which we want to override.
  • class - annotation section class. This class should extend org.eclipse.tigerstripe.annotation.ui.core.properties.AnnotationPropertiesSection class:
 public class CustomSection extends AnnotationPropertiesSection {
   public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
     //create section controls
     ...
   }
   protected void updateSection(Annotation annotation) {
     //update section when selected annotation changed
     ...
   }
 }
  • filter - annotation filter determines if annotation section should be overridden. Annotation filter should extend org.eclipse.tigerstripe.annotation.ui.core.properties.AnnotationFilter class:
 public CustomAnnotationFilter extends AnnotationFilter {
   public boolean select(Annotation annotation) {
     //return true if section should be overridden for the specified annotation
   }
 }
  • id - the unique identifier for the section

Add Annotation Property Tab

TODO: add content

Contribute Annotation Actions

Custom actions can be contributed to the Annotation Property View using standard org.eclipse.ui.popupMenus extension point with "annotationProperties" as menubar path and org.eclipse.tigerstripe.annotation.core.Annotation as selection:

  <extension
        point="org.eclipse.ui.popupMenus">
     <objectContribution
           ...
           objectClass="org.eclipse.tigerstripe.annotation.core.Annotation">
        <action
              ...
              menubarPath="annotationProperties"/>
     </objectContribution>
  <extension/>


Register Properties Editors

TODO: add content

Back to the top