src/java/isac/bridge/BridgeMain.java
changeset 2544 631fe7f467b7
parent 2448 f6065237ac78
child 2707 6973cc026d5d
equal deleted inserted replaced
2543:62acf19daa74 2544:631fe7f467b7
    62 
    62 
    63     private final static int TRANS_MATHML = 2;
    63     private final static int TRANS_MATHML = 2;
    64 
    64 
    65     private int transport_mode_ = TRANS_STRING;
    65     private int transport_mode_ = TRANS_STRING;
    66 
    66 
    67     JPanel panel;
    67     JPanel panel_;
    68 
    68 
    69     JTextArea textArea;
    69     JTextArea text_area_;
    70 
    70 
    71     JScrollPane scrollPane;
    71     JScrollPane scroll_pane_;
    72 
    72 
    73     private Thread thread_clients2kernel_;
    73     private Thread thread_clients2kernel_;
    74 
    74 
    75     private Thread thread_sml_;
    75     private Thread thread_sml_;
    76 
    76 
    98 
    98 
    99     private boolean restoring_; // true = bridge is in restoring_ phase
    99     private boolean restoring_; // true = bridge is in restoring_ phase
   100 
   100 
   101     private boolean kernel_responding_ = true;
   101     private boolean kernel_responding_ = true;
   102 
   102 
   103     static Logger logger = Logger.getLogger(BridgeMain.class.getName());
   103     static Logger logger_ = Logger.getLogger(BridgeMain.class.getName());
   104 
   104 
   105     /**
   105     /**
   106      * Constructor used to set up the bridge main program
   106      * Constructor used to set up the bridge main program
   107      * 
   107      * 
   108      * @param ini_path_:
   108      * @param ini_path_:
   111     BridgeMain(String iniPath) {
   111     BridgeMain(String iniPath) {
   112         //hack for suppressing warning messages
   112         //hack for suppressing warning messages
   113         //(no longer nescessary with j2sdk1.4.2)
   113         //(no longer nescessary with j2sdk1.4.2)
   114         //System.setProperty("java.util.prefs.syncInterval", "20000000000");
   114         //System.setProperty("java.util.prefs.syncInterval", "20000000000");
   115 
   115 
   116         logger.warn("BridgeMain obj.init: ini_path_=" + iniPath);
   116         logger_.warn("BridgeMain obj.init: ini_path_=" + iniPath);
   117         this.ini_path_ = iniPath;
   117         this.ini_path_ = iniPath;
   118         readProperties();
   118         readProperties();
   119 
   119 
   120         bridge_logger_ = new BridgeLogger(path_);
   120         bridge_logger_ = new BridgeLogger(path_);
   121         client_list_ = new ClientList();
   121         client_list_ = new ClientList();
   124         startThreadsFirstTime();
   124         startThreadsFirstTime();
   125     }
   125     }
   126 
   126 
   127     private void setUpBridgeLog() {
   127     private void setUpBridgeLog() {
   128         this.setLocation(700, 250);
   128         this.setLocation(700, 250);
   129         panel = new JPanel();
   129         panel_ = new JPanel();
   130         panel.setSize(200, 300);
   130         panel_.setSize(200, 300);
   131         panel.setLayout(new BorderLayout());
   131         panel_.setLayout(new BorderLayout());
   132         panel.setBackground(Color.white);
   132         panel_.setBackground(Color.white);
   133 
   133 
   134         textArea = new JTextArea();
   134         text_area_ = new JTextArea();
   135         textArea.setFont(new Font("Monospaced", 0, 11));
   135         text_area_.setFont(new Font("Monospaced", 0, 11));
   136         scrollPane = new JScrollPane(textArea,
   136         scroll_pane_ = new JScrollPane(text_area_,
   137                 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
   137                 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
   138                 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
   138                 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
   139         panel.add("Center", scrollPane);
   139         panel_.add("Center", scroll_pane_);
   140         getContentPane().add(panel);
   140         getContentPane().add(panel_);
   141 
   141 
   142         setTitle("BridgeLog Java <=> SML");
   142         setTitle("BridgeLog Java <=> SML");
   143         WindowListener l = new WindowAdapter() {
   143         WindowListener l = new WindowAdapter() {
   144 
   144 
   145             public void windowClosing(WindowEvent e) {
   145             public void windowClosing(WindowEvent e) {
   210         }
   210         }
   211     }
   211     }
   212 
   212 
   213     //Start sml Threads and catch in- and output-streams
   213     //Start sml Threads and catch in- and output-streams
   214     private void startSMLThread() {
   214     private void startSMLThread() {
   215         logger.warn("startSMLThread");
   215         logger_.warn("startSMLThread");
   216         SMLThread smlThread = new SMLThread(this, kernel_exec_, kernel_args_);
   216         SMLThread smlThread = new SMLThread(this, kernel_exec_, kernel_args_);
   217         thread_sml_ = new Thread(smlThread, "java_bridge_execution");
   217         thread_sml_ = new Thread(smlThread, "java_bridge_execution");
   218         thread_sml_.setDaemon(true);
   218         thread_sml_.setDaemon(true);
   219         // daemon threads: discontinue running after main application is
   219         // daemon threads: discontinue running after main application is
   220         // finished
   220         // finished
   242         //log(1, sml_writer_.toString());
   242         //log(1, sml_writer_.toString());
   243         //log(1, sml_reader_.toString());
   243         //log(1, sml_reader_.toString());
   244     }
   244     }
   245 
   245 
   246     private void startThreadsFirstTime() {
   246     private void startThreadsFirstTime() {
   247         logger.warn("startThreadsFirstTime");
   247         logger_.warn("startThreadsFirstTime");
   248         startSMLThread();
   248         startSMLThread();
   249 
   249 
   250         Clients2KernelServer c2k = new Clients2KernelServer(this);
   250         Clients2KernelServer c2k = new Clients2KernelServer(this);
   251         thread_clients2kernel_ = new Thread(c2k, "java_bridge_clients2kernel");
   251         thread_clients2kernel_ = new Thread(c2k, "java_bridge_clients2kernel");
   252         thread_clients2kernel_.setDaemon(true);
   252         thread_clients2kernel_.setDaemon(true);
   366      * @param msg
   366      * @param msg
   367      *            the message to be logged
   367      *            the message to be logged
   368      */
   368      */
   369     public void log(int level, String msg) {
   369     public void log(int level, String msg) {
   370         this.bridge_logger_.log(level, msg);
   370         this.bridge_logger_.log(level, msg);
   371         this.textArea.append(msg + "\n");
   371         this.text_area_.append(msg + "\n");
   372     }
   372     }
   373 
   373 
   374     public ClientList getClientList() {
   374     public ClientList getClientList() {
   375         return client_list_;
   375         return client_list_;
   376     }
   376     }
   377 
   377 
   378     public BufferedReader getSmlReader() {
   378     public BufferedReader getSmlReader() {
   379         logger.warn("getSmlReader x");
   379         logger_.warn("getSmlReader x");
   380         return sml_reader_;
   380         return sml_reader_;
   381     }
   381     }
   382 
   382 
   383     public PrintWriter getSmlWriter() {
   383     public PrintWriter getSmlWriter() {
   384         return sml_writer_;
   384         return sml_writer_;
   395     public int getSocketPort() {
   395     public int getSocketPort() {
   396         return socket_port_;
   396         return socket_port_;
   397     }
   397     }
   398 
   398 
   399     public void setRMI(BridgeRMI bridgeRMI) {
   399     public void setRMI(BridgeRMI bridgeRMI) {
   400         logger.warn("setRMI: bridge_rmi_=" + bridgeRMI);
   400         logger_.warn("setRMI: bridge_rmi_=" + bridgeRMI);
   401         this.bridge_rmi_ = bridgeRMI;
   401         this.bridge_rmi_ = bridgeRMI;
   402         bridgeRMI.setRmiID(1); //only one BridgeRMI used so far
   402         bridgeRMI.setRmiID(1); //only one BridgeRMI used so far
   403     }
   403     }
   404 
   404 
   405     boolean isRestoring() {
   405     boolean isRestoring() {