Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Runtime

org.eclipse.gmf.runtime.diagram.ui.properties.sections
Class AbstractModelerPropertySection

java.lang.Object
  extended by 

org.eclipse.ui.views.properties.tabbed.AbstractPropertySection
      extended by 
org.eclipse.gmf.runtime.diagram.ui.properties.sections.AbstractModelerPropertySection
All Implemented Interfaces:
ISection
Direct Known Subclasses:
AbstractBasicTextPropertySection, AbstractNotationPropertiesSection, AdvancedPropertySection

public abstract class AbstractModelerPropertySection
extends AbstractPropertySection

An abstract implementation of a section in a tab in the tabbed property sheet page for modeler.


Field Summary
protected  boolean disposed
          a flag indicating if this property section got disposed
protected  org.eclipse.emf.ecore.EObject eObject
          eObject should gradually replace EElement
protected  org.eclipse.emf.transaction.DemultiplexingListener eventListener
          model event listener
protected  java.util.List input
          object currently selected on either a diagram or a ME - a view
protected static  PropertiesServiceAdapterFactory propertiesProvider
           
protected static java.lang.String VALUE_CHANGED_STRING
          value changed string
 
Fields inherited from class org.eclipse.ui.views.properties.tabbed. AbstractPropertySection
STANDARD_LABEL_WIDTH
 
Constructor Summary
AbstractModelerPropertySection ()
           
 
Method Summary
 void aboutToBeHidden ()
           
 void aboutToBeShown ()
           
protected  org.eclipse.emf.ecore.EObject adapt (java.lang.Object object)
          Adapt the object to an EObject - if possible
protected  boolean addToEObjectList (java.lang.Object object)
          Add next object in the selection to the list of EObjects if this object could be adapted to an EObject
protected   ICommand createCommand (java.lang.String name, org.eclipse.emf.ecore.EObject res, java.lang.Runnable runnable)
           
protected   ICommand createCommand (java.lang.String name, org.eclipse.emf.ecore.resource.Resource res, java.lang.Runnable runnable)
           
 void createControls ( Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage)
           
protected  boolean digIntoGroups ()
          Override to return true to have this property section work on the shapes in a GroupEditPart as if the shapes were multi-selected.
 void dispose ()
           
protected   CommandResult executeAsCompositeCommand (java.lang.String actionName, java.util.List commands)
          A utility method allows execute a list of commands by wrapping them\ in a composite command.
protected  void executeAsReadAction (java.lang.Runnable code)
          A utility method allows execute a piece of code wrapping it in the read call to the model.
protected  org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain ()
          Gets the editing domain from my EObject input.
protected  org.eclipse.emf.ecore.EObject getEObject ()
           
protected  java.util.List getEObjectList ()
           
protected  org.eclipse.emf.transaction.DemultiplexingListener getEventListener ()
           
 org.eclipse.emf.transaction.NotificationFilter getFilter ()
          Subclasses overriding this method should remember to override update(TransactionalEditingDomain, Notification) as required.
 java.util.List getInput ()
          Returns currently selected view object
protected  java.lang.Object getPrimarySelection ()
          Returns currently selected view object
protected  int getStandardLabelWidth ( Composite parent, java.lang.String[] labels)
          Get the standard label width when labels for sections line up on the left hand side of the composite.
protected   SectionUpdateRequestCollapser getUpdateRequestCollapser ()
           
 void handleElementModifiedEvent (org.eclipse.emf.common.notify.Notification notification, org.eclipse.emf.ecore.EObject element)
           
protected  boolean isCurrentSelection (org.eclipse.emf.common.notify.Notification notification, org.eclipse.emf.ecore.EObject element)
          Determines if the page is displaying properties for this element
protected  boolean isDisposed ()
           
protected  boolean isNotifierDeleted (org.eclipse.emf.common.notify.Notification notification)
          Returns whether or not the notifier for a particular notification has been deleted from its parent.
protected  boolean isReadOnly ()
          Determine if the property sheet page contributor is read only.
protected  void postUpdateRequest (java.lang.Runnable updateRequest)
          Use requset collapser to post update requests.
protected  void setEditingDomain (org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
          Sets the editingDomain.
protected  void setEObject (org.eclipse.emf.ecore.EObject object)
           
 void setInput ( IWorkbenchPart part, ISelection selection)
           
protected  org.eclipse.emf.ecore.EObject unwrap (java.lang.Object object)
          Unwarp the ME or diagram object down to the underlaying UML element
 void update (org.eclipse.emf.common.notify.Notification notification, org.eclipse.emf.ecore.EObject element)
          Update if nessesary, upon receiving the model event.
protected  void update (org.eclipse.emf.transaction.TransactionalEditingDomain domain, org.eclipse.emf.common.notify.Notification notification)
          Updates me if the notifier is an EObject by calling update(Notification, EObject).
 
Methods inherited from class org.eclipse.ui.views.properties.tabbed. AbstractPropertySection
getMinimumHeight, getPart, getSelection, getWidgetFactory, refresh, shouldUseExtraSpace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eventListener

protected org.eclipse.emf.transaction.DemultiplexingListener eventListener
model event listener


propertiesProvider

protected static final 
PropertiesServiceAdapterFactory propertiesProvider

VALUE_CHANGED_STRING

protected static java.lang.String VALUE_CHANGED_STRING
value changed string


input

protected java.util.List input
object currently selected on either a diagram or a ME - a view


eObject

protected org.eclipse.emf.ecore.EObject eObject
eObject should gradually replace EElement


disposed

protected boolean disposed
a flag indicating if this property section got disposed

Constructor Detail

AbstractModelerPropertySection

public AbstractModelerPropertySection()
Method Detail

setInput

public void setInput(
IWorkbenchPart part,
                     
ISelection selection)
Specified by:
setInput in interface ISection
Overrides:
setInput in class AbstractPropertySection

digIntoGroups

protected boolean digIntoGroups()
Override to return true to have this property section work on the shapes in a GroupEditPart as if the shapes were multi-selected.

Returns:
true if this property section is to dig into the shapes of groups

addToEObjectList

protected boolean addToEObjectList(java.lang.Object object)
Add next object in the selection to the list of EObjects if this object could be adapted to an EObject

Parameters:
object - the object to add
Returns:
- true if the object is added, false otherwise

unwrap

protected org.eclipse.emf.ecore.EObject unwrap(java.lang.Object object)
Unwarp the ME or diagram object down to the underlaying UML element

Parameters:
object - - object from a diagram or ME
Returns:
- underlaying UML element

adapt

protected org.eclipse.emf.ecore.EObject adapt(java.lang.Object object)
Adapt the object to an EObject - if possible

Parameters:
object - object from a diagram or ME
Returns:
EObject

isCurrentSelection

protected boolean isCurrentSelection(org.eclipse.emf.common.notify.Notification notification,
                                     org.eclipse.emf.ecore.EObject element)
Determines if the page is displaying properties for this element

Parameters:
notification - The notification
element - The element to be tested
Returns:
'true' if the page is displaying properties for this element

executeAsReadAction

protected void executeAsReadAction(java.lang.Runnable code)
A utility method allows execute a piece of code wrapping it in the read call to the model.

Parameters:
code - - Runnable code to execute

executeAsCompositeCommand

protected 
CommandResult executeAsCompositeCommand(java.lang.String actionName,
                                                  java.util.List commands)
A utility method allows execute a list of commands by wrapping them\ in a composite command.

Parameters:
commands - - List of commands to execute

getInput

public java.util.List getInput()
Returns currently selected view object

Returns:
Returns the input.

aboutToBeHidden

public void aboutToBeHidden()
Specified by:
aboutToBeHidden in interface ISection
Overrides:
aboutToBeHidden in class AbstractPropertySection

aboutToBeShown

public void aboutToBeShown()
Specified by:
aboutToBeShown in interface ISection
Overrides:
aboutToBeShown in class AbstractPropertySection

dispose

public void dispose()
Specified by:
dispose in interface ISection
Overrides:
dispose in class AbstractPropertySection

getPrimarySelection

protected java.lang.Object getPrimarySelection()
Returns currently selected view object

Returns:
Returns the input.

getEObject

protected org.eclipse.emf.ecore.EObject getEObject()
Returns:
Returns the eObject.

setEObject

protected void setEObject(org.eclipse.emf.ecore.EObject object)
Parameters:
object - The eObject to set.

getFilter

public org.eclipse.emf.transaction.NotificationFilter getFilter()
Subclasses overriding this method should remember to override update(TransactionalEditingDomain, Notification) as required. The default implementation of update(TransactionalEditingDomain, Notification) will only update if the notifier is an EObject.

Returns:
the filter for events used by my eventListener.

update

public void update(org.eclipse.emf.common.notify.Notification notification,
                   org.eclipse.emf.ecore.EObject element)
Update if nessesary, upon receiving the model event. This event will only be processed when the reciever is visible (the default behavior is not to listen to the model events while not showing). Therefore it is safe to refresh the UI. Sublclasses, which will choose to override event listening behavior should take into account that the model events are sent all the time - regardless of the section visibility. Thus special care should be taken by the section that will choose to listen to such events all the time. Also, the default implementation of this method synchronizes on the GUI thread. The subclasses that overwrite it should do the same if they perform any GUI work (because events may be sent from a non-GUI thread).

Parameters:
notification - notification object
element - element that has changed
See Also:
aboutToBeShown(), aboutToBeHidden()

update

protected void update(org.eclipse.emf.transaction.TransactionalEditingDomain domain,
                      org.eclipse.emf.common.notify.Notification notification)
Updates me if the notifier is an EObject by calling update(Notification, EObject). Does nothing otherwise. Subclasses should override this method if they need to update based on non-EObject notifiers.

Parameters:
domain - the editing domain
notification - the event notification

isNotifierDeleted

protected boolean isNotifierDeleted(org.eclipse.emf.common.notify.Notification notification)
Returns whether or not the notifier for a particular notification has been deleted from its parent. This is a fix for RATLC00535181. What happens is that during deletion of an element from the diagram, the element first deletes related elements which causes a modification of the element itself. When the modification occurs the event handling mechanism posts a request to the UI queue to refresh the UI. A race condition occurs where by the time the posted request runs, the element in question may or may not have already been deleted from its container. If the element has been deleted from its container, we should not refresh the property section.

Parameters:
notification -
Returns:
true if notification has been deleted from its parent, false otherwise

postUpdateRequest

protected void postUpdateRequest(java.lang.Runnable updateRequest)
Use requset collapser to post update requests.

Parameters:
updateRequest - - runnable update code

handleElementModifiedEvent

public void handleElementModifiedEvent(org.eclipse.emf.common.notify.Notification notification,
                                       org.eclipse.emf.ecore.EObject element)

getEObjectList

protected java.util.List getEObjectList()
Returns:
Returns the eObjectList.

isDisposed

protected boolean isDisposed()
Returns:
Returns the disposed.

getEventListener

protected org.eclipse.emf.transaction.DemultiplexingListener getEventListener()
Returns:
Returns the eventListener.

createCommand

protected 
ICommand createCommand(java.lang.String name,
                                 org.eclipse.emf.ecore.resource.Resource res,
                                 java.lang.Runnable runnable)
Returns:
Returns a command

createCommand

protected 
ICommand createCommand(java.lang.String name,
                                 org.eclipse.emf.ecore.EObject res,
                                 java.lang.Runnable runnable)
Returns:
Returns a command

getEditingDomain

protected org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain()
Gets the editing domain from my EObject input.

Returns:
my editing domain

setEditingDomain

protected void setEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
Sets the editingDomain.

Parameters:
editingDomain - The editingDomain to set.

createControls

public void createControls(
Composite parent,
                           
TabbedPropertySheetPage aTabbedPropertySheetPage)
Specified by:
createControls in interface ISection
Overrides:
createControls in class AbstractPropertySection

isReadOnly

protected boolean isReadOnly()
Determine if the property sheet page contributor is read only. Topic and Browse diagrams have properties that are read only, even theough the selection may be modifiable.

Returns:
true if the contributor is read only.

getStandardLabelWidth

protected int getStandardLabelWidth(
Composite parent,
                                    java.lang.String[] labels)
Get the standard label width when labels for sections line up on the left hand side of the composite. We line up to a fixed position, but if a string is wider than the fixed position, then we use that widest string.

Parameters:
parent - The parent composite used to create a GC.
labels - The list of labels.
Returns:
the standard label width.

getUpdateRequestCollapser

protected 
SectionUpdateRequestCollapser getUpdateRequestCollapser()
Returns:
Returns the updateRequestCollapser.

Runtime

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp., Borland Software Corp., and others 2005,2006. All rights reserved.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire