annotate dwtx/jface/action/SubStatusLineManager.d @ 43:ea8ff534f622

Fix override and super aliases
author Frank Benoit <benoit@tionex.de>
date Fri, 11 Apr 2008 01:24:25 +0200
parents 50b0163e18f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.jface.action.SubStatusLineManager;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.action.SubContributionManager;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.action.IStatusLineManager;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.graphics.Image;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.core.runtime.IProgressMonitor;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.dwthelper.utils;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 * A <code>SubStatusLineManager</code> is used to define a set of contribution
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * items within a parent manager. Once defined, the visibility of the entire set can
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 * be changed as a unit.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 public class SubStatusLineManager : SubContributionManager,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 IStatusLineManager {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * Current status line message.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 private String message;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * Current status line error message.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 private String errorMessage;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * Current status line message image.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 private Image messageImage;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * Current status line error image
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 private Image errorImage;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * Constructs a new manager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * @param mgr the parent manager. All contributions made to the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * <code>SubStatusLineManager</code> are forwarded and appear in the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * parent manager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 public this(IStatusLineManager mgr) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 super(mgr);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * @return the parent status line manager that this sub-manager contributes
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * to
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 protected final IStatusLineManager getParentStatusLineManager() {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 // Cast is ok because that's the only
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 // thing we accept in the construtor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 return cast(IStatusLineManager) getParent();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 public IProgressMonitor getProgressMonitor() {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 return getParentStatusLineManager().getProgressMonitor();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 public bool isCancelEnabled() {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 return getParentStatusLineManager().isCancelEnabled();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 public void setCancelEnabled(bool enabled) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 getParentStatusLineManager().setCancelEnabled(enabled);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 public void setErrorMessage(String message) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 this.errorImage = null;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 this.errorMessage = message;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 if (isVisible()) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 getParentStatusLineManager().setErrorMessage(errorMessage);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 public void setErrorMessage(Image image, String message) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 this.errorImage = image;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 this.errorMessage = message;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 if (isVisible()) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 getParentStatusLineManager().setErrorMessage(errorImage,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 errorMessage);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 public void setMessage(String message) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 this.messageImage = null;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 this.message = message;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 if (isVisible()) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 getParentStatusLineManager().setMessage(message);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 public void setMessage(Image image, String message) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 this.messageImage = image;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 this.message = message;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 if (isVisible()) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 getParentStatusLineManager().setMessage(messageImage, message);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * Method declared on SubContributionManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
140 public override void setVisible(bool visible) {
28
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 super.setVisible(visible);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 if (visible) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 getParentStatusLineManager().setErrorMessage(errorImage,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 errorMessage);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 getParentStatusLineManager().setMessage(messageImage, message);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 } else {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 getParentStatusLineManager().setMessage(null, null);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 getParentStatusLineManager().setErrorMessage(null, null);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * Method declared on IStatusLineManager.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 public void update(bool force) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 // This method is not governed by visibility. The client may
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 // call <code>setVisible</code> and then force an update. At that
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 // point we need to update the parent.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 getParentStatusLineManager().update(force);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 }