📄 tabaddcommentpanel.mxml
字号:
<?xml version="1.0" encoding="utf-8"?>
<sharedcomponents:FlexDotOrgWindow
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:sharedcomponents="org.flex.sharedcomponents.*"
label="Reply to comment">
<mx:Script>
<![CDATA[
//////////////////////////////////////////////////
//import
import mx.controls.Alert;
import mx.effects.Fade;
import mx.events.ResizeEvent;
import mx.events.TweenEvent;
import mx.events.ValidationResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.validators.Validator;
import org.flex.engine.FlexEngine;
import org.flex.engine.managers.ServiceManager;
import org.flex.textrestrict.TextRestrictConstants;
import org.flex.engine.managers.Comment;
import org.flex.engine.managers.User;
//////////////////////////////////////////////////
//private variables
private var focussedFormControl:DisplayObject;
public var _type:String;
[Bindable]
private var addCommentFormIsEmpty:Boolean;
[Bindable]
private var addCommentFormIsValid:Boolean;
[Bindable]
public var comment:Comment;
[Bindable]
public var editcomment:Comment;
//////////////////////////////////////////////////////////////////////////////
//getter/setter
public function set type(val:String):void{
_type=val
}
public function get type():String{
return this._type
}
//////////////////////////////////////////////////////////////////////////////////////
//initialization
private function creationCompleteHandler(event:Event):void {
//
}
//////////////////////////////////////////////////
//general
override public function show():void {
super.show();
if (type=="edit") {
message_mc.text = comment.body;
message_mc.errorString = "";
message_mc.setSelection(message_mc.text.length, message_mc.text.length);
}else{
message_mc.text = "";
message_mc.errorString = "";
}
addCommentFormIsEmpty = true;
focusManager.setFocus(message_mc);
}
private function cancelClickHandler(mouseEvent:MouseEvent):void {
hide();
}
private function hideCompleteHandler(tweenEvent:TweenEvent):void {
visible = false;
}
//project info-------------------------------------------------------------------------
private function projectClickHandler(mouseEvent:MouseEvent):void {
var flexEngine:FlexEngine = FlexEngine.getInstance();
var serviceManager:ServiceManager = flexEngine.serviceManager;
serviceManager.user.addEventListener(ResultEvent.RESULT, nodeSaveResultHandler);
serviceManager.user.addEventListener(FaultEvent.FAULT, nodeSaveFaultHandler);
}
private function nodeSaveResultHandler(resultEvent:ResultEvent):void {
//
}
private function nodeSaveFaultHandler(faultEvent:FaultEvent):void {
//
}
//validation----------------------------------------------------------------------------
private function validateProjectForm(event:Event):void {
focussedFormControl = event.target as DisplayObject;
addCommentFormIsEmpty = (message_mc.text == "");
addCommentFormIsValid = true;
validateProject(messageValidator);
}
private function validateProject(validator:Validator):Boolean {
var validatorSource:DisplayObject = validator.source as DisplayObject;
var suppressEvents:Boolean = (validatorSource != focussedFormControl);
var event:ValidationResultEvent = validator.validate(null, suppressEvents);
var currentControlIsValid:Boolean = (event.type == ValidationResultEvent.VALID);
addCommentFormIsValid = addCommentFormIsValid && currentControlIsValid;
return currentControlIsValid;
}
//comments------------------------------------------------------------------------
private function postComment():void {
var flexEngine:FlexEngine = FlexEngine.getInstance();
var serviceManager:ServiceManager = flexEngine.serviceManager;
if (editcomment!=null) {
editcomment.body = message_mc.text;
editcomment.save();
} else {
var newComment:Comment = new Comment();
newComment.project = flexEngine.currentUserProject;
newComment.projectID = comment.projectID;
newComment.parentCommentID = comment.id;
newComment.name = flexEngine.currentUser.firstName;
newComment.email = flexEngine.currentUser.email;
newComment.body = message_mc.text;
newComment.save();
}
hide();
}
private function doEditOn(item:Comment=null):void{
if(item!=null){
message_action.text="Editing reply:";
message_mc.text=item.body;
editcomment=item;
if(reply_list.selectedItem!=item){
reply_list.selectedItem=item;
}
}else{
message_action.text="Authoring new reply:";
message_mc.text="";
editcomment=null;
reply_list.selectedItem=null;
stage.focus=message_mc;
}
message_mc.errorString="";
}
//reply---------------------------------------------------------------------------
private function handleReplySelect(event:Event):void{
var selitem:Comment=reply_list.selectedItem as Comment;
doEditOn(selitem);
}
private function handleNewReplyClick(event:Event):void{
doEditOn();
}
]]>
</mx:Script>
<mx:StringValidator id="messageValidator" source="{message_mc}" property="text" minLength="2" />
<mx:List
id="reply_list"
width="100%" height="100%"
backgroundAlpha="0" borderStyle="none"
dataProvider="{this.comment.children}"
labelField="body"
wordWrap="true"
color="#FFFFFF"
rollOverColor="#666666"
selectionColor="#333333"
itemRenderer="org.flex.backend.screens.account.comments.CommentReplyListRenderer"
change="handleReplySelect(event)"/>
<mx:Button styleName="blackButton" label="New Reply" enabled="{editcomment!=null}" click="handleNewReplyClick(event)"/>
<mx:Label id="message_action" styleName="flexDarkTitle" />
<mx:TextArea id="message_mc" maxChars="{TextRestrictConstants.LARGE}" width="100%" height="100%" editable="true" styleName="detailsAddCommentInputFields" change="validateProjectForm(event)"/>
<mx:HBox width="100%" horizontalAlign="right">
<mx:Button styleName="blackButton" label="Save" click="this.postComment()" enabled="{addCommentFormIsValid}" buttonMode="{addCommentFormIsValid}"/>
<mx:Button styleName="blackButton" label="Cancel" click="cancelClickHandler(event);" buttonMode="true" />
</mx:HBox>
</sharedcomponents:FlexDotOrgWindow>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -