Search in sources :

Example 1 with ADTContentOutlinePage

use of org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage in project webtools.sourceediting by eclipse.

the class InternalXSDMultiPageEditor method editorModeChanged.

public void editorModeChanged(EditorMode newEditorMode) {
    // if (isInitializing)
    // return;
    EditPartFactory editPartFactory = newEditorMode.getEditPartFactory();
    if (editPartFactory != null) {
        graphicalViewer.setEditPartFactory(editPartFactory);
        if (graphicalViewer instanceof DesignViewGraphicalViewer) {
            DesignViewGraphicalViewer viewer = (DesignViewGraphicalViewer) graphicalViewer;
            IADTObject input = viewer.getInput();
            viewer.setInput(null);
            // viewer.getRootEditPart().refresh();
            // viewer.getRootEditPart().getContents().refresh();
            viewer.setInput(input);
            floatingToolbar.setEditPartFactory(editPartFactory);
            floatingToolbar.setModel(getModel());
            floatingToolbar.refresh(!(input instanceof IModel));
            Control control = graphicalViewer.getControl();
            if (control instanceof Composite) {
                Composite parent = ((Composite) control).getParent();
                parent.layout();
            }
        }
    }
    IContentProvider provider = newEditorMode.getOutlineProvider();
    if (provider != null) {
        ADTContentOutlinePage outline = (ADTContentOutlinePage) getContentOutlinePage();
        if (outline != null) {
            TreeViewer treeViewer = outline.getTreeViewer();
            if (treeViewer != null) {
                outline.getTreeViewer().setContentProvider(provider);
                outline.getTreeViewer().refresh();
            }
        }
    }
}
Also used : DesignViewGraphicalViewer(org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer) IModel(org.eclipse.wst.xsd.ui.internal.adt.facade.IModel) Control(org.eclipse.swt.widgets.Control) Composite(org.eclipse.swt.widgets.Composite) IContentProvider(org.eclipse.jface.viewers.IContentProvider) IADTObject(org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject) TreeViewer(org.eclipse.jface.viewers.TreeViewer) EditPartFactory(org.eclipse.gef.EditPartFactory) ADTContentOutlinePage(org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage)

Example 2 with ADTContentOutlinePage

use of org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage 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 3 with ADTContentOutlinePage

use of org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage in project webtools.sourceediting by eclipse.

the class ADTMultiPageEditor method getContentOutlinePage.

public IContentOutlinePage getContentOutlinePage() {
    if (fOutlinePage == null || fOutlinePage.getControl() == null || fOutlinePage.getControl().isDisposed()) {
        final ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider) getAdapter(ProductCustomizationProvider.class);
        ExtensibleContentOutlinePage outlinePage = null;
        if (productCustomizationProvider != null) {
            outlinePage = productCustomizationProvider.getProductContentOutlinePage();
        }
        if (outlinePage == null) {
            outlinePage = new ADTContentOutlinePage();
        }
        outlinePage.setEditor(this);
        ITreeContentProvider provider = (ITreeContentProvider) getEditorModeManager().getCurrentMode().getOutlineProvider();
        outlinePage.setContentProvider(provider);
        ADTLabelProvider adtLabelProvider = new ADTLabelProvider();
        outlinePage.setLabelProvider(adtLabelProvider);
        outlinePage.setModel(getModel());
        fOutlinePage = outlinePage;
    }
    return fOutlinePage;
}
Also used : ITreeContentProvider(org.eclipse.jface.viewers.ITreeContentProvider) ExtensibleContentOutlinePage(org.eclipse.wst.xsd.ui.internal.adt.outline.ExtensibleContentOutlinePage) ADTLabelProvider(org.eclipse.wst.xsd.ui.internal.adt.outline.ADTLabelProvider) ADTContentOutlinePage(org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage)

Aggregations

ADTContentOutlinePage (org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage)3 IADTObject (org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject)2 IModel (org.eclipse.wst.xsd.ui.internal.adt.facade.IModel)2 EditPart (org.eclipse.gef.EditPart)1 EditPartFactory (org.eclipse.gef.EditPartFactory)1 IContentProvider (org.eclipse.jface.viewers.IContentProvider)1 ISelection (org.eclipse.jface.viewers.ISelection)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 ITreeContentProvider (org.eclipse.jface.viewers.ITreeContentProvider)1 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)1 TreeViewer (org.eclipse.jface.viewers.TreeViewer)1 Composite (org.eclipse.swt.widgets.Composite)1 Control (org.eclipse.swt.widgets.Control)1 RedefineCategoryAdapter (org.eclipse.wst.xsd.ui.internal.adapters.RedefineCategoryAdapter)1 XSDRedefineAdapter (org.eclipse.wst.xsd.ui.internal.adapters.XSDRedefineAdapter)1 DesignViewGraphicalViewer (org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer)1 IHolderEditPart (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.IHolderEditPart)1 RootContentEditPart (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart)1 StructureEditPart (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.StructureEditPart)1 IGraphElement (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement)1