Init
This commit is contained in:
@ -0,0 +1,328 @@
|
||||
import flash.external.*;
|
||||
import gfx.controls.TextInput;
|
||||
import gfx.controls.Button;
|
||||
import gfx.controls.CheckBox;
|
||||
import mx.utils.Delegate;
|
||||
|
||||
class Screens.EmailScreen extends ScreenWithPageNavigator
|
||||
{
|
||||
|
||||
private var emailSendRecipient0EditBox:TextInput;
|
||||
private var emailSendRecipient1EditBox:TextInput;
|
||||
private var emailSendRecipient2EditBox:TextInput;
|
||||
private var emailSendRecipient3EditBox:TextInput;
|
||||
private var emailSendRecipient4EditBox:TextInput;
|
||||
private var emailSendRecipient5EditBox:TextInput;
|
||||
private var emailSendRecipient6EditBox:TextInput;
|
||||
private var emailSendRecipient7EditBox:TextInput;
|
||||
private var emailSubjectEditBox:TextInput;
|
||||
private var emailBodyEditBox:TextInput;
|
||||
private var emailStatusEditBox:TextInput;
|
||||
private var deleteEmailIDEditBox:TextInput;
|
||||
private var updateEmailIDEditBox:TextInput;
|
||||
private var newStatusFlagEditbox:TextInput;
|
||||
|
||||
private var sendEmailButton:Button;
|
||||
private var getEmailsButton:Button;
|
||||
private var deleteEmailButton:Button;
|
||||
private var setEmailStatusButton:Button;
|
||||
|
||||
private var updateStatusFlagCheckbox:CheckBox;
|
||||
private var updateMarkedReadCheckbox:CheckBox;
|
||||
private var isNowMarkedReadCheckbox:CheckBox;
|
||||
|
||||
private var btnCompose:Button;
|
||||
private var btnDelete:Button;
|
||||
private var btnMarkUnread:Button;
|
||||
private var mcMail:Mail;
|
||||
|
||||
public function EmailScreen()
|
||||
{
|
||||
ConsoleWindow.Trace("Constructing EmailScreen");
|
||||
|
||||
mScreenId = ScreenID.EMAIL;
|
||||
mScreenTabId = ScreenTab.ID_EMAIL;
|
||||
|
||||
mEntriesPerPage = 10;
|
||||
mFirstEntryX = 482;
|
||||
mFirstEntryY = -265;
|
||||
mDeltaY = 10;
|
||||
}
|
||||
|
||||
public function VOnFinishedLoading():Void
|
||||
{
|
||||
//Add click event for buttons
|
||||
//sendEmailButton.addEventListener("click", this, "f2c_SendEmail");
|
||||
//deleteEmailButton.addEventListener("click", this, "f2c_DeleteEmail");
|
||||
//setEmailStatusButton.addEventListener("click", this, "f2c_UpdateEmail");
|
||||
//getEmailsButton.addEventListener("click", this, "f2c_GetEmails");
|
||||
btnCompose.addEventListener("click", this, "ComposeMail");
|
||||
//btnDelete.addEventListener("click", this, "f2c_DeleteEmail");
|
||||
//btnMarkUnread.addEventListener("click", this, "f2c_GetEmails");
|
||||
btnDelete.addEventListener("click", this, "DeleteSelectedEmails");
|
||||
|
||||
//Add callbacks for C++
|
||||
ExternalInterface.addCallback("c2f_SendEmail", this, c2f_SendEmail);
|
||||
ExternalInterface.addCallback("c2f_DeleteEmail", this, c2f_DeleteEmail);
|
||||
ExternalInterface.addCallback("c2f_UpdateEmail", this, c2f_UpdateEmail);
|
||||
ExternalInterface.addCallback("c2f_GetEmails", this, c2f_GetEmails);
|
||||
|
||||
mcMail._visible = false;
|
||||
|
||||
super.VOnFinishedLoading();
|
||||
}
|
||||
|
||||
public function OnShow():Void
|
||||
{
|
||||
super.OnShow();
|
||||
|
||||
if ( mMovieClipList.length > 0 )
|
||||
{
|
||||
CleanUpMoveClipList( mMovieClipList );
|
||||
}
|
||||
|
||||
mMovieClipList = new Array();
|
||||
mCurrentPage = 0;
|
||||
GoToPage( 1 );
|
||||
f2c_GetEmails();
|
||||
if ( LobbyInterface.Instance.IsInFlashMode() )
|
||||
{
|
||||
c2f_GetEmails();
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_SendEmail():Void
|
||||
{
|
||||
if ( mcMail.GetToField().length > 0 )
|
||||
{
|
||||
ExternalInterface.call("f2c_SendEmail",
|
||||
mcMail.GetToField(),//emailSendRecipient0EditBox.text, emailSendRecipient1EditBox.text, emailSendRecipient2EditBox.text,
|
||||
"", "", "", "", "", "", "",//emailSendRecipient3EditBox.text, emailSendRecipient4EditBox.text, emailSendRecipient5EditBox.text,
|
||||
//emailSendRecipient6EditBox.text, emailSendRecipient7EditBox.text,
|
||||
mcMail.GetSubjectField(), mcMail.GetMsgField(),//emailSubjectEditBox.text, emailBodyEditBox.text,
|
||||
""//emailStatusEditBox.text
|
||||
);
|
||||
|
||||
HideMail();
|
||||
}
|
||||
}
|
||||
|
||||
function c2f_SendEmail(resultIdentifier:String):Void
|
||||
{
|
||||
switch (resultIdentifier)
|
||||
{
|
||||
case "SUCCESS":
|
||||
ConsoleWindow.Trace("c2f_SendEmail: " + resultIdentifier);
|
||||
break;
|
||||
}
|
||||
|
||||
if ( resultIdentifier != "SUCCESS" )
|
||||
{
|
||||
LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_DeleteEmail( emailID:Number ):Void
|
||||
{
|
||||
ConsoleWindow.Trace("f2c_DeleteEmail(), emailID = " + emailID);
|
||||
if ( emailID != null )
|
||||
{
|
||||
ExternalInterface.call("f2c_DeleteEmail", String(emailID));
|
||||
}
|
||||
}
|
||||
|
||||
function c2f_DeleteEmail(resultIdentifier:String):Void
|
||||
{
|
||||
switch (resultIdentifier)
|
||||
{
|
||||
case "DATABASE_CONSTRAINT_FAILURE":
|
||||
break;
|
||||
case "Emails_Delete_UNKNOWN_EMAIL_ID":
|
||||
break;
|
||||
case "Emails_Delete_ALREADY_DELETED":
|
||||
break;
|
||||
case "SUCCESS":
|
||||
ConsoleWindow.Trace("c2f_DeleteEmail()... resultIdentifier = " + resultIdentifier);
|
||||
break;
|
||||
}
|
||||
|
||||
if ( resultIdentifier != "SUCCESS" )
|
||||
{
|
||||
LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_UpdateEmail():Void
|
||||
{
|
||||
ExternalInterface.call("f2c_UpdateEmail", updateEmailIDEditBox.text,
|
||||
updateStatusFlagCheckbox.selected, updateMarkedReadCheckbox.selected,
|
||||
newStatusFlagEditbox.text, isNowMarkedReadCheckbox.selected
|
||||
);
|
||||
}
|
||||
|
||||
function c2f_UpdateEmail(resultIdentifier:String):Void
|
||||
{
|
||||
switch (resultIdentifier)
|
||||
{
|
||||
case "DATABASE_CONSTRAINT_FAILURE":
|
||||
break;
|
||||
case "Emails_SetStatus_UNKNOWN_EMAIL_ID":
|
||||
break;
|
||||
case "Emails_SetStatus_WAS_DELETED":
|
||||
break;
|
||||
case "SUCCESS":
|
||||
break;
|
||||
}
|
||||
|
||||
if ( resultIdentifier != "SUCCESS" )
|
||||
{
|
||||
LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_GetEmails():Void
|
||||
{
|
||||
ExternalInterface.call("f2c_GetEmails");
|
||||
}
|
||||
|
||||
public function DeleteEmail( emailEntry:MovieClip ):Void
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function DeleteSelectedEmails():Void
|
||||
{
|
||||
var startIndex:Number = mCurrentPage * mEntriesPerPage - ( mEntriesPerPage );
|
||||
var endIndex:Number = startIndex + mEntriesPerPage;
|
||||
var listForRemoval:Array = new Array();;
|
||||
|
||||
for ( var i:Number = 0; i < mEntriesPerPage; i++ )
|
||||
{
|
||||
var mcEntry:MovieClip = mMovieClipList[startIndex+i];
|
||||
if ( !mcEntry )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if ( mcEntry.cbSelected.selected )
|
||||
{
|
||||
//RemoveEntryFromList(mcEntry, null, true);
|
||||
listForRemoval.push(mcEntry);
|
||||
}
|
||||
}
|
||||
|
||||
var length:Number = listForRemoval.length;
|
||||
for ( var n:Number = 0; n < length; n++ )
|
||||
{
|
||||
ConsoleWindow.Trace("Removing: " + mcEntry);
|
||||
f2c_DeleteEmail( listForRemoval[n].emailID );
|
||||
RemoveEntryFromList( listForRemoval[n], null, true );
|
||||
}
|
||||
}
|
||||
|
||||
function c2f_GetEmails():Void
|
||||
{
|
||||
ConsoleWindow.Trace("c2f_GetEmails: " );
|
||||
var numEmails:Number = arguments.length/9;
|
||||
for (var i:Number=0; i < numEmails; i++)
|
||||
{
|
||||
var sender:String = arguments[i*9+0];
|
||||
var recipient:String = arguments[i*9+1];
|
||||
var subject:String = arguments[i*9+2];
|
||||
var body:String = arguments[i*9+3];
|
||||
var status:Number = arguments[i*9+4];
|
||||
var wasSendByMe:Boolean = arguments[i*9+5];
|
||||
var wasReadByMe:Boolean = arguments[i*9+6];
|
||||
var emailID:Number = arguments[i*9+7];
|
||||
var creationDate:String = arguments[i * 9 + 8];
|
||||
|
||||
ConsoleWindow.Trace("sender: " + sender + ", recipient: " + recipient + ", subject: " + subject + ", body: " + body + ", status: " + status + ", wasSendByMe: " + wasSendByMe
|
||||
+ ", wasReadByMe: " + wasReadByMe + ", emailID: " + emailID + ", creationDate: " + creationDate);
|
||||
|
||||
AddListEntry( sender, recipient, subject, body, creationDate, "", emailID );
|
||||
}
|
||||
|
||||
//TODO: remove this once c++ sends down proper data
|
||||
for ( var n:Number = 0; n < 15; n++ )
|
||||
{
|
||||
AddListEntry( "from user" + mMovieClipList.length, "??", "Hi!", "lkajs;ldf", "mm/day/year" );
|
||||
}
|
||||
|
||||
OnMoveClipListUpdated();
|
||||
ShowPage(1);
|
||||
}
|
||||
|
||||
private function AddListEntry( usernameFrom:String, recipient:String, subject:String, body:String, date:String, time:String, emailID:Number ):MovieClip
|
||||
{
|
||||
var userEntry:MovieClip = attachMovie("EmailListEntry", "emailEntry" + mMovieClipList.length, getNextHighestDepth() );
|
||||
userEntry._visible = false;
|
||||
userEntry.tfUsername.text = usernameFrom;
|
||||
userEntry.tfSubject.text = subject;
|
||||
userEntry.tfDate.text = date;
|
||||
userEntry.emailID = emailID;
|
||||
userEntry.bodyText = body;
|
||||
mMovieClipList.push( userEntry );
|
||||
|
||||
var self:EmailScreen = this;
|
||||
userEntry.mcMail.onPress = function() { self.ReadMail( this._parent.tfUsername.text, this._parent.tfSubject.text, this._parent.bodyText, this._parent ); }
|
||||
return userEntry;
|
||||
}
|
||||
|
||||
private function OnShowMovieClipEntry( mcEntry:MovieClip, index:Number ):Void
|
||||
{
|
||||
super.OnShowMovieClipEntry( mcEntry, index );
|
||||
mcEntry.cbSelected.selected = false;
|
||||
}
|
||||
|
||||
public function ComposeMail():Void
|
||||
{
|
||||
mcMail.Clear();
|
||||
mcMail.SetMode( Mail.cMode1 );
|
||||
mcMail.SetButton( 1, "CANCEL", Delegate.create(this, HideMail) );
|
||||
mcMail.SetButton( 2, "SEND", Delegate.create(this, f2c_SendEmail) );
|
||||
mcMail.HideButton( 3 );
|
||||
|
||||
mcMail.SetTitle( "COMPOSE MESSAGE" );
|
||||
mcMail.SetToDisplayText( "TO:" );
|
||||
mcMail.SetToField( );
|
||||
mcMail.swapDepths( getNextHighestDepth() );
|
||||
mcMail._visible = true;
|
||||
}
|
||||
|
||||
public function ReadMail( username:String, subject:String, body:String, mailEntry:MovieClip ):Void
|
||||
{
|
||||
mcMail.Clear();
|
||||
mcMail.SetMode( Mail.cMode2 );
|
||||
mcMail.SetButton( 1, "DELETE", Delegate.create(this, DeleteMail) );
|
||||
mcMail.SetButton( 2, "CLOSE", Delegate.create(this, HideMail) );
|
||||
mcMail.SetButton( 3, "REPLY", Delegate.create(this, ComposeMail) );
|
||||
mcMail["mailEntry"] = mailEntry;
|
||||
|
||||
mcMail.SetTitle("RECEIVED MESSAGE:" );
|
||||
mcMail.SetUsername( username );
|
||||
mcMail.SetSubjectField( subject );
|
||||
mcMail.SetMsgField( body );
|
||||
mcMail.swapDepths( getNextHighestDepth() );
|
||||
mcMail._visible = true;
|
||||
}
|
||||
|
||||
public function HideMail():Void
|
||||
{
|
||||
mcMail._visible = false;
|
||||
}
|
||||
|
||||
public function DeleteMail( ):Void
|
||||
{
|
||||
mcMail._visible = false;
|
||||
var mailEntry:MovieClip = mcMail["mailEntry"];
|
||||
if ( mailEntry )
|
||||
{
|
||||
f2c_DeleteEmail( mailEntry.emailID );
|
||||
RemoveEntryFromList( mailEntry );
|
||||
}
|
||||
else
|
||||
{
|
||||
ConsoleWindow.Trace("DeleteMail, entry = " + mailEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user