use of org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter in project webtools.sourceediting by eclipse.
the class XSDSimpleTypeEditPart method performRequest.
public void performRequest(Request request) {
if (request.getType() == RequestConstants.REQ_OPEN) {
Object model = getModel();
if (request instanceof LocationRequest) {
LocationRequest locationRequest = (LocationRequest) request;
Point p = locationRequest.getLocation();
if (getStructureFigure().hitTestHeader(p)) {
//
if (model instanceof XSDSimpleTypeDefinitionAdapter) {
XSDSimpleTypeDefinitionAdapter adapter = (XSDSimpleTypeDefinitionAdapter) model;
XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) adapter.getTarget();
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
Object schema = editorPart.getAdapter(XSDSchema.class);
ActionRegistry registry = getEditorActionRegistry(editorPart);
if (registry != null) {
if (schema == st.getSchema()) {
IAction action = registry.getAction(SetInputToGraphView.ID);
action.run();
} else {
IAction action = registry.getAction(OpenInNewEditor.ID);
action.run();
}
}
}
}
}
}
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter in project webtools.sourceediting by eclipse.
the class XSDSimpleTypeEditPart method createConnectionFigure.
public TypeReferenceConnection createConnectionFigure() {
TypeReferenceConnection connectionFigure = null;
XSDSimpleTypeDefinitionAdapter adapter = (XSDSimpleTypeDefinitionAdapter) getModel();
IType superType = adapter.getSuperType();
if (superType != null) {
AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getTargetEditPart(superType);
if (referenceTypePart != null) {
connectionFigure = new TypeReferenceConnection(true);
// draw a line out from the top
connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.TOP, 1));
// TODO (cs) need to draw the target anchor to look like a UML inheritance relationship
// adding a label to the connection would help to
connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(referenceTypePart.getFigure(), CenteredConnectionAnchor.BOTTOM, 0, 0));
connectionFigure.setConnectionRouter(new ManhattanConnectionRouter());
((CenteredConnectionAnchor) connectionFigure.getSourceAnchor()).setOther((CenteredConnectionAnchor) connectionFigure.getTargetAnchor());
connectionFigure.setHighlight(false);
}
}
return connectionFigure;
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter in project webtools.sourceediting by eclipse.
the class AddRedefinedComponentCommand method execute.
public void execute() {
Element element = redefine.getElement();
try {
beginRecording(element);
doExecute();
Object adapter = redefinableComponent.eAdapters().get(0);
if (adapter instanceof XSDComplexTypeDefinitionAdapter) {
((XSDComplexTypeDefinitionAdapter) adapter).updateDeletedMap(redefinableComponent.getName());
} else if (adapter instanceof XSDSimpleTypeDefinitionAdapter) {
((XSDSimpleTypeDefinitionAdapter) adapter).updateDeletedMap(redefinableComponent.getName());
} else if (adapter instanceof XSDAttributeGroupDefinitionAdapter) {
((XSDAttributeGroupDefinitionAdapter) adapter).updateDeletedMap(redefinableComponent.getName());
} else if (adapter instanceof XSDModelGroupDefinitionAdapter) {
((XSDModelGroupDefinitionAdapter) adapter).updateDeletedMap(redefinableComponent.getName());
}
redefine.getContents().add(addedXSDConcreteComponent);
formatChild(addedXSDConcreteComponent.getElement());
} finally {
endRecording();
}
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter in project webtools.sourceediting by eclipse.
the class XSDSimpleTypeEditPart method refreshVisuals.
protected void refreshVisuals() {
XSDSimpleTypeDefinitionAdapter adapter = (XSDSimpleTypeDefinitionAdapter) getModel();
String name = adapter.getDisplayName();
HeadingFigure headingFigure = figure.getHeadingFigure();
headingFigure.setIsReadOnly(adapter.isReadOnly());
Label label = headingFigure.getLabel();
label.setText(name);
label.setIcon(XSDCommonUIUtils.getUpdatedImage(adapter.getXSDTypeDefinition(), adapter.getImage(), adapter.isReadOnly()));
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter in project webtools.sourceediting by eclipse.
the class DeleteCommand method execute.
public void execute() {
XSDVisitor visitor = new XSDVisitor() {
public void visitElementDeclaration(org.eclipse.xsd.XSDElementDeclaration element) {
if (element.getTypeDefinition() == target) {
// $NON-NLS-1$
XSDSimpleTypeDefinition type = target.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string");
element.setTypeDefinition(type);
}
super.visitElementDeclaration(element);
}
};
XSDConcreteComponent parent = target.getContainer();
XSDSchema schema = target.getSchema();
try {
beginRecording(parent.getElement());
boolean doCleanup = false;
if (target instanceof XSDModelGroup || target instanceof XSDElementDeclaration || target instanceof XSDModelGroupDefinition) {
doCleanup = true;
if (parent instanceof XSDParticle) {
if (parent.getContainer() instanceof XSDModelGroup) {
XSDModelGroup modelGroup = (XSDModelGroup) ((XSDParticle) parent).getContainer();
modelGroup.getContents().remove(parent);
} else if (parent.getContainer() instanceof XSDComplexTypeDefinition) {
XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) parent.getContainer();
complexType.setContent(null);
}
} else if (parent instanceof XSDSchema) {
visitor.visitSchema(target.getSchema());
((XSDSchema) parent).getContents().remove(target);
} else if (parent instanceof XSDRedefine) {
Object adapter = target.eAdapters().get(0);
if (adapter instanceof XSDModelGroupDefinitionAdapter) {
((XSDModelGroupDefinitionAdapter) adapter).setReadOnly(true);
((XSDModelGroupDefinitionAdapter) adapter).setChangeReadOnlyField(true);
}
((XSDRedefine) parent).getContents().remove(target);
}
} else if (target instanceof XSDAttributeDeclaration) {
doCleanup = true;
if (parent instanceof XSDAttributeUse) {
EObject obj = parent.eContainer();
XSDComplexTypeDefinition complexType = null;
while (obj != null) {
if (obj instanceof XSDComplexTypeDefinition) {
complexType = (XSDComplexTypeDefinition) obj;
break;
}
obj = obj.eContainer();
}
if (complexType != null) {
complexType.getAttributeContents().remove(parent);
}
if (parent.getContainer() instanceof XSDAttributeGroupDefinition) {
XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) parent.getContainer();
attrGroup.getContents().remove(parent);
}
} else if (parent instanceof XSDSchema) {
visitor.visitSchema(target.getSchema());
((XSDSchema) parent).getContents().remove(target);
}
} else if (target instanceof XSDAttributeGroupDefinition && parent instanceof XSDComplexTypeDefinition) {
doCleanup = true;
((XSDComplexTypeDefinition) parent).getAttributeContents().remove(target);
} else if (target instanceof XSDEnumerationFacet) {
XSDEnumerationFacet enumerationFacet = (XSDEnumerationFacet) target;
enumerationFacet.getSimpleTypeDefinition().getFacetContents().remove(enumerationFacet);
} else if (target instanceof XSDWildcard) {
if (parent instanceof XSDParticle) {
if (parent.getContainer() instanceof XSDModelGroup) {
XSDModelGroup modelGroup = (XSDModelGroup) ((XSDParticle) parent).getContainer();
modelGroup.getContents().remove(parent);
}
} else if (parent instanceof XSDComplexTypeDefinition) {
((XSDComplexTypeDefinition) parent).setAttributeWildcardContent(null);
} else if (parent instanceof XSDAttributeGroupDefinition) {
((XSDAttributeGroupDefinition) parent).setAttributeWildcardContent(null);
}
} else if (target instanceof XSDTypeDefinition && parent instanceof XSDElementDeclaration) {
doCleanup = true;
((XSDElementDeclaration) parent).setTypeDefinition(target.resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string"));
} else {
if (parent instanceof XSDSchema) {
doCleanup = true;
visitor.visitSchema(target.getSchema());
((XSDSchema) parent).getContents().remove(target);
} else if (parent instanceof XSDRedefine) {
doCleanup = false;
EList contents = ((XSDRedefine) parent).getContents();
Object adapter = target.eAdapters().get(0);
if (adapter instanceof XSDComplexTypeDefinitionAdapter) {
((XSDComplexTypeDefinitionAdapter) adapter).setReadOnly(true);
((XSDComplexTypeDefinitionAdapter) adapter).setChangeReadOnlyField(true);
} else if (adapter instanceof XSDSimpleTypeDefinitionAdapter) {
((XSDSimpleTypeDefinitionAdapter) adapter).setReadOnly(true);
((XSDSimpleTypeDefinitionAdapter) adapter).setChangeReadOnlyField(true);
} else if (adapter instanceof XSDAttributeGroupDefinitionAdapter) {
((XSDAttributeGroupDefinitionAdapter) adapter).setReadOnly(true);
((XSDAttributeGroupDefinitionAdapter) adapter).setChangeReadOnlyField(true);
}
contents.remove(target);
}
}
if (doCleanup)
XSDDirectivesManager.removeUnusedXSDImports(schema);
} finally {
endRecording();
}
}
Aggregations