Search in sources :

Example 16 with IADTObject

use of org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject in project webtools.sourceediting by eclipse.

the class XSDAttributeGroupDefinitionAdapter method clearFields.

protected void clearFields() {
    if (otherThingsToListenTo != null) {
        for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext(); ) {
            Adapter adapter = (Adapter) i.next();
            if (adapter instanceof IADTObject) {
                IADTObject adtObject = (IADTObject) adapter;
                adtObject.unregisterListener(this);
            }
        }
    }
    fields = null;
    otherThingsToListenTo = null;
}
Also used : IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) Iterator(java.util.Iterator) Adapter(org.eclipse.emf.common.notify.Adapter)

Example 17 with IADTObject

use of org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject in project webtools.sourceediting by eclipse.

the class XSDComplexTypeDefinitionAdapter method getFields.

public List getFields() {
    if (fields == null) {
        fields = new ArrayList();
        otherThingsToListenTo = new ArrayList();
        XSDVisitorForFields visitor = new XSDVisitorForFieldsWithSpaceFillers();
        visitor.visitComplexTypeDefinition(getXSDComplexTypeDefinition());
        populateAdapterList(visitor.concreteComponentList, fields);
        populateAdapterList(visitor.thingsWeNeedToListenTo, otherThingsToListenTo);
        for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext(); ) {
            Adapter adapter = (Adapter) i.next();
            if (adapter instanceof IADTObject) {
                IADTObject adtObject = (IADTObject) adapter;
                adtObject.registerListener(this);
            }
        }
    }
    return fields;
}
Also used : IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) ArrayList(java.util.ArrayList) Iterator(java.util.Iterator) Adapter(org.eclipse.emf.common.notify.Adapter)

Example 18 with IADTObject

use of org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject in project webtools.sourceediting by eclipse.

the class DesignViewGraphicalViewer method selectionChanged.

// this method is called when something changes in the selection manager
// (e.g. a selection occured from another view)
public void selectionChanged(SelectionChangedEvent event) {
    Object selectedObject = null;
    ISelection eventSelection = event.getSelection();
    if (eventSelection instanceof StructuredSelection) {
        selectedObject = ((StructuredSelection) eventSelection).getFirstElement();
    }
    // if (event.getSource() instanceof ADTContentOutlinePage)
    if (selectedObject != null) {
        if (event.getSource() != internalSelectionProvider) {
            if (selectedObject instanceof IStructure) {
                if (((getInput() instanceof IModel) && (event.getSource() instanceof ADTContentOutlinePage)) || (!(getInput() instanceof IModel))) {
                    if ((selectedObject instanceof IGraphElement) && ((IGraphElement) selectedObject).isFocusAllowed()) {
                        if (!(event.getSource() instanceof org.eclipse.jface.viewers.IPostSelectionProvider)) {
                            setInputAndMarkLocation((IStructure) selectedObject);
                        }
                    }
                }
            } else if (selectedObject instanceof IGraphElement) {
                if (((IGraphElement) selectedObject).isFocusAllowed() && ((event.getSource() instanceof ADTContentOutlinePage))) {
                    setInputAndMarkLocation((IADTObject) selectedObject);
                } else if (!((IGraphElement) selectedObject).isFocusAllowed()) {
                    // We encountered an object that is not a valid input to the graph viewer
                    // Now find the top container that can be a valid input
                    IADTObject obj = ((IGraphElement) selectedObject).getTopContainer();
                    if (event.getSource() instanceof ADTContentOutlinePage) {
                        // change the inputs
                        if (// Don't change inputs if the obj is already the input
                        obj != null && getInput() != obj)
                            setInputAndMarkLocation(obj);
                    } else if (event.getSource() instanceof CommonSelectionManager) {
                        // otherwise, inputs will change unexpectedly!!
                        if (getInput() instanceof IModel) {
                            if (obj != null)
                                setInput(obj);
                        }
                    } else if (event.getSource() instanceof org.eclipse.jface.viewers.IPostSelectionProvider) {
                        // of anonymous types
                        if (obj != null)
                            setInput(obj);
                    } else {
                        if (obj != null && getInput() instanceof IModel)
                            setInputAndMarkLocation(obj);
                    }
                }
                if (selectedObject instanceof IField) {
                    IField field = (IField) selectedObject;
                    if ((!field.isGlobal() && getInput() instanceof IModel) || (!field.isGlobal() && !(event.getSource() instanceof CommonSelectionManager))) {
                        IADTObject obj = ((IGraphElement) selectedObject).getTopContainer();
                        if (obj != null)
                            setInputAndMarkLocation(obj);
                    } else if (field.isGlobal() && !(getInput() instanceof IModel)) {
                        if (event.getSource() instanceof org.eclipse.jface.viewers.IPostSelectionProvider)
                            setInput(field);
                        else
                            setInputAndMarkLocation(field);
                    }
                }
            } else if (selectedObject instanceof IField) {
                IField field = (IField) selectedObject;
                if ((field.isGlobal() && (getInput() instanceof IModel) && (event.getSource() instanceof ADTContentOutlinePage)) || ((field.isGlobal() && !(getInput() instanceof IModel)))) {
                    setInputAndMarkLocation(field);
                }
            } else if (selectedObject instanceof IModelProxy) {
                IModelProxy adapter = (IModelProxy) selectedObject;
                if (selectedObject instanceof RedefineCategoryAdapter) {
                    RedefineCategoryAdapter selectionAdapter = (RedefineCategoryAdapter) selectedObject;
                    XSDRedefineAdapter selectionParentAdapter = selectionAdapter.getXsdRedefineAdapter();
                    setInputAndMarkLocation(selectionParentAdapter);
                } else if (getInput() != adapter.getModel())
                    setInput(adapter.getModel());
            } else if (selectedObject instanceof IModel) {
                if (getInput() != selectedObject)
                    setInput((IModel) selectedObject);
            }
            EditPart editPart = getEditPart(getRootEditPart(), selectedObject);
            if (editPart != null) {
                setSelection(new StructuredSelection(editPart));
                setFocus(editPart);
            }
        }
    }
}
Also used : IModel(org.eclipse.wst.xsd.ui.internal.adt.facade.IModel) IModelProxy(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IModelProxy) IGraphElement(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) RootContentEditPart(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart) IHolderEditPart(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.IHolderEditPart) StructureEditPart(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.StructureEditPart) EditPart(org.eclipse.gef.EditPart) CommonSelectionManager(org.eclipse.wst.xsd.ui.internal.adt.editor.CommonSelectionManager) IStructure(org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure) IField(org.eclipse.wst.xsd.ui.internal.adt.facade.IField) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) RedefineCategoryAdapter(org.eclipse.wst.xsd.ui.internal.adapters.RedefineCategoryAdapter) ISelection(org.eclipse.jface.viewers.ISelection) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) ADTContentOutlinePage(org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage) XSDRedefineAdapter(org.eclipse.wst.xsd.ui.internal.adapters.XSDRedefineAdapter)

Example 19 with IADTObject

use of org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject in project webtools.sourceediting by eclipse.

the class DesignViewGraphicalViewer method setInputAndMarkLocation.

public void setInputAndMarkLocation(IADTObject object) {
    IADTObject oldInput = getInput();
    INavigationHistory navigationHistory = null;
    IWorkbench workbench = PlatformUI.getWorkbench();
    if (workbench != null) {
        IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
        if (activeWorkbenchWindow != null) {
            IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
            if (activePage != null) {
                navigationHistory = activePage.getNavigationHistory();
            }
        }
    }
    setInput(object);
    if (editorPart != null && oldInput != object) {
        navigationHistory.markLocation(editorPart);
    }
}
Also used : IWorkbench(org.eclipse.ui.IWorkbench) IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) INavigationHistory(org.eclipse.ui.INavigationHistory)

Example 20 with IADTObject

use of org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject in project webtools.sourceediting by eclipse.

the class SetInputToGraphView method run.

public void run() {
    Object selection = input;
    if (selection == null) {
        selection = ((IStructuredSelection) getSelection()).getFirstElement();
    }
    Object adapter = getWorkbenchPart().getAdapter(GraphicalViewer.class);
    if (selection instanceof IADTObject) {
        IADTObject obj = (IADTObject) selection;
        if (adapter instanceof DesignViewGraphicalViewer) {
            DesignViewGraphicalViewer graphicalViewer = (DesignViewGraphicalViewer) adapter;
            EditPart editPart = graphicalViewer.getInputEditPart();
            if (editPart instanceof RootContentEditPart) {
                graphicalViewer.setInputAndMarkLocation(obj);
            }
        }
    }
}
Also used : DesignViewGraphicalViewer(org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) RootContentEditPart(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart) EditPart(org.eclipse.gef.EditPart) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) RootContentEditPart(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart)

Aggregations

IADTObject (org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject)23 Adapter (org.eclipse.emf.common.notify.Adapter)9 Iterator (java.util.Iterator)7 ArrayList (java.util.ArrayList)5 DesignViewGraphicalViewer (org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer)4 IModel (org.eclipse.wst.xsd.ui.internal.adt.facade.IModel)4 IGraphElement (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement)3 XSDConcreteComponent (org.eclipse.xsd.XSDConcreteComponent)3 List (java.util.List)2 EditPart (org.eclipse.gef.EditPart)2 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)2 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)2 IWorkbench (org.eclipse.ui.IWorkbench)2 IWorkbenchWindow (org.eclipse.ui.IWorkbenchWindow)2 RootContentEditPart (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart)2 RootHolder (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.RootHolder)2 IField (org.eclipse.wst.xsd.ui.internal.adt.facade.IField)2 IStructure (org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure)2 ADTContentOutlinePage (org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage)2 XSDComplexTypeDefinition (org.eclipse.xsd.XSDComplexTypeDefinition)2