content: package com.alibaba.luaview.debugger.ui;
  
  import com.alibaba.luaview.debugger.Center;
  import com.alibaba.luaview.debugger.ui.UICmd;
  
  public final class Updater {
  	public final String CMD_NAME = "Cmd-Name:".toLowerCase();
  	public final String FILE_NAME = "File-Name:".toLowerCase();
  
  	private final Center center;
  
  	public Updater(Center center) {
  		this.center = center;
  	}
  
  	private UICmd readCmd(String string) throws Exception {
  		String[] heads = null;
  		String info = null;
  		{// parse head
  			int index = string.indexOf("\n\n");
  			if (index >= 0) {
  				String headString = string.substring(0, index);
  				info = string.substring(index + 2);
  				heads = headString.split("\n");
  			}
  		}
  		String cmdName = null;
  		String fileName = null;
  		for (int i = 0; i < heads.length; i++) {
  			String s = heads[i];
  			if (s != null && s.length() > 0) {
  				String str = s.toLowerCase();
  				if (str.startsWith(CMD_NAME)) {
  					cmdName = s.substring(CMD_NAME.length());
  				} else if (str.startsWith(FILE_NAME)) {
  					fileName = s.substring(FILE_NAME.length());
  				}
  			}
  		}
  		UICmd cmd = new UICmd(cmdName, fileName, info);
  		return cmd;
  	}
  
  	public void run(String string) {
  		try {
  			UICmd cmd = this.readCmd(string);
  			if (cmd.cmd != null) {
  				if ("log".equals(cmd.cmd)) {
  					center.log.print(cmd.content);
  				} else if ("loadfile".equals(cmd.cmd)) {
  					this.center.srcCodeCenter.loadfile(cmd.fileName, cmd.content);
  					center.frame.setTitle(cmd.fileName);
  				} else if ("running".equals(cmd.cmd)) {
  					this.center.srcCodeCenter.running(cmd.fileName, cmd.content);
  				} else {
  					System.err.println("unkonw cmd: " + cmd.cmd);
  				}
  			}
  		} catch (Exception e) {
  			e.printStackTrace();
  		}
  	}
  
  }