Author: bbrodt
Date: 2010-11-08 14:16:11 -0500 (Mon, 08 Nov 2010)
New Revision: 26337
Added:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/MarkerDelegateAdapter.java
Modified:
trunk/bpel/plugins/org.eclipse.bpel.common.model/plugin.xml
trunk/bpel/plugins/org.eclipse.bpel.common.ui/plugin.xml
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/AbstractAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/BasicBPELAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/plugin.xml
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELModelReconcileAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELMultipageEditorPart.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ActivityAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIExtensionAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIMessagePropertiesAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIPartnerLinkTypeAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSDLAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSILAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIXSDAdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/CopyAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/FromAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ToAdapter.java
trunk/bpel/plugins/org.eclipse.bpel.validator/plugin.xml
Log:
OPEN - issue JBIDE-7497: Decoration icons for Error Markers do not show up on compound
activities
https://jira.jboss.org/browse/JBIDE-7497
Modified: trunk/bpel/plugins/org.eclipse.bpel.common.model/plugin.xml
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.common.model/plugin.xml 2010-11-08 18:41:53 UTC
(rev 26336)
+++ trunk/bpel/plugins/org.eclipse.bpel.common.model/plugin.xml 2010-11-08 19:16:11 UTC
(rev 26337)
@@ -12,6 +12,8 @@
<attribute
name="org.eclipse.bpel.common.model.modelMarker.objectId">
</attribute>
+ <!--
https://jira.jboss.org/browse/JBIDE-7497 -->
+ <persistent value="true"/>
</extension>
<extension point="org.eclipse.emf.ecore.generated_package">
<package
Modified: trunk/bpel/plugins/org.eclipse.bpel.common.ui/plugin.xml
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.common.ui/plugin.xml 2010-11-08 18:41:53 UTC (rev
26336)
+++ trunk/bpel/plugins/org.eclipse.bpel.common.ui/plugin.xml 2010-11-08 19:16:11 UTC (rev
26337)
@@ -18,6 +18,8 @@
<attribute
name="org.eclipse.bpel.common.ui.visible">
</attribute>
+ <!--
https://jira.jboss.org/browse/JBIDE-7497 -->
+ <persistent value="true"/>
</extension>
<extension
id="graphicalMarker"
@@ -29,6 +31,8 @@
<attribute
name="org.eclipse.bpel.common.ui.anchorPoint">
</attribute>
+ <!--
https://jira.jboss.org/browse/JBIDE-7497 -->
+ <persistent value="true"/>
</extension>
<extension
id="textMarker"
@@ -43,6 +47,7 @@
<attribute
name="org.eclipse.bpel.common.ui.lineNumInObject">
</attribute>
+ <persistent value="true"/>
</extension>
<extension
point="org.eclipse.core.runtime.contentTypes">
Modified:
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/AbstractAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/AbstractAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/AbstractAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -29,7 +29,9 @@
static public final int CONTEXT_UPDATE_EVENT_TYPE = 101;
/** Makes sense only when adapters are statefull */
- private Object target = null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // need access to this in MarkerDelegateAdapter
+ protected Object target = null;
/** additional context that is needed by the adapter to wrap the object */
private Object context = null;
Modified:
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/BasicBPELAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/BasicBPELAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.model/src/org/eclipse/bpel/model/adapters/BasicBPELAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -46,11 +46,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter,target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
}
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/plugin.xml
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/plugin.xml 2010-11-08 18:41:53 UTC (rev 26336)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/plugin.xml 2010-11-08 19:16:11 UTC (rev 26337)
@@ -86,6 +86,8 @@
<attribute name="order"/>
<attribute name="active"/>
<attribute name="installed"/>
+ <!--
https://jira.jboss.org/browse/JBIDE-7497 -->
+ <persistent value="true"/>
</extension>
<!-- Markers used in expression editors. -->
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELModelReconcileAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELModelReconcileAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELModelReconcileAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -133,6 +133,8 @@
if (modelObject instanceof ExtensibleElementImpl) {
((ExtensibleElementImpl) modelObject)
.elementChanged(element);
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ this.fEditor.getMultipageEditor().updateMarkers((ExtensibleElementImpl)modelObject);
} else if (modelObject instanceof ExtensibilityElementImpl) {
((ExtensibilityElementImpl) modelObject)
.elementChanged(element);
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELMultipageEditorPart.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELMultipageEditorPart.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/BPELMultipageEditorPart.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -20,6 +20,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import org.eclipse.bpel.common.extension.model.ExtensionMap;
import org.eclipse.bpel.common.ui.editmodel.IEditModelListener;
@@ -35,6 +36,7 @@
import org.eclipse.bpel.model.resource.BPELResourceSetImpl;
import org.eclipse.bpel.model.util.BPELUtils;
import org.eclipse.bpel.ui.adapters.AdapterNotification;
+import org.eclipse.bpel.ui.adapters.IMarkerHolder;
import org.eclipse.bpel.ui.editparts.ProcessTrayEditPart;
import org.eclipse.bpel.ui.editparts.util.OutlineTreePartFactory;
import org.eclipse.bpel.ui.properties.BPELPropertySection;
@@ -42,6 +44,7 @@
import org.eclipse.bpel.ui.util.BPELEditModelClient;
import org.eclipse.bpel.ui.util.BPELEditorUtil;
import org.eclipse.bpel.ui.util.BPELReader;
+import org.eclipse.bpel.ui.util.BPELUtil;
import org.eclipse.bpel.ui.util.ModelHelper;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
@@ -66,8 +69,10 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.NotificationImpl;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gef.ContextMenuProvider;
import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPart;
@@ -1115,6 +1120,9 @@
this.modelListenerAdapter = new ModelListenerAdapter();
this.modelListenerAdapter.setExtensionMap(this.extensionMap);
+
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ updateMarkersHard();
}
public void modelDeleted(ResourceInfo resourceInfo) {
@@ -1171,6 +1179,70 @@
}
+ /**
+ * Erase and reload markers for the given model object.
+ * This will create the necessary adapters so that marker
+ * notifications are delegated to the correct activity displayed
+ * in the graphical viewer.
+ *
+ * @param modelObject
+ * @see
https://jira.jboss.org/browse/JBIDE-7497
+ */
+ public void updateMarkers(EObject modelObject) {
+ List<Long> removed = new ArrayList<Long>();
+ for (Entry<Long, EObject> e : fMarkers2EObject.entrySet()){
+ if (e.getValue() == modelObject)
+ removed.add(e.getKey());
+ }
+ for (Long key : removed) {
+ fMarkers2EObject.remove(key);
+ }
+
+ modelObject.eNotify(fMarkersStale);
+
+ for (TreeIterator<EObject> iter=EcoreUtil.getAllContents((EObject)modelObject,
true); iter.hasNext(); ){
+ EObject obj = iter.next();
+ BPELUtil.adapt(obj, IMarkerHolder.class);
+ }
+
+ IMarker[] markers = null;
+ IFile file = getFileInput();
+ Resource resource = getProcess().eResource();
+
+ try {
+ markers = file.findMarkers(null, true, IResource.DEPTH_ZERO);
+ } catch (CoreException ex) {
+ BPELUIPlugin.log(ex);
+ return;
+ }
+
+ for (IMarker m : markers) {
+
+ String href = null;
+ EObject target = null;
+ try {
+ href = (String) m.getAttribute( "address.model" ); //$NON-NLS-1$
+ if (href == null) {
+ continue;
+ }
+ target = resource.getEObject(href);
+ } catch (CoreException ex) {
+ continue;
+ }
+
+ if (target == modelObject) {
+ this.fMarkers2EObject.put(m.getId(), target);
+ EObject obj = target;
+ while (obj!=null) {
+ BPELUtil.adapt(obj, IMarkerHolder.class);
+ obj = obj.eContainer();
+ }
+ target.eNotify( new NotificationImpl (AdapterNotification.NOTIFICATION_MARKER_ADDED ,
null, m ));
+ }
+ }
+
+ }
+
protected void updateMarkersHard () {
for(EObject obj : this.fMarkers2EObject.values()) {
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ActivityAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ActivityAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ActivityAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -52,6 +52,22 @@
IEditPartActionContributor, IExtensionFactory, AdapterNotification
{
+ public static class UniqueMarkers extends ArrayList<IMarker> {
+
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // prevent duplicate marker IDs from being added to the list - this
+ // causes those mysterious "Marker not found" errors during validation
+ @Override
+ public boolean add(IMarker e) {
+ for (int i=0; i<size(); ++i) {
+ IMarker m = get(i);
+ if (m.getId() == e.getId())
+ return false;
+ }
+ return super.add(e);
+ }
+
+ }
/**
* @see
org.eclipse.bpel.model.adapters.AbstractAdapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
@@ -72,7 +88,7 @@
}
}
- ArrayList<IMarker> fMarkers = new ArrayList<IMarker>();
+ UniqueMarkers fMarkers = new UniqueMarkers();
static IMarker [] EMPTY_MARKERS = {};
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -10,15 +10,13 @@
*******************************************************************************/
package org.eclipse.bpel.ui.adapters;
+import org.eclipse.bpel.model.Correlation;
import org.eclipse.bpel.model.adapters.AdapterProvider;
import org.eclipse.bpel.model.util.BPELAdapterFactory;
import org.eclipse.bpel.ui.util.BPELUtil;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
-
-
-
/**
* BPELUIAdapterFactory for generating adapters.
*
@@ -26,36 +24,36 @@
*
* @author Michal Chmielewski (michal.chmielewski(a)oracle.com)
* @date May 23, 2007
- *
+ *
*/
public class BPELUIAdapterFactory extends BPELAdapterFactory {
static BPELUIAdapterFactory instance;
-
+
protected AdapterProvider fProvider;
-
+
/**
* Brand new shiny adapter factory.
*/
-
- public BPELUIAdapterFactory () {
+
+ public BPELUIAdapterFactory() {
fProvider = new AdapterProvider();
}
-
+
/**
* Get the instance of this factory.
*
* @return an instance of this factory.
*/
-
+
public static BPELUIAdapterFactory getInstance() {
if (instance == null) {
instance = new BPELUIAdapterFactory();
}
return instance;
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createRepeatUntilAdapter()
*/
@@ -69,41 +67,41 @@
*/
@Override
public Adapter createAssignAdapter() {
- return fProvider.getAdapter(AssignAdapter.class);
+ return fProvider.getAdapter(AssignAdapter.class);
}
-
- /** (non-Javadoc)
+
+ /**
+ * (non-Javadoc)
+ *
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCopyAdapter()
*/
@Override
public Adapter createCopyAdapter() {
- return fProvider.getAdapter(CopyAdapter.class);
+ return fProvider.getAdapter(CopyAdapter.class);
}
-
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createElseIfAdapter()
*/
@Override
public Adapter createElseIfAdapter() {
- return fProvider.getAdapter(ElseIfAdapter.class);
+ return fProvider.getAdapter(ElseIfAdapter.class);
}
-
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCatchAdapter()
*/
@Override
public Adapter createCatchAdapter() {
- return fProvider.getAdapter(CatchAdapter.class);
+ return fProvider.getAdapter(CatchAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFaultHandlerAdapter()
*/
- @Override
+ @Override
public Adapter createFaultHandlerAdapter() {
- return fProvider.getAdapter(FaultHandlerAdapter.class);
+ return fProvider.getAdapter(FaultHandlerAdapter.class);
}
/**
@@ -113,16 +111,15 @@
public Adapter createCompensationHandlerAdapter() {
return fProvider.getAdapter(CompensationHandlerAdapter.class);
}
-
+
/**
* @see
org.eclipse.bpel.model.util.BPELAdapterFactory#createTerminationHandlerAdapter()
*/
@Override
public Adapter createTerminationHandlerAdapter() {
- return fProvider.getAdapter(TerminationHandlerAdapter.class);
+ return fProvider.getAdapter(TerminationHandlerAdapter.class);
}
-
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createEventHandlerAdapter()
*/
@@ -130,23 +127,23 @@
public Adapter createEventHandlerAdapter() {
return fProvider.getAdapter(EventHandlerAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createVariableAdapter()
*/
@Override
public Adapter createVariableAdapter() {
- return fProvider.getAdapter(VariableAdapter.class);
+ return fProvider.getAdapter(VariableAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createEmptyAdapter()
*/
@Override
public Adapter createEmptyAdapter() {
- return fProvider.getAdapter(EmptyAdapter.class);
+ return fProvider.getAdapter(EmptyAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFlowAdapter()
*/
@@ -154,15 +151,15 @@
public Adapter createFlowAdapter() {
return fProvider.getAdapter(FlowAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createInvokeAdapter()
*/
@Override
public Adapter createInvokeAdapter() {
- return fProvider.getAdapter(InvokeAdapter.class);
+ return fProvider.getAdapter(InvokeAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createLinkAdapter()
*/
@@ -170,63 +167,63 @@
public Adapter createLinkAdapter() {
return fProvider.getAdapter(LinkAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnAlarmAdapter()
*/
@Override
public Adapter createOnAlarmAdapter() {
- return fProvider.getAdapter(OnAlarmAdapter.class);
+ return fProvider.getAdapter(OnAlarmAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnMessageAdapter()
*/
@Override
public Adapter createOnMessageAdapter() {
- return fProvider.getAdapter(OnMessageAdapter.class);
+ return fProvider.getAdapter(OnMessageAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnEventAdapter()
*/
@Override
public Adapter createOnEventAdapter() {
- return fProvider.getAdapter(OnEventAdapter.class);
+ return fProvider.getAdapter(OnEventAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createPartnerLinkAdapter()
*/
@Override
public Adapter createPartnerLinkAdapter() {
- return fProvider.getAdapter(PartnerLinkAdapter.class);
+ return fProvider.getAdapter(PartnerLinkAdapter.class);
}
-
+
/**
- * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetsAdapter()
+ * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createMessageExchangeAdapter()
*/
@Override
public Adapter createMessageExchangeAdapter() {
- return fProvider.getAdapter(MessageExchangeAdapter.class);
+ return fProvider.getAdapter(MessageExchangeAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createPickAdapter()
*/
@Override
public Adapter createPickAdapter() {
- return fProvider.getAdapter(PickAdapter.class);
+ return fProvider.getAdapter(PickAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createProcessAdapter()
*/
@Override
public Adapter createProcessAdapter() {
- return fProvider.getAdapter(ProcessAdapter.class);
+ return fProvider.getAdapter(ProcessAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createIfAdapter()
*/
@@ -234,63 +231,63 @@
public Adapter createIfAdapter() {
return fProvider.getAdapter(IfAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createReceiveAdapter()
*/
@Override
public Adapter createReceiveAdapter() {
- return fProvider.getAdapter(ReceiveAdapter.class);
+ return fProvider.getAdapter(ReceiveAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createReplyAdapter()
*/
@Override
public Adapter createReplyAdapter() {
- return fProvider.getAdapter(ReplyAdapter.class);
+ return fProvider.getAdapter(ReplyAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createSequenceAdapter()
*/
@Override
public Adapter createSequenceAdapter() {
- return fProvider.getAdapter(SequenceAdapter.class);
+ return fProvider.getAdapter(SequenceAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createScopeAdapter()
*/
@Override
public Adapter createScopeAdapter() {
- return fProvider.getAdapter(ScopeAdapter.class);
+ return fProvider.getAdapter(ScopeAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createThrowAdapter()
*/
@Override
public Adapter createThrowAdapter() {
- return fProvider.getAdapter(ThrowAdapter.class);
+ return fProvider.getAdapter(ThrowAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createWaitAdapter()
*/
@Override
public Adapter createWaitAdapter() {
- return fProvider.getAdapter(WaitAdapter.class);
+ return fProvider.getAdapter(WaitAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createWhileAdapter()
*/
@Override
public Adapter createWhileAdapter() {
- return fProvider.getAdapter(WhileAdapter.class);
+ return fProvider.getAdapter(WhileAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createForEachAdapter()
*/
@@ -298,13 +295,13 @@
public Adapter createForEachAdapter() {
return fProvider.getAdapter(ForEachAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetAdapter()
*/
@Override
public Adapter createCorrelationSetAdapter() {
- return fProvider.getAdapter(CorrelationSetAdapter.class);
+ return fProvider.getAdapter(CorrelationSetAdapter.class);
}
/**
@@ -312,15 +309,15 @@
*/
@Override
public Adapter createMessageExchangesAdapter() {
- return fProvider.getAdapter(MessageExchangesAdapter.class);
+ return fProvider.getAdapter(MessageExchangesAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetsAdapter()
*/
@Override
public Adapter createCorrelationSetsAdapter() {
- return fProvider.getAdapter(CorrelationSetsAdapter.class);
+ return fProvider.getAdapter(CorrelationSetsAdapter.class);
}
/**
@@ -328,7 +325,7 @@
*/
@Override
public Adapter createPartnerLinksAdapter() {
- return fProvider.getAdapter(PartnerLinksAdapter.class);
+ return fProvider.getAdapter(PartnerLinksAdapter.class);
}
/**
@@ -336,17 +333,17 @@
*/
@Override
public Adapter createVariablesAdapter() {
- return fProvider.getAdapter(VariablesAdapter.class);
+ return fProvider.getAdapter(VariablesAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCatchAllAdapter()
*/
@Override
public Adapter createCatchAllAdapter() {
- return fProvider.getAdapter(CatchAllAdapter.class);
+ return fProvider.getAdapter(CatchAllAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createElseAdapter()
*/
@@ -354,13 +351,13 @@
public Adapter createElseAdapter() {
return fProvider.getAdapter(ElseAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCompensateAdapter()
*/
@Override
public Adapter createCompensateAdapter() {
- return fProvider.getAdapter(CompensateAdapter.class);
+ return fProvider.getAdapter(CompensateAdapter.class);
}
/**
@@ -368,7 +365,7 @@
*/
@Override
public Adapter createCompensateScopeAdapter() {
- return fProvider.getAdapter(CompensateScopeAdapter.class);
+ return fProvider.getAdapter(CompensateScopeAdapter.class);
}
/**
@@ -376,7 +373,7 @@
* @return the custom activity adapter.
*/
public Adapter createCustomActivityAdapter() {
- return fProvider.getAdapter(CustomActivityAdapter.class);
+ return fProvider.getAdapter(CustomActivityAdapter.class);
}
/**
@@ -384,32 +381,30 @@
*/
@Override
public Adapter createRethrowAdapter() {
- return fProvider.getAdapter(RethrowAdapter.class);
- }
-
+ return fProvider.getAdapter(RethrowAdapter.class);
+ }
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createExitAdapter()
*/
@Override
public Adapter createExitAdapter() {
- return fProvider.getAdapter(ExitAdapter.class);
+ return fProvider.getAdapter(ExitAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createValidateAdapter()
*/
@Override
public Adapter createValidateAdapter() {
- return fProvider.getAdapter(ValidateAdapter.class);
+ return fProvider.getAdapter(ValidateAdapter.class);
}
-
-
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createToAdapter()
- */
+ */
@Override
- public Adapter createToAdapter() {
+ public Adapter createToAdapter() {
return fProvider.getAdapter(ToAdapter.class);
}
@@ -417,27 +412,26 @@
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFromAdapter()
*/
@Override
- public Adapter createFromAdapter() {
- return fProvider.getAdapter(FromAdapter.class);
+ public Adapter createFromAdapter() {
+ return fProvider.getAdapter(FromAdapter.class);
}
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createExpressionAdapter()
*/
@Override
- public Adapter createExpressionAdapter() {
+ public Adapter createExpressionAdapter() {
return fProvider.getAdapter(ExpressionAdapter.class);
}
-
+
/**
* @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOpaqueActivityAdapter()
*/
@Override
- public Adapter createOpaqueActivityAdapter(){
+ public Adapter createOpaqueActivityAdapter() {
return fProvider.getAdapter(OpaqueActivityAdapter.class);
}
-
-
+
@Override
//
https://jira.jboss.org/browse/JBIDE-6917
public Adapter createExtensionActivityAdapter() {
@@ -445,32 +439,42 @@
}
/**
- * @see
org.eclipse.emf.common.notify.impl.AdapterFactoryImpl#adaptNew(org.eclipse.emf.common.notify.Notifier,
java.lang.Object)
+ * @see
org.eclipse.emf.common.notify.impl.AdapterFactoryImpl#adaptNew(org.eclipse.emf.common.notify.Notifier,
+ * java.lang.Object)
*/
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
if (adapter == null) {
- return null;
+ if (IMarkerHolder.class.equals(type)) {
+ adapter = new MarkerDelegateAdapter();
+ associate(adapter, target);
+ return adapter;
+ }
}
- associate(adapter,target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ else if (adapter.isAdapterForType(type)) {
+ associate(adapter, target);
+ return adapter;
+ }
+ return null;
}
-
+
@Override
- protected Object resolve (Object object, Object type) {
+ protected Object resolve(Object object, Object type) {
return null;
}
-
- @Override
+
+ @Override
protected Adapter createAdapter(Notifier target, Object type) {
- if (BPELUtil.isCustomActivity(target)) {
- // If we have a custom activity that did not provide a
- // custom adapter we create a default adapter.
- return createCustomActivityAdapter();
- }
- return super.createAdapter(target, type);
- }
+ if (BPELUtil.isCustomActivity(target)) {
+ // If we have a custom activity that did not provide a
+ // custom adapter we create a default adapter.
+ return createCustomActivityAdapter();
+ }
+ return super.createAdapter(target, type);
+ }
-
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIExtensionAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIExtensionAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIExtensionAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -83,11 +83,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter,target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
@Override
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIMessagePropertiesAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIMessagePropertiesAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIMessagePropertiesAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -76,11 +76,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter, target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIPartnerLinkTypeAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIPartnerLinkTypeAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIPartnerLinkTypeAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -90,11 +90,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter, target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSDLAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSDLAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSDLAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -142,11 +142,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter, target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSILAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSILAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIWSILAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -88,11 +88,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter, target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIXSDAdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIXSDAdapterFactory.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/BPELUIXSDAdapterFactory.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -110,11 +110,14 @@
@Override
public Adapter adaptNew(Notifier target, Object type) {
Adapter adapter = createAdapter(target, type);
- if (adapter == null) {
- return null;
+ //
https://jira.jboss.org/browse/JBIDE-7497
+ // only associate the adapter with the target (i.e. add it to the
+ // target's eAdapters list) if the adapter is for the requested type
+ if (adapter!=null && adapter.isAdapterForType(type)) {
+ associate(adapter,target);
+ return adapter;
}
- associate(adapter, target);
- return adapter.isAdapterForType(type) ? adapter : null;
+ return null;
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/CopyAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/CopyAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/CopyAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -10,13 +10,13 @@
*******************************************************************************/
package org.eclipse.bpel.ui.adapters;
-import org.eclipse.bpel.model.adapters.AbstractAdapter;
import org.eclipse.bpel.ui.uiextensionmodel.UiextensionmodelFactory;
import org.eclipse.emf.ecore.EObject;
+//
https://jira.jboss.org/browse/JBIDE-7497
+// use MarkerDelegateAdapter to forward marker notifications to the enclosing
<assign>
+public class CopyAdapter extends MarkerDelegateAdapter implements IExtensionFactory {
-public class CopyAdapter extends AbstractAdapter implements IExtensionFactory {
-
/* IExtensionFactory */
public EObject createExtension(EObject object) {
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/FromAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/FromAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/FromAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -26,7 +26,9 @@
* @date Jun 11, 2007
*
*/
-public class FromAdapter extends AbstractStatefulAdapter implements IVirtualCopyRuleSide
{
+//
https://jira.jboss.org/browse/JBIDE-7497
+// change base class to MarkerDelegateAdapter
+public class FromAdapter extends MarkerDelegateAdapter implements IVirtualCopyRuleSide {
/**
* @see org.eclipse.bpel.ui.adapters.IVirtualCopyRuleSide#getEndpointReference()
Added:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/MarkerDelegateAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/MarkerDelegateAdapter.java
(rev 0)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/MarkerDelegateAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.eclipse.bpel.ui.adapters;
+
+import java.util.ArrayList;
+
+import org.eclipse.bpel.model.Assign;
+import org.eclipse.bpel.model.adapters.AbstractStatefulAdapter;
+import org.eclipse.bpel.model.impl.AssignImpl;
+import org.eclipse.bpel.ui.util.BPELUtil;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * A UI adapter for model objects that are not activities, but may have error markers
+ * created on them by the validator. The error notifications are forwared to the
+ * containing parent activity. For example, an <assign> has one or more
<copy>
+ * elements, each of which have <from> and <to> elements, and so on.
+ *
+ * @see
https://jira.jboss.org/browse/JBIDE-7497
+ * @author Bob Brodt
+ * @date Nov 5, 2010
+ */
+public class MarkerDelegateAdapter extends AbstractStatefulAdapter implements
IMarkerHolder, AdapterNotification {
+
+ ArrayList<IMarker> fMarkers = new ArrayList<IMarker>();
+
+ static IMarker [] EMPTY_MARKERS = {};
+
+ /** (non-Javadoc)
+ * @see org.eclipse.bpel.ui.adapters.IMarkerHolder#getMarkers(java.lang.Object)
+ */
+
+ public IMarker[] getMarkers (Object object) {
+
+ if (fMarkers.size() == 0) {
+ return EMPTY_MARKERS;
+ }
+ return fMarkers.toArray( EMPTY_MARKERS );
+ }
+
+ protected boolean isMarkerEvent(Notification notification) {
+ int type = notification.getEventType();
+ if (type==NOTIFICATION_MARKERS_STALE ||
+ type==NOTIFICATION_MARKER_ADDED ||
+ type==NOTIFICATION_MARKER_DELETED) {
+ return true;
+ }
+ return false;
+ }
+
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (isMarkerEvent(notification) && target instanceof EObject) {
+ EObject parent = ((EObject)target).eContainer();
+ if (parent != null)
+ parent.eNotify(notification);
+ }
+ }
+}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ToAdapter.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ToAdapter.java 2010-11-08
18:41:53 UTC (rev 26336)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/adapters/ToAdapter.java 2010-11-08
19:16:11 UTC (rev 26337)
@@ -26,7 +26,9 @@
* @date Jun 11, 2007
*
*/
-public class ToAdapter extends AbstractStatefulAdapter implements IVirtualCopyRuleSide {
+//
https://jira.jboss.org/browse/JBIDE-7497
+// change base class to MarkerDelegateAdapter
+public class ToAdapter extends MarkerDelegateAdapter implements IVirtualCopyRuleSide {
/**
* @see org.eclipse.bpel.ui.adapters.IVirtualCopyRuleSide#getEndpointReference()
Modified: trunk/bpel/plugins/org.eclipse.bpel.validator/plugin.xml
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.validator/plugin.xml 2010-11-08 18:41:53 UTC (rev
26336)
+++ trunk/bpel/plugins/org.eclipse.bpel.validator/plugin.xml 2010-11-08 19:16:11 UTC (rev
26337)
@@ -64,7 +64,8 @@
id="org.eclispe.bpel.validator.marker"
name="BPEL Validation Marker"
point="org.eclipse.core.resources.markers">
- <persistent value="false"/>
+ <!--
https://jira.jboss.org/browse/JBIDE-7497 -->
+ <persistent value="true"/>
<super type="org.eclipse.core.resources.problemmarker"/>
<attribute name="address.xpath"/>
<attribute name="address.model"/>