Revision 9997

View differences:

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