1 package net.systemeD.potlatch2.save {
5 import mx.managers.PopUpManager;
6 import mx.core.Application;
7 import net.systemeD.halcyon.connection.*;
8 import org.iotashan.oauth.*;
10 public class SaveManager {
12 private static var instance:SaveManager = new SaveManager();
14 private var accessToken:OAuthToken;
15 private var consumer:OAuthConsumer;
17 public static function saveChanges():void {
21 private function save():void {
22 if ( consumer == null )
23 consumer = getConsumer();
24 if ( accessToken == null )
25 accessToken = getAccessToken();
27 if ( accessToken == null )
28 getNewToken(saveData);
33 private function getAccessToken():OAuthToken {
34 var key:String = Connection.getParam("oauth_token", null);
35 var secret:String = Connection.getParam("oauth_token_secret", null);
37 if ( key == null || secret == null ) {
38 var data:Object = SharedObject.getLocal("access_token").data;
39 key = data["oauth_token"];
40 secret = data["oauth_token_secret"];
43 if ( key == null || secret == null )
46 return new OAuthToken(key, secret);
49 private function getConsumer():OAuthConsumer {
50 var key:String = Connection.getParam("oauth_consumer_key", null);
51 var secret:String = Connection.getParam("oauth_consumer_secret", null);
53 if ( key == null || secret == null )
56 return new OAuthConsumer(key, secret);
59 private function getNewToken(onCompletion:Function):void {
60 var oauthPanel:OAuthPanel = OAuthPanel(
61 PopUpManager.createPopUp(Application(Application.application), OAuthPanel, true));
62 PopUpManager.centerPopUp(oauthPanel);
64 var listener:Function = function(event:Event):void {
65 accessToken = oauthPanel.accessToken;
66 if ( oauthPanel.shouldRemember ) {
67 var obj:SharedObject = SharedObject.getLocal("access_token");
68 obj.setProperty("oauth_token", accessToken.key);
69 obj.setProperty("oauth_token_secret", accessToken.secret);
74 oauthPanel.addEventListener(OAuthPanel.ACCESS_TOKEN_EVENT, listener);
77 private function saveData():void {
78 Connection.getConnectionInstance().setAppID(consumer);
79 Connection.getConnectionInstance().setAuthToken(accessToken);
81 var saveDialog:SaveDialog = SaveDialog(
82 PopUpManager.createPopUp(Application(Application.application), SaveDialog, true));
83 PopUpManager.centerPopUp(saveDialog);