use of org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter in project webtools.sourceediting by eclipse.
the class AddXSDAttributeGroupDefinitionAction method run.
public void run() {
Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
if (selection instanceof XSDBaseAdapter) {
selection = ((XSDBaseAdapter) selection).getTarget();
}
AddXSDAttributeGroupDefinitionCommand command = null;
if (selection instanceof XSDComplexTypeDefinition) {
command = new AddXSDAttributeGroupDefinitionCommand(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_REF, (XSDComplexTypeDefinition) selection);
getCommandStack().execute(command);
} else if (selection instanceof XSDSchema) {
command = new AddXSDAttributeGroupDefinitionCommand(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION, (XSDSchema) selection);
getCommandStack().execute(command);
}
if (command != null) {
addedComponent = command.getAddedComponent();
Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
selectAddedComponent(adapter);
}
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter in project webtools.sourceediting by eclipse.
the class XSDTabbedPropertySheetPage method selectionChanged.
/* (non-Javadoc)
* @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
Object selected = ((IStructuredSelection) selection).getFirstElement();
if (selected instanceof XSDBaseAdapter) {
XSDBaseAdapter adapter = (XSDBaseAdapter) selected;
if (oldSelection != null) {
oldSelection.unregisterListener(this);
if (oldSelection instanceof XSDElementDeclarationAdapter) {
XSDElementDeclaration elem = (XSDElementDeclaration) ((XSDElementDeclarationAdapter) oldSelection).getTarget();
if (elem.getContainer() != null) {
Adapter adap = XSDAdapterFactory.getInstance().adapt(elem.getContainer());
if (adap instanceof XSDParticleAdapter) {
XSDParticleAdapter particleAdapter = (XSDParticleAdapter) adap;
particleAdapter.unregisterListener(this);
}
}
if (elem.isElementDeclarationReference()) {
XSDElementDeclarationAdapter resolvedElementAdapter = (XSDElementDeclarationAdapter) XSDAdapterFactory.getInstance().adapt(elem.getResolvedElementDeclaration());
resolvedElementAdapter.unregisterListener(this);
}
}
}
if (adapter instanceof XSDElementDeclarationAdapter) {
XSDElementDeclaration elem = (XSDElementDeclaration) ((XSDElementDeclarationAdapter) adapter).getTarget();
Adapter adap = XSDAdapterFactory.getInstance().adapt(elem.getContainer());
if (adap instanceof XSDParticleAdapter) {
XSDParticleAdapter particleAdapter = (XSDParticleAdapter) adap;
particleAdapter.registerListener(this);
}
if (elem.isElementDeclarationReference()) {
XSDElementDeclarationAdapter resolvedElementAdapter = (XSDElementDeclarationAdapter) XSDAdapterFactory.getInstance().adapt(elem.getResolvedElementDeclaration());
resolvedElementAdapter.registerListener(this);
}
} else if (adapter instanceof XSDAttributeUseAdapter) {
XSDAttributeUseAdapter attributeUse = (XSDAttributeUseAdapter) adapter;
XSDAttributeUse xsdAttrUse = (XSDAttributeUse) attributeUse.getTarget();
adapter = (XSDBaseAdapter) XSDAdapterFactory.getInstance().adapt(xsdAttrUse.getAttributeDeclaration());
}
adapter.registerListener(this);
oldSelection = adapter;
Object model = adapter.getTarget();
if (xsdModelAdapter != null && xsdModelAdapter.getModelReconcileAdapter() != null) {
xsdModelAdapter.getModelReconcileAdapter().removeListener(internalNodeAdapter);
}
Element element = ((XSDConcreteComponent) adapter.getTarget()).getElement();
if (element != null) {
xsdModelAdapter = XSDModelAdapter.lookupOrCreateModelAdapter(element.getOwnerDocument());
}
if (xsdModelAdapter != null && xsdModelAdapter.getModelReconcileAdapter() != null) {
xsdModelAdapter.getModelReconcileAdapter().addListener(internalNodeAdapter);
}
if (model instanceof XSDConcreteComponent) {
selection = new StructuredSelection(model);
}
super.selectionChanged(part, selection);
return;
}
super.selectionChanged(part, selection);
}
use of org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter in project webtools.sourceediting by eclipse.
the class RefactorEnablementTester method test.
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window == null) {
return false;
}
IWorkbenchPage activePage = window.getActivePage();
if (activePage == null) {
return false;
}
IEditorPart editor = activePage.getActiveEditor();
if (editor == null) {
return false;
}
XSDSchema schema = (XSDSchema) editor.getAdapter(XSDSchema.class);
if (receiver instanceof IStructuredSelection) {
IStructuredSelection fStructuredSelection = (IStructuredSelection) receiver;
receiver = fStructuredSelection.getFirstElement();
if (receiver instanceof XSDBaseAdapter) {
receiver = ((XSDBaseAdapter) receiver).getTarget();
}
if (receiver instanceof XSDConcreteComponent) {
return canEnable((XSDConcreteComponent) receiver, schema);
} else if (receiver instanceof Node) {
Node node = (Node) receiver;
if (schema != null) {
XSDConcreteComponent concreteComponent = schema.getCorrespondingComponent(node);
return canEnable(concreteComponent, schema);
}
}
return true;
}
return false;
}
Aggregations