+++ /dev/null
-/*
- * PanelFiller.java
- *
- * Created on March 29, 2008, 10:45 PM
- *
- * To change this template, choose Tools | Template Manager
- * and open the template in the editor.
- */
-
-package javaapplication1;
-
-import java.io.*;
-import javax.swing.*;
-import javax.swing.JOptionPane;
-
-/**
- *
- * @author soners
- */
-public class PanelFiller {
-
- /** Creates a new instance of PanelFiller */
- public PanelFiller(JPanel[] panelList, JLabel statusLabel) {
- panel1 = panelList[0];
- panel2 = panelList[1];
- panel3 = panelList[2];
- panel4 = panelList[3];
- panel5 = panelList[4];
- this.statusLabel = statusLabel;
-
- try{
- rtime = Runtime.getRuntime();
- child = rtime.exec("/bin/bash");
- outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream()));
- }catch (Exception e){
- JOptionPane.showMessageDialog(null, "The program cannot start bash.\n");
- return;
- }
-
- displayHandle = new DisplayHandle(outCommand);
- }
-
- public void handleOperation(String opname){
-
- JPanel curpanel = null;
- String type = record.getType();
- if (type.equals("user"))
- curpanel = panel2;
- else if (type.equals("slice"))
- curpanel = panel3;
- else if (type.equals("node"))
- curpanel = panel4;
- else if (type.equals("SA")){
- curpanel = panel5;
- type = "SA/MA";
- }
- else if (type.equals("MA")){
- curpanel = panel5;
- type = "SA/MA";
- }
-
- if (opname.equals("register")){
- String params = displayHandle.PanelToString(type, curpanel);
- String rest = params.substring(12);
- if (rest.charAt(0)=='}')
- params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest;
- else
- params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest;
- String message = "{'opname':'"+opname+"', "+params+"}";
- String result = SendToClientStub(message);
- String[] res_arr = result.split("\n");
- String send_str = "";
- for (int i=0; i<res_arr.length; i++)
- send_str += res_arr[i];
- statusLabel.setText(send_str);
- }
- else if (opname.equals("remove")){
- String gparams = "{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'}";
- String pparams = "{}";
- String message = "{'opname':'"+opname+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}";
- String result = SendToClientStub(message);
- String[] res_arr = result.split("\n");
- String send_str = "";
- for (int i=0; i<res_arr.length; i++)
- send_str += res_arr[i];
- statusLabel.setText(send_str);
- }
- else if (opname.equals("update")){
- String params = displayHandle.PanelToString(type, curpanel);
- String rest = params.substring(12);
- if (rest.charAt(0)=='}')
- params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest;
- else
- params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest;
- String message = "{'opname':'"+opname+"', "+params+"}";
- String result = SendToClientStub(message);
- String[] res_arr = result.split("\n");
- String send_str = "";
- for (int i=0; i<res_arr.length; i++)
- send_str += res_arr[i];
- statusLabel.setText(send_str);
- }
- else if (opname.equals("lookup")){
- String gparams = "{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'}";
- String pparams = "{}";
- String message = "{'opname':'"+opname+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}";
- String result = SendToClientStub(message);
- String[] res_arr = result.split("\n");
- String[] send_arr = null;
-
-
- if (res_arr!=null && res_arr.length > 0){
-
- String status_str = "";
- for (int i=0; i<res_arr.length; i++){
- if (!res_arr[i].equals("{'geni':{"))
- status_str += res_arr[i];
- else
- break;
- }
- statusLabel.setText(status_str);
-
- //determine send_arr
- int i;
- for(i=0; i<res_arr.length && !res_arr[i].equals("{'geni':{"); i++)
- ;
- if (i<res_arr.length && res_arr[i].equals("{'geni':{")){
- i++;
- send_arr = new String[res_arr.length-i-3];
- int p = 0;
- while(!res_arr[i].equals("}")){
- send_arr[p++] = res_arr[i];
- i++;
- }
- i = i+2;
- while(!res_arr[i].equals("}}")){
- send_arr[p++] = res_arr[i];
- i++;
- }
- displayHandle.FillComponentList(type, send_arr);
- if (type.equals("user"))
- displayHandle.displayComponentList("user",panel1, panel2);
- else if (type.equals("slice"))
- displayHandle.displayComponentList("slice",panel1, panel3);
- else if (type.equals("node"))
- displayHandle.displayComponentList("node",panel1, panel4);
- else if (type.equals("SA/MA"))
- displayHandle.displayComponentList("SA/MA",panel1, panel5);
- }
- }
- }
- }
-
- private String SendToClientStub(String message){
-
- //do the call to the python client
- String curdir = System.getProperty("user.dir");
- String client_folder = user.getDirectory();
- String result = "";
-
- try{
- //cd to the client folder
- outCommand.write("cd "+client_folder+"\n");
- outCommand.flush();
-
- FileWriter fstream = new FileWriter(client_folder+"/tmp_input.txt");
- BufferedWriter out = new BufferedWriter(fstream);
- out.write(user.getHrn()+" "+user.getType()+"\n");
- out.write(message);
- //Close the output stream
- out.close();
- outCommand.write("./clientstub.py\n");
- outCommand.flush();
-
- //get the result of the call from the python client
- File file = new File(client_folder+"/tmp_output.txt");
- int i = 0;
- while(!file.exists() && i<5){
- i++;
- try {
- Thread.currentThread().sleep(200);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- result = "Problem occured in client stub.\n";
- return result;
- }
- }
-
- try {
- Thread.currentThread().sleep(200);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- result = "Problem occured in client stub.\n";
- return result;
- }
-
- BufferedReader in = new BufferedReader(new FileReader(client_folder+"/tmp_output.txt"));
- result = "";
- String tmp = in.readLine();
- while(tmp!=null && tmp.length() > 0){
- result += tmp+"\n";
- tmp = in.readLine();
- }
- in.close();
-
- outCommand.write("rm tmp_input.txt tmp_output.txt\n");
- outCommand.write("cd "+curdir+"\n");
- outCommand.flush();
- }catch (Exception e){//Catch exception if any
- System.err.println("Error: " + e.getMessage());
- result = "Problem occured in client stub.\n";
- return result;
- }
- return result;
- }
-
- public void initializePanels(){
- displayHandle.displayComponentList("user",panel1, panel2);
- displayHandle.displayComponentList("slice",panel1, panel3);
- displayHandle.displayComponentList("node",panel1, panel4);
- displayHandle.displayComponentList("SA/MA",panel1, panel5);
- }
-
- public void setUser(User user){
- this.user = user;
- }
- public void setRecord(RecordInfo record){
- this.record = record;
- }
-
- private User user;
- private RecordInfo record;
- private javax.swing.JPanel panel1;
- private javax.swing.JPanel panel2;
- private javax.swing.JPanel panel3;
- private javax.swing.JPanel panel4;
- private javax.swing.JPanel panel5;
- private javax.swing.JLabel statusLabel;
-
- private BufferedWriter outCommand;
- private Runtime rtime;
- private Process child;
-
- private DisplayHandle displayHandle;
-
-}
-
-