| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- import flash.external.*;
- import gfx.controls.TextInput;
- import gfx.controls.Button;
- import gfx.controls.ScrollBar;
- import mx.utils.Delegate;
- class Screens.ClanBlockListScreen extends ScreenWithPageNavigator
- {
- private var ignoreUsernameEditBox:TextInput;
- private var startIgnoreButton:Button;
- private var btnBack:Button;
- private var tfClanName:TextField;
-
- private var mIsWaitingForResponseFromServer:Boolean; //true when user hit ignore or stop ignore to wait for server to verify the action
- private var mUsernameOnHold:String;
- private var mcMail:Mail;
- private var mUserToUnblock:MovieClip;
-
- private static var mInstance:ClanBlockListScreen;
-
- public function ClanBlockListScreen()
- {
- ConsoleWindow.Trace("Constructing ClanBlockListScreen");
-
- mScreenId = ScreenID.CLAN_BLOCK_LIST;
- mScreenTabId = ScreenTab.ID_CLANS;
- mIsWaitingForResponseFromServer = false;
-
- mEntriesPerPage = 10;
- mFirstEntryX = 440;
- mFirstEntryY = -245;
- mDeltaY = 10;
-
- mInstance = this;
- }
-
- public static function get Instance():ClanBlockListScreen
- {
- return mInstance;
- }
-
- public function VOnFinishedLoading():Void
- {
- //Add click event for buttons
- startIgnoreButton.addEventListener("click", this, "ShowKickAndBlockMail");
- //stopIgnoreButton.addEventListener("click", this, "f2c_StopIgnore");
- btnBack.addEventListener("click", this, "Back");
-
- //Add callbacks for C++
- // ExternalInterface.addCallback("c2f_StartIgnore", this, c2f_StartIgnore);
- // ExternalInterface.addCallback("c2f_StopIgnore", this, c2f_StopIgnore);
- // ExternalInterface.addCallback("c2f_GetIgnoreListResult", this, c2f_GetIgnoreListResult);
- ExternalInterface.addCallback("c2f_Clans_KickAndBlacklistUser", this, c2f_Clans_KickAndBlacklistUser);
- ExternalInterface.addCallback("c2f_Clans_UnblacklistUser", this, c2f_Clans_UnblacklistUser);
- ExternalInterface.addCallback("c2f_Clans_GetBlacklist", this, c2f_Clans_GetBlacklist);
-
- super.VOnFinishedLoading();
- }
-
- public function OnShow():Void
- {
- super.OnShow();
- mcMail._visible = false;
-
- //ConsoleWindow.Trace("blocked user list length = " + mMovieClipList.length);
- if ( mMovieClipList.length > 0 )
- {
- CleanUpMoveClipList( mMovieClipList );
- }
-
- mMovieClipList = new Array();
- mCurrentPage = 0;
- GoToPage( 1 );
- f2c_GetIgnoreList();
- mIsWaitingForResponseFromServer = false;
- }
- public function SetClanName( name:String ):Void { tfClanName.text = name; }
-
- public function Back():Void
- {
- LobbyInterface.Instance.ShowLastScreen();
- }
-
- public function ShowKickAndBlockMail():Void
- {
- mcMail.Clear();
- mcMail.SetButton( 1, "CANCEL", Delegate.create(this, HideMail) );
- mcMail.SetButton( 2, "KICK", Delegate.create(this, f2c_Clans_KickAndBlacklistUser) );
-
- mcMail.SetTitle( "KICK AND BLOCK USER FROM CLAN" );
- mcMail.SetToField( ignoreUsernameEditBox.text );
- mcMail.SetSubjectField( "Kicked From " + tfClanName.text );
- mcMail.SetCheckBox( "BLOCK USER" );
- mcMail.swapDepths( getNextHighestDepth() );
- mcMail._visible = true;
- }
-
- public function f2c_Clans_KickAndBlacklistUser():Void
- {
- if ( !mIsWaitingForResponseFromServer )
- {
- mIsWaitingForResponseFromServer = true;
- //ExternalInterface.call("f2c_StartIgnore", ignoreUsernameEditBox.text);
- mUsernameOnHold = ignoreUsernameEditBox.text;
-
- ExternalInterface.call("f2c_Clans_KickAndBlacklistUser", tfClanName.text, mcMail.GetSubjectField(), mcMail.GetMsgField(), "0",
- mcMail.GetToField(),
- true,
- mcMail.IsCheckBoxOn(),
- "Unknown Reason" //The 'reason' field is sent to all clan members and is a short message or identifier. It is also stored in the database along with their username, so that if say a moderator later wanted to know why the guy was kicked, you could tell why. As it is defined by the application, this could be a text string, a phrase, a paragraph, or just some identifier.
- );
- }
- }
-
- public function ShowStopIgnoreMail( blockedUserEntry:MovieClip ):Void
- {
- if ( !mIsWaitingForResponseFromServer )
- {
- mIsWaitingForResponseFromServer = true;
- mUserToUnblock = blockedUserEntry;
- mcMail.Clear();
- mcMail.SetButton( 1, "CANCEL", Delegate.create(this, HideMail) );
- mcMail.SetButton( 2, "UNBLOCK", Delegate.create(this, StopIgnore) );
-
- mcMail.SetTitle( "UNBLOCK USER FROM CLAN" );
- mcMail.SetToField( blockedUserEntry.tfUsername.text );
- mcMail.DisableToField();
- mcMail.SetSubjectField( "Unblocked From " + tfClanName.text );
- mcMail.swapDepths( getNextHighestDepth() );
- mcMail._visible = true;
- }
- }
- public function StopIgnore():Void
- {
- ConsoleWindow.Trace("StopIgnore: " + mUserToUnblock);
- if ( mUserToUnblock )
- {
- //f2c_StopIgnore( blockedUserEntry.tfUsername.text );
-
- ExternalInterface.call("f2c_Clans_UnblacklistUser", tfClanName.text, mcMail.GetSubjectField(), mcMail.GetMsgField(), "0",
- mUserToUnblock.tfUsername.text);
- RemoveEntryFromList( mUserToUnblock, mMovieClipList );
- }
- }
-
- public function f2c_StopIgnore( _username:String ):Void
- {
- if ( !mIsWaitingForResponseFromServer )
- {
- ExternalInterface.call("f2c_StopIgnore", _username);
- }
- }
- public function f2c_GetIgnoreList():Void
- {
- //ExternalInterface.call("f2c_GetIgnoreList");
- ExternalInterface.call("f2c_Clans_GetBlacklist", tfClanName.text);
- }
- public function c2f_GetIgnoreListResult():Void
- {
- ConsoleWindow.Trace("c2f_GetIgnoreListResult...");
- for (var i:Number = 0; i < arguments.length; i++)
- {
- // Array of handles (string)
- ConsoleWindow.Trace(arguments[i]);
- }
-
- //TODO: remove this once c++ sends down proper data
- for ( var n:Number = 0; n < 25; n++ )
- {
- /*var userEntry:MovieClip = attachMovie("BlockListEntry", "blockedUser" + mMovieClipList.length, getNextHighestDepth() );
- userEntry._visible = false;
- userEntry.tfUsername.text = "testUser" + mMovieClipList.length;
- mMovieClipList.push( userEntry );
- var self:BlockListScreen = this;
- userEntry.mcDelete.onPress = function() { self.StopIgnore( this._parent ); }*/
- AddBlockListEntry( "testUser" + mMovieClipList.length );
- }
-
- OnMoveClipListUpdated();
- ShowPage(1);
- }
-
- public function IgnoreUser( _username:String, _profileImageIndex:Number ):Void
- {
- /* var userEntry:MovieClip = attachMovie("BlockListEntry", "blockedUser" + mMovieClipList.length, getNextHighestDepth() );
- userEntry._visible = false;
- userEntry.tfUsername.text = _username;
- mMovieClipList.push( userEntry );
- var self:BlockListScreen = this;
- userEntry.mcDelete.onPress = function() { self.StopIgnore( this._parent ); }*/
- AddBlockListEntry( _username );
-
- TogglePageVisibility(mCurrentPage, true );
- OnMoveClipListUpdated();
- }
-
- public function HideMail():Void
- {
- mcMail._visible = false;
- }
-
- public function AddBlockListEntry( _username:String ):Void
- {
- var userEntry:MovieClip = attachMovie("BlockListEntry", "blockedUser" + mMovieClipList.length, getNextHighestDepth() );
- userEntry._visible = false;
- userEntry.tfUsername.text = _username;
- mMovieClipList.push( userEntry );
- ConsoleWindow.Trace("Ignoring user: " + userEntry);
- var self:ClanBlockListScreen = this;
- userEntry.mcDelete.onPress = function() { self.ShowStopIgnoreMail( this._parent ); }
- }
-
- private function OnShowMovieClipEntry( mcEntry:MovieClip, index:Number ):Void
- {
- //ConsoleWindow.Trace("BlockList... OnShowMovieClipEntry: " + mcEntry.mcDelete.onPress);
- super.OnShowMovieClipEntry( mcEntry, index );
- }
-
- private function OnHideMovieClipEntry( mcEntry:MovieClip ):Void
- {
- //ConsoleWindow.Trace("BlockList... OnHideMovieClipEntry: " + mcEntry.mcDelete.onPress );
- mcEntry.mcDelete.onPress = null;
- }
-
- public function c2f_Clans_GetBlacklist(resultIdentifier:String):Void
- {
- ConsoleWindow.Trace("c2f_Clans_GetBlacklist(), arguments = " + arguments);
- switch (resultIdentifier)
- {
- case "Clans_GetBlacklist_UNKNOWN_CLAN":
- break;
- case "DATABASE_CONSTRAINT_FAILURE":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_Clans_GetBlacklist(), success!");
- var length:Number = arguments.length;
- for ( var i:Number = 1; i < length; i++ )
- {
- AddBlockListEntry( arguments[i] );
- }
-
- OnMoveClipListUpdated();
- ShowPage(1);
- break;
- }
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
-
- public function c2f_Clans_KickAndBlacklistUser(resultIdentifier:String):Void
- {
- switch (resultIdentifier)
- {
- case "Clans_KickAndBlacklistUser_UNKNOWN_CLAN":
- break;
- case "Clans_KickAndBlacklistUser_NOT_IN_CLAN":
- break;
- case "Clans_KickAndBlacklistUser_MUST_BE_LEADER_OR_SUBLEADER":
- break;
- case "Clans_KickAndBlacklistUser_UNKNOWN_TARGET_HANDLE":
- break;
- case "Clans_KickAndBlacklistUser_CANNOT_PERFORM_ON_SELF":
- break;
- case "Clans_KickAndBlacklistUser_CANNOT_PERFORM_ON_LEADER":
- break;
- case "Clans_KickAndBlacklistUser_ALREADY_BLACKLISTED":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_Clans_KickAndBlacklistUser(), success!");
- HideMail();
- break;
- }
-
- mIsWaitingForResponseFromServer = false;
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
- public function c2f_Clans_UnblacklistUser(resultIdentifier:String):Void
- {
- switch (resultIdentifier)
- {
- case "Clans_UnblacklistUser_UNKNOWN_CLAN":
- break;
- case "Clans_UnblacklistUser_NOT_IN_CLAN":
- break;
- case "Clans_UnblacklistUser_MUST_BE_LEADER_OR_SUBLEADER":
- break;
- case "Clans_UnblacklistUser_UNKNOWN_TARGET_HANDLE":
- break;
- case "Clans_UnblacklistUser_NOT_BLACKLISTED":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_Clans_UnblacklistUser(), success");
- HideMail();
- break;
- }
-
- mIsWaitingForResponseFromServer = false;
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
- }
|