Skip to content

Commit 81aedc7

Browse files
committed
appskeleton: use feathersui-rpc-services HTTPService to better match the original sample
1 parent 5ff473f commit 81aedc7

File tree

4 files changed

+30
-33
lines changed

4 files changed

+30
-33
lines changed

puremvc-haxe-demo-feathersui-appskeleton/project.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
<haxelib name="openfl"/>
1414
<haxelib name="actuate"/>
1515
<haxelib name="feathersui"/>
16+
<haxelib name="feathersui-rpc-services"/>
1617
<haxelib name="puremvc-standard"/>
1718

1819
<icon path="assets/icons/feathersui-icon.svg"/>
1920

2021
<assets path="assets/img" include="*"/>
22+
23+
<!-- copy the .xml files, but don't load them as assets -->
2124
<assets path="assets/data" include="*" embed="false"/>
2225
</project>

puremvc-haxe-demo-feathersui-appskeleton/src/org/puremvc/haxe/demos/feathersui/appskeleton/model/ConfigProxy.hx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
package org.puremvc.haxe.demos.feathersui.appskeleton.model;
99

10-
import openfl.events.Event;
11-
import openfl.events.ErrorEvent;
10+
import feathers.rpc.IResponder;
11+
import feathers.rpc.events.ResultEvent;
1212
import org.puremvc.haxe.demos.feathersui.appskeleton.model.business.LoadXMLDelegate;
1313
import org.puremvc.haxe.demos.feathersui.appskeleton.model.helpers.XmlResource;
1414
import org.puremvc.haxe.patterns.proxy.Proxy;
1515

1616
/**
1717
A proxy for read the config file
1818
**/
19-
class ConfigProxy extends Proxy implements IResourceProxy {
19+
class ConfigProxy extends Proxy implements IResourceProxy implements IResponder {
2020
public static final NAME = "ConfigProxy"; // Proxy name
2121
public static final SEPARATOR = "/";
2222

@@ -49,7 +49,7 @@ class ConfigProxy extends Proxy implements IResourceProxy {
4949
public function load():Void {
5050
// create a worker who will go get some data
5151
// pass it a reference to this proxy so the delegate knows where to return the data
52-
var delegate = new LoadXMLDelegate(this.result, this.fault, "assets/data/config.xml");
52+
var delegate = new LoadXMLDelegate(this, "assets/data/config.xml");
5353
// make the delegate do some work
5454
delegate.load();
5555
}
@@ -59,9 +59,9 @@ class ConfigProxy extends Proxy implements IResourceProxy {
5959
6060
@param rpcEvent
6161
**/
62-
public function result(result:Xml):Void {
62+
public function result(rpcEvent:Dynamic):Void {
6363
// call the helper class for parse the XML data
64-
XmlResource.parse(data, result);
64+
XmlResource.parse(data, cast(rpcEvent, ResultEvent).result);
6565

6666
// call the StartupMonitorProxy for notify that the resource is loaded
6767
startupMonitorProxy.resourceComplete(ConfigProxy.NAME);

puremvc-haxe-demo-feathersui-appskeleton/src/org/puremvc/haxe/demos/feathersui/appskeleton/model/LocaleProxy.hx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@
77

88
package org.puremvc.haxe.demos.feathersui.appskeleton.model;
99

10-
import openfl.events.ErrorEvent;
10+
import feathers.rpc.IResponder;
11+
import feathers.rpc.events.ResultEvent;
1112
import org.puremvc.haxe.demos.feathersui.appskeleton.model.business.LoadXMLDelegate;
1213
import org.puremvc.haxe.demos.feathersui.appskeleton.model.helpers.XmlResource;
1314
import org.puremvc.haxe.patterns.proxy.Proxy;
1415

1516
/**
1617
A proxy for read the resource file
1718
**/
18-
class LocaleProxy extends Proxy implements IResourceProxy {
19+
class LocaleProxy extends Proxy implements IResourceProxy implements IResponder {
1920
public static final NAME = "LocaleProxy"; // Proxy name
2021

2122
// Notifications constants
@@ -54,7 +55,7 @@ class LocaleProxy extends Proxy implements IResourceProxy {
5455

5556
// create a worker who will go get some data
5657
// pass it a reference to this proxy so the delegate knows where to return the data
57-
var delegate = new LoadXMLDelegate(this.result, this.fault, url);
58+
var delegate = new LoadXMLDelegate(this, url);
5859
// make the delegate do some work
5960
delegate.load();
6061
} else {
@@ -67,9 +68,9 @@ class LocaleProxy extends Proxy implements IResourceProxy {
6768
6869
@param rpcEvent
6970
**/
70-
public function result(result:Xml):Void {
71+
public function result(rpcEvent:Dynamic):Void {
7172
// call the helper class for parse the XML data
72-
XmlResource.parse(data, result);
73+
XmlResource.parse(data, cast(rpcEvent, ResultEvent).result);
7374

7475
resourceLoaded();
7576
}

puremvc-haxe-demo-feathersui-appskeleton/src/org/puremvc/haxe/demos/feathersui/appskeleton/model/business/LoadXMLDelegate.hx

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,28 @@
77

88
package org.puremvc.haxe.demos.feathersui.appskeleton.model.business;
99

10-
import openfl.Assets;
11-
import openfl.events.ErrorEvent;
10+
import feathers.rpc.IResponder;
11+
import feathers.rpc.http.HTTPService;
1212

1313
class LoadXMLDelegate {
14-
private var resultCallback:(Xml) -> Void;
15-
private var faultCallback:(Dynamic) -> Void;
16-
private var assetID:String;
14+
private var responder:IResponder;
15+
private var service:HTTPService;
1716

18-
public function new(resultCallback:(Xml) -> Void, faultCallback:(ErrorEvent) -> Void, assetID:String) {
19-
// store a reference to the proxy that created this delegate
20-
this.resultCallback = resultCallback;
21-
this.faultCallback = faultCallback;
17+
public function new(responder:IResponder, url:String) {
18+
// constructor will store a reference to the service we're going to call
19+
this.service = new HTTPService();
20+
this.service.resultFormat = HTTPService.RESULT_FORMAT_HAXE_XML;
21+
this.service.url = url;
2222

23-
this.assetID = assetID;
23+
// and store a reference to the proxy that created this delegate
24+
this.responder = responder;
2425
}
2526

2627
public function load():Void {
2728
// call the service
28-
Assets.loadText(assetID).onComplete(resultText -> {
29-
var result:Xml = null;
30-
try {
31-
result = Xml.parse(resultText);
32-
} catch (e:Dynamic) {
33-
faultCallback(e);
34-
return;
35-
}
36-
resultCallback(result);
37-
}).onError(fault -> {
38-
faultCallback(fault);
39-
});
29+
var token = service.send();
30+
31+
// notify this responder when the service call completes
32+
token.addResponder(responder);
4033
}
4134
}

0 commit comments

Comments
 (0)