- Timestamp:
- 05/19/08 21:54:36 (22 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
examples/trunk/buildbot/flex/src/org/pyamf/examples/buildbot/BuildbotRPC.as
r1403 r1405 11 11 import flash.net.Responder; 12 12 13 import mx.collections.ArrayCollection; 14 15 import org.pyamf.examples.buildbot.events.*; 16 import org.pyamf.examples.buildbot.Builder; 13 import org.pyamf.examples.buildbot.events.BuildEvent; 14 import org.pyamf.examples.buildbot.events.BuilderEvent; 17 15 18 16 /** 19 * This examples shows how to communicate with the AMF gateway for Buildbot that can20 * be used to query the build status.17 * This examples shows how to communicate with the AMF gateway for 18 * Buildbot that can be used to query the build status. 21 19 * 22 20 * @author Thijs Triemstra (info@collab.nl) … … 34 32 private static const GETALLBUILDSINTERVAL:String = "buildbot.getAllBuildsInInterval"; 35 33 34 /** 35 * Create AMF connection. 36 */ 36 37 public function BuildbotRPC() 37 38 { … … 40 41 _builders = new Array(); 41 42 42 // setup connection43 43 _gateway = new NetConnection(); 44 44 _gateway.addEventListener(NetStatusEvent.NET_STATUS, onNetstatusError); … … 46 46 } 47 47 48 /** 49 * Connect to gateway and get builders. 50 * 51 * @param gatewayUrl AMF gateway of the buildbot 52 */ 48 53 public function connect(gatewayUrl:String=undefined): void 49 54 { 50 55 status = "Loading..."; 51 56 52 // Setup url53 57 if (gatewayUrl != null) { 54 58 _url = gatewayUrl; 55 59 } 56 60 57 // Connect to gateway58 61 _gateway.connect(_url); 59 62 60 // Get builders61 63 getBuilders(); 62 64 } 63 65 64 private function addBuilders(result:*): void 65 { 66 if (result != null) 67 { 68 for (var d:int=0;d<result.length;d++) 69 { 70 var builder:Builder = new Builder(result[d]); 71 builder.addEventListener(BuilderEvent.STATUS, getBuilderStatus); 72 builder.addEventListener(BuilderEvent.LAST_BUILDS, getLastBuilds); 73 builder.addEventListener(BuilderEvent.LOAD_COMPLETE, loadComplete); 74 builder.addEventListener(BuildEvent.BUILD_DETAILS, getBuild); 75 builder.load(); 76 _builders.push( builder ); 77 } 78 79 status = result.length + " builder(s) loaded."; 80 } 81 else 82 { 83 var columns:Array = new Array(); 84 var rows:ArrayCollection = new ArrayCollection(); 85 86 status = "No builder available."; 87 dispatchEvent( new BuildbotEvent(BuildbotEvent.UPDATE) ); 88 } 89 } 90 91 private function loadComplete( event:BuilderEvent ):void 92 { 93 var rows:ArrayCollection = new ArrayCollection(event.builder.builds); 94 var columns:Array = new Array(); 95 96 for (var d:int=0;d<_builders.length;d++) 97 { 98 columns.push(_builders[d].name); 99 } 100 101 dispatchEvent( new BuildbotEvent(BuildbotEvent.UPDATE, rows, columns) ); 102 } 103 66 /** 67 * Call remote service to fetch a list of all builder names. 68 */ 104 69 private function getBuilders():void 105 70 { 106 // Set responder property to the object and methods that will receive the107 // result or fault condition that the service returns.108 71 var responder:Responder = new Responder( addBuilders, onFault ); 109 72 110 // Call remote service to fetch a list of all builder names.111 73 _gateway.call( GETALLBUILDERS, responder); 112 74 } 113 75 114 private function getBuilderStatus( event:BuilderEvent ):void 76 /** 77 * Call remote service to fetch the result of the last build for the 78 * given builder. 79 * 80 * @param event 81 */ 82 override public function getBuilderStatus( event:BuilderEvent ):void 115 83 { 116 84 var builder:Builder = event.builder; 117 118 // Set responder property to the object and methods that will receive the119 // result or fault condition that the service returns.120 85 var responder:Responder = new Responder( builder.setStatus, onFault ); 121 86 122 // Call remote service to fetch the result of the last build for the given builder.123 87 _gateway.call( GETSTATUS, responder, builder.name ); 124 88 } 125 89 126 private function getLastBuilds( event:BuilderEvent ):void 90 /** 91 * Call remote service to fetch the result of the last build for the 92 * given builder. 93 * 94 * @param event 95 */ 96 override public function getLastBuilds( event:BuilderEvent ):void 127 97 { 128 98 var builder:Builder = event.builder; 129 130 // Set responder property to the object and methods that will receive the131 // result or fault condition that the service returns.132 99 var responder:Responder = new Responder( builder.addBuilds, onFault ); 133 100 134 // Call remote service to fetch the result of the last build for the given builder.135 101 _gateway.call( GETLASTBUILDS, responder, builder.name, _totalBuilds ); 136 102 } 137 103 138 private function getBuild( event:BuildEvent ):void 104 /** 105 * Call remote service to fetch information about a specific build. 106 * 107 * @param event 108 */ 109 override public function getBuild( event:BuildEvent ):void 139 110 { 140 111 var builder:Builder = event.build.builder; 141 142 // Set responder property to the object and methods that will receive the143 // result or fault condition that the service returns.144 112 var responder:Responder = new Responder( builder.setBuild, onFault ); 145 113 146 // Call remote service to fetch information about a specific build.147 114 _gateway.call( GETBUILD, responder, builder.name, event.build.number ); 148 115 } 149 116 150 // not used atm 151 private function getAllBuildsInInterval( event:BuilderEvent ):void 117 /** 118 * Call remote service to fetch a list of builds that have completed after 119 * the 'start' timestamp and before the 'stop' timestamp. This looks at 120 * all builders. 121 * 122 * Note: not being used in this app. 123 * 124 * @param event 125 */ 126 internal function getAllBuildsInInterval( event:BuilderEvent ):void 152 127 { 153 var builder:Builder = event.builder;154 128 var start:int = 1000; 155 129 var stop:int = 2000; 156 157 // Set responder property to the object and methods that will receive the 158 // result or fault condition that the service returns. 130 var builder:Builder = event.builder; 159 131 var responder:Responder = new Responder( builder.addBuilds, onFault ); 160 132 161 // Call remote service to fetch a list of builds that have completed162 // after the 'start' timestamp and before the 'stop' timestamp. This looks163 // at all builders.164 133 _gateway.call( GETALLBUILDSINTERVAL, responder, start, stop ); 165 134 }
