View | Details | Raw Unified | Return to bug 142212
Collapse All | Expand All

(-)src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorPart.java (-1 / +57 lines)
Lines 8-17 Link Here
8
 ****************************************************************************/
8
 ****************************************************************************/
9
package org.eclipse.wst.xml.ui.internal.tabletree;
9
package org.eclipse.wst.xml.ui.internal.tabletree;
10
10
11
import java.util.Iterator;
12
11
import org.eclipse.core.resources.IMarker;
13
import org.eclipse.core.resources.IMarker;
12
import org.eclipse.core.runtime.IProgressMonitor;
14
import org.eclipse.core.runtime.IProgressMonitor;
13
import org.eclipse.core.runtime.IStatus;
15
import org.eclipse.core.runtime.IStatus;
14
import org.eclipse.core.runtime.Status;
16
import org.eclipse.core.runtime.Status;
17
import org.eclipse.emf.common.notify.Notifier;
15
import org.eclipse.jface.preference.IPreferenceStore;
18
import org.eclipse.jface.preference.IPreferenceStore;
16
import org.eclipse.jface.text.IDocument;
19
import org.eclipse.jface.text.IDocument;
17
import org.eclipse.jface.text.ITextInputListener;
20
import org.eclipse.jface.text.ITextInputListener;
Lines 22-27 Link Here
22
import org.eclipse.jface.viewers.ISelectionProvider;
25
import org.eclipse.jface.viewers.ISelectionProvider;
23
import org.eclipse.jface.viewers.IStructuredSelection;
26
import org.eclipse.jface.viewers.IStructuredSelection;
24
import org.eclipse.jface.viewers.SelectionChangedEvent;
27
import org.eclipse.jface.viewers.SelectionChangedEvent;
28
import org.eclipse.jface.viewers.StructuredSelection;
25
import org.eclipse.swt.SWT;
29
import org.eclipse.swt.SWT;
26
import org.eclipse.swt.widgets.Control;
30
import org.eclipse.swt.widgets.Control;
27
import org.eclipse.swt.widgets.Event;
31
import org.eclipse.swt.widgets.Event;
Lines 40-49 Link Here
40
import org.eclipse.ui.PlatformUI;
44
import org.eclipse.ui.PlatformUI;
41
import org.eclipse.ui.ide.IDE;
45
import org.eclipse.ui.ide.IDE;
42
import org.eclipse.ui.ide.IGotoMarker;
46
import org.eclipse.ui.ide.IGotoMarker;
47
import org.eclipse.ui.part.ISetSelectionTarget;
43
import org.eclipse.ui.part.MultiPageEditorPart;
48
import org.eclipse.ui.part.MultiPageEditorPart;
44
import org.eclipse.ui.part.MultiPageEditorSite;
49
import org.eclipse.ui.part.MultiPageEditorSite;
45
import org.eclipse.ui.part.MultiPageSelectionProvider;
50
import org.eclipse.ui.part.MultiPageSelectionProvider;
46
import org.eclipse.ui.progress.UIJob;
51
import org.eclipse.ui.progress.UIJob;
52
import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter;
47
import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
53
import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
48
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
54
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
49
import org.eclipse.wst.sse.ui.StructuredTextEditor;
55
import org.eclipse.wst.sse.ui.StructuredTextEditor;
Lines 51-58 Link Here
51
import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
57
import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
52
import org.eclipse.wst.xml.ui.internal.Logger;
58
import org.eclipse.wst.xml.ui.internal.Logger;
53
import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
59
import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
60
import org.w3c.dom.Node;
54
61
55
public class XMLMultiPageEditorPart extends MultiPageEditorPart {
62
public class XMLMultiPageEditorPart extends MultiPageEditorPart implements ISetSelectionTarget {
56
63
57
	/**
64
	/**
58
	 * Internal part activation listener, copied from AbstractTextEditor
65
	 * Internal part activation listener, copied from AbstractTextEditor
Lines 770-773 Link Here
770
			fDesignViewer.setDocument(getDocument());
777
			fDesignViewer.setDocument(getDocument());
771
		setPartName(input.getName());
778
		setPartName(input.getName());
772
	}
779
	}
780
	
781
	/**
782
     * Reveals and selects the given element within this target view.
783
     *
784
     * @param selection the new element to select
785
     */
786
    public void selectReveal(ISelection selection) {
787
    	if (selection instanceof IStructuredSelection) {
788
    		Object obj = ((IStructuredSelection) selection).getFirstElement();
789
			EMF2DOMAdapter emf2dom = getEMF2DOMAdapter(obj);
790
			
791
			if (emf2dom != null) {
792
				Node node = emf2dom.getNode();
793
				if (getActivePage() == fSourcePageIndex) {
794
					// if the active editor page is the source editor, set the selection there
795
					getTextEditor().getSelectionProvider().setSelection(new StructuredSelection(node));
796
				} else if (getActivePage() == fDesignPageIndex) {
797
					// if the active editor page is the design viewer, set the selection there
798
					fDesignViewer.getSelectionProvider().setSelection(new StructuredSelection(node));
799
				}
800
			}
801
    	}
802
    }
803
    
804
    /**
805
     * Returns EMF2DOMAdapter for the specified object. This adapter is used 
806
     * to convert the EMF object to the corresponding DOM node. 
807
     *  
808
     * @param o the object that contains the adapter
809
     * 
810
     * @return returns instance to the EMF2DOMAdapter, or <code>null</code> if 
811
     *         the object has no such adapter. 
812
     */
813
    private EMF2DOMAdapter getEMF2DOMAdapter(Object o) {
814
		EMF2DOMAdapter emf2dom = null;
815
		
816
    	if (o != null && o instanceof Notifier) {
817
			Iterator iter = ((Notifier) o).eAdapters().iterator();
818
			while (iter.hasNext()) {
819
				Object obj = iter.next();
820
				if (obj instanceof EMF2DOMAdapter) {
821
					emf2dom = (EMF2DOMAdapter) obj;
822
					break;
823
				}
824
			}
825
    	}
826
    	
827
    	return emf2dom;
828
    }
773
}
829
}
(-)META-INF/MANIFEST.MF (-1 / +3 lines)
Lines 56-60 Link Here
56
 org.eclipse.wst.xml.core,
56
 org.eclipse.wst.xml.core,
57
 org.eclipse.wst.common.ui,
57
 org.eclipse.wst.common.ui,
58
 org.eclipse.wst.validation,
58
 org.eclipse.wst.validation,
59
 com.ibm.icu
59
 com.ibm.icu,
60
 org.eclipse.emf.common,
61
 org.eclipse.wst.common.emf
60
Eclipse-LazyStart: true
62
Eclipse-LazyStart: true

Return to bug 142212