//***************************************************************************** // // Beenish Chaudry, Geetika Tewari, Elif Tosun and // Ileana Streinu // // Summer 1999, Fall 1999, Spring 2000 // //***************************************************************************** // // FramePointComponentListener.java // //***************************************************************************** // // called in: FramePoint.java // //***************************************************************************** import java.awt.*; import java.awt.event.*; import java.lang.*; import java.io.*; import java.util.*; class FramePointComponentListener extends ComponentAdapter { FramePoint bf; //*********************************** // // Constructor // //*********************************** public FramePointComponentListener(FramePoint bff) { super(); bf = bff; } //*********************************** // // componentResized // // invoked when the frame is resized // //*********************************** public void componentResized(ComponentEvent e) { // basic: when the frame of reference is standard // Frame resized as done by the user if(bf.state.stateResize == StateResize.basic) { bf.setSize(bf.getSize().width, bf.getSize().height); bf.width = bf.getSize().width; bf.height = bf.getSize().height; } //end wBasic // with AspectRatio preservation // when the frame of reference is set somewhere in the window // at center, or elsewhere if(bf.state.stateResize == StateResize.aspect) { //if origin is in center if(bf.state.stateOrigin == StateOrigin.center) { if(bf.getSize().width > bf.getSize().height) { bf.setSize(bf.getSize().width, bf.getSize().width); } else if(bf.getSize().height >= bf.getSize().width) { bf.setSize(bf.getSize().height, bf.getSize().height); } }//end wCenter //if origin is not the center, preserves the aspect ratio else if(bf.state.stateOrigin != StateOrigin.center) { if(bf.getSize().width > bf.getSize().height) { bf.setSize(bf.getSize().width, (int)((bf.getSize().width*bf.height)/bf.width)); bf.ps.ChangeOrAfterIncrease(); bf.ps.ChangeArrayAfterIncrease(); bf.width = bf.getSize().width; bf.height = bf.getSize().height; } else if(bf.getSize().height >= bf.getSize().width) { //The floating point error needs to be fixed bf.setSize((int)((bf.getSize().height*bf.width)/bf.height), bf.getSize().height); bf.ps.ChangeOrAfterIncrease(); bf.ps.ChangeArrayAfterIncrease(); bf.width = bf.getSize().width; bf.height = bf.getSize().height; } }//end !wCenter }//end of wAspectRatio bf.setVisible(true); }//end of componentResized //******************************** // // other window event handlers // //******************************** public void componentHidden(ComponentEvent e) { } public void componentMoved(ComponentEvent e) { } public void componentShown(ComponentEvent e) { } }//end class FramePointComponentListener