From 3b4953364efed6459edfa476e2115d1a5e79c312 Mon Sep 17 00:00:00 2001 From: shmyga Date: Wed, 8 Jan 2014 11:42:34 +0400 Subject: [PATCH] supported DELETE method --- haxework/gui/LabelView.hx | 1 + haxework/gui/SpriteView.hx | 9 +++++++++ haxework/gui/TextView.hx | 2 ++ haxework/gui/View.hx | 6 +++--- haxework/net/BaseLoader.hx | 16 ++++++++++------ haxework/net/BaseURLLoader.hx | 12 +++++++++--- haxework/net/BatchLoader.hx | 1 - haxework/net/ILoader.hx | 8 ++------ haxework/provider/Provider.hx | 6 +++--- 9 files changed, 39 insertions(+), 22 deletions(-) diff --git a/haxework/gui/LabelView.hx b/haxework/gui/LabelView.hx index ee5f7ee..306e4d2 100755 --- a/haxework/gui/LabelView.hx +++ b/haxework/gui/LabelView.hx @@ -7,6 +7,7 @@ class LabelView extends TextView { public function new() { super(); textField.selectable = false; + textField.wordWrap = false; textField.autoSize = TextFieldAutoSize.LEFT; } diff --git a/haxework/gui/SpriteView.hx b/haxework/gui/SpriteView.hx index 8f618f7..817aa07 100755 --- a/haxework/gui/SpriteView.hx +++ b/haxework/gui/SpriteView.hx @@ -1,5 +1,6 @@ package haxework.gui; +import flash.display.Graphics; import flash.display.Sprite; class SpriteView extends View { @@ -7,4 +8,12 @@ class SpriteView extends View { public function new() { super(new Sprite()); } + + /*override public function update():Void { + super.update(); + var g:Graphics = content.graphics; + g.lineStyle(1, 0x00ff00); + g.drawRect(0, 0, width, height); + g.lineStyle(); + }*/ } \ No newline at end of file diff --git a/haxework/gui/TextView.hx b/haxework/gui/TextView.hx index 92685e9..d0b77b4 100755 --- a/haxework/gui/TextView.hx +++ b/haxework/gui/TextView.hx @@ -20,6 +20,8 @@ class TextView extends SpriteView implements ITextView { public function new() { super(); textField = new TextField(); + textField.width = 1; + textField.height = 1; textField.wordWrap = true; textFormat = textField.defaultTextFormat; textFormat.font = "Arial"; diff --git a/haxework/gui/View.hx b/haxework/gui/View.hx index c71d7d5..c142f42 100755 --- a/haxework/gui/View.hx +++ b/haxework/gui/View.hx @@ -58,8 +58,8 @@ class View implements IView { this.content = content; x = 0; y = 0; - width = 100; - height = 100; + width = 1; + height = 1; margins = 0; vAlign = VAlign.NONE; hAlign = HAlign.NONE; @@ -83,12 +83,12 @@ class View implements IView { public function update():Void { content.x = x; content.y = y; + var skin:ISkin> = currentSkin(); if (contentSize && skin != null && Std.is(skin, ISize)) { var size:ISize = cast(skin, ISize); if (!Math.isNaN(size.width)) width = size.width; if (!Math.isNaN(size.height)) height = size.height; } - var skin:ISkin> = currentSkin(); if (skin != null) skin.draw(this); } diff --git a/haxework/net/BaseLoader.hx b/haxework/net/BaseLoader.hx index f642557..1fc0aaa 100755 --- a/haxework/net/BaseLoader.hx +++ b/haxework/net/BaseLoader.hx @@ -1,5 +1,6 @@ package haxework.net; +import flash.net.URLRequestMethod; import flash.events.ProgressEvent; import haxework.net.manage.ILoaderManager; import haxework.provider.Provider; @@ -7,7 +8,6 @@ import flash.utils.ByteArray; import haxework.net.callback.Callback; import haxework.net.callback.ICallback; import flash.events.Event; -import haxework.net.ILoader.Method; class BaseLoader implements ILoader { @@ -22,7 +22,7 @@ class BaseLoader implements ILoader { public var completed(default, null):Float; private var url:String; - private var method:Method; + private var method:String; private var data:Null; private var callback:ICallback; @@ -31,7 +31,7 @@ class BaseLoader implements ILoader { completed = Math.NaN; } - public function request(url:String, method:Method, data:Dynamic = null):ICallback { + public function request(url:String, method:String, data:Dynamic = null):ICallback { if (busy) throw "Busy"; busy = true; this.url = url; @@ -54,11 +54,15 @@ class BaseLoader implements ILoader { } public function GET(url:String, data:Dynamic = null):ICallback { - return request(url, Method.GET, data); + return request(url, URLRequestMethod.GET, data); } public function POST(url:String, data:Dynamic = null):ICallback { - return request(url, Method.POST, data); + return request(url, URLRequestMethod.POST, data); + } + + public function DELETE(url:String, data:Dynamic = null):ICallback { + return request(url, URLRequestMethod.DELETE, data); } private function internalRequest(url:String):Void { @@ -108,7 +112,7 @@ class BaseLoader implements ILoader { public function run():Void { var u:String = url; - if (data != null && method == Method.GET) { + if (data != null && method == URLRequestMethod.GET) { var a:Array = []; for (key in Reflect.fields(data)) { a.push(key + "=" + Reflect.field(data, key)); diff --git a/haxework/net/BaseURLLoader.hx b/haxework/net/BaseURLLoader.hx index 74baa9f..6e5b44f 100755 --- a/haxework/net/BaseURLLoader.hx +++ b/haxework/net/BaseURLLoader.hx @@ -1,9 +1,10 @@ package haxework.net; +import flash.net.URLRequestHeader; +import flash.net.URLRequestMethod; import haxework.net.callback.ICallback; import flash.net.URLVariables; import flash.events.ProgressEvent; -import haxework.net.ILoader.Method; import flash.net.URLLoaderDataFormat; import flash.events.SecurityErrorEvent; import flash.events.IOErrorEvent; @@ -24,8 +25,13 @@ class BaseURLLoader extends BaseLoader { override private function internalRequest(url:String):Void { loader = buildLoader(); var request:URLRequest = new URLRequest(url); - request.method = Std.string(method); - if (data != null && method == Method.POST) { + if (method != URLRequestMethod.POST && method != URLRequestMethod.GET) { + request.method = URLRequestMethod.POST; + request.requestHeaders.push(new URLRequestHeader("X-HTTP-Method-Override", method)); + } else { + request.method = method; + } + if (data != null && method == URLRequestMethod.POST) { var variables:URLVariables = new URLVariables(); for (key in Reflect.fields(data)) { Reflect.setField(variables, key, Reflect.field(data, key)); diff --git a/haxework/net/BatchLoader.hx b/haxework/net/BatchLoader.hx index 114573f..67708c7 100755 --- a/haxework/net/BatchLoader.hx +++ b/haxework/net/BatchLoader.hx @@ -2,7 +2,6 @@ package haxework.net; import haxework.net.callback.Callback; import haxework.net.callback.ICallback; -import haxework.net.ILoader.Method; import flash.events.Event; import flash.net.URLLoader; diff --git a/haxework/net/ILoader.hx b/haxework/net/ILoader.hx index 91fab36..a29fc25 100755 --- a/haxework/net/ILoader.hx +++ b/haxework/net/ILoader.hx @@ -3,19 +3,15 @@ package haxework.net; import flash.utils.ByteArray; import haxework.net.callback.ICallback; -enum Method { - GET; - POST; -} - interface ILoader { public var busy(default, null):Bool; public var completed(default, null):Float; - public function request(url:String, method:Method, data:Dynamic = null):ICallback; + public function request(url:String, method:String, data:Dynamic = null):ICallback; public function fromBytes(data:ByteArray):ICallback; public function GET(url:String, data:Dynamic = null):ICallback; public function POST(url:String, data:Dynamic = null):ICallback; + public function DELETE(url:String, data:Dynamic = null):ICallback; public function cancel():Void; public function run():Void; diff --git a/haxework/provider/Provider.hx b/haxework/provider/Provider.hx index ad3a71f..6a8482c 100755 --- a/haxework/provider/Provider.hx +++ b/haxework/provider/Provider.hx @@ -9,15 +9,15 @@ class Provider { private static var instances:ObjectMap = new ObjectMap(); public static function setFactory(i:Class, clazz:Class, ?type:Dynamic):Void { - factories.set(type == null ? i : type, clazz); + factories.set(type == null ? i : i + type, clazz); } public static function set(i:Class, instance:T, ?type:Dynamic):Void { - instances.set(type == null ? i : type, instance); + instances.set(type == null ? i : i + type, instance); } public static function get(i:Class, ?type:Dynamic):T { - var key:Dynamic = (type == null) ? i : type; + var key:Dynamic = (type == null) ? i : i + type; if (instances.exists(key)) { return instances.get(key); } else if (factories.exists(key)) {