[BACK]Return to PolyCalc.java CVS log [TXT][DIR] Up to [local] / OpenXM / src / OpenMath

Diff for /OpenXM/src/OpenMath/PolyCalc.java between version 1.2 and 1.14

version 1.2, 1999/11/02 14:54:37 version 1.14, 2005/07/17 02:49:27
Line 1 
Line 1 
 /**  /**
  * PolyCalc.java $OpenXM$   * $OpenXM: OpenXM/src/OpenMath/PolyCalc.java,v 1.13 2005/07/17 02:48:21 takayama Exp $
  */   */
   
 import JP.ac.kobe_u.math.tam.OpenXM.*;  /*
      How to try.
       ox -ox ox_sm1
       java PolyCalc
       Input two polynomials in x and y  and Press the grobner base button.
       Actions for other buttons have not yet been implemented.
    */
   
   import ORG.openxm.tam.*;
 import java.applet.*;  import java.applet.*;
   import java.awt.event.*;
 import java.awt.*;  import java.awt.*;
   
 class PolyCalc extends Applet{  class PolyCalc extends Applet implements ActionListener,Runnable{
   private String host;      private String host = "localhost";
   int ControlPort,DataPort;      private int ControlPort = 1200,DataPort = 1300;
   private OpenXM oxm;      private OpenXM oxm;
   private Button random1_button,random2_button;      //private Button random1_button,random2_button;
   private Button mul_button,remainder_button,swap_button,set_button;      //private Button mul_button,remainder_button,swap_button,set_button;
   private TextField poly1,poly2;      private TextField poly1,poly2;
   private TextArea textarea;      private TextArea textarea;
   //private Text      private Thread thread = null;
       private boolean debug = false;
       //private Text
   
   PolyCalc(String host,int ControlPort,int DataPort){      PolyCalc(String host,int ControlPort,int DataPort){
     this.host = host;          this.host = host;
     this.ControlPort = ControlPort;          this.ControlPort = ControlPort;
     this.DataPort = DataPort;          this.DataPort = DataPort;
   }      }
   
   public void init(){      public void init(){
     GridBagLayout gridbag = new GridBagLayout();          GridBagLayout gridbag = new GridBagLayout();
     GridBagConstraints c = new GridBagConstraints();          GridBagConstraints c = new GridBagConstraints();
           Button button;
   
     //setFont();          //setFont();
     setLayout(gridbag);          setLayout(gridbag);
   
     c.fill = GridBagConstraints.BOTH;          c.fill = GridBagConstraints.BOTH;
   
     textarea = new TextArea();          textarea = new TextArea();
     textarea.setEditable(false);          textarea.setEditable(false);
     c.gridwidth = GridBagConstraints.REMAINDER;          c.gridwidth = GridBagConstraints.REMAINDER;
     gridbag.setConstraints(textarea,c);          gridbag.setConstraints(textarea,c);
     c.gridwidth = 1;          c.gridwidth = 1;
     add(textarea);          add(textarea);
   
     {          {
       Label label = new Label("poly 1:");              Label label = new Label("poly A:");
       gridbag.setConstraints(label,c);              gridbag.setConstraints(label,c);
       add(label);              add(label);
     }          }
   
     random1_button = new Button("generate random polynomial");          button = new Button("generate random polynomial A");
     gridbag.setConstraints(random1_button,c);          button.addActionListener(this);
     add(random1_button);          gridbag.setConstraints(button,c);
           add(button);
   
     mul_button = new Button("poly1 * poly2");          button = new Button("A * B");
     c.gridwidth = GridBagConstraints.REMAINDER;          button.addActionListener(this);
     gridbag.setConstraints(mul_button,c);          c.gridwidth = GridBagConstraints.REMAINDER;
     c.gridwidth = 1;          gridbag.setConstraints(button,c);
     add(mul_button);          c.gridwidth = 1;
           add(button);
   
     poly1 = new TextField(20);          poly1 = new TextField(20);
     c.gridwidth = 2;          poly1.addActionListener(this);
     gridbag.setConstraints(poly1,c);          c.gridwidth = 2;
     c.gridwidth = 1;          gridbag.setConstraints(poly1,c);
     add(poly1);          c.gridwidth = 1;
           add(poly1);
   
     remainder_button = new Button("poly1 % poly2");          button = new Button("A % B");
     //c.gridx = 2;          button.addActionListener(this);
     //c.weightx = 0.0;          //c.gridx = 2;
     gridbag.setConstraints(remainder_button,c);          //c.weightx = 0.0;
     add(remainder_button);          gridbag.setConstraints(button,c);
           add(button);
   
     swap_button = new Button("swap poly1 & poly2");          button = new Button("swap A & B");
     c.gridwidth = GridBagConstraints.REMAINDER;          button.addActionListener(this);
     gridbag.setConstraints(swap_button,c);          c.gridwidth = GridBagConstraints.REMAINDER;
     c.gridwidth = 1;          gridbag.setConstraints(button,c);
     add(swap_button);          c.gridwidth = 1;
           add(button);
   
     {          {
       Label label = new Label("poly 2:");              Label label = new Label("poly B:");
       gridbag.setConstraints(label,c);              gridbag.setConstraints(label,c);
       add(label);              add(label);
           }
   
           button = new Button("generate random polynomial B");
           button.addActionListener(this);
           gridbag.setConstraints(button,c);
           add(button);
   
           button = new Button("poly1 <= poly2");
           button.addActionListener(this);
           c.gridwidth = GridBagConstraints.REMAINDER;
           gridbag.setConstraints(button,c);
           c.gridwidth = 1;
           add(button);
   
           poly2 = new TextField();
           c.gridwidth = 2;
           gridbag.setConstraints(poly2,c);
           c.gridwidth = 1;
           add(poly2);
   
           button = new Button("grobner base");
           button.addActionListener(this);
           gridbag.setConstraints(button,c);
           add(button);
   
           button = new Button("quit");
           button.addActionListener(this);
           gridbag.setConstraints(button,c);
           add(button);
     }      }
   
     random2_button = new Button("generate random polynomial");      public void run(){ // for debug
     gridbag.setConstraints(random2_button,c);          try{
     add(random2_button);              while(true){
                   OXmessage tmp = oxm.receive();
   
     set_button = new Button("poly1 <= poly2");                  textarea.append("=> "+ tmp.getBody() +"\n");
     c.gridwidth = GridBagConstraints.REMAINDER;                  Thread.yield();
     gridbag.setConstraints(set_button,c);              }
     c.gridwidth = 1;          }catch(java.io.IOException e){}
     add(set_button);      }
   
     poly2 = new TextField();      public void actionPerformed(ActionEvent evt) {
     c.gridwidth = 2;          String arg = evt.getActionCommand();
     gridbag.setConstraints(poly2,c);  
     c.gridwidth = 1;  
     add(poly2);  
   }  
   
   public void start(){          debug("press \""+ arg +"\" button.");
     textarea.append("Connecting to "+ host  
                  +"("+ ControlPort +","+ DataPort +")\n");  
   
     try{          if(arg.equals("quit")){
       oxm = new OpenXM(host,ControlPort,DataPort);          }else if(arg.equals("grobner base")){
     }catch(java.io.IOException e){              try{
       textarea.append("failed.\n");                  debug("poly A: "+ poly1.getText());
       stop();                  oxm.send(new CMO_STRING("[[("+ poly1.getText() +") ("+ poly2.getText() +")] (x,y)] gb"));
       return;                  oxm.send(new SM(SM.SM_executeStringByLocalParser));
                   oxm.send(new SM(SM.SM_popString));
               }catch(java.io.IOException e){
               }catch(MathcapViolation e){
               }
           }
           /*
             if ("first".equals(arg)) {
             ((CardLayout)cards.getLayout()).first(cards);
             } else if ("next".equals(arg)) {
             ((CardLayout)cards.getLayout()).next(cards);
             } else if ("previous".equals(arg)) {
             ((CardLayout)cards.getLayout()).previous(cards);
             } else if ("last".equals(arg)) {
             ((CardLayout)cards.getLayout()).last(cards);
             } else {
             ((CardLayout)cards.getLayout()).show(cards,(String)arg);
             }
           */
     }      }
     textarea.append("Connected.\n");  
   }  
   
   public static void main(String argv[]){      public void start(){
     Frame frame = new Frame("Polynomial Calculator");          textarea.append("Connecting to "+ host
     Applet applet;                          +"("+ ControlPort +","+ DataPort +")\n");
     String host = "localhost";  
     int DataPort = 1300, ControlPort = 1200;  
   
     for(int i=0;i<argv.length;i++){          try{
       if(argv[i].equals("-h")){              /*
         System.out.println("");                Runtime r = Runtime.getRuntime();
         System.exit(0);  
       }else if(argv[i].equals("-host")){                r.exec("ox -ox ox_sm1");
         host = argv[++i];              */
       }else if(argv[i].equals("-data")){              oxm = new OpenXM(host,ControlPort,DataPort);
         DataPort = Integer.valueOf(argv[++i]).intValue();              textarea.append("Connected.\n");
       }else if(argv[i].equals("-control")){              oxm.send(new CMO_STRING("[(parse) (cohom.sm1) pushfile] extension ;\n"));
         ControlPort = Integer.valueOf(argv[++i]).intValue();              oxm.send(new SM(SM.SM_executeStringByLocalParser));
       }else{  
         System.err.println("unknown option :"+ argv[i]);              thread = new Thread(this);
         System.exit(1);              thread.start();
       }          }catch(java.io.IOException e){
               textarea.append("failed.\n");
               stop();
           }catch(MathcapViolation e){
           }
     }      }
     applet = new PolyCalc(host,ControlPort,DataPort);  
   
     applet.init();      private void debug(String str){
     frame.add("Center",applet);          if(debug){
     frame.pack();              System.err.println(str);
     frame.setSize(frame.getPreferredSize());          }
     frame.show();      }
     applet.start();  
   }      private static String usage(){
           String ret = "";
   
           ret += "usage\t: java PolyCalc [options]\n";
           ret += "options\t:\n";
           ret += "\t -h \t show this message\n";
           ret += "\t -host hostname \t (default localhost)\n";
           ret += "\t -data port \t (default 1300)\n";
           ret += "\t -control port \t (default 1200)\n";
           ret += "\t -debug \t display debug message\n";
   
           return ret;
       }
   
       public static void main(String argv[]){
           Frame frame = new Frame("Polynomial Calculator");
           //Applet applet;
           PolyCalc applet;
           String host = "localhost";
           int DataPort = 1300, ControlPort = 1200;
   
           for(int i=0;i<argv.length;i++){
               if(argv[i].equals("-h")){
                   System.err.print(usage());
                   System.exit(0);
               }else if(argv[i].equals("-debug")){
                   //debug = true;
               }else if(argv[i].equals("-host")){
                   host = argv[++i];
               }else if(argv[i].equals("-data")){
                   DataPort = Integer.valueOf(argv[++i]).intValue();
               }else if(argv[i].equals("-control")){
                   ControlPort = Integer.valueOf(argv[++i]).intValue();
               }else{
                   System.err.println("unknown option : "+ argv[i]);
                   System.err.println("");
                   System.err.print(usage());
                   System.exit(1);
               }
           }
           applet = new PolyCalc(host,ControlPort,DataPort);
           applet.debug = true;
   
           applet.init();
           frame.add("Center",applet);
           frame.pack();
           frame.setSize(frame.getPreferredSize());
           frame.show();
           applet.start();
       }
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.14

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>