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 120175 Details for
Bug 235657
[Markers][Undo] regression: can no longer undo marker operations
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]
intial patch
patch_235657_intial.txt (text/plain), 14.30 KB, created by
Hitesh
on 2008-12-11 06:15:04 EST
(
hide
)
Description:
intial patch
Filename:
MIME Type:
Creator:
Hitesh
Created:
2008-12-11 06:15:04 EST
Size:
14.30 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.ide >Index: src/org/eclipse/ui/internal/ide/messages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/messages.properties,v >retrieving revision 1.161 >diff -u -r1.161 messages.properties >--- src/org/eclipse/ui/internal/ide/messages.properties 14 Nov 2008 09:52:16 -0000 1.161 >+++ src/org/eclipse/ui/internal/ide/messages.properties 11 Dec 2008 11:06:29 -0000 >@@ -613,6 +613,7 @@ > > MarkerResolutionSelectionDialog_title = Quick Fix > MarkerResolutionSelectionDialog_messageLabel = &Available fixes: >+MarkerDeleteHandler_JobTitle = Delete Markers ({0}) > > FilteredResourcesSelectionDialog_showDerivedResourcesAction=Show &Derived Resources > >Index: src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java,v >retrieving revision 1.58 >diff -u -r1.58 IDEWorkbenchMessages.java >--- src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java 14 Nov 2008 09:52:16 -0000 1.58 >+++ src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java 11 Dec 2008 11:06:28 -0000 >@@ -591,7 +591,8 @@ > > public static String MarkerResolutionSelectionDialog_title; > public static String MarkerResolutionSelectionDialog_messageLabel; >- >+ public static String MarkerDeleteHandler_JobTitle; >+ > public static String FilteredResourcesSelectionDialog_showDerivedResourcesAction; > > public static String ResourceSelectionDialog_label; >Index: src/org/eclipse/ui/internal/views/markers/BookmarksView.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/BookmarksView.java,v >retrieving revision 1.1 >diff -u -r1.1 BookmarksView.java >--- src/org/eclipse/ui/internal/views/markers/BookmarksView.java 11 Jan 2008 20:36:39 -0000 1.1 >+++ src/org/eclipse/ui/internal/views/markers/BookmarksView.java 11 Dec 2008 11:06:29 -0000 >@@ -11,6 +11,8 @@ > > package org.eclipse.ui.internal.views.markers; > >+import org.eclipse.core.commands.operations.IUndoContext; >+import org.eclipse.ui.ide.undo.WorkspaceUndoUtil; > import org.eclipse.ui.views.markers.MarkerSupportView; > import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry; > >@@ -28,4 +30,12 @@ > super(MarkerSupportRegistry.BOOKMARKS_GENERATOR); > > } >+ /* >+ * (non-Javadoc) >+ * @see ExtendedMarkersView#getUndoContext() >+ * @return the IUndoContext BookmarksUndoContext >+ */ >+ protected IUndoContext getUndoContext(){ >+ return WorkspaceUndoUtil.getBookmarksUndoContext(); >+ } > } >Index: src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java,v >retrieving revision 1.30 >diff -u -r1.30 ExtendedMarkersView.java >--- src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java 20 Oct 2008 10:35:03 -0000 1.30 >+++ src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java 11 Dec 2008 11:06:30 -0000 >@@ -17,14 +17,41 @@ > import java.util.Iterator; > import java.util.List; > >-import com.ibm.icu.text.MessageFormat; >- >-import org.osgi.framework.Bundle; >- >+import org.eclipse.core.commands.operations.IUndoContext; >+import org.eclipse.core.commands.operations.ObjectUndoContext; >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IMarker; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.resources.mapping.ResourceMapping; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.IAdapterFactory; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.core.runtime.jobs.Job; > import org.eclipse.help.IContext; > import org.eclipse.help.IContextProvider; >+import org.eclipse.jface.action.ContributionManager; >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.action.MenuManager; >+import org.eclipse.jface.util.IPropertyChangeListener; >+import org.eclipse.jface.util.OpenStrategy; >+import org.eclipse.jface.util.PropertyChangeEvent; >+import org.eclipse.jface.viewers.ColumnPixelData; >+import org.eclipse.jface.viewers.EditingSupport; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.ITreeContentProvider; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.viewers.TableLayout; >+import org.eclipse.jface.viewers.TreeViewer; >+import org.eclipse.jface.viewers.TreeViewerColumn; >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.jface.window.SameShellProvider; >+import org.eclipse.jface.window.Window; > import org.eclipse.osgi.util.NLS; >- > import org.eclipse.swt.SWT; > import org.eclipse.swt.dnd.Clipboard; > import org.eclipse.swt.dnd.DND; >@@ -50,39 +77,7 @@ > import org.eclipse.swt.widgets.Scrollable; > import org.eclipse.swt.widgets.Tree; > import org.eclipse.swt.widgets.TreeColumn; >- >-import org.eclipse.core.runtime.CoreException; >-import org.eclipse.core.runtime.IAdaptable; >-import org.eclipse.core.runtime.IAdapterFactory; >-import org.eclipse.core.runtime.IProgressMonitor; >-import org.eclipse.core.runtime.IStatus; >-import org.eclipse.core.runtime.Platform; >-import org.eclipse.core.runtime.Status; >-import org.eclipse.core.runtime.jobs.Job; >- >-import org.eclipse.core.resources.IFile; >-import org.eclipse.core.resources.IMarker; >-import org.eclipse.core.resources.IResource; >-import org.eclipse.core.resources.mapping.ResourceMapping; >- >-import org.eclipse.jface.action.ContributionManager; >-import org.eclipse.jface.action.MenuManager; >-import org.eclipse.jface.util.IPropertyChangeListener; >-import org.eclipse.jface.util.OpenStrategy; >-import org.eclipse.jface.util.PropertyChangeEvent; >-import org.eclipse.jface.viewers.ColumnPixelData; >-import org.eclipse.jface.viewers.EditingSupport; >-import org.eclipse.jface.viewers.ISelection; >-import org.eclipse.jface.viewers.IStructuredSelection; >-import org.eclipse.jface.viewers.ITreeContentProvider; >-import org.eclipse.jface.viewers.StructuredSelection; >-import org.eclipse.jface.viewers.TableLayout; >-import org.eclipse.jface.viewers.TreeViewer; >-import org.eclipse.jface.viewers.TreeViewerColumn; >-import org.eclipse.jface.viewers.Viewer; >-import org.eclipse.jface.window.SameShellProvider; >-import org.eclipse.jface.window.Window; >- >+import org.eclipse.ui.IActionBars; > import org.eclipse.ui.IEditorInput; > import org.eclipse.ui.IEditorPart; > import org.eclipse.ui.IMemento; >@@ -96,12 +91,15 @@ > import org.eclipse.ui.OpenAndLinkWithEditorHelper; > import org.eclipse.ui.PartInitException; > import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.actions.ActionFactory; > import org.eclipse.ui.ide.IDE; > import org.eclipse.ui.ide.ResourceUtil; > import org.eclipse.ui.internal.ide.IDEInternalPreferences; > import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; > import org.eclipse.ui.internal.ide.StatusUtil; > import org.eclipse.ui.menus.IMenuService; >+import org.eclipse.ui.operations.RedoActionHandler; >+import org.eclipse.ui.operations.UndoActionHandler; > import org.eclipse.ui.part.MarkerTransfer; > import org.eclipse.ui.part.ViewPart; > import org.eclipse.ui.progress.IWorkbenchSiteProgressService; >@@ -113,6 +111,9 @@ > import org.eclipse.ui.views.markers.internal.MarkerMessages; > import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry; > import org.eclipse.ui.views.tasklist.ITaskListResourceAdapter; >+import org.osgi.framework.Bundle; >+ >+import com.ibm.icu.text.MessageFormat; > > /** > * The ExtendedMarkersView is the internal implementation of the view that shows >@@ -297,6 +298,8 @@ > private String[] defaultGeneratorIds = new String[0]; > > private IPropertyChangeListener workingSetListener; >+ >+ private IUndoContext undoContext; > > /** > * Return a new instance of the receiver. >@@ -1450,12 +1453,17 @@ > Object service = site.getAdapter(IWorkbenchSiteProgressService.class); > if (service != null) > builder.setProgressService((IWorkbenchSiteProgressService) service); >+ >+ addUndoRedoSupport(); >+ > this.memento = memento; > > if (memento == null || memento.getString(TAG_PART_NAME) == null) > return; > > setPartName(memento.getString(TAG_PART_NAME)); >+ >+ > } > > /** >@@ -1882,5 +1890,41 @@ > TreeViewer getViewer() { > return viewer; > } >+ >+ /** >+ * @return true if the view supports undo/redo, else false >+ * @since 3.5 >+ */ >+ public boolean supportsUndoRedo(){ >+ return true; >+ } >+ >+ /** >+ * @return the IUndoContext >+ * @since 3.5 >+ */ >+ protected IUndoContext getUndoContext(){ >+ if(!supportsUndoRedo()) >+ return null; >+ if(undoContext==null){ >+ undoContext=new ObjectUndoContext(this); >+ } >+ return undoContext; >+ } > >+ /** >+ * Add GlobalActionHandler for Undo/Redo >+ * @since 3.5 >+ */ >+ protected void addUndoRedoSupport() { >+ if(!supportsUndoRedo()) >+ return; >+ IAction undoAction = new UndoActionHandler(this.getSite(), getUndoContext()); >+ IAction redoAction = new RedoActionHandler(this.getSite(), getUndoContext()); >+ IActionBars actionBars = getViewSite().getActionBars(); >+ actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), >+ undoAction); >+ actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), >+ redoAction); >+ } > } >Index: src/org/eclipse/ui/internal/views/markers/DeleteHandler.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/DeleteHandler.java,v >retrieving revision 1.7 >diff -u -r1.7 DeleteHandler.java >--- src/org/eclipse/ui/internal/views/markers/DeleteHandler.java 21 Nov 2008 05:36:17 -0000 1.7 >+++ src/org/eclipse/ui/internal/views/markers/DeleteHandler.java 11 Dec 2008 11:06:29 -0000 >@@ -10,17 +10,22 @@ > *******************************************************************************/ > package org.eclipse.ui.internal.views.markers; > >-import org.eclipse.core.runtime.CoreException; >- >-import org.eclipse.core.resources.IMarker; >- > import org.eclipse.core.commands.ExecutionEvent; > import org.eclipse.core.commands.ExecutionException; >- >+import org.eclipse.core.commands.operations.IUndoableOperation; >+import org.eclipse.core.resources.IMarker; >+import org.eclipse.core.resources.WorkspaceJob; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.jface.dialogs.Dialog; > import org.eclipse.jface.dialogs.IDialogConstants; > import org.eclipse.jface.dialogs.MessageDialog; >- >-import org.eclipse.ui.internal.ide.Policy; >+import org.eclipse.osgi.util.NLS; >+import org.eclipse.ui.ide.undo.DeleteMarkersOperation; >+import org.eclipse.ui.ide.undo.WorkspaceUndoUtil; >+import org.eclipse.ui.internal.ide.IDEWorkbenchMessages; > import org.eclipse.ui.views.markers.MarkerSupportView; > import org.eclipse.ui.views.markers.MarkerViewHandler; > import org.eclipse.ui.views.markers.internal.MarkerMessages; >@@ -40,12 +45,12 @@ > */ > public Object execute(ExecutionEvent event) throws ExecutionException { > >- MarkerSupportView view = getView(event); >+ final MarkerSupportView view = getView(event); > if (view == null) > return this; > > final IMarker[] selected = getSelectedMarkers(event); >- >+ > // Verify. > MessageDialog dialog = new MessageDialog( > view.getSite().getShell(), >@@ -54,20 +59,35 @@ > MarkerMessages.deleteActionConfirmMessage, > MessageDialog.WARNING, > new String[] { IDialogConstants.YES_LABEL, >- IDialogConstants.NO_LABEL }, 0); >+ IDialogConstants.NO_LABEL }, 0); > >- if (dialog.open() != 0) { >+ if (dialog.open() != Dialog.OK) { > return view; > } >- >- for (int i = 0; i < selected.length; i++) { >- try { >- selected[i].delete(); >- } catch (CoreException e) { >- Policy.handle(e); >- throw new ExecutionException(e.getMessage(), e); >- } >- } >+ final String title=NLS.bind(IDEWorkbenchMessages.MarkerDeleteHandler_JobTitle, >+ Integer.valueOf(selected.length)); >+ WorkspaceJob deleteJob = new WorkspaceJob(title){ >+ public IStatus runInWorkspace(IProgressMonitor monitor) >+ throws CoreException { >+ try { >+ IUndoableOperation op = new DeleteMarkersOp(selected,view,title); >+ execute(op,title, monitor, >+ WorkspaceUndoUtil.getUIInfoAdapter(view.getSite().getShell())); >+ }finally{ >+ monitor.done(); >+ } >+ return Status.OK_STATUS; >+ } >+ }; >+ deleteJob.setUser(true); >+ deleteJob.schedule(); >+ > return this; > } >+ private class DeleteMarkersOp extends DeleteMarkersOperation{ >+ DeleteMarkersOp(IMarker[] markers,MarkerSupportView view, String name) { >+ super(markers, name); >+ addContext(view.getUndoContext()); >+ } >+ } > } >Index: src/org/eclipse/ui/internal/views/markers/TasksView.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/TasksView.java,v >retrieving revision 1.1 >diff -u -r1.1 TasksView.java >--- src/org/eclipse/ui/internal/views/markers/TasksView.java 11 Jan 2008 20:36:39 -0000 1.1 >+++ src/org/eclipse/ui/internal/views/markers/TasksView.java 11 Dec 2008 11:06:30 -0000 >@@ -11,6 +11,8 @@ > > package org.eclipse.ui.internal.views.markers; > >+import org.eclipse.core.commands.operations.IUndoContext; >+import org.eclipse.ui.ide.undo.WorkspaceUndoUtil; > import org.eclipse.ui.views.markers.MarkerSupportView; > import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry; > >@@ -28,4 +30,12 @@ > super(MarkerSupportRegistry.TASKS_GENERATOR); > > } >+ /* >+ * (non-Javadoc) >+ * @see ExtendedMarkersView#getUndoContext() >+ * @return the IUndoContext TasksUndoContext >+ */ >+ protected IUndoContext getUndoContext(){ >+ return WorkspaceUndoUtil.getTasksUndoContext(); >+ } > }
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 235657
:
120175
|
121426
|
186256