01: /*******************************************************************************
02: * Copyright (c) 2000, 2005 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.ui.views.framelist;
11:
12: import org.eclipse.osgi.util.NLS;
13: import org.eclipse.ui.ISharedImages;
14: import org.eclipse.ui.PlatformUI;
15: import org.eclipse.ui.internal.views.framelist.FrameListMessages;
16:
17: /**
18: * Generic "Back" action which goes back one frame,
19: */
20: public class BackAction extends FrameAction {
21:
22: /**
23: * Constructs a new action for the specified frame list.
24: *
25: * @param frameList the frame list
26: */
27: public BackAction(FrameList frameList) {
28: super (frameList);
29: setText(FrameListMessages.Back_text);
30: ISharedImages images = PlatformUI.getWorkbench()
31: .getSharedImages();
32: setImageDescriptor(images
33: .getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
34: setDisabledImageDescriptor(images
35: .getImageDescriptor(ISharedImages.IMG_TOOL_BACK_DISABLED));
36: PlatformUI.getWorkbench().getHelpSystem().setHelp(this ,
37: IFrameListHelpContextIds.BACK_ACTION);
38: update();
39: }
40:
41: private Frame getPreviousFrame() {
42: FrameList list = getFrameList();
43: return list.getFrame(list.getCurrentIndex() - 1);
44: }
45:
46: private String getToolTipText(Frame previousFrame) {
47: if (previousFrame != null) {
48: String text = previousFrame.getToolTipText();
49: if (text != null && text.length() > 0) {
50: return NLS.bind(FrameListMessages.Back_toolTipOneArg,
51: text);
52: }
53: }
54: return FrameListMessages.Back_toolTip;
55: }
56:
57: /**
58: * Calls <code>back()</code> on the frame list.
59: */
60: public void run() {
61: getFrameList().back();
62: }
63:
64: /**
65: * Updates this action's enabled state and tool tip text.
66: * This action is enabled only when there is a previous frame in the frame list.
67: * The tool tip text is "Back to " plus the tool tip text for the previous frame.
68: */
69: public void update() {
70: super .update();
71: Frame previousFrame = getPreviousFrame();
72: setEnabled(previousFrame != null);
73: setToolTipText(getToolTipText(previousFrame));
74: }
75:
76: }
|