rollback change from Bug 128416 - Open LCD on Targets tab performance regression
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntElementNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntElementNode.java
index 28af5e3..eccc57d 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntElementNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntElementNode.java
@@ -320,6 +320,10 @@
 			buffer.append(getParentNode() != null ? getParentNode().getElementPath() : ""); //$NON-NLS-1$
 			buffer.append('/');
 			buffer.append(getElementIdentifier());
+			buffer.append('[');
+			buffer.append(getParentNode() != null ? getParentNode().getElementIndexOf(this) : 0);
+			buffer.append(']');
+			
 			fElementPath= buffer.toString();
 		}
 		return fElementPath;
@@ -346,6 +350,28 @@
 		return sb;
 	}
 
+	private int getElementIndexOf(AntElementNode child) {
+		if (getChildNodes() == null) {
+			return -1;
+		}
+		
+		int result= -1;
+		
+		Iterator iter= getChildNodes().iterator();
+		AntElementNode current= null;
+		while (current != child && iter.hasNext()) {
+			current= (AntElementNode) iter.next();
+			if (child.getElementIdentifier().equals(current.getElementIdentifier()))
+				result++;
+		}
+		
+		if (current != child) {
+			return -1;
+		}
+		
+		return result;
+	}
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */