/* A basic extension of the java.applet.Applet class */ import java.awt.*; import java.applet.*; import java.io.*; import java.net.*; import java.util.*; public class wireBuilder extends Applet implements Runnable { private Thread thread; private boolean isRunning = false; public void start() { if(thread == null) { thread = new Thread(this); } isRunning = true; thread.start(); } public void run() { while(isRunning) { if(spinOnButton.getLabel().equals("Spin On")) { if(wireCanvas.getMode().equals("Roll")) { wireCanvas.roll(wireCanvas.getDx(),wireCanvas.getDy()); wireCanvas.renderAll(); } else if(wireCanvas.getMode().equals("Rotate")) { wireCanvas.rotate(wireCanvas.getDy()); wireCanvas.renderAll(); } } try { Thread.sleep(100); } catch(Exception e){} } } public void stop() { if((thread != null) && thread.isAlive()) { thread.stop(); } isRunning = false; thread = null; } public void init() { // This code is automatically generated by Visual Cafe when you add // components to the visual environment. It instantiates and initializes // the components. To modify the code, only use code syntax that matches // what Visual Cafe can generate, or Visual Cafe may be unable to back // parse your Java file into its visual environment. //{{INIT_CONTROLS setLayout(new BorderLayout(0,0)); setBackground(java.awt.Color.orange); setForeground(java.awt.Color.black); setSize(702,603); controlPanel.setLayout(new GridLayout(12,1,0,0)); add(BorderLayout.WEST, controlPanel); controlPanel.setBounds(0,0,58,400); rollButton.setLabel("Roll"); controlPanel.add(rollButton); rollButton.setBounds(0,0,58,33); rotateButton.setLabel("Rotate"); controlPanel.add(rotateButton); rotateButton.setBounds(0,33,58,33); moveButton.setLabel("Move"); controlPanel.add(moveButton); moveButton.setBounds(0,66,58,33); moveZButton.setLabel("In & Out"); controlPanel.add(moveZButton); moveZButton.setBounds(0,99,58,33); resizeButton.setLabel("Resize"); controlPanel.add(resizeButton); resizeButton.setBounds(0,132,58,33); displayButton.setLabel("2D"); controlPanel.add(displayButton); displayButton.setBounds(0,165,58,33); controlPanel.add(nosyButton); nosyButton.setBounds(0,198,58,33); wireOnButton.setLabel("Wire On"); controlPanel.add(wireOnButton); wireOnButton.setBounds(0,231,58,33); spinOnButton.setLabel("Spin Off"); controlPanel.add(spinOnButton); spinOnButton.setBounds(0,264,58,33); linkOnButton.setLabel("Link Off"); controlPanel.add(linkOnButton); linkOnButton.setBounds(0,297,58,33); centerButton.setLabel("Center"); controlPanel.add(centerButton); centerButton.setBounds(0,330,58,33); aboutButton.setLabel("About"); controlPanel.add(aboutButton); aboutButton.setBounds(0,363,58,33); add(BorderLayout.EAST, wireCanvas); wireCanvas.setBackground(java.awt.Color.white); wireCanvas.setBounds(55,0,647,400); wireBuilderPanel.setLayout(new BorderLayout(0,0)); add(BorderLayout.SOUTH, wireBuilderPanel); wireBuilderPanel.setBounds(0,400,702,203); instructionsLabel.setText("Welcome to Object Oriented Learning: wireBuilder!"); wireBuilderPanel.add(BorderLayout.NORTH, instructionsLabel); instructionsLabel.setBounds(0,0,702,23); buttonsPanel.setLayout(new GridLayout(5,1,0,0)); wireBuilderPanel.add(BorderLayout.WEST, buttonsPanel); buttonsPanel.setBounds(0,23,56,180); buildPanelButton.setLabel("Build"); buttonsPanel.add(buildPanelButton); buildPanelButton.setBounds(0,0,56,36); surfacePanelButton.setLabel("Surface"); buttonsPanel.add(surfacePanelButton); surfacePanelButton.setBounds(0,36,56,36); textPanelButton.setLabel("Text"); buttonsPanel.add(textPanelButton); textPanelButton.setBounds(0,72,56,36); linksPanelButton.setLabel("Links"); buttonsPanel.add(linksPanelButton); linksPanelButton.setBounds(0,108,56,36); ioPanelButton.setLabel("I/O"); buttonsPanel.add(ioPanelButton); ioPanelButton.setBounds(0,144,56,36); optionsPanel.setLayout(new CardLayout(0,0)); wireBuilderPanel.add(BorderLayout.CENTER, optionsPanel); optionsPanel.setBounds(56,23,646,180); buildPanel.setLayout(new GridLayout(4,1,0,5)); optionsPanel.add("buildPanel",buildPanel); buildPanel.setBounds(0,0,646,180); toolsPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,5)); buildPanel.add(toolsPanel); toolsPanel.setBounds(0,0,646,41); redLabel.setText("Red"); toolsPanel.add(redLabel); redLabel.setBounds(110,5,37,23); redField.setText("0"); toolsPanel.add(redField); redField.setBackground(java.awt.Color.white); redField.setBounds(147,5,31,23); greenLabel.setText("Green"); toolsPanel.add(greenLabel); greenLabel.setBounds(178,5,48,23); greenField.setText("0"); toolsPanel.add(greenField); greenField.setBackground(java.awt.Color.white); greenField.setBounds(226,5,31,23); blueLabel.setText("Blue"); toolsPanel.add(blueLabel); blueLabel.setBounds(257,5,39,23); blueField.setText("0"); toolsPanel.add(blueField); blueField.setBackground(java.awt.Color.white); blueField.setBounds(296,5,31,23); wireButton.setLabel("Wire"); toolsPanel.add(wireButton); wireButton.setBounds(327,5,39,23); surfaceButton.setLabel("Surface"); toolsPanel.add(surfaceButton); surfaceButton.setBounds(366,5,56,23); backgroundButton.setLabel("Color Background"); toolsPanel.add(backgroundButton); backgroundButton.setBackground(java.awt.Color.lightGray); backgroundButton.setBounds(422,5,113,23); selectPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,5)); buildPanel.add(selectPanel); selectPanel.setBounds(0,46,646,41); selectLabel.setText("(De)Select:"); selectPanel.add(selectLabel); selectLabel.setBounds(195,5,75,23); selectVertexButton.setLabel("Vertex"); selectPanel.add(selectVertexButton); selectVertexButton.setBounds(270,5,47,23); selectPolygonButton.setLabel("Polygon"); selectPanel.add(selectPolygonButton); selectPolygonButton.setBackground(java.awt.Color.lightGray); selectPolygonButton.setBounds(317,5,58,23); selectGroupButton.setLabel("Group"); selectPanel.add(selectGroupButton); selectGroupButton.setBounds(375,5,48,23); selectAllButton.setLabel("All"); selectPanel.add(selectAllButton); selectAllButton.setBounds(423,5,27,23); selectedPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,5)); buildPanel.add(selectedPanel); selectedPanel.setBounds(0,92,646,41); minimizeButton.setLabel("Puff"); selectedPanel.add(minimizeButton); minimizeButton.setBounds(194,5,35,23); changeButton.setLabel("Change"); selectedPanel.add(changeButton); changeButton.setBackground(java.awt.Color.black); changeButton.setForeground(java.awt.Color.white); changeButton.setBounds(229,5,58,23); cutButton.setLabel("Cut"); selectedPanel.add(cutButton); cutButton.setBounds(287,5,33,23); copyButton.setLabel("Copy"); selectedPanel.add(copyButton); copyButton.setBounds(320,5,42,23); pasteButton.setLabel("Paste"); selectedPanel.add(pasteButton); pasteButton.setBounds(362,5,46,23); clearButton.setLabel("Clear"); selectedPanel.add(clearButton); clearButton.setBackground(java.awt.Color.lightGray); clearButton.setBounds(408,5,44,23); surfacePanel.setLayout(new GridLayout(4,1,0,0)); optionsPanel.add("surfacePanel",surfacePanel); surfacePanel.setBounds(0,0,646,180); surfacePanel.setVisible(false); xPanel.setLayout(new FlowLayout(FlowLayout.CENTER,5,5)); surfacePanel.add(xPanel); xPanel.setBounds(0,0,646,45); pFromLabel.setText("p from"); xPanel.add(pFromLabel); pFromLabel.setBounds(172,5,49,23); pFromField.setText("0"); xPanel.add(pFromField); pFromField.setBackground(java.awt.Color.white); pFromField.setBounds(226,5,31,23); pToLabel.setText("to"); xPanel.add(pToLabel); pToLabel.setBounds(262,5,24,23); pToField.setText("1"); xPanel.add(pToField); pToField.setBackground(java.awt.Color.white); pToField.setBounds(291,5,31,23); pStepLabel.setText("steps"); xPanel.add(pStepLabel); pStepLabel.setBounds(327,5,45,23); pStepField.setText("1"); xPanel.add(pStepField); pStepField.setBackground(java.awt.Color.white); pStepField.setBounds(377,5,31,23); xLabel.setText("x = "); xPanel.add(xLabel); xLabel.setBounds(413,5,32,23); xPanel.add(xField); xField.setBackground(java.awt.Color.white); xField.setBounds(450,5,24,23); yPanel.setLayout(new FlowLayout(FlowLayout.CENTER,5,5)); surfacePanel.add(yPanel); yPanel.setBounds(0,45,646,45); qFromLabel.setText("q from"); yPanel.add(qFromLabel); qFromLabel.setBounds(172,5,49,23); qFromField.setText("0"); yPanel.add(qFromField); qFromField.setBackground(java.awt.Color.white); qFromField.setBounds(226,5,31,23); qToLabel.setText("to"); yPanel.add(qToLabel); qToLabel.setBounds(262,5,24,23); qToField.setText("1"); yPanel.add(qToField); qToField.setBackground(java.awt.Color.white); qToField.setBounds(291,5,31,23); qStepLabel.setText("steps"); yPanel.add(qStepLabel); qStepLabel.setBounds(327,5,45,23); qStepField.setText("1"); yPanel.add(qStepField); qStepField.setBackground(java.awt.Color.white); qStepField.setBounds(377,5,31,23); yLabel.setText("y = "); yPanel.add(yLabel); yLabel.setBounds(413,5,32,23); yPanel.add(yField); yField.setBackground(java.awt.Color.white); yField.setBounds(450,5,24,23); zPanel.setLayout(new FlowLayout(FlowLayout.CENTER,5,5)); surfacePanel.add(zPanel); zPanel.setBounds(0,90,646,45); rFromLabel.setText("r from"); zPanel.add(rFromLabel); rFromLabel.setBounds(173,5,46,23); rFromField.setText("0"); zPanel.add(rFromField); rFromField.setBackground(java.awt.Color.white); rFromField.setBounds(224,5,31,23); rToLabel.setText("to"); zPanel.add(rToLabel); rToLabel.setBounds(260,5,24,23); rToField.setText("1"); zPanel.add(rToField); rToField.setBackground(java.awt.Color.white); rToField.setBounds(289,5,31,23); rStepLabel.setText("steps"); zPanel.add(rStepLabel); rStepLabel.setBounds(325,5,45,23); rStepField.setText("1"); zPanel.add(rStepField); rStepField.setBackground(java.awt.Color.white); rStepField.setBounds(375,5,31,23); zLabel.setText("z = "); zPanel.add(zLabel); zLabel.setBounds(411,5,32,23); zPanel.add(zField); zField.setBackground(java.awt.Color.white); zField.setBounds(448,5,24,23); generateSurfaceButton.setLabel("Generate Surface"); surfacePanel.add(generateSurfaceButton); generateSurfaceButton.setBounds(0,135,646,45); textPanel.setLayout(new GridLayout(2,1,0,5)); optionsPanel.add("textPanel",textPanel); textDisplayPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,5)); textPanel.add(textDisplayPanel); textDisplayPanel.setBounds(0,0,646,87); textLabel.setText("Text = "); textDisplayPanel.add(textLabel); textLabel.setBounds(214,29,49,23); textDisplayPanel.add(textField); textField.setBackground(java.awt.Color.white); textField.setBounds(263,29,24,23); textPanel.setBounds(0,0,646,180); textPanel.setVisible(false); textDisplayPanel.add(textCanvas1); textCanvas1.setBackground(java.awt.Color.white); textCanvas1.setFont(new Font("Dialog", Font.PLAIN, 12)); textCanvas1.setBounds(287,5,144,72); textControlPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,5)); textPanel.add(textControlPanel); textControlPanel.setBounds(0,92,646,87); boldButton.setLabel("Bold Off"); textControlPanel.add(boldButton); boldButton.setBackground(java.awt.Color.lightGray); boldButton.setBounds(112,6,57,23); italicButton.setLabel("Italic Off"); textControlPanel.add(italicButton); italicButton.setBackground(java.awt.Color.lightGray); italicButton.setBounds(169,6,57,23); sizeChoiceLabel.setText("Size = "); textControlPanel.add(sizeChoiceLabel); sizeChoiceLabel.setBounds(226,6,50,23); sizeChoice.addItem("8"); sizeChoice.addItem("10"); sizeChoice.addItem("12"); sizeChoice.addItem("14"); sizeChoice.addItem("16"); sizeChoice.addItem("18"); sizeChoice.addItem("20"); sizeChoice.addItem("24"); sizeChoice.addItem("30"); sizeChoice.addItem("36"); sizeChoice.addItem("48"); sizeChoice.addItem("72"); try { sizeChoice.select(2); } catch (IllegalArgumentException e) { } textControlPanel.add(sizeChoice); sizeChoice.setBounds(276,5,42,25); thicknessChoiceLabel.setText("Thickness = "); textControlPanel.add(thicknessChoiceLabel); thicknessChoiceLabel.setBounds(318,6,84,23); thicknessChoice.addItem("0"); thicknessChoice.addItem("1"); thicknessChoice.addItem("2"); thicknessChoice.addItem("4"); thicknessChoice.addItem("8"); thicknessChoice.addItem("16"); thicknessChoice.addItem("32"); thicknessChoice.addItem("64"); try { thicknessChoice.select(0); } catch (IllegalArgumentException e) { } textControlPanel.add(thicknessChoice); thicknessChoice.setBounds(402,5,42,25); generateTextButton.setLabel("Generate Text"); textControlPanel.add(generateTextButton); generateTextButton.setBounds(444,6,90,23); linksPanel.setLayout(new FlowLayout(FlowLayout.CENTER,0,0)); optionsPanel.add("linksPanel",linksPanel); linksPanel.setBounds(0,0,646,180); linksPanel.setVisible(false); httpLabel.setText("http:// = "); linksPanel.add(httpLabel); httpLabel.setBounds(142,0,56,23); linksPanel.add(urlField); urlField.setBackground(java.awt.Color.white); urlField.setBounds(198,0,24,23); alternateLabel.setText("Alternate Text ="); linksPanel.add(alternateLabel); alternateLabel.setBounds(222,0,97,23); linksPanel.add(alternateField); alternateField.setBackground(java.awt.Color.white); alternateField.setBounds(319,0,24,23); linksButton.setLabel("Link to Selected Surface(s)"); linksPanel.add(linksButton); linksButton.setBounds(343,0,161,23); ioPanel.setLayout(new FlowLayout(FlowLayout.CENTER,5,5)); optionsPanel.add("ioPanel",ioPanel); ioPanel.setBounds(0,0,646,180); ioPanel.setVisible(false); ioButtonPanel.setLayout(new GridLayout(3,1,0,0)); ioPanel.add(ioButtonPanel); ioButtonPanel.setBounds(66,55,69,69); readTextButton.setLabel("Read Text"); ioButtonPanel.add(readTextButton); readTextButton.setBackground(java.awt.Color.lightGray); readTextButton.setBounds(0,0,69,23); writeTextButton.setLabel("Write Text"); ioButtonPanel.add(writeTextButton); writeTextButton.setBackground(java.awt.Color.lightGray); writeTextButton.setBounds(0,23,69,23); readFileButton.setLabel("Read File"); ioButtonPanel.add(readFileButton); readFileButton.setBackground(java.awt.Color.lightGray); readFileButton.setBounds(0,46,69,23); ioPanel.add(ioArea); ioArea.setBackground(java.awt.Color.white); ioArea.setBounds(140,5,440,170); ((CardLayout) optionsPanel.getLayout()).show(optionsPanel,"buildPanel"); //}} //{{REGISTER_LISTENERS SymMouse aSymMouse = new SymMouse(); rollButton.addMouseListener(aSymMouse); rotateButton.addMouseListener(aSymMouse); moveButton.addMouseListener(aSymMouse); moveZButton.addMouseListener(aSymMouse); resizeButton.addMouseListener(aSymMouse); displayButton.addMouseListener(aSymMouse); nosyButton.addMouseListener(aSymMouse); wireOnButton.addMouseListener(aSymMouse); spinOnButton.addMouseListener(aSymMouse); aboutButton.addMouseListener(aSymMouse); linkOnButton.addMouseListener(aSymMouse); centerButton.addMouseListener(aSymMouse); buildPanelButton.addMouseListener(aSymMouse); surfacePanelButton.addMouseListener(aSymMouse); textPanelButton.addMouseListener(aSymMouse); linksPanelButton.addMouseListener(aSymMouse); ioPanelButton.addMouseListener(aSymMouse); wireButton.addMouseListener(aSymMouse); backgroundButton.addMouseListener(aSymMouse); surfaceButton.addMouseListener(aSymMouse); selectVertexButton.addMouseListener(aSymMouse); selectPolygonButton.addMouseListener(aSymMouse); selectGroupButton.addMouseListener(aSymMouse); selectAllButton.addMouseListener(aSymMouse); minimizeButton.addMouseListener(aSymMouse); changeButton.addMouseListener(aSymMouse); cutButton.addMouseListener(aSymMouse); copyButton.addMouseListener(aSymMouse); pasteButton.addMouseListener(aSymMouse); linksButton.addMouseListener(aSymMouse); generateSurfaceButton.addMouseListener(aSymMouse); readTextButton.addMouseListener(aSymMouse); writeTextButton.addMouseListener(aSymMouse); wireCanvas.addMouseListener(aSymMouse); readFileButton.addMouseListener(aSymMouse); SymText lSymText = new SymText(); redField.addTextListener(lSymText); greenField.addTextListener(lSymText); blueField.addTextListener(lSymText); redField.addMouseListener(aSymMouse); greenField.addMouseListener(aSymMouse); blueField.addMouseListener(aSymMouse); SymAction lSymAction = new SymAction(); wireButton.addActionListener(lSymAction); clearButton.addMouseListener(aSymMouse); generateTextButton.addMouseListener(aSymMouse); textField.addTextListener(lSymText); boldButton.addMouseListener(aSymMouse); italicButton.addMouseListener(aSymMouse); SymItem lSymItem = new SymItem(); sizeChoice.addItemListener(lSymItem); //}} } //{{DECLARE_CONTROLS java.awt.Panel controlPanel = new java.awt.Panel(); java.awt.Button rollButton = new java.awt.Button(); java.awt.Button rotateButton = new java.awt.Button(); java.awt.Button moveButton = new java.awt.Button(); java.awt.Button moveZButton = new java.awt.Button(); java.awt.Button resizeButton = new java.awt.Button(); java.awt.Button displayButton = new java.awt.Button(); java.awt.Button nosyButton = new java.awt.Button(); java.awt.Button wireOnButton = new java.awt.Button(); java.awt.Button spinOnButton = new java.awt.Button(); java.awt.Button linkOnButton = new java.awt.Button(); java.awt.Button centerButton = new java.awt.Button(); java.awt.Button aboutButton = new java.awt.Button(); wire wireCanvas = new wire(); java.awt.Panel wireBuilderPanel = new java.awt.Panel(); java.awt.Label instructionsLabel = new java.awt.Label(); java.awt.Panel buttonsPanel = new java.awt.Panel(); java.awt.Button buildPanelButton = new java.awt.Button(); java.awt.Button surfacePanelButton = new java.awt.Button(); java.awt.Button textPanelButton = new java.awt.Button(); java.awt.Button linksPanelButton = new java.awt.Button(); java.awt.Button ioPanelButton = new java.awt.Button(); java.awt.Panel optionsPanel = new java.awt.Panel(); java.awt.Panel buildPanel = new java.awt.Panel(); java.awt.Panel toolsPanel = new java.awt.Panel(); java.awt.Label redLabel = new java.awt.Label(); java.awt.TextField redField = new java.awt.TextField(3); java.awt.Label greenLabel = new java.awt.Label(); java.awt.TextField greenField = new java.awt.TextField(3); java.awt.Label blueLabel = new java.awt.Label(); java.awt.TextField blueField = new java.awt.TextField(3); java.awt.Button wireButton = new java.awt.Button(); java.awt.Button surfaceButton = new java.awt.Button(); java.awt.Button backgroundButton = new java.awt.Button(); java.awt.Panel selectPanel = new java.awt.Panel(); java.awt.Label selectLabel = new java.awt.Label(); java.awt.Button selectVertexButton = new java.awt.Button(); java.awt.Button selectPolygonButton = new java.awt.Button(); java.awt.Button selectGroupButton = new java.awt.Button(); java.awt.Button selectAllButton = new java.awt.Button(); java.awt.Panel selectedPanel = new java.awt.Panel(); java.awt.Button minimizeButton = new java.awt.Button(); java.awt.Button changeButton = new java.awt.Button(); java.awt.Button cutButton = new java.awt.Button(); java.awt.Button copyButton = new java.awt.Button(); java.awt.Button pasteButton = new java.awt.Button(); java.awt.Button clearButton = new java.awt.Button(); java.awt.Panel surfacePanel = new java.awt.Panel(); java.awt.Panel xPanel = new java.awt.Panel(); java.awt.Label pFromLabel = new java.awt.Label(); java.awt.TextField pFromField = new java.awt.TextField(3); java.awt.Label pToLabel = new java.awt.Label(); java.awt.TextField pToField = new java.awt.TextField(3); java.awt.Label pStepLabel = new java.awt.Label(); java.awt.TextField pStepField = new java.awt.TextField(3); java.awt.Label xLabel = new java.awt.Label(); java.awt.TextField xField = new java.awt.TextField(40); java.awt.Panel yPanel = new java.awt.Panel(); java.awt.Label qFromLabel = new java.awt.Label(); java.awt.TextField qFromField = new java.awt.TextField(3); java.awt.Label qToLabel = new java.awt.Label(); java.awt.TextField qToField = new java.awt.TextField(3); java.awt.Label qStepLabel = new java.awt.Label(); java.awt.TextField qStepField = new java.awt.TextField(3); java.awt.Label yLabel = new java.awt.Label(); java.awt.TextField yField = new java.awt.TextField(40); java.awt.Panel zPanel = new java.awt.Panel(); java.awt.Label rFromLabel = new java.awt.Label(); java.awt.TextField rFromField = new java.awt.TextField(3); java.awt.Label rToLabel = new java.awt.Label(); java.awt.TextField rToField = new java.awt.TextField(3); java.awt.Label rStepLabel = new java.awt.Label(); java.awt.TextField rStepField = new java.awt.TextField(3); java.awt.Label zLabel = new java.awt.Label(); java.awt.TextField zField = new java.awt.TextField(40); java.awt.Button generateSurfaceButton = new java.awt.Button(); java.awt.Panel textPanel = new java.awt.Panel(); java.awt.Panel textDisplayPanel = new java.awt.Panel(); java.awt.Label textLabel = new java.awt.Label(); java.awt.TextField textField = new java.awt.TextField(4); textCanvas textCanvas1 = new textCanvas(); java.awt.Panel textControlPanel = new java.awt.Panel(); java.awt.Button boldButton = new java.awt.Button(); java.awt.Button italicButton = new java.awt.Button(); java.awt.Label sizeChoiceLabel = new java.awt.Label(); java.awt.Choice sizeChoice = new java.awt.Choice(); java.awt.Label thicknessChoiceLabel = new java.awt.Label(); java.awt.Choice thicknessChoice = new java.awt.Choice(); java.awt.Button generateTextButton = new java.awt.Button(); java.awt.Panel linksPanel = new java.awt.Panel(); java.awt.Label httpLabel = new java.awt.Label(); java.awt.TextField urlField = new java.awt.TextField(30); java.awt.Label alternateLabel = new java.awt.Label(); java.awt.TextField alternateField = new java.awt.TextField(10); java.awt.Button linksButton = new java.awt.Button(); java.awt.Panel ioPanel = new java.awt.Panel(); java.awt.Panel ioButtonPanel = new java.awt.Panel(); java.awt.Button readTextButton = new java.awt.Button(); java.awt.Button writeTextButton = new java.awt.Button(); java.awt.Button readFileButton = new java.awt.Button(); java.awt.TextArea ioArea = new java.awt.TextArea(5,80); //}} //Event Classes------------------------------------------------------------------------------------ class SymMouse extends java.awt.event.MouseAdapter { public void mouseEntered(java.awt.event.MouseEvent event) { Object object = event.getSource(); if (object == redField) colorField_MouseEntered(event); else if (object == greenField) colorField_MouseEntered(event); else if (object == blueField) colorField_MouseEntered(event); } public void mouseClicked(java.awt.event.MouseEvent event) { Object object = event.getSource(); if (object == wireCanvas) wireCanvas_mouseClicked(event); } public void mouseReleased(java.awt.event.MouseEvent event) { Object object = event.getSource(); if (object == rollButton) rollButton_MouseReleased(event); else if (object == rotateButton) rotateButton_MouseReleased(event); else if (object == moveButton) moveButton_MouseReleased(event); else if (object == moveZButton) moveZButton_MouseReleased(event); else if (object == resizeButton) resizeButton_MouseReleased(event); else if (object == displayButton) displayButton_MouseReleased(event); else if (object == nosyButton) nosyButton_MouseReleased(event); else if (object == wireOnButton) wireOnButton_MouseReleased(event); else if (object == spinOnButton) spinOnButton_MouseReleased(event); else if (object == linkOnButton) linkOnButton_MouseReleased(event); else if (object == centerButton) centerButton_MouseReleased(event); else if (object == aboutButton) aboutButton_MouseReleased(event); else if (object == buildPanelButton) buildPanelButton_MouseReleased(event); else if (object == surfacePanelButton) surfacePanelButton_MouseReleased(event); else if (object == textPanelButton) textPanelButton_MouseReleased(event); else if (object == linksPanelButton) linksPanelButton_MouseReleased(event); else if (object == ioPanelButton) ioPanelButton_MouseReleased(event); else if (object == wireButton) wireButton_MouseReleased(event); else if (object == surfaceButton) surfaceButton_MouseReleased(event); else if (object == backgroundButton) backgroundButton_MouseReleased(event); else if (object == selectVertexButton) selectVertexButton_MouseReleased(event); if (object == selectPolygonButton) selectPolygonButton_MouseReleased(event); else if (object == selectGroupButton) selectGroupButton_MouseReleased(event); else if (object == selectAllButton) selectAllButton_MouseReleased(event); else if (object == minimizeButton) minimizeButton_MouseReleased(event); else if (object == changeButton) changeButton_MouseReleased(event); else if (object == cutButton) cutButton_MouseReleased(event); else if (object == copyButton) copyButton_MouseReleased(event); else if (object == pasteButton) pasteButton_MouseReleased(event); else if (object == generateSurfaceButton) generateSurfaceButton_MouseReleased(event); else if (object == readTextButton) readTextButton_MouseReleased(event); else if (object == writeTextButton) writeTextButton_MouseReleased(event); else if (object == linksButton) linksButton_MouseReleased(event); else if (object == readFileButton) readFileButton_MouseReleased(event); else if (object == clearButton) clearButton_MouseReleased(event); else if (object == generateTextButton) generateTextButton_MouseReleased(event); else if (object == boldButton) boldButton_MouseReleased(event); else if (object == italicButton) italicButton_MouseReleased(event); } } class SymText implements java.awt.event.TextListener { public void textValueChanged(java.awt.event.TextEvent event) { Object object = event.getSource(); if (object == redField) colorField_TextValueChanged(event); else if (object == greenField) colorField_TextValueChanged(event); else if (object == blueField) colorField_TextValueChanged(event); else if (object == textField) textField_TextValueChanged(event); } } class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == wireButton) wireButton_ActionPerformed(event); } } //Get and Set Methods------------------------------------------------------------------------------ boolean spinOn = false; public void setSpinOn(boolean spinOn) { this.spinOn = spinOn; } public boolean getSpinOn() { return spinOn; } //Event Methods------------------------------------------------------------------------------------ void rollButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("Roll"); } void rotateButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("Rotate"); } void moveButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("MoveXY"); } void moveZButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("MoveZ"); } void resizeButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("Resize"); } void displayButton_MouseReleased(java.awt.event.MouseEvent event) { if(wireCanvas.getDisplay().equals("2D")) { displayButton.setLabel("3D"); nosyButton.setLabel("Parallax"); wireCanvas.setDisplay("3D"); } else if(wireCanvas.getDisplay().equals("3D")) { displayButton.setLabel("Polar"); nosyButton.setLabel("Parallax"); wireCanvas.setDisplay("Polar"); } else { displayButton.setLabel("2D"); nosyButton.setLabel(""); wireCanvas.setDisplay("2D"); } wireCanvas.setMode("Roll"); } void nosyButton_MouseReleased(java.awt.event.MouseEvent event) { if(wireCanvas.getDisplay().equals("3D")|wireCanvas.getDisplay().equals("Polar")) { wireCanvas.setMode("Parallax"); } } void wireOnButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setWireOn(!wireCanvas.getWireOn()); if(wireCanvas.getWireOn()) { wireOnButton.setLabel("Wire On"); } else { wireOnButton.setLabel("Wire Off"); } wireCanvas.setMode("Roll"); } void spinOnButton_MouseReleased(java.awt.event.MouseEvent event) { setSpinOn(!getSpinOn()); if(getSpinOn()) { spinOnButton.setLabel("Spin On"); } else { spinOnButton.setLabel("Spin Off"); } } void linkOnButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setLinksOn(!wireCanvas.getLinksOn()); if(wireCanvas.getLinksOn()) { linkOnButton.setLabel("Link On"); } else { linkOnButton.setLabel("Link Off"); } } void centerButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.center(); } URL aboutURL; void aboutButton_MouseReleased(java.awt.event.MouseEvent event) { try { aboutURL = new URL("http://organic.chemistry.utep.edu"); } catch(MalformedURLException e) { System.out.println("Could not connect to URL"); } if(aboutURL != null) { getAppletContext().showDocument(aboutURL,"_blank"); } } void buildPanelButton_MouseReleased(java.awt.event.MouseEvent event) { java.awt.CardLayout cardLayout = (java.awt.CardLayout)optionsPanel.getLayout(); cardLayout.show(optionsPanel,"buildPanel"); wireCanvas.setMode("Wire"); } void surfacePanelButton_MouseReleased(java.awt.event.MouseEvent event) { java.awt.CardLayout cardLayout = (java.awt.CardLayout)optionsPanel.getLayout(); cardLayout.show(optionsPanel,"surfacePanel"); wireCanvas.setMode("Roll"); } void textPanelButton_MouseReleased(java.awt.event.MouseEvent event) { java.awt.CardLayout cardLayout = (java.awt.CardLayout)optionsPanel.getLayout(); cardLayout.show(optionsPanel,"textPanel"); wireCanvas.setMode("Roll"); } void linksPanelButton_MouseReleased(java.awt.event.MouseEvent event) { java.awt.CardLayout cardLayout = (java.awt.CardLayout)optionsPanel.getLayout(); cardLayout.show(optionsPanel,"linksPanel"); wireCanvas.setMode("Roll"); } void ioPanelButton_MouseReleased(java.awt.event.MouseEvent event) { java.awt.CardLayout cardLayout = (java.awt.CardLayout)optionsPanel.getLayout(); cardLayout.show(optionsPanel,"ioPanel"); wireCanvas.setMode("Roll"); } void colorField_TextValueChanged(java.awt.event.TextEvent event) { int red = Integer.parseInt(redField.getText()); int green = Integer.parseInt(greenField.getText()); int blue = Integer.parseInt(blueField.getText()); if(red > -1 && red < 256 && green > -1 && green < 256 && blue > -1 && blue < 256) { changeButton.setBackground(new Color(red,green,blue)); wireCanvas.setColor(changeButton.getBackground()); changeButton.setForeground(new Color(255-red,255-green,255-blue)); } } void wireButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("Wire"); } void surfaceButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("Surface"); } void backgroundButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setBackground(changeButton.getBackground()); } void selectVertexButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("selectVertex"); } void selectPolygonButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("selectPolygon"); } void selectGroupButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setMode("selectGroup"); } void selectAllButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.selectAll(); } void minimizeButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.minimize(); } void changeButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.recolor(); } void cutButton_MouseReleased(java.awt.event.MouseEvent event) { ioArea.setText(wireCanvas.output("Cut")); wireCanvas.clear(); wireCanvas.input(ioArea.getText()); } void copyButton_MouseReleased(java.awt.event.MouseEvent event) { ioArea.setText(wireCanvas.output("Copy")); } void pasteButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.input(ioArea.getText()); } void clearButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.clear(); } void generateSurfaceButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setSelectAll(true); wireCanvas.selectAll(); if ( xField.getText().indexOf("x") == -1 && xField.getText().indexOf("y") == -1 && xField.getText().indexOf("z") == -1 && yField.getText().indexOf("y") == -1 && yField.getText().indexOf("z") == -1 && zField.getText().indexOf("z") == -1 ) { float pFrom = Float.valueOf(pFromField.getText()).floatValue(); float pTo = Float.valueOf(pToField.getText()).floatValue(); float pSteps = Float.valueOf(pStepField.getText()).floatValue(); float qFrom = Float.valueOf(qFromField.getText()).floatValue(); float qTo = Float.valueOf(qToField.getText()).floatValue(); float qSteps = Float.valueOf(qStepField.getText()).floatValue(); float rFrom = Float.valueOf(rFromField.getText()).floatValue(); float rTo = Float.valueOf(rToField.getText()).floatValue(); float rSteps = Float.valueOf(rStepField.getText()).floatValue(); if(Math.abs(rSteps) > 0 && (rTo-rFrom)/rSteps > 0) { for(float r = rFrom; r < rTo; r+=(rTo-rFrom)/rSteps) { if(Math.abs(qSteps) > 0 && (qTo-qFrom)/qSteps > 0) { for(float q = qFrom; q < qTo; q+=(qTo-qFrom)/qSteps) { if(Math.abs(pSteps) > 0 && (pTo-pFrom)/pSteps > 0) { for(float p = pFrom; p < pTo; p+=(pTo-pFrom)/pSteps) { wireCanvas.addSurface(wireCanvas.getColor()); float x = 0; float y = 0; float z = 0; x = Evaluate.evaluate(xField.getText(),x,y,z,p,q,r); y = Evaluate.evaluate(yField.getText(),x,y,z,p,q,r); z = Evaluate.evaluate(zField.getText(),x,y,z,p,q,r); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(x,-y,z)); x = Evaluate.evaluate(xField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q,r); y = Evaluate.evaluate(yField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q,r); z = Evaluate.evaluate(zField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q,r); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(x,-y,z)); x = Evaluate.evaluate(xField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q+(qTo-qFrom)/qSteps,r); y = Evaluate.evaluate(yField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q+(qTo-qFrom)/qSteps,r); z = Evaluate.evaluate(zField.getText(),x,y,z,p+(pTo-pFrom)/pSteps,q+(qTo-qFrom)/qSteps,r); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(x,-y,z)); x = Evaluate.evaluate(xField.getText(),x,y,z,p,q+(qTo-qFrom)/qSteps,r); y = Evaluate.evaluate(yField.getText(),x,y,z,p,q+(qTo-qFrom)/qSteps,r); z = Evaluate.evaluate(zField.getText(),x,y,z,p,q+(qTo-qFrom)/qSteps,r); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(x,-y,z)); } } } } } } } wireCanvas.renderAll(); } void linksButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setLink(urlField.getText(),alternateField.getText()); } void readTextButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.input(ioArea.getText()); } void writeTextButton_MouseReleased(java.awt.event.MouseEvent event) { ioArea.setText(wireCanvas.output("All")); } void wireCanvas_mouseClicked(java.awt.event.MouseEvent event) { Point point = new Point(event.getX(),event.getY()); if(wireCanvas.getLinksOn()) { Surface surface = wireCanvas.identifySurface(point); URL url = null; if(surface != null && surface.url != null && !surface.url.equals("")) { try { url = new URL(surface.url); } catch(MalformedURLException e) { System.out.println("Could not connect to URL"); } if(url != null) { getAppletContext().showDocument(url,"_blank"); } } } } void readFileButton_MouseReleased(java.awt.event.MouseEvent event) { String urlString = getCodeBase().toString(); char URLSeparator = '/'; urlString = urlString.substring(0,urlString.lastIndexOf(URLSeparator))+URLSeparator+ioArea.getText(); try { URL url = new URL(urlString); InputStream in = url.openStream(); BufferedReader data = new BufferedReader(new InputStreamReader(in)); wireCanvas.readURL(data); } catch(MalformedURLException e) { System.out.println("Cannot connect."); } catch(IOException e) { System.out.println("Not found."); } } void colorField_MouseEntered(java.awt.event.MouseEvent event) { instructionsLabel.setText("Set from 0 to 255."); } void wireButton_ActionPerformed(java.awt.event.ActionEvent event) { instructionsLabel.setText("Drag on canvas to create wire frame."); } void generateTextButton_MouseReleased(java.awt.event.MouseEvent event) { wireCanvas.setSelectAll(true); wireCanvas.selectAll(); int pixels[] = textCanvas1.myPixels(); int thickness = Integer.parseInt(thicknessChoice.getSelectedItem()); for (int j = 1; j < textCanvas1.getSize().height-1; j++) { for (int i = 1; i < textCanvas1.getSize().width-1; i++) { if((pixels[j * textCanvas1.getSize().width + i] & 0x00ffffff) != 0x00ffffff) { wireCanvas.addSurface(wireCanvas.getColor()); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j+1,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j+1,0)); if(thickness > 0) { if((pixels[(j-1)*textCanvas1.getSize().width + i] & 0x00ffffff) == 0x00ffffff) { wireCanvas.addSurface(wireCanvas.getColor()); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j,-thickness)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j,-thickness)); } if((pixels[j * textCanvas1.getSize().width + i + 1] & 0x00ffffff) == 0x00ffffff) { wireCanvas.addSurface(wireCanvas.getColor()); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j+1,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j+1,-thickness)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j,-thickness)); } if((pixels[(j+1)*textCanvas1.getSize().width + i] & 0x00ffffff) == 0x00ffffff) { wireCanvas.addSurface(wireCanvas.getColor()); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j+1,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j+1,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j+1,-thickness)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i+1,j+1,-thickness)); } if((pixels[j*textCanvas1.getSize().width + i-1] & 0x00ffffff) == 0x00ffffff) { wireCanvas.addSurface(wireCanvas.getColor()); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j+1,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j,0)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j,-thickness)); wireCanvas.addVertexToLastSurface(wireCanvas.addVertex(i,j+1,-thickness)); } } } } } wireCanvas.center(); wireCanvas.renderAll(); } void textField_TextValueChanged(java.awt.event.TextEvent event) { textCanvas1.setText(textField.getText()); } void boldButton_MouseReleased(java.awt.event.MouseEvent event) { if(textCanvas1.getFont().isBold()) { textCanvas1.setFont(new Font("Dialog", textCanvas1.getFont().getStyle()^Font.BOLD, textCanvas1.getFont().getSize())); boldButton.setLabel("Bold Off"); } else { textCanvas1.setFont(new Font("Dialog", textCanvas1.getFont().getStyle()^Font.BOLD, textCanvas1.getFont().getSize())); boldButton.setLabel("Bold On"); } } void italicButton_MouseReleased(java.awt.event.MouseEvent event) { if(textCanvas1.getFont().isItalic()) { textCanvas1.setFont(new Font("Dialog", textCanvas1.getFont().getStyle()^Font.ITALIC, textCanvas1.getFont().getSize())); italicButton.setLabel("Italic Off"); } else { textCanvas1.setFont(new Font("Dialog", textCanvas1.getFont().getStyle()^Font.ITALIC, textCanvas1.getFont().getSize())); italicButton.setLabel("Italic On"); } } class SymItem implements java.awt.event.ItemListener { public void itemStateChanged(java.awt.event.ItemEvent event) { Object object = event.getSource(); if (object == sizeChoice) sizeChoice_ItemStateChanged(event); } } void sizeChoice_ItemStateChanged(java.awt.event.ItemEvent event) { textCanvas1.setFont(new Font("Dialog", textCanvas1.getFont().getStyle(), Integer.parseInt(sizeChoice.getSelectedItem()))); } }