Ver código fonte

redirect log to cdb

Nicolas Cannasse 10 anos atrás
pai
commit
227c957dd0
3 arquivos alterados com 52 adições e 7 exclusões
  1. 32 4
      hxd/net/CdbInspector.hx
  2. 16 2
      hxd/net/inspect.hss
  3. 4 1
      hxd/net/inspect.min.css

+ 32 - 4
hxd/net/CdbInspector.hx

@@ -2,26 +2,48 @@ package hxd.net;
 
 class CdbInspector extends cdb.jq.Client {
 
+	static var inst = null;
 	static var CSS = hxd.res.Embed.getFileContent("hxd/net/inspect.min.css");
+
 	public var host : String = "127.0.0.1";
 	public var port = 6669;
 
 	var sock : hxd.net.Socket;
+	var connected = false;
+	var oldLog : Dynamic -> haxe.PosInfos -> Void;
 
 	public function new( ?host, ?port ) {
 		super();
+		inst = this; // prevent GC
 		if( host != null )
 			this.host = host;
 		if( port != null )
 			this.port = port;
 		sock = new hxd.net.Socket();
-		sock.onError = function(_) haxe.Timer.delay(connect,500);
+		sock.onError = function(e) {
+			connected = false;
+			trace(e);
+			haxe.Timer.delay(connect,500);
+		}
 		connect();
+		oldLog = haxe.Log.trace;
+		haxe.Log.trace = onTrace;
+	}
+
+	function onTrace( v : Dynamic, ?pos : haxe.PosInfos ) {
+		if( !connected )
+			oldLog(v, pos);
+		else {
+			J("<div>").addClass("line").text(pos.fileName+"(" + pos.lineNumber + ") : " + Std.string(v)).appendTo(J("#log"));
+		}
 	}
 
 	function connect() {
 		sock.close();
-		sock.connect(host, port, refresh);
+		sock.connect(host, port, function() {
+			connected = true;
+			refresh();
+		});
 	}
 
 	override function sendBytes( msg : haxe.io.Bytes ) {
@@ -32,9 +54,15 @@ class CdbInspector extends cdb.jq.Client {
 	}
 
 	function refresh() {
-		j.text("");
+		j.html('
+			<div id="scene" class="panel" caption="Scene">
+			</div>
+			<div id="log" class="panel" caption="Log">
+			</div>
+		');
 		send(SetCSS(CSS));
-		J("<div>").addClass("test").text("hello").appendTo(j);
+		J("#scene").dock(root, Left, 0.2);
+		J("#log").dock(root, Down, 0.3);
 	}
 
 }

+ 16 - 2
hxd/net/inspect.hss

@@ -1,3 +1,17 @@
-.test {
-	color : red;
+.jqpage {
+
+	.panel {
+		overflow : auto;
+	}
+
+	#log {
+		font-family : Courier;
+		.line {
+			padding : 1px 3px;
+		}
+		CSS(".line:nth-child(even)") {
+			background-color : #eee;
+		}
+	}
+
 }

+ 4 - 1
hxd/net/inspect.min.css

@@ -1,2 +1,5 @@
-.test{color:red;}
+.jqpage .panel{overflow:auto;}
+.jqpage #log{font-family:Courier;}
+.jqpage #log .line{padding:1px 3px;}
+.jqpage #log .line:nth-child(even){background-color:#eee;}