View | Details | Raw Unified | Return to bug 344023 | Differences between
and this patch

Collapse All | Expand All

(-)ui/org/eclipse/debug/internal/ui/viewers/model/provisional/IViewActionOverride.java (+35 lines)
Added Link Here
1
/*****************************************************************
2
 * Copyright (c) 2011 Texas Instruments and others
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Texas Instruments - View action override (Bug 344023)
10
 *****************************************************************/
11
package org.eclipse.debug.internal.ui.viewers.model.provisional;
12
13
import org.eclipse.jface.action.IAction;
14
15
16
/**
17
 * An interface that allows an implementation to provide (contribute) its own
18
 * action which is used to override an action for the same action id.
19
 * 
20
 * @since 3.7
21
 */
22
public interface IViewActionOverride {
23
	/**
24
	 * Get action for a given presentation context and action id. Implementation
25
	 * class can use presentation context to figure out the view part or view
26
	 * model (IVMProvider) which wants to provide (contribute) an action. Once
27
	 * the view part or view model is known, the dedicated action for the view
28
	 * can be figured out by the implementation, view model, or some other
29
	 * classes.
30
	 * @param presentationContext presentation context
31
	 * @param actionID action id
32
	 * @return action or null
33
	 */
34
	public IAction getAction(IPresentationContext presentationContext, String actionID);
35
}
(-)ui/org/eclipse/debug/internal/ui/views/variables/VariablesView.java (+19 lines)
Lines 44-49 Link Here
44
import org.eclipse.swt.widgets.TreeItem;
44
import org.eclipse.swt.widgets.TreeItem;
45
import org.eclipse.swt.widgets.Widget;
45
import org.eclipse.swt.widgets.Widget;
46
46
47
import org.eclipse.core.runtime.IAdaptable;
47
import org.eclipse.core.runtime.IProgressMonitor;
48
import org.eclipse.core.runtime.IProgressMonitor;
48
import org.eclipse.core.runtime.IStatus;
49
import org.eclipse.core.runtime.IStatus;
49
import org.eclipse.core.runtime.ListenerList;
50
import org.eclipse.core.runtime.ListenerList;
Lines 109-120 Link Here
109
import org.eclipse.debug.internal.ui.actions.variables.ShowTypesAction;
110
import org.eclipse.debug.internal.ui.actions.variables.ShowTypesAction;
110
import org.eclipse.debug.internal.ui.actions.variables.ToggleDetailPaneAction;
111
import org.eclipse.debug.internal.ui.actions.variables.ToggleDetailPaneAction;
111
import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
112
import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants;
113
import org.eclipse.debug.internal.ui.viewers.model.ViewerAdapterService;
112
import org.eclipse.debug.internal.ui.viewers.model.VirtualFindAction;
114
import org.eclipse.debug.internal.ui.viewers.model.VirtualFindAction;
113
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
115
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
114
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
116
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
115
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
117
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
116
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
118
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
117
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
119
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
120
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewActionOverride;
121
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider;
118
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputRequestor;
122
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputRequestor;
119
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate;
123
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate;
120
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
124
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
Lines 931-936 Link Here
931
		action= new VirtualFindAction(getVariablesViewer());
935
		action= new VirtualFindAction(getVariablesViewer());
932
		setAction(VARIABLES_FIND_ELEMENT_ACTION, action);
936
		setAction(VARIABLES_FIND_ELEMENT_ACTION, action);
933
	} 	
937
	} 	
938
939
940
	public IAction getAction(String actionID) {
941
		IViewerInputProvider inputProvider = ViewerAdapterService.getInputProvider(getViewer().getInput());
942
		if (inputProvider instanceof IAdaptable) {
943
			Object x = ((IAdaptable) inputProvider).getAdapter(IViewActionOverride.class);
944
			if (x instanceof IViewActionOverride) {
945
				IAction action = ((IViewActionOverride) x).getAction(getPresentationContext(), actionID);
946
				if (action != null) {
947
					return action;
948
				}
949
			}
950
		}
951
		return super.getAction(actionID);
952
	}
934
	
953
	
935
	/* (non-Javadoc)
954
	/* (non-Javadoc)
936
	 * 
955
	 * 

Return to bug 344023