Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgindik2009-04-29 23:50:38 +0000
committergindik2009-04-29 23:50:38 +0000
commit2a460be234bed52c2b92538c6ada4af7ae646f66 (patch)
treeedd8aafbb331dba1536b5f99c8b226b9db1510c4 /bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse
parent3a85e6d2ee9975a381e717980953df65a98076d9 (diff)
downloadwebtools.sourceediting-2a460be234bed52c2b92538c6ada4af7ae646f66.tar.gz
webtools.sourceediting-2a460be234bed52c2b92538c6ada4af7ae646f66.tar.xz
webtools.sourceediting-2a460be234bed52c2b92538c6ada4af7ae646f66.zip
[273068] XSD Editor navigation history errors
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse')
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/RedefineCategoryAdapter.java10
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDRedefineAdapter.java6
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java19
3 files changed, 26 insertions, 9 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/RedefineCategoryAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/RedefineCategoryAdapter.java
index cfb39e106c..83e8c924ba 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/RedefineCategoryAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/RedefineCategoryAdapter.java
@@ -28,12 +28,14 @@ import org.eclipse.xsd.XSDRedefine;
public class RedefineCategoryAdapter extends CategoryAdapter
{
protected XSDRedefine xsdRedefine;
+ private XSDRedefineAdapter xsdRedefineAdapter;
- public RedefineCategoryAdapter(String label, Image image, Collection children, XSDRedefine xsdRedefine, int groupType)
+ public RedefineCategoryAdapter(String label, Image image, Collection children, XSDRedefine xsdRedefine, XSDRedefineAdapter xsdRedefineAdapter, int groupType)
{
super(label, image, children, xsdRedefine.getSchema(), groupType);
this.xsdRedefine = xsdRedefine;
this.target = xsdRedefine;
+ this.xsdRedefineAdapter = xsdRedefineAdapter;
}
public XSDRedefine getXSDRedefine()
@@ -74,4 +76,10 @@ public class RedefineCategoryAdapter extends CategoryAdapter
{
return (IModel)XSDAdapterFactory.getInstance().adapt(xsdRedefine.getSchema());
}
+
+
+ public XSDRedefineAdapter getXsdRedefineAdapter() {
+ return xsdRedefineAdapter;
+ }
+
} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDRedefineAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDRedefineAdapter.java
index 59aa9dc291..fc5285c169 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDRedefineAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDRedefineAdapter.java
@@ -110,19 +110,19 @@ public class XSDRedefineAdapter extends XSDSchemaDirectiveAdapter
XSDEditorPlugin xsdEditorPlugin = XSDEditorPlugin.getDefault();
attributesCategory = new RedefineCategoryAdapter(
Messages._UI_GRAPH_REDEFINE_ATTRIBUTE_GROUPS,
- xsdEditorPlugin.getIconImage("obj16/attributesheader"), attributes, xsdRedefine, CategoryAdapter.ATTRIBUTES); //$NON-NLS-1$
+ xsdEditorPlugin.getIconImage("obj16/attributesheader"), attributes, xsdRedefine, this, CategoryAdapter.ATTRIBUTES); //$NON-NLS-1$
attributesCategory.setAllChildren(attributes);
registerListener(attributesCategory);
typesCategory = new RedefineCategoryAdapter(
Messages._UI_GRAPH_REDEFINE_TYPES,
- xsdEditorPlugin.getIconImage("obj16/typesheader"), types, xsdRedefine, CategoryAdapter.TYPES); //$NON-NLS-1$
+ xsdEditorPlugin.getIconImage("obj16/typesheader"), types, xsdRedefine, this, CategoryAdapter.TYPES); //$NON-NLS-1$
typesCategory.setAllChildren(types);
registerListener(typesCategory);
groupsCategory = new RedefineCategoryAdapter(
Messages._UI_GRAPH_REDEFINE_GROUPS,
- xsdEditorPlugin.getIconImage("obj16/groupsheader"), groups, xsdRedefine, CategoryAdapter.GROUPS); //$NON-NLS-1$
+ xsdEditorPlugin.getIconImage("obj16/groupsheader"), groups, xsdRedefine, this, CategoryAdapter.GROUPS); //$NON-NLS-1$
groupsCategory.setAllChildren(groups);
registerListener(groupsCategory);
}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java
index 3e915023e1..6f256a1437 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java
@@ -245,7 +245,7 @@ public class DesignViewNavigationLocation extends NavigationLocation
else if (component instanceof XSDRedefine)
{
XSDRedefine redefine = (XSDRedefine) component;
- pathSegment = new PathSegment(PathSegment.REDEFINE, redefine.toString());
+ pathSegment = new PathSegment(PathSegment.REDEFINE, redefine.getSchemaLocation());
}
return pathSegment;
}
@@ -361,7 +361,16 @@ public class DesignViewNavigationLocation extends NavigationLocation
}
else if (segment.kind == PathSegment.REDEFINE)
{
- // TODO
+ Iterator iterator = schema.getContents().iterator();
+ while (iterator.hasNext())
+ {
+ Object object = iterator.next();
+ if (object instanceof XSDRedefine)
+ {
+ XSDRedefine redefine = (XSDRedefine)object;
+ visitRedefine(redefine);
+ }
+ }
}
}
}
@@ -438,14 +447,14 @@ public class DesignViewNavigationLocation extends NavigationLocation
{
if (segment != null)
{
- String name = redefine.toString();
- if (segment.kind == PathSegment.ATTRIBUTE_GROUP && isMatch(segment.name, name))
+ String name = redefine.getSchemaLocation();
+ if (segment.kind == PathSegment.REDEFINE && isMatch(segment.name, name))
{
result = redefine;
incrementSegment();
if (!isDone())
{
- super.visitRedefine(redefine);
+ visitSchema(redefine.getSchema());
}
}
}

Back to the top