Revision 42601

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.coreplugin.app/org.gvsig.coreplugin.app.mainplugin/src/main/java/org/gvsig/coreplugin/mdiManager/FrameWindowSupport.java
26 26
import java.awt.Component;
27 27
import java.awt.Dimension;
28 28
import java.awt.Image;
29
import java.awt.event.ComponentEvent;
30
import java.awt.event.ComponentListener;
29 31
import java.util.Hashtable;
30 32
import java.util.Iterator;
31 33

  
......
35 37
import javax.swing.JFrame;
36 38
import javax.swing.JInternalFrame;
37 39
import javax.swing.JPanel;
40
import org.gvsig.andami.PluginServices;
38 41

  
39 42
import org.gvsig.andami.ui.mdiFrame.MDIFrame;
40 43
import org.gvsig.andami.ui.mdiManager.IWindow;
......
109 112
            frameView.put(nuevo, p);
110 113

  
111 114
            nuevo.setModal(vi.isModal());
115
            closeOnHide(p);
112 116
            return nuevo;
113 117
        } else {
114 118
            return dlg;
......
175 179
        nuevo.setMaximizable(wi.isMaximizable());
176 180
        nuevo.setLocation(wi.getX(), wi.getY());
177 181
        nuevo.setMinimumSize(wi.getMinimumSize());
178

  
182
        closeOnHide(p);
179 183
        nuevo.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
180 184
        return nuevo;
181 185
    }
182 186

  
187
    private void closeOnHide(final IWindow p) {
188
        ((JPanel)p).addComponentListener(new ComponentListener() {
189

  
190
            @Override
191
            public void componentResized(ComponentEvent ce) {
192
            }
193

  
194
            @Override
195
            public void componentMoved(ComponentEvent ce) {
196
            }
197

  
198
            @Override
199
            public void componentShown(ComponentEvent ce) {
200
            }
201

  
202
            @Override
203
            public void componentHidden(ComponentEvent ce) {
204
                PluginServices.getMDIManager().closeWindow(p);
205
            }
206
        });
207
        
208
    }
209
    
183 210
    public IWindow getWindow(Component dlg){
184 211
    	return (IWindow) frameView.get(dlg);
185 212
    }

Also available in: Unified diff