use of org.eclipse.xsd.XSDSchemaDirective in project tmdm-studio-se by Talend.
the class Util method IsAImporedElement.
public static boolean IsAImporedElement(XSDConcreteComponent component, XSDSchema schema) {
EObject parent = null;
EObject obj = component;
do {
if (null == obj) {
return false;
}
parent = obj.eContainer();
obj = parent;
} while (!(parent instanceof XSDSchema));
if (parent != null && parent instanceof XSDSchema) {
if (parent.equals(schema)) {
return false;
}
try {
EList<XSDSchemaDirective> referencingDirectives = ((XSDSchema) parent).getReferencingDirectives();
return !referencingDirectives.isEmpty();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
return false;
}
use of org.eclipse.xsd.XSDSchemaDirective in project webtools.sourceediting by eclipse.
the class XSDSchemaAdapter method getDirectives.
public List getDirectives(XSDSchema schema) {
List list = new ArrayList();
for (Iterator i = schema.getContents().iterator(); i.hasNext(); ) {
Object o = i.next();
if (o instanceof XSDSchemaDirective) {
list.add(o);
}
}
List adapterList = new ArrayList();
populateAdapterList(list, adapterList);
return adapterList;
}
use of org.eclipse.xsd.XSDSchemaDirective in project webtools.sourceediting by eclipse.
the class TopLevelComponentEditPart method performRequest.
public void performRequest(Request request) {
// Do not open on or set focus on direct edit type
if (request.getType() == RequestConstants.REQ_OPEN) {
Object model = getModel();
if (model instanceof IGraphElement) {
if (((IGraphElement) model).isFocusAllowed()) {
if (request instanceof LocationRequest) {
LocationRequest locationRequest = (LocationRequest) request;
Point p = locationRequest.getLocation();
if (hitTest(labelHolder, p)) {
performDrillDownAction();
}
}
}
} else if (model instanceof XSDSchemaDirectiveAdapter) {
if (request instanceof LocationRequest) {
LocationRequest locationRequest = (LocationRequest) request;
Point p = locationRequest.getLocation();
if (hitTest(labelHolder, p)) {
XSDSchemaDirective dir = (XSDSchemaDirective) ((XSDSchemaDirectiveAdapter) model).getTarget();
String schemaLocation = "";
// force load of imported schema
if (dir instanceof XSDImportImpl) {
((XSDImportImpl) dir).importSchema();
}
if (dir.getResolvedSchema() != null) {
schemaLocation = URIHelper.removePlatformResourceProtocol(dir.getResolvedSchema().getSchemaLocation());
if (schemaLocation != null) {
OpenOnSelectionHelper.openXSDEditor(dir.getResolvedSchema());
}
}
}
}
}
}
}
use of org.eclipse.xsd.XSDSchemaDirective in project webtools.sourceediting by eclipse.
the class OpenOnSelectionHelper method openOnSelection.
public boolean openOnSelection() {
List selectedNodes = null;
ISelection selection = textEditor.getSelectionProvider().getSelection();
if (selection instanceof IStructuredSelection) {
selectedNodes = ((IStructuredSelection) selection).toList();
}
if (selectedNodes != null && !selectedNodes.isEmpty()) {
for (Iterator i = selectedNodes.iterator(); i.hasNext(); ) {
Object obj = i.next();
if (xsdSchema != null) {
XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent((Node) obj);
XSDConcreteComponent objectToReveal = null;
if (xsdComp instanceof XSDElementDeclaration) {
XSDElementDeclaration elementDecl = (XSDElementDeclaration) xsdComp;
if (elementDecl.isElementDeclarationReference()) {
objectToReveal = elementDecl.getResolvedElementDeclaration();
} else {
XSDConcreteComponent typeDef = null;
if (elementDecl.getAnonymousTypeDefinition() == null) {
typeDef = elementDecl.getTypeDefinition();
}
XSDConcreteComponent subGroupAffiliation = elementDecl.getSubstitutionGroupAffiliation();
if (typeDef != null && subGroupAffiliation != null) {
// then jump to that, otherwise just go to the typeDef.
if (obj instanceof Attr && ((Attr) obj).getLocalName().equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE)) {
objectToReveal = subGroupAffiliation;
} else {
// if we fail, set the substitution group as the object to reveal as a backup plan.
if (revealObject(typeDef)) {
return true;
} else {
objectToReveal = subGroupAffiliation;
}
}
} else {
// one or more of these is null. If the typeDef is non-null, use it. Otherwise
// try and use the substitution group
objectToReveal = typeDef != null ? typeDef : subGroupAffiliation;
}
}
} else if (xsdComp instanceof XSDModelGroupDefinition) {
XSDModelGroupDefinition elementDecl = (XSDModelGroupDefinition) xsdComp;
if (elementDecl.isModelGroupDefinitionReference()) {
objectToReveal = elementDecl.getResolvedModelGroupDefinition();
}
} else if (xsdComp instanceof XSDAttributeDeclaration) {
XSDAttributeDeclaration attrDecl = (XSDAttributeDeclaration) xsdComp;
if (attrDecl.isAttributeDeclarationReference()) {
objectToReveal = attrDecl.getResolvedAttributeDeclaration();
} else if (attrDecl.getAnonymousTypeDefinition() == null) {
objectToReveal = attrDecl.getTypeDefinition();
}
} else if (xsdComp instanceof XSDAttributeGroupDefinition) {
XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) xsdComp;
if (attrGroupDef.isAttributeGroupDefinitionReference()) {
objectToReveal = attrGroupDef.getResolvedAttributeGroupDefinition();
}
} else if (xsdComp instanceof XSDIdentityConstraintDefinition) {
XSDIdentityConstraintDefinition idConstraintDef = (XSDIdentityConstraintDefinition) xsdComp;
if (idConstraintDef.getReferencedKey() != null) {
objectToReveal = idConstraintDef.getReferencedKey();
}
} else if (xsdComp instanceof XSDSimpleTypeDefinition) {
XSDSimpleTypeDefinition typeDef = (XSDSimpleTypeDefinition) xsdComp;
objectToReveal = typeDef.getItemTypeDefinition();
if (objectToReveal == null) {
// if itemType attribute is not set, then check for memberType
List memberTypes = typeDef.getMemberTypeDefinitions();
if (memberTypes != null && memberTypes.size() > 0) {
objectToReveal = (XSDConcreteComponent) memberTypes.get(0);
}
}
} else if (xsdComp instanceof XSDTypeDefinition) {
XSDTypeDefinition typeDef = (XSDTypeDefinition) xsdComp;
objectToReveal = typeDef.getBaseType();
} else if (xsdComp instanceof XSDSchemaDirective) {
XSDSchemaDirective directive = (XSDSchemaDirective) xsdComp;
// String schemaLocation = URIHelper.removePlatformResourceProtocol(directive.getResolvedSchema().getSchemaLocation());
// openXSDEditor(schemaLocation);
// return false;
objectToReveal = directive.getResolvedSchema();
}
// now reveal the object if this isn't null
if (objectToReveal != null) {
return revealObject(objectToReveal);
}
}
}
}
return false;
}
use of org.eclipse.xsd.XSDSchemaDirective in project webtools.sourceediting by eclipse.
the class XSDUnusedTests method testImport013.
public void testImport013() {
XSDSchema schema = getXSDSchema(TC_ROOT_FOLDER + "/Unused/test/Main009c.xsd");
importManager.performRemoval(schema);
List list = importManager.getUnusedXSDDirectives();
assertTrue(list.size() == 3);
XSDSchemaDirective d1 = (XSDSchemaDirective) list.get(0);
assertTrue("../Include1.xsd".equals(d1.getSchemaLocation()));
XSDSchemaDirective d2 = (XSDSchemaDirective) list.get(1);
assertTrue("../Include2.xsd".equals(d2.getSchemaLocation()));
XSDSchemaDirective d3 = (XSDSchemaDirective) list.get(2);
assertTrue("../Include3.xsd".equals(d3.getSchemaLocation()));
}
Aggregations