Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 50099 Details for
Bug 142957
compartment items not shown in outline view (tree)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
final fix
Patch_142957_final_fix (text/plain), 30.92 KB, created by
Alex Boyko
on 2006-09-13 18:09:01 EDT
(
hide
)
Description:
final fix
Filename:
MIME Type:
Creator:
Alex Boyko
Created:
2006-09-13 18:09:01 EDT
Size:
30.92 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.runtime.diagram.ui >Index: src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui/src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java,v >retrieving revision 1.29.2.6 >diff -u -r1.29.2.6 DiagramEditor.java >--- src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java 13 Sep 2006 19:33:36 -0000 1.29.2.6 >+++ src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java 13 Sep 2006 22:09:20 -0000 >@@ -81,6 +81,8 @@ > import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; > import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart; > import org.eclipse.gmf.runtime.diagram.ui.editparts.IDiagramPreferenceSupport; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.TreeDiagramEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.TreeEditPart; > import org.eclipse.gmf.runtime.diagram.ui.internal.DiagramUIDebugOptions; > import org.eclipse.gmf.runtime.diagram.ui.internal.DiagramUIPlugin; > import org.eclipse.gmf.runtime.diagram.ui.internal.DiagramUIStatusCodes; >@@ -89,8 +91,6 @@ > import org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteFromModelAction; > import org.eclipse.gmf.runtime.diagram.ui.internal.actions.ToggleRouterAction; > import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.DiagramRootTreeEditPart; >-import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeDiagramEditPart; >-import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeEditPart; > import org.eclipse.gmf.runtime.diagram.ui.internal.l10n.DiagramUIPluginImages; > import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.DefaultValues; > import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.PageInfoHelper; >@@ -218,16 +218,8 @@ > */ > protected void configureOutlineViewer() { > getViewer().setEditDomain(getEditDomain()); >- getViewer().setEditPartFactory(new EditPartFactory() { >- >- public EditPart createEditPart(EditPart context, Object model) { >- if (model instanceof Diagram) { >- return new TreeDiagramEditPart(model); >- } else { >- return new TreeEditPart(model); >- } >- } >- }); >+ getViewer().setEditPartFactory(getOutlineViewEditPartFactory()); >+ > // No support for a context menu on the outline view for > // release 6.0. See RATLC00529151, RATLC00529144 > // The selected item is a TreeEditPart which is not an >@@ -1511,4 +1503,23 @@ > public boolean isWritable() { > return (getDiagramEditPart() != null && getDiagramEditPart().isEditModeEnabled()); > } >+ >+ /** >+ * Creates edit part factory that will be creating tree edit parts in >+ * the tree viewer >+ * @return <code>EditPartFactory</code> factory for the tree viewer >+ */ >+ protected EditPartFactory getOutlineViewEditPartFactory() { >+ return new EditPartFactory() { >+ >+ public EditPart createEditPart(EditPart context, Object model) { >+ if (model instanceof Diagram) { >+ return new TreeDiagramEditPart(model); >+ } else { >+ return new TreeEditPart(model); >+ } >+ } >+ }; >+ } >+ > } >Index: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeEditPart.java >--- src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeEditPart.java 13 Sep 2006 16:43:40 -0000 1.11.2.9 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,255 +0,0 @@ >-/****************************************************************************** >- * Copyright (c) 2002, 2006 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- ****************************************************************************/ >- >-package org.eclipse.gmf.runtime.diagram.ui.internal.editparts; >- >-import org.eclipse.core.runtime.IAdaptable; >-import org.eclipse.emf.common.notify.Notification; >-import org.eclipse.emf.ecore.EObject; >-import org.eclipse.emf.edit.domain.EditingDomain; >-import org.eclipse.emf.edit.domain.IEditingDomainProvider; >-import org.eclipse.emf.transaction.TransactionalEditingDomain; >-import org.eclipse.emf.transaction.util.TransactionUtil; >-import org.eclipse.gef.EditPolicy; >-import org.eclipse.gef.editparts.AbstractTreeEditPart; >-import org.eclipse.gmf.runtime.common.ui.services.action.filter.ActionFilterService; >-import org.eclipse.gmf.runtime.common.ui.services.icon.IconOptions; >-import org.eclipse.gmf.runtime.common.ui.services.icon.IconService; >-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >-import org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker; >-import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener; >-import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ComponentEditPolicy; >-import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil; >-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >-import org.eclipse.gmf.runtime.notation.NotationPackage; >-import org.eclipse.gmf.runtime.notation.Style; >-import org.eclipse.gmf.runtime.notation.View; >-import org.eclipse.swt.graphics.Image; >-import org.eclipse.ui.IActionFilter; >- >-/** >- * @author melaasar, mmostafa >- * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >- */ >-public class TreeEditPart >- extends AbstractTreeEditPart >- implements NotificationListener, IEditingDomainProvider { >- >- /** the element parser */ >- private IParser parser; >- >- /** the element parser */ >- private IAdaptable referenceAdapter; >- >- private EObject[] objectListenningTo = new EObject[2]; >- >- /** >- * Cache the editing domain after it is retrieved. >- */ >- private TransactionalEditingDomain editingDomain; >- >- /** >- * @param model >- */ >- public TreeEditPart(Object model) { >- super(model); >- >- EObject reference = ((View)model).getElement(); >- if (reference == null) { >- >- this.referenceAdapter = new EObjectAdapter((EObject)model); >- } else { >- this.referenceAdapter = >- new EObjectAdapter(reference); >- } >- } >- >- /** >- * @see org.eclipse.gef.EditPart#activate() >- */ >- public void activate() { >- if (isActive()) >- return; >- super.activate(); >- View view = (View)getModel(); >- EObject semanticElement = getSemanticElement(); >- getDiagramEventBroker().addNotificationListener(view,this); >- getDiagramEventBroker().addNotificationListener(semanticElement,this); >- objectListenningTo[0] = view ; >- objectListenningTo[1] = semanticElement; >- } >- >- /** >- * @see org.eclipse.gef.EditPart#deactivate() >- */ >- public void deactivate() { >- if (!isActive()) >- return; >- for (int index = 0; index < objectListenningTo.length; index++) { >- getDiagramEventBroker().removeNotificationListener( objectListenningTo[index],this); >- objectListenningTo[index] = null; >- } >- super.deactivate(); >- } >- >- /** >- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() >- */ >- protected void createEditPolicies() { >- installEditPolicy(EditPolicy.COMPONENT_ROLE, new ComponentEditPolicy()); >- } >- >- /** gets the model as a <code>View</code> >- * @return View >- */ >- protected View getNotationView() { >- if (getModel() instanceof View) >- return (View)getModel(); >- return null; >- } >- >- /** Return the editpart's underlying semantic element. */ >- protected EObject getSemanticElement() { >- return ViewUtil.resolveSemanticElement((View)getModel()); >- } >- >- /** >- * @see org.eclipse.gef.editparts.AbstractTreeEditPart#getImage() >- */ >- protected Image getImage() { >- if (referenceAdapter == null){ >- return null; >- } >- IconOptions options = new IconOptions(); >- options.set(IconOptions.GET_STEREOTYPE_IMAGE_FOR_ELEMENT); >- return IconService.getInstance().getIcon(referenceAdapter, options.intValue()); >- } >- >- /** >- * @see org.eclipse.gef.editparts.AbstractTreeEditPart#getText() >- */ >- protected String getText() { >- if (getParser() != null) >- return getParser().getPrintString(referenceAdapter, >- ParserOptions.NONE.intValue()); >- EObject eObject = ((View) getModel()).getElement(); >- if (eObject == null) { >- return ""; //$NON-NLS-1$ >- } >- String name = EMFCoreUtil.getName(eObject); >- return name == null ? "" : name; //$NON-NLS-1$ >- } >- >- /** >- * Method getParser. >- * @return IParser >- */ >- private IParser getParser() { >- if (parser == null) { >- if (referenceAdapter != null && referenceAdapter.getAdapter(EObject.class) != null) >- parser = ParserService.getInstance().getParser(referenceAdapter); >- } >- return parser; >- } >- >- /** >- * Handles the passed property changed event only if the editpart's view is not deleted >- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) >- */ >- public final void notifyChanged(Notification event) { >- // Receiving an event while a view is deleted could only happen during "undo" of view creation, >- // However, event handlers should be robust by using the event's value and not trying to read >- // the value from the model >- if ((((View)getModel()).eResource() != null)) >- handleNotificationEvent(event); >- } >- >- /** >- * Handles the supplied notification event. >- * @param event >- */ >- protected void handleNotificationEvent( Notification notification ) { >- Object notifier = notification.getNotifier(); >- if (NotationPackage.Literals.VIEW__ELEMENT==notification.getFeature()) { >- reactivateSemanticElement(); >- } else if (notification.getNotifier() == getSemanticElement() || >- notifier instanceof Style){ >- refreshVisuals(); >- } >- } >- >- /** >- * deactivates, activates then refreshes the editpart >- */ >- protected void reactivateSemanticElement() { >- deactivate(); >- activate(); >- refresh(); >- } >- >- /** >- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) >- */ >- public Object getAdapter(Class key) { >- // Adapt to IActionFilter >- if (key == IActionFilter.class) { >- return ActionFilterService.getInstance(); >- } >- >- if (View.class.isAssignableFrom(key)) { >- Object _model = getModel(); >- if (key.isInstance(_model)) >- return _model; >- else >- return null; >- } >- >- Object model = getModel(); >- >- if (model != null && model instanceof View && >- EObject.class.isAssignableFrom(key)) { >- // Adapt to semantic element >- EObject semanticObject = ((View)model).getElement(); >- if (semanticObject!= null && !semanticObject.eIsProxy() && key.isInstance(semanticObject)){ >- return semanticObject; >- } >- } >- return super.getAdapter(key); >- } >- >- /** >- * Derives my editing domain from my diagram element. Subclasses may >- * override. >- */ >- public EditingDomain getEditingDomain() { >- if (editingDomain == null) { >- editingDomain = TransactionUtil.getEditingDomain(getModel()); >- } >- return editingDomain; >- } >- >- /** >- * Gets the diagram event broker from the editing domain. >- * >- * @return the diagram event broker >- */ >- private DiagramEventBroker getDiagramEventBroker() { >- EditingDomain theEditingDomain = getEditingDomain(); >- if (theEditingDomain instanceof TransactionalEditingDomain) { >- return DiagramEventBroker >- .getInstance((TransactionalEditingDomain) theEditingDomain); >- } >- return null; >- } >-} >Index: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeDiagramEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeDiagramEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeDiagramEditPart.java >--- src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeDiagramEditPart.java 12 Sep 2005 21:29:07 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,39 +0,0 @@ >-/****************************************************************************** >- * Copyright (c) 2004 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- ****************************************************************************/ >- >-package org.eclipse.gmf.runtime.diagram.ui.internal.editparts; >- >-import org.eclipse.gef.EditPolicy; >- >-/** >- * Tree edit part customized for a diagram. >- * >- * @author schafe >- * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >- */ >-public class TreeDiagramEditPart extends TreeContainerEditPart{ >- >- /** >- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() >- */ >- protected void createEditPolicies() { >- removeEditPolicy(EditPolicy.COMPONENT_ROLE); >- } >- >- /** >- * Constructor >- * @param model >- */ >- public TreeDiagramEditPart(Object model) { >- super(model); >- } >- >-} >Index: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeContainerEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeContainerEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeContainerEditPart.java >--- src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeContainerEditPart.java 22 Sep 2005 15:42:19 -0000 1.4 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,60 +0,0 @@ >-/****************************************************************************** >- * Copyright (c) 2002, 2003 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- ****************************************************************************/ >- >-package org.eclipse.gmf.runtime.diagram.ui.internal.editparts; >- >-import java.util.List; >- >-import org.eclipse.emf.common.notify.Notification; >-import org.eclipse.gmf.runtime.notation.Diagram; >-import org.eclipse.gmf.runtime.notation.NotationPackage; >- >-/** >- * @author melaasar >- * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >- * >- * To change the template for this generated type comment go to >- * Window>Preferences>Java>Code Generation>Code and Comments >- */ >-public class TreeContainerEditPart extends TreeEditPart { >- >- /** >- * @param model >- */ >- public TreeContainerEditPart(Object model) { >- super(model); >- } >- >- /** >- * Returns the children of this from the model, >- * as this is capable enough of holding EditParts. >- * >- * @return List of children. >- */ >- protected List getModelChildren() { >- if (getModel() instanceof Diagram) >- return ((Diagram) getModel()).getChildren(); >- return null; >- } >- >- /** >- * @see org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeEditPart#handlePropertyChangeEvent(java.beans.PropertyChangeEvent) >- */ >- protected void handleNotificationEvent(Notification event) { >- Object feature = event.getFeature(); >- if (NotationPackage.eINSTANCE.getView_PersistedChildren()==feature|| >- NotationPackage.eINSTANCE.getView_TransientChildren()==feature) >- refreshChildren(); >- else >- super.handleNotificationEvent(event); >- } >- >-} >Index: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,259 @@ >+/****************************************************************************** >+ * Copyright (c) 2002, 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.editparts; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.edit.domain.EditingDomain; >+import org.eclipse.emf.edit.domain.IEditingDomainProvider; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.emf.transaction.util.TransactionUtil; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.editparts.AbstractTreeEditPart; >+import org.eclipse.gmf.runtime.common.ui.services.action.filter.ActionFilterService; >+import org.eclipse.gmf.runtime.common.ui.services.icon.IconOptions; >+import org.eclipse.gmf.runtime.common.ui.services.icon.IconService; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker; >+import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ComponentEditPolicy; >+import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.Style; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.ui.IActionFilter; >+ >+/** >+ * @author melaasar, mmostafa >+ * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >+ */ >+public class TreeEditPart >+ extends AbstractTreeEditPart >+ implements NotificationListener, IEditingDomainProvider { >+ >+ /** the element parser */ >+ private IParser parser; >+ >+ /** the element parser */ >+ private IAdaptable referenceAdapter; >+ >+ private EObject[] objectListenningTo = new EObject[2]; >+ >+ /** >+ * Cache the editing domain after it is retrieved. >+ */ >+ private TransactionalEditingDomain editingDomain; >+ >+ /** >+ * Constructor >+ * @param model >+ */ >+ public TreeEditPart(Object model) { >+ super(model); >+ >+ EObject reference = ((View)model).getElement(); >+ if (reference == null) { >+ >+ this.referenceAdapter = new EObjectAdapter((EObject)model); >+ } else { >+ this.referenceAdapter = >+ new EObjectAdapter(reference); >+ } >+ } >+ >+ /** >+ * @see org.eclipse.gef.EditPart#activate() >+ */ >+ public void activate() { >+ if (isActive()) >+ return; >+ super.activate(); >+ View view = (View)getModel(); >+ EObject semanticElement = getSemanticElement(); >+ getDiagramEventBroker().addNotificationListener(view,this); >+ getDiagramEventBroker().addNotificationListener(semanticElement,this); >+ objectListenningTo[0] = view ; >+ objectListenningTo[1] = semanticElement; >+ } >+ >+ /** >+ * @see org.eclipse.gef.EditPart#deactivate() >+ */ >+ public void deactivate() { >+ if (!isActive()) >+ return; >+ for (int index = 0; index < objectListenningTo.length; index++) { >+ getDiagramEventBroker().removeNotificationListener( objectListenningTo[index],this); >+ objectListenningTo[index] = null; >+ } >+ super.deactivate(); >+ } >+ >+ /** >+ * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() >+ */ >+ protected void createEditPolicies() { >+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new ComponentEditPolicy()); >+ } >+ >+ /** gets the model as a <code>View</code> >+ * @return View >+ */ >+ protected View getNotationView() { >+ if (getModel() instanceof View) >+ return (View)getModel(); >+ return null; >+ } >+ >+ /** >+ * Return the editpart's underlying semantic element. >+ * @return semantic element >+ */ >+ protected EObject getSemanticElement() { >+ return ViewUtil.resolveSemanticElement((View)getModel()); >+ } >+ >+ /** >+ * @see org.eclipse.gef.editparts.AbstractTreeEditPart#getImage() >+ */ >+ protected Image getImage() { >+ if (referenceAdapter == null){ >+ return null; >+ } >+ IconOptions options = new IconOptions(); >+ options.set(IconOptions.GET_STEREOTYPE_IMAGE_FOR_ELEMENT); >+ return IconService.getInstance().getIcon(referenceAdapter, options.intValue()); >+ } >+ >+ /** >+ * @see org.eclipse.gef.editparts.AbstractTreeEditPart#getText() >+ */ >+ protected String getText() { >+ if (getParser() != null) >+ return getParser().getPrintString(referenceAdapter, >+ ParserOptions.NONE.intValue()); >+ EObject eObject = ((View) getModel()).getElement(); >+ if (eObject == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ String name = EMFCoreUtil.getName(eObject); >+ return name == null ? "" : name; //$NON-NLS-1$ >+ } >+ >+ /** >+ * Method getParser. >+ * @return IParser >+ */ >+ private IParser getParser() { >+ if (parser == null) { >+ if (referenceAdapter != null && referenceAdapter.getAdapter(EObject.class) != null) >+ parser = ParserService.getInstance().getParser(referenceAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * Handles the passed property changed event only if the editpart's view is not deleted >+ * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) >+ */ >+ public final void notifyChanged(Notification event) { >+ // Receiving an event while a view is deleted could only happen during "undo" of view creation, >+ // However, event handlers should be robust by using the event's value and not trying to read >+ // the value from the model >+ if ((((View)getModel()).eResource() != null)) >+ handleNotificationEvent(event); >+ } >+ >+ /** >+ * Handles the supplied notification event. >+ * @param event >+ */ >+ protected void handleNotificationEvent( Notification notification ) { >+ Object notifier = notification.getNotifier(); >+ if (NotationPackage.Literals.VIEW__ELEMENT==notification.getFeature()) { >+ reactivateSemanticElement(); >+ } else if (notification.getNotifier() == getSemanticElement() || >+ notifier instanceof Style){ >+ refreshVisuals(); >+ } >+ } >+ >+ /** >+ * deactivates, activates then refreshes the editpart >+ */ >+ protected void reactivateSemanticElement() { >+ deactivate(); >+ activate(); >+ refresh(); >+ } >+ >+ /** >+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) >+ */ >+ public Object getAdapter(Class key) { >+ // Adapt to IActionFilter >+ if (key == IActionFilter.class) { >+ return ActionFilterService.getInstance(); >+ } >+ >+ if (View.class.isAssignableFrom(key)) { >+ Object _model = getModel(); >+ if (key.isInstance(_model)) >+ return _model; >+ else >+ return null; >+ } >+ >+ Object model = getModel(); >+ >+ if (model != null && model instanceof View && >+ EObject.class.isAssignableFrom(key)) { >+ // Adapt to semantic element >+ EObject semanticObject = ((View)model).getElement(); >+ if (semanticObject!= null && !semanticObject.eIsProxy() && key.isInstance(semanticObject)){ >+ return semanticObject; >+ } >+ } >+ return super.getAdapter(key); >+ } >+ >+ /** >+ * Derives my editing domain from my diagram element. Subclasses may >+ * override. >+ */ >+ public EditingDomain getEditingDomain() { >+ if (editingDomain == null) { >+ editingDomain = TransactionUtil.getEditingDomain(getModel()); >+ } >+ return editingDomain; >+ } >+ >+ /** >+ * Gets the diagram event broker from the editing domain. >+ * >+ * @return the diagram event broker >+ */ >+ protected DiagramEventBroker getDiagramEventBroker() { >+ EditingDomain theEditingDomain = getEditingDomain(); >+ if (theEditingDomain instanceof TransactionalEditingDomain) { >+ return DiagramEventBroker >+ .getInstance((TransactionalEditingDomain) theEditingDomain); >+ } >+ return null; >+ } >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeContainerEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeContainerEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeContainerEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeContainerEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,60 @@ >+/****************************************************************************** >+ * Copyright (c) 2002, 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.editparts; >+ >+import java.util.List; >+ >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+ >+/** >+ * Implementation for the regular tree edit part >+ * >+ * @author melaasar >+ * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >+ */ >+public class TreeContainerEditPart extends TreeEditPart { >+ >+ /** >+ * Constructor >+ * @param model >+ */ >+ public TreeContainerEditPart(Object model) { >+ super(model); >+ } >+ >+ /** >+ * Returns the children of this from the model, >+ * as this is capable enough of holding EditParts. >+ * >+ * @return List of children. >+ */ >+ protected List getModelChildren() { >+ if (getModel() instanceof Diagram) >+ return ((Diagram) getModel()).getChildren(); >+ return null; >+ } >+ >+ /** >+ * @see org.eclipse.gmf.runtime.diagram.ui.editparts.TreeEditPart#handlePropertyChangeEvent(java.beans.PropertyChangeEvent) >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getView_PersistedChildren()==feature|| >+ NotationPackage.eINSTANCE.getView_TransientChildren()==feature) >+ refreshChildren(); >+ else >+ super.handleNotificationEvent(event); >+ } >+ >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeDiagramEditPart.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeDiagramEditPart.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeDiagramEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/editparts/TreeDiagramEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+/****************************************************************************** >+ * Copyright (c) 2004, 2006 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.editparts; >+ >+import org.eclipse.gef.EditPolicy; >+ >+/** >+ * Tree edit part customized for a diagram. >+ * >+ * @author schafe >+ * @canBeSeenBy org.eclipse.gmf.runtime.diagram.ui.* >+ */ >+public class TreeDiagramEditPart extends TreeContainerEditPart{ >+ >+ /** >+ * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() >+ */ >+ protected void createEditPolicies() { >+ removeEditPolicy(EditPolicy.COMPONENT_ROLE); >+ } >+ >+ /** >+ * Constructor >+ * @param model >+ */ >+ public TreeDiagramEditPart(Object model) { >+ super(model); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 142957
:
42136
|
47166
|
47649
|
48014
|
48019
|
49433
|
49995
|
50065
|
50066
|
50067
| 50099