1 32 33 package it.businesslogic.ireport.gui; 34 import com.lowagie.text.Rectangle; 35 import java.awt.Dimension ; 36 44 public class JMDIFrame extends javax.swing.JInternalFrame { 45 46 javax.swing.border.Border borderNormal = null; 47 javax.swing.JComponent northPane = null; 48 java.awt.Rectangle northPaneBounds = null; 49 it.businesslogic.ireport.gui.JMDIMenuBar menu = null; 50 51 private boolean borderNone = false; 52 53 64 67 public JMDIFrame() { 68 initComponents(); 69 70 northPane = ((javax.swing.plaf.basic.BasicInternalFrameUI ) this.getUI()).getNorthPane(); 71 if(northPane == null){ javax.swing.plaf.basic.BasicInternalFrameUI aUI = new javax.swing.plaf.basic.BasicInternalFrameUI (this); 73 this.setUI(aUI); 74 northPane = ((javax.swing.plaf.basic.BasicInternalFrameUI ) this.getUI()).getNorthPane(); 75 } northPaneBounds = northPane.getBounds(); 77 setNormalSize( this.getPreferredSize()); 78 borderNone = false; 79 jPanel1.setBackground(new java.awt.Color ((int)( Math.random()* 0xffffff))); 80 } 81 82 83 84 89 private void initComponents() { jPanel1 = new javax.swing.JPanel (); 91 92 setClosable(true); 93 setIconifiable(true); 94 setMaximizable(true); 95 setResizable(true); 96 setTitle("JMDIFrame"); 97 setPreferredSize(new java.awt.Dimension (400, 400)); 98 addComponentListener(new java.awt.event.ComponentAdapter () { 99 public void componentResized(java.awt.event.ComponentEvent evt) { 100 formComponentResized(evt); 101 } 102 }); 103 104 addHierarchyBoundsListener(new java.awt.event.HierarchyBoundsListener () { 105 public void ancestorMoved(java.awt.event.HierarchyEvent evt) { 106 } 107 public void ancestorResized(java.awt.event.HierarchyEvent evt) { 108 formAncestorResized(evt); 109 } 110 }); 111 112 addInternalFrameListener(new javax.swing.event.InternalFrameListener () { 113 public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { 114 } 115 public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { 116 formInternalFrameClosing(evt); 117 } 118 public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { 119 formInternalFrameClosed(evt); 120 } 121 public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { 122 } 123 public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { 124 } 125 public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { 126 formInternalFrameActivated(evt); 127 } 128 public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { 129 } 130 }); 131 132 addPropertyChangeListener(new java.beans.PropertyChangeListener () { 133 public void propertyChange(java.beans.PropertyChangeEvent evt) { 134 formPropertyChange(evt); 135 } 136 }); 137 138 jPanel1.setBackground(new java.awt.Color (255, 204, 204)); 139 jPanel1.addHierarchyBoundsListener(new java.awt.event.HierarchyBoundsListener () { 140 public void ancestorMoved(java.awt.event.HierarchyEvent evt) { 141 } 142 public void ancestorResized(java.awt.event.HierarchyEvent evt) { 143 jPanel1AncestorResized(evt); 144 } 145 }); 146 147 getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); 148 149 pack(); 150 } 152 private void formInternalFrameClosing(javax.swing.event.InternalFrameEvent evt) { 163 if (!closingFrame(false)) 164 { 165 setDefaultCloseOperation( this.DO_NOTHING_ON_CLOSE ); 166 } 167 else 168 { 169 setDefaultCloseOperation( this.DISPOSE_ON_CLOSE ); 170 if ( this.getDesktopPane() instanceof JMDIDesktopPane) 171 { 172 ((JMDIDesktopPane)this.getDesktopPane()).internalFrameClosed(this); 173 } 174 } 175 } 177 private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { 179 } 181 private void jPanel1AncestorResized(java.awt.event.HierarchyEvent evt) { 183 184 } 186 private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) { if ( this.getDesktopPane() instanceof JMDIDesktopPane) 189 { 190 ((JMDIDesktopPane)this.getDesktopPane()).internalFrameActivated(this); 191 } 192 193 } 195 private void formComponentResized(java.awt.event.ComponentEvent evt) { 197 if (this.isMaximum()) 199 { 200 double h = ((javax.swing.plaf.basic.BasicInternalFrameUI )getUI()).getNorthPane().getSize().getHeight(); 201 202 java.awt.Rectangle rr = this.getBounds(); 203 if (rr.getY() >= 0) 204 { 205 rr.setRect(rr.getX(),(int)rr.getY()-h, (int)rr.getWidth(), rr.getHeight() + h); 206 this.setBounds(rr); 207 } 208 } 209 210 } 212 213 private void formPropertyChange(java.beans.PropertyChangeEvent evt) { if (evt.getPropertyName().equals("maximum")) 216 onMaximizeMinimize(); 217 else if (evt.getPropertyName().equals("selected")) 218 onSelect(); 219 } 221 private void onMaximizeMinimize() 222 { 223 if (borderNormal == null) 224 { 225 borderNormal = this.getBorder(); 226 } 227 228 if ( this.isMaximum) 230 { 231 if (!borderNone) 232 { 233 234 249 250 try { 251 this.setSelected(true); 252 } catch (Exception ex){} 253 254 this.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets ( 0,0,0,0 ))); 255 borderNone = true; 256 257 258 try { 259 double h = ((javax.swing.plaf.basic.BasicInternalFrameUI )getUI()).getNorthPane().getSize().getHeight(); 261 java.awt.Rectangle rr = this.getBounds(); 262 rr.setRect(rr.getX(),(int)rr.getY()-h, (int)rr.getWidth(), rr.getHeight() + h); 263 this.setBounds(rr); 264 ((javax.swing.plaf.basic.BasicInternalFrameUI )getUI()).getNorthPane().setPreferredSize( new java.awt.Dimension (0,0) ); 265 266 268 } catch (Exception ex) 269 { 270 ex.printStackTrace(); 271 } 272 273 275 if (menu != null) menu.setMaximizedFrame(this); 278 } 279 } 280 else if ( !this.isMaximum && borderNone) 281 { 282 283 setNormalSize( this.getSize() ); 285 286 303 304 borderNone = false; 305 306 307 ((javax.swing.plaf.basic.BasicInternalFrameUI )getUI()).getNorthPane().setPreferredSize( new java.awt.Dimension (this.getNormalSize().width ,23) ); 309 setPreferredSize(this.getNormalSize()); 310 setSize(this.getNormalSize()); 311 312 this.setBorder(borderNormal); 313 if (menu != null) menu.setMaximizedFrame(null); 314 try { 316 this.setSelected(true); 317 } catch (Exception ex){}; 318 } 319 } 320 321 322 328 private void onSelect() 329 { 330 if ( this.isMaximum) 331 { 332 if (menu != null) menu.setMaximizedFrame(this); 333 } 334 335 } 336 337 338 private void formAncestorResized(java.awt.event.HierarchyEvent evt) { 340 } 342 346 public it.businesslogic.ireport.gui.JMDIMenuBar getMenu() { 347 return menu; 348 } 349 350 356 public void setMenu(it.businesslogic.ireport.gui.JMDIMenuBar menu) { 357 this.menu = menu; 358 } 359 360 364 public java.awt.Dimension getNormalSize() { 365 return normalSize; 366 } 367 368 372 public void setNormalSize(java.awt.Dimension normalSize) { 373 this.normalSize = normalSize; 374 } 375 376 private javax.swing.JPanel jPanel1; 378 380 private java.awt.Dimension normalSize; 381 394 395 400 public boolean closingFrame(boolean force) 401 { 402 return true; 403 } 404 } 405 | Popular Tags |