This commit is contained in:
2014-03-03 17:56:20 +04:00
parent d817704941
commit 5fd6fee63c
4 changed files with 15 additions and 3 deletions

View File

@@ -24,6 +24,13 @@ class Formatter implements IFormatter {
}); });
} }
public function formatTime(time:Int):String {
time = Math.round(time / 1000);
var mm:Int = Math.floor(time / 60);
var ss:Int = time - mm * 60;
return doubleDigit(mm) + ":" + doubleDigit(ss);
}
private static function doubleDigit(num:Int):String { private static function doubleDigit(num:Int):String {
return ((num < 10) ? "0" : "") + num; return ((num < 10) ? "0" : "") + num;
} }

View File

@@ -3,4 +3,5 @@ package haxework.format;
interface IFormatter { interface IFormatter {
public function formatDate(date:Date, format:String):String; public function formatDate(date:Date, format:String):String;
public function formatDateFloat(date:Float, format:String):String; public function formatDateFloat(date:Float, format:String):String;
public function formatTime(time:Int):String;
} }

View File

@@ -55,6 +55,8 @@ class GuiB {
//Reflect.deleteField(data, "type"); //Reflect.deleteField(data, "type");
var object:Dynamic = instance(type); var object:Dynamic = instance(type);
new GuiF(object, data, links).fill(); new GuiF(object, data, links).fill();
var initMethod:Dynamic = Reflect.field(object, "init");
if (initMethod != null) Reflect.callMethod(object, initMethod, []);
return object; return object;
} else if (Std.is(data, String)) { } else if (Std.is(data, String)) {
return GuiF.convertString(data, links); return GuiF.convertString(data, links);

View File

@@ -6,10 +6,12 @@ import flash.errors.Error;
class Provider { class Provider {
private static var factories:ObjectMap<Dynamic, Class<Dynamic>> = new ObjectMap<Dynamic, Class<Dynamic>>(); private static var factories:ObjectMap<Dynamic, Class<Dynamic>> = new ObjectMap<Dynamic, Class<Dynamic>>();
private static var args:ObjectMap<Dynamic, Array<Dynamic>> = new ObjectMap<Dynamic, Array<Dynamic>>();
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, ?args:Array<Dynamic>):Void {
factories.set(type == null ? i : i + type, clazz); factories.set(type == null ? i : i + type, clazz);
if (args != null) Provider.args.set(type == null ? i : i + type, args);
} }
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 {
@@ -21,7 +23,7 @@ class Provider {
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)) {
var instance:T = Type.createInstance(factories.get(key), []); var instance:T = Type.createInstance(factories.get(key), args.exists(key) ? args.get(key) : []);
instances.set(key, instance); instances.set(key, instance);
return instance; return instance;
} else { } else {
@@ -32,7 +34,7 @@ class Provider {
public static function build<T>(i:Class<T>, ?type:Dynamic):T { public static function build<T>(i:Class<T>, ?type:Dynamic):T {
var key:Dynamic = (type == null) ? i : type; var key:Dynamic = (type == null) ? i : type;
if (factories.exists(key)) { if (factories.exists(key)) {
var instance:T = Type.createInstance(factories.get(key), []); var instance:T = Type.createInstance(factories.get(key), args.exists(key) ? args.get(key) : []);
return instance; return instance;
} else { } else {
throw new Error("Factory for\"" + i + "\" not found"); throw new Error("Factory for\"" + i + "\" not found");