[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);