package language; /* A basic extension of the javax.swing.JApplet class */ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import javax.swing.JTextArea; import application.draw.DrawFrame; import controlledparts.ControlledFrame; import controlledparts.FrameWithLanguageProcessor; public class LanguageApplet extends javax.swing.JApplet implements FrameWithLanguageProcessor { public void resetStopFlag() { } public boolean stopFlagIsOn() { return false; } void loadExample() { String urlname=""; String currentExample=((String)(exampleChoice.getSelectedItem())); URL path=this.getCodeBase(); File thePath=new File(path.toString(),currentExample); String separator=""+System.getProperty("file.separator"); /* if(separator.equals("\\")) urlname="file:///"+thePath.getPath(); else urlname="file://"+thePath.getPath(); */ urlname=thePath.getPath(); System.out.println("url="+urlname); loadProgram( urlname ); } void programRun() { try { // edittingArea.show(); } catch (Exception e) { } String input=programArea.getText(); // textOutput.appendText("> "+input+"\n"); inqueue.putString(input); basic.clearEnvironment(); // graphicsArea.clear(); LispObject o=((ReadLine)(basic.read)).readProgram(inqueue); LispObject p=basic.basicparser.parseBasic(o); try{ basic.evalList(p); } catch(Exception e){} outputArea.repaint(); } void loadProgram(String urlname) { BufferedReader inputStream=null; URL url; // String codingCode=this.communicationNode.encodingCode; String codingCode="EUC-JP"; JTextArea mes=this.outputArea; // int startTime=this.communicationNode.eventRecorder.timer.getTime(); if(urlname==null){ mes.append("URL Name is expected.\n"); return; } mes.append("reading "+urlname+"\n"); try{ url=new URL(urlname); } catch(MalformedURLException e) { mes.append("MalformedURLException\n"); return; } try{ InputStreamReader reader= new InputStreamReader(url.openStream(),codingCode); inputStream=//new DataInputStream(url.openStream()); new BufferedReader( reader ); } catch(UnsupportedEncodingException e){ mes.append("encoding unsupported.\n"); return; } catch(IOException e){ mes.append("url open error.\n"); return; } this.programArea.setText(""); int tlength=0; String x=null; do{ x=null; try{ x=inputStream.readLine(); } catch(java.io.IOException e){ break;} if(x!=null){ x=x+"\n"; tlength=tlength+x.length(); this.programArea.append(x); } } while(x!=null); try{ inputStream.close(); } catch(IOException e) { mes.append("read:IOException while closing.\n");} mes.append("reading done.\n"); } ABasic basic; CQueue inqueue; public boolean traceFlagIsOn() { // This method is derived from interface language.GuiWithTraceFlag // to do: code goes here return this.traceCheck.isSelected(); } public void init() { // This line prevents the "Swing: checked access to system event queue" message seen in some browsers. getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE); // 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 getContentPane().setLayout(null); setSize(491,366); JScrollPane1.setOpaque(true); getContentPane().add(JScrollPane1); JScrollPane1.setBounds(120,24,348,168); JScrollPane1.getViewport().add(programArea); programArea.setBounds(0,0,345,165); JScrollPane2.setOpaque(true); getContentPane().add(JScrollPane2); JScrollPane2.setBounds(120,192,348,84); JScrollPane2.getViewport().add(outputArea); outputArea.setBounds(0,0,345,81); JScrollPane3.setOpaque(true); getContentPane().add(JScrollPane3); JScrollPane3.setBounds(120,276,264,72); JScrollPane3.getViewport().add(inputArea); inputArea.setBounds(0,0,261,69); fileButton.setText("file"); fileButton.setActionCommand("file"); getContentPane().add(fileButton); fileButton.setBounds(24,48,96,24); runProgramButton.setText("run"); runProgramButton.setActionCommand("run"); getContentPane().add(runProgramButton); runProgramButton.setBounds(24,144,96,24); enterButton.setText("enter"); enterButton.setActionCommand("enter"); getContentPane().add(enterButton); enterButton.setBounds(384,276,84,72); clearOutputButton.setText("clear"); clearOutputButton.setActionCommand("clear"); getContentPane().add(clearOutputButton); clearOutputButton.setBounds(24,216,96,24); clearInputButton.setText("clear"); clearInputButton.setActionCommand("clear"); getContentPane().add(clearInputButton); clearInputButton.setBounds(24,300,96,24); JLabel1.setText("output"); getContentPane().add(JLabel1); JLabel1.setBounds(24,192,96,24); JLabel2.setText("input"); getContentPane().add(JLabel2); JLabel2.setBounds(24,276,96,24); JLabel3.setText("program"); getContentPane().add(JLabel3); JLabel3.setBounds(24,24,96,24); clearProgramButton.setText("clear"); clearProgramButton.setActionCommand("clear"); getContentPane().add(clearProgramButton); clearProgramButton.setBounds(24,168,96,24); getContentPane().add(exampleChoice); exampleChoice.setBounds(24,72,96,24); getContentPane().add(languageChoice); languageChoice.setBounds(24,120,96,24); loadButton.setText("load"); loadButton.setActionCommand("load"); getContentPane().add(loadButton); loadButton.setBounds(24,96,96,24); traceCheck.setText("trace"); traceCheck.setActionCommand("trace"); getContentPane().add(traceCheck); traceCheck.setBounds(24,324,96,24); //}} //{{REGISTER_LISTENERS SymAction lSymAction = new SymAction(); runProgramButton.addActionListener(lSymAction); clearProgramButton.addActionListener(lSymAction); clearOutputButton.addActionListener(lSymAction); clearInputButton.addActionListener(lSymAction); enterButton.addActionListener(lSymAction); loadButton.addActionListener(lSymAction); //}} exampleChoice.addItem("factorial.bas"); exampleChoice.addItem("hanoi.bas"); exampleChoice.addItem("fibonacci.bas"); exampleChoice.addItem("sieve.bas"); exampleChoice.addItem("gauss.bas"); exampleChoice.addItem("math-fun.bas"); exampleChoice.addItem("lines1.bas"); exampleChoice.addItem("sinecurve.bas"); inqueue=new CQueue(); basic=new ABasic(inputArea,outputArea,inqueue,this); basic.start(); } //{{DECLARE_CONTROLS javax.swing.JScrollPane JScrollPane1 = new javax.swing.JScrollPane(); javax.swing.JTextArea programArea = new javax.swing.JTextArea(); javax.swing.JScrollPane JScrollPane2 = new javax.swing.JScrollPane(); javax.swing.JTextArea outputArea = new javax.swing.JTextArea(); javax.swing.JScrollPane JScrollPane3 = new javax.swing.JScrollPane(); javax.swing.JTextArea inputArea = new javax.swing.JTextArea(); javax.swing.JButton fileButton = new javax.swing.JButton(); javax.swing.JButton runProgramButton = new javax.swing.JButton(); javax.swing.JButton enterButton = new javax.swing.JButton(); javax.swing.JButton clearOutputButton = new javax.swing.JButton(); javax.swing.JButton clearInputButton = new javax.swing.JButton(); javax.swing.JLabel JLabel1 = new javax.swing.JLabel(); javax.swing.JLabel JLabel2 = new javax.swing.JLabel(); javax.swing.JLabel JLabel3 = new javax.swing.JLabel(); javax.swing.JButton clearProgramButton = new javax.swing.JButton(); javax.swing.JComboBox exampleChoice = new javax.swing.JComboBox(); javax.swing.JComboBox languageChoice = new javax.swing.JComboBox(); javax.swing.JButton loadButton = new javax.swing.JButton(); javax.swing.JCheckBox traceCheck = new javax.swing.JCheckBox(); //}} class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == runProgramButton) runProgramButton_actionPerformed(event); else if (object == clearProgramButton) clearProgramButton_actionPerformed(event); else if (object == clearOutputButton) clearOutputButton_actionPerformed(event); else if (object == clearInputButton) clearInputButton_actionPerformed(event); else if (object == enterButton) enterButton_actionPerformed(event); else if (object == loadButton) loadButton_actionPerformed(event); } } void runProgramButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. runProgramButton_actionPerformed_Interaction1(event); } void runProgramButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { // programArea.show(); } catch (java.lang.Exception e) { } programRun(); } void clearProgramButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. clearProgramButton_actionPerformed_Interaction1(event); } void clearProgramButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { programArea.setText(""); } catch (java.lang.Exception e) { } } void clearOutputButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. clearOutputButton_actionPerformed_Interaction1(event); } void clearOutputButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { outputArea.setText(""); } catch (java.lang.Exception e) { } } void clearInputButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. clearInputButton_actionPerformed_Interaction1(event); } void clearInputButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { inputArea.setText(""); } catch (java.lang.Exception e) { } } void enterButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. enterButton_actionPerformed_Interaction1(event); } void enterButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { // inputArea.show(); } catch (java.lang.Exception e) { } String input=inputArea.getText(); outputArea.append(input+"\n"); inqueue.putString(input); // lisp.evals(inqueue); inputArea.setText(""); inputArea.repaint(); } void loadButton_actionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. loadButton_actionPerformed_Interaction1(event); } void loadButton_actionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { // exampleChoice.getSelectedItem(); } catch (java.lang.Exception e) { } this.loadExample(); } public DrawFrame getDrawFrame() { // TODO 自動生成されたメソッド・スタブ return null; } public ControlledFrame lookUp(String name) { // TODO 自動生成されたメソッド・スタブ return null; } }