[no bug] Direct edit of attribute doesn't work
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java
index f7e1c46..a1960c6 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java
@@ -178,6 +178,11 @@
     return false;
   }
   
+  public boolean isReference()
+  {
+    return false;
+  }
+  
   public IModel getModel()
   {
     Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDAttributeDeclaration().getSchema());
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java
index d679724..ff568f7 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java
@@ -213,7 +213,7 @@
     return getXSDElementDeclaration().eContainer() instanceof XSDSchema;
   }
   
-  public boolean isElementDeclarationReference()
+  public boolean isReference()
   {
 	  return ((XSDElementDeclaration) target).isElementDeclarationReference();
   }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java
index 4be4fa5..7e9b8fc 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java
@@ -111,4 +111,10 @@
     // TODO Auto-generated method stub
     return null;
   }
+
+  public boolean isReference()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
 }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java
index 92baa7b..d2897b3 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java
@@ -172,4 +172,10 @@
   {
     return false;
   }
+
+  public boolean isReference()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
 }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java
index 5985b52..4707452 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java
@@ -152,6 +152,12 @@
     // TODO Auto-generated method stub
     return null;
   }
+
+  public boolean isReference()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
 }
 
 
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java
index 1e8efce..672bf0b 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java
@@ -25,7 +25,6 @@
 import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
 import org.eclipse.gef.requests.DirectEditRequest;
 import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDElementDeclarationAdapter;
 import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.ComboBoxCellEditorManager;
 import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.ElementReferenceDirectEditManager;
 import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.LabelCellEditorLocator;
@@ -44,8 +43,9 @@
 {
   protected TypeReferenceConnection connectionFigure;
   protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  TypeUpdateCommand typeUpdateCommand = new TypeUpdateCommand();
-  ElementReferenceUpdateCommand elementUpdateCommand = new ElementReferenceUpdateCommand();
+  protected TypeUpdateCommand typeUpdateCommand = new TypeUpdateCommand();
+  protected ElementReferenceUpdateCommand elementUpdateCommand = new ElementReferenceUpdateCommand();
+  protected TypeReferenceConnection connectionFeedbackFigure;
   
   protected IFigure createFigure()
   {          
@@ -58,7 +58,6 @@
   {
     return (IFieldFigure)figure;
   }
-  
 
   public void activate()
   {
@@ -208,21 +207,23 @@
         }
         else if (hitTest(fieldFigure.getNameLabel(), p))
         {
-        	if ( model instanceof XSDElementDeclarationAdapter ){
-        		XSDElementDeclarationAdapter elementDecAdapter = ((XSDElementDeclarationAdapter) model);
-        		if ( elementDecAdapter.isElementDeclarationReference() ){
-        			ElementReferenceDirectEditManager manager =
-        				new ElementReferenceDirectEditManager((IField)model, this, fieldFigure.getNameLabel());
-        			elementUpdateCommand.setDelegate(manager);
-        			adtDirectEditPolicy.setUpdateCommand(elementUpdateCommand);
-        			manager.show();
-        		}
-        		else {
-        			LabelEditManager manager = new LabelEditManager(this, new LabelCellEditorLocator(this, p));
-        			NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-        			adtDirectEditPolicy.setUpdateCommand(wrapper);
-        			manager.show();
-        		}
+        	if ( model instanceof IField) 
+          {
+            IField field = (IField) model;
+            if (field.isReference())
+            {
+              ElementReferenceDirectEditManager manager = new ElementReferenceDirectEditManager((IField) model, this, fieldFigure.getNameLabel());
+              elementUpdateCommand.setDelegate(manager);
+              adtDirectEditPolicy.setUpdateCommand(elementUpdateCommand);
+              manager.show();
+            }
+            else
+            {
+              LabelEditManager manager = new LabelEditManager(this, new LabelCellEditorLocator(this, p));
+              NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
+              adtDirectEditPolicy.setUpdateCommand(wrapper);
+              manager.show();
+            }
         	}
         }
       }
@@ -327,8 +328,6 @@
   }
 
 
-  TypeReferenceConnection connectionFeedbackFigure;
-
   public void addFeedback()
   {
     // Put back connection figure so it won't get overlayed by other non highlighted connections
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java
index 246824d..b3335da 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java
@@ -25,6 +25,7 @@
   int getMaxOccurs();
   boolean isGlobal();
   boolean isReadOnly();
+  boolean isReference();
   
   Command getUpdateMinOccursCommand(int minOccurs);
   Command getUpdateMaxOccursCommand(int maxOccurs);