From 50f779d09b2db14cfccf31b0dca4436c95e63638 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Thu, 23 Jun 2011 13:07:35 +0000
Subject: [PATCH] AVATAR: Trying to resolve bug on non -identified state
 selected for reachability / liveness analysis

---
 src/avatartranslator/AvatarElement.java      | 26 ++++++++++++++++++++
 src/avatartranslator/AvatarStateMachine.java |  2 +-
 src/ui/AvatarDesignPanelTranslator.java      |  1 +
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/avatartranslator/AvatarElement.java b/src/avatartranslator/AvatarElement.java
index c5244cf421..75f71bde15 100644
--- a/src/avatartranslator/AvatarElement.java
+++ b/src/avatartranslator/AvatarElement.java
@@ -45,6 +45,8 @@ knowledge of the CeCILL license and that you accept its terms.
 
 package avatartranslator;
 
+import java.util.*;
+
 import myutil.*;
 
 public class AvatarElement {
@@ -53,6 +55,7 @@ public class AvatarElement {
 	
 	protected String name;
 	protected Object referenceObject;
+	protected Vector<Object> otherReferenceObjects;
     private int myID;
     
     public AvatarElement(String _name, Object _referenceObject) {
@@ -61,6 +64,29 @@ public class AvatarElement {
 	   referenceObject = _referenceObject;
     }
 	
+	public void addReferenceObject(Object _ref) {
+		if (otherReferenceObjects == null) {
+			otherReferenceObjects = new Vector<Object>();
+		}
+		otherReferenceObjects.add(_ref);
+	}
+	
+	public boolean hasReferenceObject(Object _ref) {
+		if (referenceObject == _ref) {
+			return true;
+		}
+		
+		if (otherReferenceObjects != null) {
+			for(Object obj: otherReferenceObjects) {
+				if (obj == _ref) {
+					return true;
+				}
+			}
+		}
+		
+		return false;
+	}
+	
 	public String getName() {
 		return name;
 	}
diff --git a/src/avatartranslator/AvatarStateMachine.java b/src/avatartranslator/AvatarStateMachine.java
index 8bdc036f68..ac7b469f22 100644
--- a/src/avatartranslator/AvatarStateMachine.java
+++ b/src/avatartranslator/AvatarStateMachine.java
@@ -400,7 +400,7 @@ public class AvatarStateMachine extends AvatarElement {
 	
 	public AvatarStateMachineElement getStateMachineElementFromReferenceObject(Object _o) {
 		for(AvatarStateMachineElement element: elements) {
-			if(element.getReferenceObject() == _o) {
+			if(element.hasReferenceObject(_o)) {
 				return element;
 			}
 		}
diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java
index 7c36a46628..df1876d0f8 100644
--- a/src/ui/AvatarDesignPanelTranslator.java
+++ b/src/ui/AvatarDesignPanelTranslator.java
@@ -827,6 +827,7 @@ public class AvatarDesignPanelTranslator {
 					TraceManager.addDev("Setting as checkable : " + tgc.getValue());
 				}
 				listE.addCor(astate, tgc);
+				astate.addReferenceObject(tgc);
 				tgc.setAVATARID(astate.getID());
 			
 				
-- 
GitLab