Revision 9997
trunk/libraries/libCorePlugin/src/com/iver/core/mdiManager/FrameWindowSupport.java | ||
---|---|---|
41 | 41 |
package com.iver.core.mdiManager; |
42 | 42 |
|
43 | 43 |
import java.awt.Component; |
44 |
import java.awt.Dimension; |
|
44 | 45 |
import java.awt.Image; |
45 | 46 |
import java.util.Hashtable; |
46 | 47 |
import java.util.Iterator; |
... | ... | |
53 | 54 |
import javax.swing.JPanel; |
54 | 55 |
|
55 | 56 |
import com.iver.andami.PluginServices; |
56 |
import com.iver.andami.plugins.PluginClassLoader; |
|
57 | 57 |
import com.iver.andami.ui.mdiFrame.MDIFrame; |
58 | 58 |
import com.iver.andami.ui.mdiManager.IWindow; |
59 | 59 |
import com.iver.andami.ui.mdiManager.WindowInfo; |
60 |
import com.iver.core.mdiManager.frames.ExternalFrame; |
|
61 |
import com.iver.core.mdiManager.frames.IFrame; |
|
62 |
import com.iver.core.mdiManager.frames.InternalFrame; |
|
60 | 63 |
|
61 | 64 |
|
62 | 65 |
/** |
... | ... | |
107 | 110 |
|
108 | 111 |
if (dlg == null) { |
109 | 112 |
WindowInfo vi = vis.getWindowInfo(p); |
110 |
JDialog nuevo = new JDialog(mainFrame);
|
|
113 |
ExternalFrame nuevo = new ExternalFrame(mainFrame);
|
|
111 | 114 |
|
112 | 115 |
nuevo.getContentPane().add((JPanel) p); |
113 | 116 |
nuevo.setSize(getWidth(p, vi), getHeight(p, vi) + 30); |
114 | 117 |
nuevo.setTitle(vi.getTitle()); |
115 | 118 |
nuevo.setResizable(vi.isResizable()); |
119 |
nuevo.setMinimumSize(vi.getMinimumSize()); |
|
116 | 120 |
|
117 | 121 |
viewFrame.put(p, nuevo); |
118 | 122 |
frameView.put(nuevo, p); |
... | ... | |
168 | 172 |
|
169 | 173 |
public JInternalFrame createJInternalFrame(IWindow p) |
170 | 174 |
{ |
171 |
WindowInfo vi = vis.getWindowInfo(p);
|
|
172 |
JInternalFrame nuevo = new JInternalFrame();
|
|
175 |
WindowInfo wi = vis.getWindowInfo(p);
|
|
176 |
JInternalFrame nuevo = new InternalFrame(); |
|
173 | 177 |
if (icon != null){ |
174 | 178 |
nuevo.setFrameIcon(new ImageIcon(icon)); |
175 | 179 |
} |
176 | 180 |
nuevo.getContentPane().add((JPanel) p); |
177 | 181 |
nuevo.setClosable(true); |
178 |
nuevo.setSize(getWidth(p, vi), getHeight(p, vi)); |
|
179 |
nuevo.setTitle(vi.getTitle()); |
|
180 |
nuevo.setVisible(vi.isVisible()); |
|
181 |
nuevo.setResizable(vi.isResizable()); |
|
182 |
nuevo.setIconifiable(vi.isIconifiable()); |
|
183 |
nuevo.setMaximizable(vi.isMaximizable()); |
|
184 |
nuevo.setLocation(vi.getX(), vi.getY()); |
|
182 |
nuevo.setSize(getWidth(p, wi), getHeight(p, wi)); |
|
183 |
nuevo.setTitle(wi.getTitle()); |
|
184 |
nuevo.setVisible(wi.isVisible()); |
|
185 |
nuevo.setResizable(wi.isResizable()); |
|
186 |
nuevo.setIconifiable(wi.isIconifiable()); |
|
187 |
nuevo.setMaximizable(wi.isMaximizable()); |
|
188 |
nuevo.setLocation(wi.getX(), wi.getY()); |
|
189 |
nuevo.setMinimumSize(wi.getMinimumSize()); |
|
185 | 190 |
|
186 | 191 |
nuevo.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE); |
187 | 192 |
return nuevo; |
... | ... | |
202 | 207 |
* @param v DOCUMENT ME! |
203 | 208 |
* @param x DOCUMENT ME! |
204 | 209 |
*/ |
205 |
public void setX(IWindow v, int x) {
|
|
206 |
JInternalFrame o = (JInternalFrame) viewFrame.get(v);
|
|
207 |
o.setLocation(x, o.getY());
|
|
210 |
public void setX(IWindow win, int x) {
|
|
211 |
IFrame frame = (IFrame) viewFrame.get(win);
|
|
212 |
frame.setX(x);
|
|
208 | 213 |
} |
209 | 214 |
|
210 | 215 |
/** |
... | ... | |
213 | 218 |
* @param v DOCUMENT ME! |
214 | 219 |
* @param y DOCUMENT ME! |
215 | 220 |
*/ |
216 |
public void setY(IWindow v, int y) { |
|
217 |
JInternalFrame o = (JInternalFrame) viewFrame.get(v); |
|
218 |
|
|
219 |
o.setLocation(o.getX(), y); |
|
221 |
public void setY(IWindow win, int y) { |
|
222 |
IFrame frame = (IFrame) viewFrame.get(win); |
|
223 |
frame.setY(y); |
|
220 | 224 |
} |
221 | 225 |
|
222 | 226 |
/** |
... | ... | |
225 | 229 |
* @param v DOCUMENT ME! |
226 | 230 |
* @param height DOCUMENT ME! |
227 | 231 |
*/ |
228 |
public void setHeight(IWindow v, int height) { |
|
229 |
JInternalFrame o = (JInternalFrame) viewFrame.get(v); |
|
230 |
|
|
231 |
o.setSize(o.getWidth(), height); |
|
232 |
public void setHeight(IWindow win, int height) { |
|
233 |
IFrame frame = (IFrame) viewFrame.get(win); |
|
234 |
frame.setHeight(height); |
|
232 | 235 |
} |
233 | 236 |
|
234 | 237 |
/** |
... | ... | |
237 | 240 |
* @param v DOCUMENT ME! |
238 | 241 |
* @param width DOCUMENT ME! |
239 | 242 |
*/ |
240 |
public void setWidth(IWindow v, int width) { |
|
241 |
JInternalFrame o = (JInternalFrame) viewFrame.get(v); |
|
242 |
|
|
243 |
o.setSize(width, o.getHeight()); |
|
243 |
public void setWidth(IWindow win, int width) { |
|
244 |
IFrame frame = (IFrame) viewFrame.get(win); |
|
245 |
frame.setWidth(width); |
|
244 | 246 |
} |
245 | 247 |
|
246 | 248 |
/** |
... | ... | |
249 | 251 |
* @param v DOCUMENT ME! |
250 | 252 |
* @param title DOCUMENT ME! |
251 | 253 |
*/ |
252 |
public void setTitle(IWindow v, String title) {
|
|
253 |
JInternalFrame o = (JInternalFrame) viewFrame.get(v);
|
|
254 |
o.setTitle(title);
|
|
254 |
public void setTitle(IWindow win, String title) {
|
|
255 |
IFrame frame = (IFrame) viewFrame.get(win);
|
|
256 |
frame.setTitle(title);
|
|
255 | 257 |
} |
258 |
|
|
259 |
/** |
|
260 |
* Sets the minimum allowed size for the provided window. |
|
261 |
* |
|
262 |
* @param sw |
|
263 |
* @param minSize |
|
264 |
*/ |
|
265 |
public void setMinimumSize(IWindow win, Dimension minSize) { |
|
266 |
IFrame frame = (IFrame) viewFrame.get(win); |
|
267 |
frame.setMinimumSize(minSize); |
|
268 |
} |
|
256 | 269 |
|
257 | 270 |
/** |
258 | 271 |
* DOCUMENT ME! |
trunk/libraries/libCorePlugin/src/com/iver/core/mdiManager/WindowInfoSupport.java | ||
---|---|---|
40 | 40 |
*/ |
41 | 41 |
package com.iver.core.mdiManager; |
42 | 42 |
|
43 |
import java.awt.Dimension; |
|
44 |
import java.awt.Rectangle; |
|
45 |
import java.beans.PropertyChangeEvent; |
|
46 |
import java.beans.PropertyChangeListener; |
|
47 |
import java.util.Enumeration; |
|
48 |
import java.util.Hashtable; |
|
49 |
|
|
43 | 50 |
import com.iver.andami.plugins.PluginClassLoader; |
44 | 51 |
import com.iver.andami.ui.mdiFrame.MainFrame; |
45 | 52 |
import com.iver.andami.ui.mdiFrame.NoSuchMenuException; |
53 |
import com.iver.andami.ui.mdiManager.IWindow; |
|
46 | 54 |
import com.iver.andami.ui.mdiManager.SingletonWindow; |
47 |
import com.iver.andami.ui.mdiManager.IWindow; |
|
48 | 55 |
import com.iver.andami.ui.mdiManager.WindowInfo; |
49 | 56 |
|
50 |
import java.awt.Rectangle; |
|
51 |
import java.beans.PropertyChangeEvent; |
|
52 |
import java.beans.PropertyChangeListener; |
|
53 | 57 |
|
54 |
import java.util.Enumeration; |
|
55 |
import java.util.Hashtable; |
|
56 |
|
|
57 |
|
|
58 | 58 |
/** |
59 |
* |
|
59 |
* This class listens to changes in WindowInfo objects, and reflects this |
|
60 |
* changes in the associated window. |
|
60 | 61 |
*/ |
61 | 62 |
public class WindowInfoSupport { |
62 | 63 |
private static int serialId = 0; |
... | ... | |
76 | 77 |
*/ |
77 | 78 |
private Hashtable infoView = new Hashtable(); |
78 | 79 |
private WindowPropertyChangeListener windowInfoListener = new WindowPropertyChangeListener(); |
79 |
private SingletonWindowSupport svs;
|
|
80 |
private SingletonWindowSupport sws;
|
|
80 | 81 |
private MainFrame mdiFrame; |
81 | 82 |
|
82 | 83 |
/** |
... | ... | |
89 | 90 |
public WindowInfoSupport(MainFrame frame, FrameWindowSupport fvs, |
90 | 91 |
SingletonWindowSupport svs) { |
91 | 92 |
this.fws = fvs; |
92 |
this.svs = svs;
|
|
93 |
this.sws = svs;
|
|
93 | 94 |
this.mdiFrame = frame; |
94 | 95 |
} |
95 | 96 |
|
... | ... | |
165 | 166 |
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) |
166 | 167 |
*/ |
167 | 168 |
public void propertyChange(PropertyChangeEvent evt) { |
168 |
WindowInfo v = (WindowInfo) evt.getSource();
|
|
169 |
IWindow view = (IWindow) infoView.get(v);
|
|
169 |
WindowInfo winInfo = (WindowInfo) evt.getSource();
|
|
170 |
IWindow win = (IWindow) infoView.get(winInfo);
|
|
170 | 171 |
|
171 |
if (view instanceof SingletonWindow) {
|
|
172 |
SingletonWindow sv = (SingletonWindow) view;
|
|
172 |
if (win instanceof SingletonWindow) {
|
|
173 |
SingletonWindow sw = (SingletonWindow) win;
|
|
173 | 174 |
|
174 | 175 |
if (evt.getPropertyName().equals("x")) { |
175 |
svs.setX(sv, ((Integer) evt.getNewValue()).intValue());
|
|
176 |
sws.setX(sw, ((Integer) evt.getNewValue()).intValue());
|
|
176 | 177 |
} else if (evt.getPropertyName().equals("y")) { |
177 |
svs.setY(sv, ((Integer) evt.getNewValue()).intValue());
|
|
178 |
sws.setY(sw, ((Integer) evt.getNewValue()).intValue());
|
|
178 | 179 |
} else if (evt.getPropertyName().equals("height")) { |
179 |
svs.setHeight(sv, ((Integer) evt.getNewValue()).intValue());
|
|
180 |
sws.setHeight(sw, ((Integer) evt.getNewValue()).intValue());
|
|
180 | 181 |
} else if (evt.getPropertyName().equals("width")) { |
181 |
svs.setWidth(sv, ((Integer) evt.getNewValue()).intValue());
|
|
182 |
sws.setWidth(sw, ((Integer) evt.getNewValue()).intValue());
|
|
182 | 183 |
} else if (evt.getPropertyName().equals("maximized")) { |
183 |
svs.setMaximized(sv, ((Boolean) evt.getNewValue()).booleanValue());
|
|
184 |
sws.setMaximized(sw, ((Boolean) evt.getNewValue()).booleanValue());
|
|
184 | 185 |
} else if (evt.getPropertyName().equals("normalBounds")) { |
185 |
svs.setNormalBounds(sv, (Rectangle) evt.getNewValue()); |
|
186 |
sws.setNormalBounds(sw, (Rectangle) evt.getNewValue()); |
|
187 |
} else if (evt.getPropertyName().equals("minimumSize")) { |
|
188 |
sws.setMinimumSize(sw, (Dimension) evt.getNewValue()); |
|
186 | 189 |
} else if (evt.getPropertyName().equals("title")) { |
187 |
svs.setTitle(sv, (String) evt.getNewValue());
|
|
190 |
sws.setTitle(sw, (String) evt.getNewValue());
|
|
188 | 191 |
|
189 | 192 |
try { |
190 | 193 |
mdiFrame.changeMenuName(new String[] { |
191 | 194 |
"ventana", (String) evt.getOldValue() |
192 |
}, (String) evt.getNewValue(),
|
|
193 |
(PluginClassLoader) getClass().getClassLoader());
|
|
195 |
}, (String) evt.getNewValue(), |
|
196 |
(PluginClassLoader) getClass().getClassLoader()); |
|
194 | 197 |
} catch (NoSuchMenuException e) { |
195 | 198 |
/* |
196 | 199 |
* No se hace nada porque puede modificarse el t?tulo de |
... | ... | |
200 | 203 |
} |
201 | 204 |
} else { |
202 | 205 |
if (evt.getPropertyName().equals("x")) { |
203 |
fws.setX(view, ((Integer) evt.getNewValue()).intValue());
|
|
206 |
fws.setX(win, ((Integer) evt.getNewValue()).intValue());
|
|
204 | 207 |
} else if (evt.getPropertyName().equals("y")) { |
205 |
fws.setY(view, ((Integer) evt.getNewValue()).intValue());
|
|
208 |
fws.setY(win, ((Integer) evt.getNewValue()).intValue());
|
|
206 | 209 |
} else if (evt.getPropertyName().equals("height")) { |
207 |
fws.setHeight(view, ((Integer) evt.getNewValue()).intValue());
|
|
210 |
fws.setHeight(win, ((Integer) evt.getNewValue()).intValue());
|
|
208 | 211 |
} else if (evt.getPropertyName().equals("width")) { |
209 |
fws.setWidth(view, ((Integer) evt.getNewValue()).intValue()); |
|
212 |
fws.setWidth(win, ((Integer) evt.getNewValue()).intValue()); |
|
213 |
} else if (evt.getPropertyName().equals("minimumSize")) { |
|
214 |
fws.setMinimumSize(win, (Dimension) evt.getNewValue()); |
|
210 | 215 |
} else if (evt.getPropertyName().equals("title")) { |
211 |
fws.setTitle(view, (String) evt.getNewValue());
|
|
216 |
fws.setTitle(win, (String) evt.getNewValue());
|
|
212 | 217 |
try{ |
213 | 218 |
mdiFrame.changeMenuName(new String[] { |
214 | 219 |
"ventana", (String) evt.getOldValue() |
215 |
}, (String) evt.getNewValue(),
|
|
216 |
(PluginClassLoader) getClass().getClassLoader());
|
|
220 |
}, (String) evt.getNewValue(), |
|
221 |
(PluginClassLoader) getClass().getClassLoader()); |
|
217 | 222 |
} catch (NoSuchMenuException e) { |
218 | 223 |
/* |
219 | 224 |
* No se hace nada porque puede modificarse el t?tulo de |
trunk/libraries/libCorePlugin/src/com/iver/core/mdiManager/SingletonWindowSupport.java | ||
---|---|---|
40 | 40 |
*/ |
41 | 41 |
package com.iver.core.mdiManager; |
42 | 42 |
|
43 |
import java.awt.Component;
|
|
43 |
import java.awt.Dimension;
|
|
44 | 44 |
import java.awt.Rectangle; |
45 | 45 |
import java.beans.PropertyVetoException; |
46 | 46 |
import java.util.ArrayList; |
47 |
import java.util.Comparator; |
|
48 |
import java.util.Iterator; |
|
49 |
import java.util.TreeMap; |
|
50 | 47 |
|
51 | 48 |
import javax.swing.JComponent; |
52 | 49 |
import javax.swing.JInternalFrame; |
53 | 50 |
|
54 | 51 |
import com.iver.andami.ui.mdiManager.SingletonDialogAlreadyShownException; |
55 | 52 |
import com.iver.andami.ui.mdiManager.SingletonWindow; |
56 |
import com.iver.andami.ui.mdiManager.IWindow; |
|
57 | 53 |
import com.iver.andami.ui.mdiManager.WindowInfo; |
58 | 54 |
|
59 | 55 |
|
... | ... | |
135 | 131 |
SingletonWindowInfo swi = new SingletonWindowInfo(sw.getClass(), sw.getWindowModel()); |
136 | 132 |
WindowInfo windowInfo = (WindowInfo) contentWindowInfo.get(swi); |
137 | 133 |
if (windowInfo!=null) { |
138 |
JInternalFrame c = (JInternalFrame) contentFrame.get(swi); |
|
139 |
windowInfo.setWidth(c.getWidth()); |
|
140 |
windowInfo.setHeight(c.getHeight()); |
|
141 |
windowInfo.setX(c.getX()); |
|
142 |
windowInfo.setY(c.getY()); |
|
143 |
windowInfo.setClosed(true); |
|
144 |
windowInfo.setNormalBounds(c.getNormalBounds()); |
|
145 |
windowInfo.setMaximized(c.isMaximum()); |
|
134 |
frameWindowSupport.updateWindowInfo(sw, windowInfo); |
|
146 | 135 |
} |
147 | 136 |
contentFrame.remove(swi); |
148 | 137 |
} |
... | ... | |
306 | 295 |
} |
307 | 296 |
|
308 | 297 |
/** |
298 |
* Sets the minimum allowed size for the provided singleton window. |
|
299 |
* |
|
300 |
* @param sw |
|
301 |
* @param minSize |
|
302 |
*/ |
|
303 |
public void setMinimumSize(SingletonWindow sw, Dimension minSize) { |
|
304 |
JInternalFrame frame = (JInternalFrame) contentFrame.get(new SingletonWindowInfo(sw.getClass(), sw.getWindowModel())); |
|
305 |
|
|
306 |
if (frame == null) return; |
|
307 |
frame.setMinimumSize(minSize); |
|
308 |
} |
|
309 |
|
|
310 |
/** |
|
309 | 311 |
* @param sv |
310 | 312 |
* @param string |
311 | 313 |
*/ |
Also available in: Unified diff