package sim.shapes; // Copyright (c) 1998 by Simulation Tools (R). All rights reserved. // // import sim.util.*; import java.awt.*; import java.applet.*; public class TestApp extends Applet implements EventReceiver { Button bZOrder = new Button("Z Order"); // Button bEdit = new Button("Edit"); Button bSelect = new Button("Select"); Button bDelete = new Button("Delete"); Button bRect = new Button("Rect"); Button bRndRect = new Button("RndRect"); Button bArc = new Button("Arc"); Button bOval = new Button("Oval"); Button bText = new Button("Text"); Button bComp = new Button("Comp"); Button bLine = new Button("Line"); Button bPoly = new Button("Poly"); Drawing drawing; DrawingPanel drawingPanel; Rect rect; RoundRect rndRect; Oval oval; Arc arc; Text text; Font textFont = new Font("Helvetica", Font.ITALIC, 20); Composite aComp; Line line; PolyLine polyline; SoftEvent drag = SoftEvent.named("drag"); public void init () { drawingPanel = new DrawingPanel(); drawing = new Drawing(drawingPanel); drawing.tool(new SelectionTool()); setFont(new Font("Helvetica", Font.PLAIN, 14)); setLayout(new BorderLayout()); add("North", buttonPanel()); add("Center", drawingPanel); // drawing.draw(); // drawingPanel.repaint(); } public void start() { drawingPanel.setBackground(Color.lightGray); drawing.draw(); } Panel buttonPanel() { Panel p = new Panel(); p.add(bSelect); p.add(bDelete); p.add(bZOrder); // p.add(bEdit); p.add(bRect); p.add(bRndRect); p.add(bArc); p.add(bOval); // p.add(bText); // p.add(bComp); p.add(bLine); p.add(bPoly); return p; } public boolean action(Event e, Object obj) { if (e.target == bZOrder) { drawing.tool(new ZOrderTool()); } // if (e.target == bEdit) { // drawing.tool(new EditTool()); // } if (e.target == bSelect) { drawing.tool(new SelectionTool()); } if (e.target == bDelete) { drawing.deleteSelection(); } if (e.target == bRect) { rect = new Rect(new XRectangle(0, 0, 0, 0)); rect.color(Color.black).fillColor(Color.red); drawing.tool(new CreateExtentTool(rect)); } if (e.target == bRndRect) { rndRect = new RoundRect( new XRectangle(0, 0, 80, 60), new XPoint(10, 10)); rndRect.color(Color.blue).fillColor(Color.cyan); rndRect.addEventReceiver(drag, this); drawing.tool(new CreateExtentTool( rndRect )); } if (e.target == bArc) { arc = new Arc( new XRectangle(0, 0, 50, 50), 25, 315); // arc.translateBy(new XPoint(200, 10)); arc.color(null).fillColor(Color.yellow); // drawing.add(arc).draw(); arc.addEventReceiver(drag, this); drawing.tool(new CreateExtentTool( arc )); } if (e.target == bOval) { oval = new Oval( new XRectangle(0, 0, 90, 50)); oval.color(Color.red).fillColor(Color.orange); oval.addEventReceiver(drag, this); drawing.tool(new CreateExtentTool(oval)); } if (e.target == bText) { text = new Text("Shapes"); text.font(textFont); text.color(Color.blue); text.translateBy(new XPoint (150, 100)); drawing.add(text).draw(); text.addEventReceiver(drag, this); } if (e.target == bComp) { aComp = new CacheComposite(); aComp.add(new Rect(new XRectangle(0, 0, 50, 25)).fillColor(Color.red)); aComp.add(new Oval(new XRectangle(0, 0, 25, 50)).fillColor(Color.green)); drawing.add(aComp).draw(); aComp.moveTo(new XPoint (50, 150)).draw(); aComp.addEventReceiver(drag, this); } if (e.target == bLine) { drawing.tool(new CreateLineTool()); } if (e.target == bPoly) { polyline = new PolyLine(new XPolygon()); polyline.color(new Color(0, 128, 0)).fillColor(new Color(0, 128, 0)); drawing.tool(new CreatePolyLineTool(polyline)); } return true; } public void receiveEvent( Object sender, SoftEvent event, Object arg) { if (event == drag) ((Shape)sender).translateBy((XPoint)arg).draw(); } }