supported DELETE method

This commit is contained in:
2014-01-08 11:42:34 +04:00
parent c031eb6896
commit 3b4953364e
9 changed files with 39 additions and 22 deletions

View File

@@ -7,6 +7,7 @@ class LabelView extends TextView {
public function new() { public function new() {
super(); super();
textField.selectable = false; textField.selectable = false;
textField.wordWrap = false;
textField.autoSize = TextFieldAutoSize.LEFT; textField.autoSize = TextFieldAutoSize.LEFT;
} }

View File

@@ -1,5 +1,6 @@
package haxework.gui; package haxework.gui;
import flash.display.Graphics;
import flash.display.Sprite; import flash.display.Sprite;
class SpriteView extends View<Sprite> { class SpriteView extends View<Sprite> {
@@ -7,4 +8,12 @@ class SpriteView extends View<Sprite> {
public function new() { public function new() {
super(new Sprite()); 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();
}*/
} }

View File

@@ -20,6 +20,8 @@ class TextView extends SpriteView implements ITextView<Sprite, TextField> {
public function new() { public function new() {
super(); super();
textField = new TextField(); textField = new TextField();
textField.width = 1;
textField.height = 1;
textField.wordWrap = true; textField.wordWrap = true;
textFormat = textField.defaultTextFormat; textFormat = textField.defaultTextFormat;
textFormat.font = "Arial"; textFormat.font = "Arial";

View File

@@ -58,8 +58,8 @@ class View<C:Content> implements IView<C> {
this.content = content; this.content = content;
x = 0; x = 0;
y = 0; y = 0;
width = 100; width = 1;
height = 100; height = 1;
margins = 0; margins = 0;
vAlign = VAlign.NONE; vAlign = VAlign.NONE;
hAlign = HAlign.NONE; hAlign = HAlign.NONE;
@@ -83,12 +83,12 @@ class View<C:Content> implements IView<C> {
public function update():Void { public function update():Void {
content.x = x; content.x = x;
content.y = y; content.y = y;
var skin:ISkin<C, IView<C>> = currentSkin();
if (contentSize && skin != null && Std.is(skin, ISize)) { if (contentSize && skin != null && Std.is(skin, ISize)) {
var size:ISize = cast(skin, ISize); var size:ISize = cast(skin, ISize);
if (!Math.isNaN(size.width)) width = size.width; if (!Math.isNaN(size.width)) width = size.width;
if (!Math.isNaN(size.height)) height = size.height; if (!Math.isNaN(size.height)) height = size.height;
} }
var skin:ISkin<C, IView<C>> = currentSkin();
if (skin != null) skin.draw(this); if (skin != null) skin.draw(this);
} }

View File

@@ -1,5 +1,6 @@
package haxework.net; package haxework.net;
import flash.net.URLRequestMethod;
import flash.events.ProgressEvent; import flash.events.ProgressEvent;
import haxework.net.manage.ILoaderManager; import haxework.net.manage.ILoaderManager;
import haxework.provider.Provider; import haxework.provider.Provider;
@@ -7,7 +8,6 @@ import flash.utils.ByteArray;
import haxework.net.callback.Callback; import haxework.net.callback.Callback;
import haxework.net.callback.ICallback; import haxework.net.callback.ICallback;
import flash.events.Event; import flash.events.Event;
import haxework.net.ILoader.Method;
class BaseLoader<T> implements ILoader<T> { class BaseLoader<T> implements ILoader<T> {
@@ -22,7 +22,7 @@ class BaseLoader<T> implements ILoader<T> {
public var completed(default, null):Float; public var completed(default, null):Float;
private var url:String; private var url:String;
private var method:Method; private var method:String;
private var data:Null<Dynamic>; private var data:Null<Dynamic>;
private var callback:ICallback<T>; private var callback:ICallback<T>;
@@ -31,7 +31,7 @@ class BaseLoader<T> implements ILoader<T> {
completed = Math.NaN; completed = Math.NaN;
} }
public function request(url:String, method:Method, data:Dynamic = null):ICallback<T> { public function request(url:String, method:String, data:Dynamic = null):ICallback<T> {
if (busy) throw "Busy"; if (busy) throw "Busy";
busy = true; busy = true;
this.url = url; this.url = url;
@@ -54,11 +54,15 @@ class BaseLoader<T> implements ILoader<T> {
} }
public function GET(url:String, data:Dynamic = null):ICallback<T> { public function GET(url:String, data:Dynamic = null):ICallback<T> {
return request(url, Method.GET, data); return request(url, URLRequestMethod.GET, data);
} }
public function POST(url:String, data:Dynamic = null):ICallback<T> { public function POST(url:String, data:Dynamic = null):ICallback<T> {
return request(url, Method.POST, data); return request(url, URLRequestMethod.POST, data);
}
public function DELETE(url:String, data:Dynamic = null):ICallback<T> {
return request(url, URLRequestMethod.DELETE, data);
} }
private function internalRequest(url:String):Void { private function internalRequest(url:String):Void {
@@ -108,7 +112,7 @@ class BaseLoader<T> implements ILoader<T> {
public function run():Void { public function run():Void {
var u:String = url; var u:String = url;
if (data != null && method == Method.GET) { if (data != null && method == URLRequestMethod.GET) {
var a:Array<String> = []; var a:Array<String> = [];
for (key in Reflect.fields(data)) { for (key in Reflect.fields(data)) {
a.push(key + "=" + Reflect.field(data, key)); a.push(key + "=" + Reflect.field(data, key));

View File

@@ -1,9 +1,10 @@
package haxework.net; package haxework.net;
import flash.net.URLRequestHeader;
import flash.net.URLRequestMethod;
import haxework.net.callback.ICallback; import haxework.net.callback.ICallback;
import flash.net.URLVariables; import flash.net.URLVariables;
import flash.events.ProgressEvent; import flash.events.ProgressEvent;
import haxework.net.ILoader.Method;
import flash.net.URLLoaderDataFormat; import flash.net.URLLoaderDataFormat;
import flash.events.SecurityErrorEvent; import flash.events.SecurityErrorEvent;
import flash.events.IOErrorEvent; import flash.events.IOErrorEvent;
@@ -24,8 +25,13 @@ class BaseURLLoader<T> extends BaseLoader<T> {
override private function internalRequest(url:String):Void { override private function internalRequest(url:String):Void {
loader = buildLoader(); loader = buildLoader();
var request:URLRequest = new URLRequest(url); var request:URLRequest = new URLRequest(url);
request.method = Std.string(method); if (method != URLRequestMethod.POST && method != URLRequestMethod.GET) {
if (data != null && method == Method.POST) { 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(); var variables:URLVariables = new URLVariables();
for (key in Reflect.fields(data)) { for (key in Reflect.fields(data)) {
Reflect.setField(variables, key, Reflect.field(data, key)); Reflect.setField(variables, key, Reflect.field(data, key));

View File

@@ -2,7 +2,6 @@ package haxework.net;
import haxework.net.callback.Callback; import haxework.net.callback.Callback;
import haxework.net.callback.ICallback; import haxework.net.callback.ICallback;
import haxework.net.ILoader.Method;
import flash.events.Event; import flash.events.Event;
import flash.net.URLLoader; import flash.net.URLLoader;

View File

@@ -3,19 +3,15 @@ package haxework.net;
import flash.utils.ByteArray; import flash.utils.ByteArray;
import haxework.net.callback.ICallback; import haxework.net.callback.ICallback;
enum Method {
GET;
POST;
}
interface ILoader<T> { interface ILoader<T> {
public var busy(default, null):Bool; public var busy(default, null):Bool;
public var completed(default, null):Float; public var completed(default, null):Float;
public function request(url:String, method:Method, data:Dynamic = null):ICallback<T>; public function request(url:String, method:String, data:Dynamic = null):ICallback<T>;
public function fromBytes(data:ByteArray):ICallback<T>; public function fromBytes(data:ByteArray):ICallback<T>;
public function GET(url:String, data:Dynamic = null):ICallback<T>; public function GET(url:String, data:Dynamic = null):ICallback<T>;
public function POST(url:String, data:Dynamic = null):ICallback<T>; public function POST(url:String, data:Dynamic = null):ICallback<T>;
public function DELETE(url:String, data:Dynamic = null):ICallback<T>;
public function cancel():Void; public function cancel():Void;
public function run():Void; public function run():Void;

View File

@@ -9,15 +9,15 @@ class Provider {
private static var instances:ObjectMap<Dynamic, Dynamic> = new ObjectMap<Dynamic, Dynamic>(); private static var instances:ObjectMap<Dynamic, Dynamic> = new ObjectMap<Dynamic, Dynamic>();
public static function setFactory<T>(i:Class<T>, clazz:Class<T>, ?type:Dynamic):Void { public static function setFactory<T>(i:Class<T>, clazz:Class<T>, ?type:Dynamic):Void {
factories.set(type == null ? i : type, clazz); factories.set(type == null ? i : i + type, clazz);
} }
public static function set<T>(i:Class<T>, instance:T, ?type:Dynamic):Void { public static function set<T>(i:Class<T>, instance:T, ?type:Dynamic):Void {
instances.set(type == null ? i : type, instance); instances.set(type == null ? i : i + type, instance);
} }
public static function get<T>(i:Class<T>, ?type:Dynamic):T { public static function get<T>(i:Class<T>, ?type:Dynamic):T {
var key:Dynamic = (type == null) ? i : type; var key:Dynamic = (type == null) ? i : i + type;
if (instances.exists(key)) { if (instances.exists(key)) {
return instances.get(key); return instances.get(key);
} else if (factories.exists(key)) { } else if (factories.exists(key)) {