/* * SpaceTestApplet.java * * Created on October 29, 2005, 9:27 AM */ package Current; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.geom.*; import java.io.*; import java.util.*; import javax.swing.BoxLayout; import Current.manage.*; // popups import Current.popups.Settings.SettingsOnDemand; import Current.popups.SearchResults.WordDisplayOnDemand; import Current.popups.Help.HelpOnDemand; import Current.popups.ListPlotter.WordListPopper; // canvases import Current.canvases.Search.BasicSearchCanvas; import Current.canvases.ColorSelector.ColorSelectorCanvas; import Current.canvases.Coordinate.CoordinateCanvas; import Current.canvases.DebugButton.DebugButton; import Current.canvases.Mouse.MouseCanvas; import Current.canvases.ParameterSpace.*; import Current.canvases.Plot.*; import Current.canvases.PopupLists.StandardPopupListCanvas; import Current.canvases.Rational.RationalCanvas; import Current.canvases.Title.TitleCanvas; /** * This is the main window for McBilliards */ public class A2 extends Applet { Manager M; BasicSearchCanvas BSC; CoordinateCanvas CC; ColorSelectorCanvas CS; MouseCanvas MC; PlotCanvas PC; TitleCanvas TC; StandardPopupListCanvas SPLC; SpaceCanvas SC; SpaceControlCanvas SCC; WordDisplayOnDemand WD; RationalCanvas R; WordListPopper WLP; HelpOnDemand HOD; SettingsOnDemand SOD; public void init(){ // this allows us to detect the TAB key setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, Collections.EMPTY_SET); setBackground(new Color(0,0,150)); loadObjects(); supportPopups(); // EASTERN COLUMN Container East=new Container(); East.setSize(61, getHeight()); East.setLayout(new BorderLayout(0,5)); East.add(CS,BorderLayout.NORTH); East.add(MC,BorderLayout.SOUTH); // WESTERN COLUMN Container West=new Container(); West.setSize(61, getHeight()); West.setLayout(new BoxLayout(West,BoxLayout.Y_AXIS)); West.add(R); West.add(TC); // debug button... comment out to remove West.add(new DebugButton(M)); // NORTHERN ROW Container North=new Container(); North.setSize(getWidth()-61, TC.getHeight()); North.setLayout(new FlowLayout(FlowLayout.LEFT,0,0)); North.add(CC); //North.add(PTC); North.add(SPLC); North.add(PC); // SOUTHERN ROW Container South=new Container(); South.setSize(getWidth()-61, TC.getHeight()); South.setLayout(new FlowLayout(FlowLayout.LEFT,0,0)); South.add(SCC); South.add(BSC); South.add(PC); Container C2=new Container(); C2.setSize(getWidth()-61, getHeight()); C2.setLayout(new BorderLayout(0,0)); C2.add(North,BorderLayout.NORTH); C2.add(SC,BorderLayout.CENTER); C2.add(South,BorderLayout.SOUTH); setLayout(new BorderLayout(0,0)); add(East,BorderLayout.EAST); add(C2,BorderLayout.CENTER); add(West,BorderLayout.WEST); } public void loadObjects(){ M=new Manager(this); BSC=new BasicSearchCanvas(M); BSC.setSize(); CC=new CoordinateCanvas(M); CS=new ColorSelectorCanvas(M,60,240); CS.setSize(60,240); MC=new MouseCanvas(M); MC.setSize(61,120); PC=new PlotCanvas(M); PC.setSize(); SPLC=new StandardPopupListCanvas(M); R=new RationalCanvas(M); TC=new TitleCanvas(M); SC=new SpaceCanvas(M); //SC.setSize(getWidth()-61,getHeight()-2*PTC.getSize().height); SCC= new SpaceControlCanvas(SC,M); SCC.setSize(); WD=new WordDisplayOnDemand(M); HOD=new HelpOnDemand(M); SOD=new SettingsOnDemand(M); WLP=new WordListPopper(M); } /** This is the list of popups supported by this McBilliards version */ public void supportPopups() { M.PopupM.support(Current.popups.LineSelector.LineSelector.class,"line selector"); M.PopupM.support(Current.popups.Grids.GridManagerPopup.class,"grids"); M.PopupM.support(Current.popups.Deg100.Deg100Canvas.class,"100 degree result"); M.PopupM.support(Current.popups.Deg100.Deg100Canvas.class,"100 degree result"); M.PopupM.support(Current.popups.ImageSave.ImageSavePopup.class,"image save"); M.PopupM.support(Current.popups.BilliardPath.DisplayContainer.class,"billiard path"); M.PopupM.support(Current.popups.Settings.SettingsPopup.class,"settings"); M.PopupM.support(Current.popups.AnimatedWord.AnimatedWordContainer.class,"word"); M.PopupM.support(Current.popups.Squarepath.SquarepathContainer.class,"squarepath"); M.PopupM.support(Current.popups.Polynomial.PolynomialCanvas.class, "function analysis"); M.PopupM.support(Current.popups.Unfold.UnfoldContainer.class,"unfolding"); M.PopupM.support(Current.popups.Memory.TileMemoryContainer.class, "memory"); M.PopupM.support(Current.popups.OldMemory.FileLoaderContainer.class, "old memory"); // old word window // M.PopupM.support(Current.popups.TwistWord.TwistWordContainer.class, "old word"); //M.PopupM.support(NewSearch.class, "new search"); //M.PopupM.support(DumbPopup.class,"dumb popup"); } public void cleanup() { M=null; BSC=null; CC=null; CS=null; MC=null; PC=null; TC=null; SPLC=null; SC=null; SCC=null; WD=null; R=null; HOD=null; SOD=null; } // public Dimension getMinimumSize() { // return getPreferredSize(); // } // public static class Frame2 extends Frame implements WindowListener, ComponentListener { A2 a; public Frame2(String title, A2 a) { super(title); this.a=a; setBackground(new Color(0,0,50)); addWindowListener(this); addComponentListener(this); } public Dimension getMinimumSize() { return a.getMinimumSize(); } public void windowActivated(java.awt.event.WindowEvent windowEvent) { } public void windowClosed(java.awt.event.WindowEvent windowEvent) { } public void windowClosing(java.awt.event.WindowEvent windowEvent) { dispose(); System.exit(0); } public void windowDeactivated(java.awt.event.WindowEvent windowEvent) { } public void windowDeiconified(java.awt.event.WindowEvent windowEvent) { } public void windowIconified(java.awt.event.WindowEvent windowEvent) { } public void windowOpened(java.awt.event.WindowEvent windowEvent) { } public void componentHidden(ComponentEvent e) { } public void componentMoved(ComponentEvent e) { } public void componentResized(ComponentEvent e) { // Dimension d=a.getSize(); // Dimension d2=a.getMinimumSize(); // int width=getWidth(); // if (d.width