Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 235657 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/ui/internal/ide/messages.properties (+1 lines)
Lines 613-618 Link Here
613
613
614
MarkerResolutionSelectionDialog_title = Quick Fix
614
MarkerResolutionSelectionDialog_title = Quick Fix
615
MarkerResolutionSelectionDialog_messageLabel = &Available fixes:
615
MarkerResolutionSelectionDialog_messageLabel = &Available fixes:
616
MarkerDeleteHandler_JobTitle = Delete Markers ({0})
616
617
617
FilteredResourcesSelectionDialog_showDerivedResourcesAction=Show &Derived Resources
618
FilteredResourcesSelectionDialog_showDerivedResourcesAction=Show &Derived Resources
618
619
(-)src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java (-1 / +2 lines)
Lines 591-597 Link Here
591
591
592
	public static String MarkerResolutionSelectionDialog_title;
592
	public static String MarkerResolutionSelectionDialog_title;
593
	public static String MarkerResolutionSelectionDialog_messageLabel;
593
	public static String MarkerResolutionSelectionDialog_messageLabel;
594
594
	public static String MarkerDeleteHandler_JobTitle;
595
	
595
	public static String FilteredResourcesSelectionDialog_showDerivedResourcesAction;
596
	public static String FilteredResourcesSelectionDialog_showDerivedResourcesAction;
596
	
597
	
597
	public static String ResourceSelectionDialog_label;
598
	public static String ResourceSelectionDialog_label;
(-)src/org/eclipse/ui/internal/views/markers/BookmarksView.java (+10 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.ui.internal.views.markers;
12
package org.eclipse.ui.internal.views.markers;
13
13
14
import org.eclipse.core.commands.operations.IUndoContext;
15
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
14
import org.eclipse.ui.views.markers.MarkerSupportView;
16
import org.eclipse.ui.views.markers.MarkerSupportView;
15
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
17
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
16
18
Lines 28-31 Link Here
28
		super(MarkerSupportRegistry.BOOKMARKS_GENERATOR);
30
		super(MarkerSupportRegistry.BOOKMARKS_GENERATOR);
29
		
31
		
30
	}
32
	}
33
	/*
34
	 * (non-Javadoc)
35
	 * @see ExtendedMarkersView#getUndoContext()
36
	 * @return the IUndoContext BookmarksUndoContext
37
	 */
38
	protected IUndoContext getUndoContext(){
39
		return WorkspaceUndoUtil.getBookmarksUndoContext();
40
	}
31
}
41
}
(-)src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java (-38 / +82 lines)
Lines 17-30 Link Here
17
import java.util.Iterator;
17
import java.util.Iterator;
18
import java.util.List;
18
import java.util.List;
19
19
20
import com.ibm.icu.text.MessageFormat;
20
import org.eclipse.core.commands.operations.IUndoContext;
21
21
import org.eclipse.core.commands.operations.ObjectUndoContext;
22
import org.osgi.framework.Bundle;
22
import org.eclipse.core.resources.IFile;
23
23
import org.eclipse.core.resources.IMarker;
24
import org.eclipse.core.resources.IResource;
25
import org.eclipse.core.resources.mapping.ResourceMapping;
26
import org.eclipse.core.runtime.CoreException;
27
import org.eclipse.core.runtime.IAdaptable;
28
import org.eclipse.core.runtime.IAdapterFactory;
29
import org.eclipse.core.runtime.IProgressMonitor;
30
import org.eclipse.core.runtime.IStatus;
31
import org.eclipse.core.runtime.Platform;
32
import org.eclipse.core.runtime.Status;
33
import org.eclipse.core.runtime.jobs.Job;
24
import org.eclipse.help.IContext;
34
import org.eclipse.help.IContext;
25
import org.eclipse.help.IContextProvider;
35
import org.eclipse.help.IContextProvider;
36
import org.eclipse.jface.action.ContributionManager;
37
import org.eclipse.jface.action.IAction;
38
import org.eclipse.jface.action.MenuManager;
39
import org.eclipse.jface.util.IPropertyChangeListener;
40
import org.eclipse.jface.util.OpenStrategy;
41
import org.eclipse.jface.util.PropertyChangeEvent;
42
import org.eclipse.jface.viewers.ColumnPixelData;
43
import org.eclipse.jface.viewers.EditingSupport;
44
import org.eclipse.jface.viewers.ISelection;
45
import org.eclipse.jface.viewers.IStructuredSelection;
46
import org.eclipse.jface.viewers.ITreeContentProvider;
47
import org.eclipse.jface.viewers.StructuredSelection;
48
import org.eclipse.jface.viewers.TableLayout;
49
import org.eclipse.jface.viewers.TreeViewer;
50
import org.eclipse.jface.viewers.TreeViewerColumn;
51
import org.eclipse.jface.viewers.Viewer;
52
import org.eclipse.jface.window.SameShellProvider;
53
import org.eclipse.jface.window.Window;
26
import org.eclipse.osgi.util.NLS;
54
import org.eclipse.osgi.util.NLS;
27
28
import org.eclipse.swt.SWT;
55
import org.eclipse.swt.SWT;
29
import org.eclipse.swt.dnd.Clipboard;
56
import org.eclipse.swt.dnd.Clipboard;
30
import org.eclipse.swt.dnd.DND;
57
import org.eclipse.swt.dnd.DND;
Lines 50-88 Link Here
50
import org.eclipse.swt.widgets.Scrollable;
77
import org.eclipse.swt.widgets.Scrollable;
51
import org.eclipse.swt.widgets.Tree;
78
import org.eclipse.swt.widgets.Tree;
52
import org.eclipse.swt.widgets.TreeColumn;
79
import org.eclipse.swt.widgets.TreeColumn;
53
80
import org.eclipse.ui.IActionBars;
54
import org.eclipse.core.runtime.CoreException;
55
import org.eclipse.core.runtime.IAdaptable;
56
import org.eclipse.core.runtime.IAdapterFactory;
57
import org.eclipse.core.runtime.IProgressMonitor;
58
import org.eclipse.core.runtime.IStatus;
59
import org.eclipse.core.runtime.Platform;
60
import org.eclipse.core.runtime.Status;
61
import org.eclipse.core.runtime.jobs.Job;
62
63
import org.eclipse.core.resources.IFile;
64
import org.eclipse.core.resources.IMarker;
65
import org.eclipse.core.resources.IResource;
66
import org.eclipse.core.resources.mapping.ResourceMapping;
67
68
import org.eclipse.jface.action.ContributionManager;
69
import org.eclipse.jface.action.MenuManager;
70
import org.eclipse.jface.util.IPropertyChangeListener;
71
import org.eclipse.jface.util.OpenStrategy;
72
import org.eclipse.jface.util.PropertyChangeEvent;
73
import org.eclipse.jface.viewers.ColumnPixelData;
74
import org.eclipse.jface.viewers.EditingSupport;
75
import org.eclipse.jface.viewers.ISelection;
76
import org.eclipse.jface.viewers.IStructuredSelection;
77
import org.eclipse.jface.viewers.ITreeContentProvider;
78
import org.eclipse.jface.viewers.StructuredSelection;
79
import org.eclipse.jface.viewers.TableLayout;
80
import org.eclipse.jface.viewers.TreeViewer;
81
import org.eclipse.jface.viewers.TreeViewerColumn;
82
import org.eclipse.jface.viewers.Viewer;
83
import org.eclipse.jface.window.SameShellProvider;
84
import org.eclipse.jface.window.Window;
85
86
import org.eclipse.ui.IEditorInput;
81
import org.eclipse.ui.IEditorInput;
87
import org.eclipse.ui.IEditorPart;
82
import org.eclipse.ui.IEditorPart;
88
import org.eclipse.ui.IMemento;
83
import org.eclipse.ui.IMemento;
Lines 96-107 Link Here
96
import org.eclipse.ui.OpenAndLinkWithEditorHelper;
91
import org.eclipse.ui.OpenAndLinkWithEditorHelper;
97
import org.eclipse.ui.PartInitException;
92
import org.eclipse.ui.PartInitException;
98
import org.eclipse.ui.PlatformUI;
93
import org.eclipse.ui.PlatformUI;
94
import org.eclipse.ui.actions.ActionFactory;
99
import org.eclipse.ui.ide.IDE;
95
import org.eclipse.ui.ide.IDE;
100
import org.eclipse.ui.ide.ResourceUtil;
96
import org.eclipse.ui.ide.ResourceUtil;
101
import org.eclipse.ui.internal.ide.IDEInternalPreferences;
97
import org.eclipse.ui.internal.ide.IDEInternalPreferences;
102
import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
98
import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
103
import org.eclipse.ui.internal.ide.StatusUtil;
99
import org.eclipse.ui.internal.ide.StatusUtil;
104
import org.eclipse.ui.menus.IMenuService;
100
import org.eclipse.ui.menus.IMenuService;
101
import org.eclipse.ui.operations.RedoActionHandler;
102
import org.eclipse.ui.operations.UndoActionHandler;
105
import org.eclipse.ui.part.MarkerTransfer;
103
import org.eclipse.ui.part.MarkerTransfer;
106
import org.eclipse.ui.part.ViewPart;
104
import org.eclipse.ui.part.ViewPart;
107
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
105
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
Lines 113-118 Link Here
113
import org.eclipse.ui.views.markers.internal.MarkerMessages;
111
import org.eclipse.ui.views.markers.internal.MarkerMessages;
114
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
112
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
115
import org.eclipse.ui.views.tasklist.ITaskListResourceAdapter;
113
import org.eclipse.ui.views.tasklist.ITaskListResourceAdapter;
114
import org.osgi.framework.Bundle;
115
116
import com.ibm.icu.text.MessageFormat;
116
117
117
/**
118
/**
118
 * The ExtendedMarkersView is the internal implementation of the view that shows
119
 * The ExtendedMarkersView is the internal implementation of the view that shows
Lines 297-302 Link Here
297
	private String[] defaultGeneratorIds = new String[0];
298
	private String[] defaultGeneratorIds = new String[0];
298
299
299
	private IPropertyChangeListener workingSetListener;
300
	private IPropertyChangeListener workingSetListener;
301
	
302
	private IUndoContext undoContext;	
300
303
301
	/**
304
	/**
302
	 * Return a new instance of the receiver.
305
	 * Return a new instance of the receiver.
Lines 1450-1461 Link Here
1450
		Object service = site.getAdapter(IWorkbenchSiteProgressService.class);
1453
		Object service = site.getAdapter(IWorkbenchSiteProgressService.class);
1451
		if (service != null)
1454
		if (service != null)
1452
			builder.setProgressService((IWorkbenchSiteProgressService) service);
1455
			builder.setProgressService((IWorkbenchSiteProgressService) service);
1456
		
1457
		addUndoRedoSupport();
1458
		
1453
		this.memento = memento;
1459
		this.memento = memento;
1454
1460
1455
		if (memento == null || memento.getString(TAG_PART_NAME) == null)
1461
		if (memento == null || memento.getString(TAG_PART_NAME) == null)
1456
			return;
1462
			return;
1457
1463
1458
		setPartName(memento.getString(TAG_PART_NAME));
1464
		setPartName(memento.getString(TAG_PART_NAME));
1465
		
1466
	
1459
	}
1467
	}
1460
1468
1461
	/**
1469
	/**
Lines 1882-1886 Link Here
1882
	TreeViewer getViewer() {
1890
	TreeViewer getViewer() {
1883
		return viewer;
1891
		return viewer;
1884
	}
1892
	}
1893
	
1894
	/**
1895
	 * @return true if the view supports undo/redo, else false
1896
	 * @since 3.5
1897
	 */
1898
	public boolean supportsUndoRedo(){
1899
		return true;
1900
	}
1901
	
1902
	/**
1903
	 * @return the IUndoContext
1904
	 * @since 3.5
1905
	 */
1906
	protected IUndoContext getUndoContext(){
1907
		if(!supportsUndoRedo())
1908
			return null;
1909
		if(undoContext==null){
1910
			undoContext=new ObjectUndoContext(this);
1911
		}
1912
		return undoContext;
1913
	}
1885
1914
1915
	/**
1916
	 *  Add GlobalActionHandler for Undo/Redo
1917
	 *  @since 3.5
1918
	 */
1919
	protected void addUndoRedoSupport() {
1920
		if(!supportsUndoRedo())
1921
			return;
1922
		IAction undoAction = new UndoActionHandler(this.getSite(), getUndoContext());
1923
		IAction redoAction = new RedoActionHandler(this.getSite(), getUndoContext());
1924
		IActionBars actionBars = getViewSite().getActionBars();
1925
		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
1926
				undoAction);
1927
		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
1928
				redoAction);
1929
	}
1886
}
1930
}
(-)src/org/eclipse/ui/internal/views/markers/DeleteHandler.java (-20 / +40 lines)
Lines 10-26 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.ui.internal.views.markers;
11
package org.eclipse.ui.internal.views.markers;
12
12
13
import org.eclipse.core.runtime.CoreException;
14
15
import org.eclipse.core.resources.IMarker;
16
17
import org.eclipse.core.commands.ExecutionEvent;
13
import org.eclipse.core.commands.ExecutionEvent;
18
import org.eclipse.core.commands.ExecutionException;
14
import org.eclipse.core.commands.ExecutionException;
19
15
import org.eclipse.core.commands.operations.IUndoableOperation;
16
import org.eclipse.core.resources.IMarker;
17
import org.eclipse.core.resources.WorkspaceJob;
18
import org.eclipse.core.runtime.CoreException;
19
import org.eclipse.core.runtime.IProgressMonitor;
20
import org.eclipse.core.runtime.IStatus;
21
import org.eclipse.core.runtime.Status;
22
import org.eclipse.jface.dialogs.Dialog;
20
import org.eclipse.jface.dialogs.IDialogConstants;
23
import org.eclipse.jface.dialogs.IDialogConstants;
21
import org.eclipse.jface.dialogs.MessageDialog;
24
import org.eclipse.jface.dialogs.MessageDialog;
22
25
import org.eclipse.osgi.util.NLS;
23
import org.eclipse.ui.internal.ide.Policy;
26
import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
27
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
28
import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
24
import org.eclipse.ui.views.markers.MarkerSupportView;
29
import org.eclipse.ui.views.markers.MarkerSupportView;
25
import org.eclipse.ui.views.markers.MarkerViewHandler;
30
import org.eclipse.ui.views.markers.MarkerViewHandler;
26
import org.eclipse.ui.views.markers.internal.MarkerMessages;
31
import org.eclipse.ui.views.markers.internal.MarkerMessages;
Lines 40-51 Link Here
40
	 */
45
	 */
41
	public Object execute(ExecutionEvent event) throws ExecutionException {
46
	public Object execute(ExecutionEvent event) throws ExecutionException {
42
47
43
		MarkerSupportView view = getView(event);
48
		final MarkerSupportView view = getView(event);
44
		if (view == null)
49
		if (view == null)
45
			return this;
50
			return this;
46
51
47
		final IMarker[] selected = getSelectedMarkers(event);
52
		final IMarker[] selected = getSelectedMarkers(event);
48
		
53
49
		// Verify.
54
		// Verify.
50
		MessageDialog dialog = new MessageDialog(
55
		MessageDialog dialog = new MessageDialog(
51
				view.getSite().getShell(),
56
				view.getSite().getShell(),
Lines 54-73 Link Here
54
				MarkerMessages.deleteActionConfirmMessage,
59
				MarkerMessages.deleteActionConfirmMessage,
55
				MessageDialog.WARNING,
60
				MessageDialog.WARNING,
56
				new String[] { IDialogConstants.YES_LABEL,
61
				new String[] { IDialogConstants.YES_LABEL,
57
						IDialogConstants.NO_LABEL }, 0);
62
					IDialogConstants.NO_LABEL }, 0);
58
63
59
		if (dialog.open() != 0) {
64
		if (dialog.open() != Dialog.OK) {
60
			return view;
65
			return view;
61
		}
66
		}
62
67
		final String title=NLS.bind(IDEWorkbenchMessages.MarkerDeleteHandler_JobTitle,
63
		for (int i = 0; i < selected.length; i++) {
68
				Integer.valueOf(selected.length));
64
			try {
69
		WorkspaceJob deleteJob = new WorkspaceJob(title){	
65
				selected[i].delete();
70
					public IStatus runInWorkspace(IProgressMonitor monitor)
66
			} catch (CoreException e) {
71
						throws CoreException {
67
				Policy.handle(e);
72
							try {
68
				throw new ExecutionException(e.getMessage(), e);
73
								IUndoableOperation op = new DeleteMarkersOp(selected,view,title);
69
			}
74
								execute(op,title, monitor,
70
		}
75
										WorkspaceUndoUtil.getUIInfoAdapter(view.getSite().getShell()));
76
							}finally{
77
								monitor.done();
78
							}
79
							return Status.OK_STATUS;
80
			 			}
81
		};
82
		deleteJob.setUser(true);
83
		deleteJob.schedule();
84
					
71
		return this;
85
		return this;
72
	}
86
	}
87
	private class DeleteMarkersOp extends DeleteMarkersOperation{
88
		DeleteMarkersOp(IMarker[] markers,MarkerSupportView view, String name) {
89
			super(markers, name);
90
			addContext(view.getUndoContext());
91
		}
92
	}
73
}
93
}
(-)src/org/eclipse/ui/internal/views/markers/TasksView.java (+10 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.ui.internal.views.markers;
12
package org.eclipse.ui.internal.views.markers;
13
13
14
import org.eclipse.core.commands.operations.IUndoContext;
15
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
14
import org.eclipse.ui.views.markers.MarkerSupportView;
16
import org.eclipse.ui.views.markers.MarkerSupportView;
15
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
17
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
16
18
Lines 28-31 Link Here
28
		super(MarkerSupportRegistry.TASKS_GENERATOR);
30
		super(MarkerSupportRegistry.TASKS_GENERATOR);
29
		
31
		
30
	}
32
	}
33
	/*
34
	 * (non-Javadoc)
35
	 * @see ExtendedMarkersView#getUndoContext()
36
	 * @return the IUndoContext TasksUndoContext
37
	 */
38
	protected IUndoContext getUndoContext(){
39
		return WorkspaceUndoUtil.getTasksUndoContext();
40
	}
31
}
41
}

Return to bug 235657