Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 192269 Details for
Bug 341219
[MPE] MultiPageEditorSite may not end up forwarding post selection events
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
MultiPageEditorSite patch v1
bug341219-patch-v1.txt (text/plain), 12.07 KB, created by
Remy Suen
on 2011-03-31 09:10:06 EDT
(
hide
)
Description:
MultiPageEditorSite patch v1
Filename:
MIME Type:
Creator:
Remy Suen
Created:
2011-03-31 09:10:06 EDT
Size:
12.07 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.tests >Index: Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorSelectionTest.java >=================================================================== >RCS file: Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorSelectionTest.java >diff -N Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorSelectionTest.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorSelectionTest.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,111 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2011 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ui.tests.multipageeditor; >+ >+import java.io.ByteArrayInputStream; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.resources.IWorkspace; >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.jface.viewers.IPostSelectionProvider; >+import org.eclipse.jface.viewers.ISelectionChangedListener; >+import org.eclipse.jface.viewers.ISelectionProvider; >+import org.eclipse.jface.viewers.SelectionChangedEvent; >+import org.eclipse.swt.widgets.Tree; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IPageLayout; >+import org.eclipse.ui.IWorkbenchPage; >+import org.eclipse.ui.IWorkbenchWindow; >+import org.eclipse.ui.PartInitException; >+import org.eclipse.ui.ide.IDE; >+import org.eclipse.ui.tests.harness.util.UITestCase; >+import org.eclipse.ui.views.properties.PropertySheet; >+ >+public class MultiPageEditorSelectionTest extends UITestCase { >+ >+ private static final String MTEST01_FILE = "mtest01.multivar"; >+ >+ private static final String PROJECT_NAME = "MultiPageEditorSelction"; >+ >+ public MultiPageEditorSelectionTest(String testName) { >+ super(testName); >+ } >+ >+ protected void doTearDown() throws Exception { >+ IWorkspace workspace = ResourcesPlugin.getWorkspace(); >+ IProject testProject = workspace.getRoot().getProject(PROJECT_NAME); >+ if (testProject.exists()) { >+ testProject.delete(true, true, null); >+ } >+ super.doTearDown(); >+ } >+ >+ public void testPostSelection() throws Exception { >+ IWorkbenchWindow window = openTestWindow(); >+ IEditorPart part = openEditor(window, MTEST01_FILE); >+ ISelectionProvider provider = part.getSite().getSelectionProvider(); >+ assertTrue(provider instanceof IPostSelectionProvider); >+ >+ final boolean[] called = { false }; >+ IPostSelectionProvider postSelectionProvider = (IPostSelectionProvider) provider; >+ postSelectionProvider >+ .addPostSelectionChangedListener(new ISelectionChangedListener() { >+ public void selectionChanged(SelectionChangedEvent event) { >+ called[0] = true; >+ } >+ }); >+ >+ ((MultiPageResourceEditor) part).updateSelection(); >+ assertTrue(called[0]); >+ } >+ >+ public void testPropertiesView() throws Exception { >+ IWorkbenchWindow window = openTestWindow(); >+ IEditorPart part = openEditor(window, MTEST01_FILE); >+ >+ PropertySheet propertiewView = (PropertySheet) window.getActivePage() >+ .showView(IPageLayout.ID_PROP_SHEET); >+ >+ window.getActivePage().activate(part); >+ >+ Tree tree = (Tree) propertiewView.getCurrentPage().getControl(); >+ assertEquals(0, tree.getItemCount()); >+ >+ MultiPageResourceEditor editor = (MultiPageResourceEditor) part; >+ editor.updateSelection(); >+ assertFalse(tree.getItemCount() == 0); >+ } >+ >+ private IEditorPart openEditor(IWorkbenchWindow window, String filename) >+ throws CoreException, PartInitException { >+ IWorkspace workspace = ResourcesPlugin.getWorkspace(); >+ >+ IProject testProject = workspace.getRoot().getProject(PROJECT_NAME); >+ if (!testProject.exists()) { >+ testProject.create(null); >+ } >+ testProject.open(null); >+ >+ IFile multiFile = testProject.getFile(filename); >+ if (!multiFile.exists()) { >+ multiFile.create(new ByteArrayInputStream("".getBytes()), true, >+ null); >+ } >+ >+ IWorkbenchPage page = window.getActivePage(); >+ IEditorPart part = IDE.openEditor(page, multiFile, >+ MultiPageResourceEditor.EDITOR_ID); >+ assertTrue(part instanceof MultiPageResourceEditor); >+ return part; >+ } >+} >Index: Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageResourceEditor.java >=================================================================== >RCS file: Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageResourceEditor.java >diff -N Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageResourceEditor.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageResourceEditor.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,142 @@ >+/******************************************************************************* >+ * Copyright (c) 2011 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ui.tests.multipageeditor; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.jface.viewers.AbstractTreeViewer; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.ISelectionChangedListener; >+import org.eclipse.jface.viewers.ISelectionProvider; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.viewers.TreeViewer; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.ui.IEditorInput; >+import org.eclipse.ui.IEditorSite; >+import org.eclipse.ui.PartInitException; >+import org.eclipse.ui.model.WorkbenchContentProvider; >+import org.eclipse.ui.model.WorkbenchLabelProvider; >+import org.eclipse.ui.part.EditorPart; >+import org.eclipse.ui.part.MultiPageEditorPart; >+import org.eclipse.ui.views.properties.IPropertySheetPage; >+import org.eclipse.ui.views.properties.PropertySheetPage; >+ >+public class MultiPageResourceEditor extends MultiPageEditorPart { >+ >+ static final String EDITOR_ID = "org.eclipse.ui.tests.multipageeditor.MultiPageResourceEditor"; //$NON-NLS-1$ >+ >+ private SubEditor editor; >+ >+ private IPropertySheetPage page; >+ >+ public void updateSelection() { >+ IFile file = (IFile) getEditorInput().getAdapter(IFile.class); >+ editor.setSelection(new StructuredSelection(file)); >+ } >+ >+ protected void createPages() { >+ try { >+ editor = new SubEditor(); >+ addPage(editor, getEditorInput()); >+ } catch (PartInitException e) { >+ throw new RuntimeException(e); >+ } >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class) >+ */ >+ public Object getAdapter(Class adapter) { >+ if (adapter == IPropertySheetPage.class) { >+ if (page == null) { >+ page = new PropertySheetPage(); >+ } >+ return page; >+ } >+ return super.getAdapter(adapter); >+ } >+ >+ public void doSave(IProgressMonitor monitor) { >+ // nothing to do >+ } >+ >+ public void doSaveAs() { >+ // nothing to do >+ } >+ >+ public boolean isSaveAsAllowed() { >+ return false; >+ } >+ >+ static class SubEditor extends EditorPart implements ISelectionProvider { >+ >+ private TreeViewer viewer; >+ >+ public void createPartControl(Composite parent) { >+ viewer = new TreeViewer(parent); >+ viewer.setContentProvider(new WorkbenchContentProvider()); >+ viewer.setLabelProvider(WorkbenchLabelProvider >+ .getDecoratingWorkbenchLabelProvider()); >+ viewer.setInput(ResourcesPlugin.getWorkspace().getRoot()); >+ viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); >+ >+ getSite().setSelectionProvider(this); >+ } >+ >+ public void setFocus() { >+ viewer.getControl().setFocus(); >+ } >+ >+ public void doSave(IProgressMonitor monitor) { >+ // nothing to do >+ } >+ >+ public void doSaveAs() { >+ // nothing to do >+ } >+ >+ public void init(IEditorSite site, IEditorInput input) >+ throws PartInitException { >+ setSite(site); >+ setInput(input); >+ } >+ >+ public boolean isDirty() { >+ return false; >+ } >+ >+ public boolean isSaveAsAllowed() { >+ return false; >+ } >+ >+ public void addSelectionChangedListener( >+ ISelectionChangedListener listener) { >+ viewer.addSelectionChangedListener(listener); >+ } >+ >+ public ISelection getSelection() { >+ return viewer.getSelection(); >+ } >+ >+ public void removeSelectionChangedListener( >+ ISelectionChangedListener listener) { >+ viewer.removeSelectionChangedListener(listener); >+ } >+ >+ public void setSelection(ISelection selection) { >+ viewer.setSelection(selection); >+ } >+ >+ } >+} >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.tests/plugin.xml,v >retrieving revision 1.292 >diff -u -r1.292 plugin.xml >--- plugin.xml 1 Feb 2011 15:30:56 -0000 1.292 >+++ plugin.xml 31 Mar 2011 13:01:34 -0000 >@@ -741,6 +741,11 @@ > id="org.eclipse.ui.tests.multipageeditor.MultiVariablePageEditor" > name="Multi Variable Page Editor"/> > <editor >+ class="org.eclipse.ui.tests.multipageeditor.MultiPageResourceEditor" >+ icon="icons/mockeditorpart1.gif" >+ id="org.eclipse.ui.tests.multipageeditor.MultiPageResourceEditor" >+ name="Multi Page Resource Editor"/> >+ <editor > class="org.eclipse.ui.tests.manual.TestBackgroundSaveEditor" > default="false" > extensions="background" >#P org.eclipse.ui.workbench >Index: Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java,v >retrieving revision 1.45 >diff -u -r1.45 MultiPageEditorSite.java >--- Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java 1 Jun 2010 19:22:36 -0000 1.45 >+++ Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java 31 Mar 2011 13:01:34 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2009 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -11,7 +11,6 @@ > package org.eclipse.ui.part; > > import java.util.ArrayList; >- > import org.eclipse.core.runtime.Assert; > import org.eclipse.jface.action.MenuManager; > import org.eclipse.jface.viewers.ILabelDecorator; >@@ -532,6 +531,9 @@ > if (oldSelectionProvider instanceof IPostSelectionProvider) { > ((IPostSelectionProvider) oldSelectionProvider) > .removePostSelectionChangedListener(getPostSelectionChangedListener()); >+ } else { >+ oldSelectionProvider >+ .removeSelectionChangedListener(getPostSelectionChangedListener()); > } > } > if (selectionProvider != null) { >@@ -540,6 +542,8 @@ > if (selectionProvider instanceof IPostSelectionProvider) { > ((IPostSelectionProvider) selectionProvider) > .addPostSelectionChangedListener(getPostSelectionChangedListener()); >+ } else { >+ selectionProvider.addSelectionChangedListener(getPostSelectionChangedListener()); > } > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 341219
: 192269