/* * DisplayContainer.java * * Created on March 10, 2006, 7:45 AM */ package Current.popups.BilliardPath; import Current.popups.Unfold.*; import java.awt.*; import Current.*; import Current.manage.*; /** * * @author pat */ public class DisplayContainer extends Container implements UnfoldingData.UnfoldingDataWatcher { public static String[] modes={"billiards","cone surface"}; public static int BILLIARD_MODE=0, CONE_SURFACE_MODE=1; private int mode=0; public Manager M; protected DisplaySelector selector; protected DisplayBilliardPath billiardPath; protected DisplayConeSurface coneSurface; public DisplayProperties properties; protected UnfoldingData UD; /** Creates a new instance of DisplayContainer */ public DisplayContainer(Manager M) { this.M=M; properties=new DisplayProperties(M); UD=new UnfoldingData(M); UD.setWatcher(this); selector=new DisplaySelector(this); billiardPath=new DisplayBilliardPath(M,UD,properties); setLayout(new BorderLayout()); add(selector,"North"); add(billiardPath,"Center"); validate(); } public void mcbCleanup() { if (billiardPath!=null) { billiardPath.mcbCleanup(); } if (coneSurface!=null) { coneSurface.mcbCleanup(); } UD.mcbCleanup(); properties.mcbCleanup(); } public int getMode() { return mode; } public void setMode(int new_mode) { switch (mode) { case 0: billiardPath.mcbCleanup(); remove(billiardPath); billiardPath=null; break; case 1: coneSurface.mcbCleanup(); remove(coneSurface); coneSurface=null; break; } mode=new_mode; switch (mode) { case 0: billiardPath=new DisplayBilliardPath(M,UD,properties); add(billiardPath,"Center"); break; case 1: coneSurface=new DisplayConeSurface(M,UD,properties); add(coneSurface,"Center"); break; } selector.toggled(); validate(); } public void toggle() { setMode((mode+1)%2); } public void updatedUnfoldingData() { if (billiardPath!=null) billiardPath.repaint(); if (coneSurface!=null) coneSurface.repaint(); } }