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 "Forward" action which goes forward one frame.
19: */
20: public class ForwardAction extends FrameAction {
21:
22: /**
23: * Constructs a new action for the specified frame list.
24: *
25: * @param frameList the frame list
26: */
27: public ForwardAction(FrameList frameList) {
28: super (frameList);
29: setText(FrameListMessages.Forward_text);
30: ISharedImages images = PlatformUI.getWorkbench()
31: .getSharedImages();
32: setImageDescriptor(images
33: .getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
34: setDisabledImageDescriptor(images
35: .getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD_DISABLED));
36: PlatformUI.getWorkbench().getHelpSystem().setHelp(this ,
37: IFrameListHelpContextIds.FORWARD_ACTION);
38: update();
39: }
40:
41: private Frame getNextFrame() {
42: FrameList list = getFrameList();
43: return list.getFrame(list.getCurrentIndex() + 1);
44: }
45:
46: private String getToolTipText(Frame nextFrame) {
47: if (nextFrame != null) {
48: String text = nextFrame.getToolTipText();
49: if (text != null && text.length() > 0) {
50: return NLS.bind(
51: FrameListMessages.Forward_toolTipOneArg, text);
52: }
53: }
54: return FrameListMessages.Forward_toolTip;
55: }
56:
57: /**
58: * Calls <code>forward()</code> on the frame list.
59: */
60: public void run() {
61: getFrameList().forward();
62: }
63:
64: /**
65: * Updates this action's enabled state and tool tip text.
66: * This action is enabled only when there is a next frame in the frame list.
67: * The tool tip text is "Forward to " plus the tool tip text for the next
68: * frame.
69: */
70: public void update() {
71: super .update();
72: Frame nextFrame = getNextFrame();
73: setEnabled(nextFrame != null);
74: setToolTipText(getToolTipText(nextFrame));
75: }
76:
77: }
|