From 21e6965c5eb1cb98f58da3a96a6a9bbb1c2113a6 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Thu, 17 Feb 2011 20:25:24 +0000
Subject: [PATCH] TEPE: Support of property connector in TEPE data structure
 from the graphical form

---
 src/tepe/TEPEComponent.java                   | 37 +++++++++++++++++++
 src/ui/AvatarRequirementPanelTranslator.java  | 21 +++++++++++
 .../avatarpd/AvatarPDPropertyConnector.java   |  7 ++++
 3 files changed, 65 insertions(+)

diff --git a/src/tepe/TEPEComponent.java b/src/tepe/TEPEComponent.java
index 07abeab068..d204b174a3 100644
--- a/src/tepe/TEPEComponent.java
+++ b/src/tepe/TEPEComponent.java
@@ -200,5 +200,42 @@ public abstract class TEPEComponent  {
 		}
 	}
 	
+	public void addInSignalComponent(TEPEComponent _tepec) {
+		if (inSignalComponents != null) {
+			inSignalComponents.add(_tepec);
+		}
+	}
+	
+	public void addInNegatedSignalComponent(TEPEComponent _tepec) {
+		if (inNegatedSignalComponents != null) {
+			inNegatedSignalComponents.add(_tepec);
+		}
+	}
+	
+	public void addOutSignalComponent(TEPEComponent _tepec) {
+		if (outSignalComponents != null) {
+			outSignalComponents.add(_tepec);
+		}
+		
+	}
+	
+	public void addInPropertyComponent(TEPEComponent _tepec) {
+		if (inPropertyComponents != null) {
+			inPropertyComponents.add(_tepec);
+		}
+	}
+	
+	public void addInNegatedPropertyComponent(TEPEComponent _tepec) {
+		if (inNegatedPropertyComponents != null) {
+			inNegatedPropertyComponents.add(_tepec);
+		}
+	}
+	
+	public void addOutPropertyComponent(TEPEComponent _tepec) {
+		if (outPropertyComponents != null) {
+			outPropertyComponents.add(_tepec);
+		}
+	}
+	
     
 }
diff --git a/src/ui/AvatarRequirementPanelTranslator.java b/src/ui/AvatarRequirementPanelTranslator.java
index 3f57e8a872..923441914e 100644
--- a/src/ui/AvatarRequirementPanelTranslator.java
+++ b/src/ui/AvatarRequirementPanelTranslator.java
@@ -232,6 +232,27 @@ public class AvatarRequirementPanelTranslator {
 						element2.addInAttributeComponent(element1);
 					}
 				}
+			} else if (tgc instanceof AvatarPDPropertyConnector) {
+				AvatarPDPropertyConnector apdpco = (AvatarPDPropertyConnector)tgc;
+				tgc1 = _apdp.getComponentToWhichBelongs(apdpco.getTGConnectingPointP1());
+				tgc2 = _apdp.getComponentToWhichBelongs(apdpco.getTGConnectingPointP2());
+				if ((tgc1 == null) || (tgc2 == null)) {
+					TraceManager.addDev("Tgcs null in Avatar translation");
+				} else {
+					element1 = (TEPEComponent)(listE.getObject(tgc1));
+					element2 = (TEPEComponent)(listE.getObject(tgc2));
+					if ((element1 != null) && (element2 != null)) {
+						TraceManager.addDev("Adding output / input");
+						element1.addOutAttributeComponent(element2);
+						
+						// Must know whether it is negated, or not
+						if (apdpco.isNegated()) {
+							element2.addInNegatedPropertyComponent(element1);
+						} else {
+							element2.addInPropertyComponent(element1);
+						}
+					}
+				}
 			}
 		}
 	}
diff --git a/src/ui/avatarpd/AvatarPDPropertyConnector.java b/src/ui/avatarpd/AvatarPDPropertyConnector.java
index 4816241056..8cda1ab843 100644
--- a/src/ui/avatarpd/AvatarPDPropertyConnector.java
+++ b/src/ui/avatarpd/AvatarPDPropertyConnector.java
@@ -198,6 +198,13 @@ public  class AvatarPDPropertyConnector extends TGConnector implements ScalableT
 		oldScaleFactor = scaleFactor;
 	}
 	
+	public boolean isNegated() {
+		if (value.compareTo("not") == 0) {
+			return true;
+		}
+		return false;
+	}
+	
 	
     
 }
-- 
GitLab