Revision 12443

View differences:

trunk/libraries/libCorePlugin/src/com/iver/core/mdiManager/NewSkin.java
248 248
            return p;
249 249
        }
250 250
    }
251
    
251

  
252 252
    /* (non-javadoc)
253 253
     * @see com.iver.andami.ui.mdiManager.MDIManager#addWindow(com.iver.andami.ui.mdiManager.IWindow)
254 254
     */
......
257 257
		centreFrame(window);
258 258
		return window;
259 259
	}
260
	
261
 
260

  
261

  
262 262
	/**
263 263
	 * Centres the Frame in the contentPane of the MainFrame.
264 264
	 * If the frame can't be showed completely, it tries to show its top-left
......
271 271
	public synchronized void centreFrame(IWindow panel) {
272 272
		Component window = fws.getFrame(panel);
273 273
		if (window==null) return;
274
		
274

  
275 275
		// The top-left square of frame reference
276 276
		Point newReferencePoint = new Point();
277 277

  
......
324 324
    private void addJInternalFrame(JInternalFrame wnd, WindowInfo wi) {
325 325
        wnd.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
326 326
        wnd.addInternalFrameListener(new FrameListener());
327
        
327

  
328 328
        updateFrameProperties(wnd, wi);
329
        
329

  
330 330
        if (wi.isModeless() || wi.isPalette()) {
331 331
            panel.add(wnd, JDesktopPane.PALETTE_LAYER);
332 332
            if (wi.isPalette())
......
537 537
     */
538 538
    private void closeJDialog() {
539 539
        JDialog dlg = dss.popDialog();
540

  
540
        if (dlg==null)
541
        	return;
541 542
        dlg.setVisible(false);
542 543

  
543
        IWindow s = (IWindow) fws.getWindow(dlg);
544
        IWindow s = fws.getWindow(dlg);
544 545

  
545 546
        callWindowClosed(s);
546 547

  
......
672 673
        	callWindowActivated(window);
673 674

  
674 675
        }
675
    	
676
    	
676

  
677

  
677 678
        /**
678 679
         * Captura el evento de cerrado de los di?logos con el fin de realizar
679 680
         * tareas de mantenimiento
......
877 878
        	frame = fws.getFrame(win);
878 879
    		zPosition = panel.getPosition(frame);
879 880
    		int layer = panel.getLayer(frame);
880
    		
881

  
881 882
    		if (! (frame instanceof JDialog)) { //JDialogs are not in inside the LayeredPane
882 883
    			// flatten all the layers
883 884
	    		if (layer == JLayeredPane.DEFAULT_LAYER.intValue()) {
......
957 958
    	if (frame!=null)
958 959
    		frame.setVisible(true);
959 960
    }
960
    
961

  
961 962
	public void setBackgroundImage(ImageIcon image, String typeDesktop) {
962 963
		this.image=image;
963 964
		this.typeDesktop=typeDesktop;
trunk/libraries/libCorePlugin/src/com/iver/core/mdiManager/DialogStackSupport.java
60 60

  
61 61
    /** Pila de di?logos modales mostrados */
62 62
    private ArrayList dialogStack = new ArrayList(0);
63
    
63

  
64 64
    private ArrayList dialogCursors = new ArrayList(0);
65 65

  
66 66
    public DialogStackSupport(MDIFrame frame){
67 67
    }
68
    
68

  
69 69
    public void pushDialog(JDialog dlg){
70 70
    	dialogStack.add(dlg);
71 71
    }
72
    
72

  
73 73
    public JDialog popDialog(){
74
    	return (JDialog) dialogStack.remove(dialogStack.size() - 1);
74
    	int dialogStackSize=dialogStack.size();
75
    	if (dialogStackSize<1)
76
    		return null;
77
    	return (JDialog) dialogStack.remove(dialogStackSize - 1);
75 78
    }
76 79

  
77 80
	/**
......
88 91
	}
89 92

  
90 93
	/**
91
	 * 
94
	 *
92 95
	 */
93 96
	public void restoreCursor() {
94 97
		for (Iterator iter = dialogStack.iterator(); iter.hasNext();) {
95 98
			JDialog dlg = (JDialog) iter.next();
96
            
99

  
97 100
            // TODO: RECUPERAR EL CURSOR
98 101
            dlg.setCursor(null);
99 102
		    dlg.getGlassPane().setVisible(false);

Also available in: Unified diff