⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 account.mxml

📁 flex 实现的一个showcase 喜欢flex的朋友可以
💻 MXML
📖 第 1 页 / 共 2 页
字号:
				generalOperationsService.flexdotorg.setDefaultScreenshot(screenshot.projectID, screenshot.id);
			}
			
			private function removeSubmission(mouseEvent:MouseEvent):void {
				var project:Object = new Object();
				project.nid = selectedProject.id;
				project.type = "showcase_entry";
				project.status = "0";
				project.userid = user.id;
				project.name = user.username;
				
				nodeService.node.save.addEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
				nodeService.node.save.addEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
				nodeService.node.save(project);
			}
			
			//////////////////////////////////////////////////
			//dispatch functions
			
			private function dispatchLogoutEvent():void {
				var userEvent:UserEvent = new UserEvent(UserEvent.LOGOUT, true);
				dispatchEvent(userEvent);
			}
			
			
			//////////////////////////////////////////////////
			//handler functions
			
			private function changedHandler(accountEvent:AccountEvent):void {
				if (accountEvent.valid == false) {
					readyToSave = false;
				} else {
					projectChanged = true;
					projectInfoTab.validateProjectForm();
					if (projectInfoTab.projectFormIsValid == true) {
						readyToSave = true;
					}
				}
			}
			
			private function userChangeHandler(userEvent:UserEvent):void {
				projects = user.projects;
				
				reset();
			}
			private function userProjectsLoadedHandler(userEvent:UserEvent):void {
				projects = user.projects;
				
				reset();
			}
			
			private function projectsDataGridItemClickHandler(event:Event):void {
				if (projectChanged == false) {
					updateSelection();
				} else {
					Alert.buttonHeight=31;
					Alert.show("The project information in the currently selected project has changed.\nDo you want to save the changes?", "Caution", Alert.YES | Alert.NO | Alert.CANCEL, null, saveAlertHandler, null, Alert.CANCEL);
				}
			}
			
			private function saveAlertHandler(closeEvent:CloseEvent):void {
				switch (closeEvent.detail) {
					case Alert.YES :
						save();
						break;
					case Alert.NO :
						noSaveAndContinue();
						break;
					case Alert.CANCEL :
						cancelNoContinue();
						break;
				}
			}
			
			private function logoutButtonClickHandler(mouseEvent:MouseEvent):void {
				logout();
			}
			
			private function logoutSaveAlertHandler(closeEvent:CloseEvent):void {
				switch (closeEvent.detail) {
					case Alert.YES :
						logoutSaveAndContinue();
						break;
					case Alert.NO :
						dispatchLogoutEvent();
						break;
					case Alert.CANCEL :
						break;
				}
			}
			
			private function projectReloadEventHandler(projectEvent:ProjectEvent):void {
				loadProject(selectedProject);
			}
			
			private function projectAddEventHandler(projectEvent:ProjectEvent):void {
				var project:Project = projectEvent.project;
				projects.addItem(project);
				
				loadProject(project);
			}
			
			//nodeService.save---------------------------------
			
			private function nodeServiceSaveResultHandler(resultEvent:ResultEvent):void {
				nodeService.node.save.removeEventListener(ResultEvent.RESULT, nodeServiceSaveResultHandler);
				nodeService.node.save.removeEventListener(FaultEvent.FAULT, nodeServiceSaveFaultHandler);
				
				if (projectsDataGrid.selectedItem != null) {
					lastSelectedIndex = projectsDataGrid.selectedIndex;
					
					selectedProject = projectsDataGrid.selectedItem as Project;
					
					Alert.buttonHeight=31;
					Alert.show("Your project has been saved and submitted for approval.", "Save");
					
					var date:Date = new Date();
					
					var body:String = new String();
					body += "Date: " + date.date + "/" + (date.month + 1) + "/" + date.fullYear + "\n";
					body += "\n";
					body += "User\n";
					body += "ID: " + user.id + "\n";
					body += "Name: " + user.firstName + " " + user.lastName + "\n";
					body += "Email: " + user.email + "\n";
					body += "\n";
					body += "Project\n";
					body += "ID: " + selectedProject.id + "\n";
					body += "Name: " + selectedProject.name;
					
					var mailEvent:MailEvent = new MailEvent(MailEvent.SEND, true);
					mailEvent.mailKey = date.date.toString();
					mailEvent.toEmail = flexShowcaseServiceConfig.adminEmailAddress;
					mailEvent.subject = "Flex.org - Save Application";
					mailEvent.body = body;
					mailEvent.fromEmail = user.email;
					
					dispatchEvent(mailEvent);
				}
			}
			
			private function nodeServiceSaveFaultHandler(faultEvent:FaultEvent):void {
				//trace("nodeServiceSaveFaultHandler: " + faultEvent.message);
			}
			
			
			//nodeService.load---------------------------------
			
			private function nodeServiceLoadResultHandler(resultEvent:ResultEvent):void {
				nodeService.node.load.removeEventListener(ResultEvent.RESULT, nodeServiceLoadResultHandler);
				nodeService.node.load.removeEventListener(FaultEvent.FAULT, nodeServiceLoadFaultHandler);
				
				parseUserProject(resultEvent.result);
			}
			
			private function nodeServiceLoadFaultHandler(resultEvent:ResultEvent):void {
				nodeService.node.load.removeEventListener(ResultEvent.RESULT, nodeServiceLoadResultHandler);
				nodeService.node.load.removeEventListener(FaultEvent.FAULT, nodeServiceLoadFaultHandler);
			}
			
			
			//nodeService.remove------------------------------
			
			private function removeSubmissionSaveResultHandler(resultEvent:ResultEvent):void {
				nodeService.node.save.removeEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
				nodeService.node.save.removeEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
				
				Alert.buttonHeight = 31;
				Alert.show("Your project will no longer apear in the Flex.org project listing; but will however remain in the system. To reactivate your project, update and save your project and the admin will be notified to publish your project.", "Remove submission");
				
				var date:Date = new Date();
				
				var body:String = new String();
				body += "Date: " + date.date + "/" + (date.month + 1) + "/" + date.fullYear + "\n";
				body += "\n";
				body += "User\n";
				body += "ID: " + user.id + "\n";
				body += "Name: " + user.firstName + " " + user.lastName + "\n";
				body += "Email: " + user.email + "\n";
				body += "\n";
				body += "Project\n";
				body += "ID: " + selectedProject.id + "\n";
				body += "Name: " + selectedProject.name;
				
				var mailEvent:MailEvent = new MailEvent(MailEvent.SEND, true);
				mailEvent.mailKey = date.date.toString();
				mailEvent.toEmail = flexShowcaseServiceConfig.adminEmailAddress;
				mailEvent.subject = "Flex.org - Remove Application";
				mailEvent.body = body;
				mailEvent.fromEmail = user.email;
				
				dispatchEvent(mailEvent);
			}
			
			private function removeSubmissionSaveFaultHandler(faultEvent:FaultEvent):void {
				nodeService.node.save.removeEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
				nodeService.node.save.removeEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
			}
			
			//generalOperationsService.setDefaultScreenshot---
			
			private function setDefaultScreenshotResultHandler(resultEvent:ResultEvent):void {
				generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(ResultEvent.RESULT, setDefaultScreenshotResultHandler);
				generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(FaultEvent.FAULT, setDefaultScreenshotFaultHandler);
				
				loadProject(selectedProject);
			}
			
			private function setDefaultScreenshotFaultHandler(faultEvent:FaultEvent):void {
				generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(ResultEvent.RESULT, setDefaultScreenshotResultHandler);
				generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(FaultEvent.FAULT, setDefaultScreenshotFaultHandler);
			}
			
			
			//generalOperationsService.deleteScreenshot-------
			
			private function deleteScreenshotResultHandler(resultEvent:ResultEvent):void {
				generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(ResultEvent.RESULT, deleteScreenshotResultHandler);
				generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(FaultEvent.FAULT, deleteScreenshotFaultHandler);
				
				loadProject(selectedProject);
			}
			
			private function deleteScreenshotFaultHandler(faultEvent:FaultEvent):void {
				generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(ResultEvent.RESULT, deleteScreenshotResultHandler);
				generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(FaultEvent.FAULT, deleteScreenshotFaultHandler);
			}
			
			
			//Tabs--------------------------------------------
			
			private function screenshotsTabAddScreenshotHandler(accountEvent:AccountEvent):void {
				addScreenshotPanel.show();
			}
			
			private function screenshotsTabDeleteScreenshotHandler(accountEvent:AccountEvent):void {
				deleteScreenshot(accountEvent.screenshot);
			}
			
			private function screenshotsTabMarkAsDefaultScreenshotHandler(accountEvent:AccountEvent):void {
				markAsDefaultScreenshot(accountEvent.screenshot);
			}
			
			
			//UI----------------------------------------------
			
			private function addProjectClickHandler(mouseEvent:MouseEvent):void {
				addSubmissionPanel.show();
			}
			
			private function myProfileButtonClickHandler(mouseEvent:MouseEvent):void {
				profilePanel.show();
			}
			
			private function saveButtonClickHandler(mouseEvent:MouseEvent):void {
				save();
			}
			
			//contact screen---------------------------------------------------------------------
			private function openContactAdminPanel():void {
				//this.contactAdminPanel.projectData=flexEngine.currentUserProject
				this.contactAdminPanel.show();
			}
			
		]]>
	</mx:Script>
	
	
	<remote:NodeService
		id="nodeService"
		flexShowcaseServiceConfig="{flexShowcaseServiceConfig}"/>
	<remote:GeneralOperationsService
		id="generalOperationsService"
		flexShowcaseServiceConfig="{flexShowcaseServiceConfig}"/>
		
		
	<mx:Label id="username" styleName="profileEmail" left="10" top="10" text="{user.firstName}" />
	<mx:Button id="logoutButton" styleName="blackButton" x="{username.x+username.width+5}" top="1" 
		label="Log Out" buttonMode="true" click="{logoutButtonClickHandler(event)}" width="90"/>
	<mx:Button id="reportButton" styleName="blackButton" right="110" top="1" label="Contact Admin" 
		buttonMode="true" click="this.openContactAdminPanel()"/>
	<mx:Button id="myProfileButton" styleName="blackButton" right="3" top="1" icon="@Embed('/assets/images/icons/profileIcon.png')" label="My Profile" buttonMode="true" click="myProfileButtonClickHandler(event)" />
	
	<mx:VDividedBox left="10" right="10" top="40" bottom="31">
		<mx:Canvas width="100%" minHeight="116" maxHeight="236">
			<mx:DataGrid id="projectsDataGrid" headerStyleName="projectInfoDGHeader" left="0" right="0" top="0" bottom="37" height="170" paddingBottom="0" paddingTop="0" dataProvider="{user.projects}" itemClick="projectsDataGridItemClickHandler(event)">
				<mx:columns>
					<mx:DataGridColumn headerText="Applications" dataField="name" />
					<mx:DataGridColumn headerText="Comments" dataField="numberOfComments" />
					<mx:DataGridColumn headerText="Rating" dataField="rating" />
					<mx:DataGridColumn headerText="Status" dataField="published" />
					<mx:DataGridColumn headerText="Views" dataField="views" />
					<mx:DataGridColumn headerText="Created" dataField="createdDate" />
				</mx:columns>
			</mx:DataGrid>
			<mx:Canvas id="projectsCanvas" left="0" right="0" bottom="0" width="100%" height="38" horizontalScrollPolicy="off" verticalScrollPolicy="off">
				<mx:Image source="@Embed('/assets/images/projectInfo_addRemoveBut_bg.png')" x="0" y="0" width="100%" />
				<mx:Button id="addProject" styleName="blackButton" icon="@Embed('/assets/images/icons/plusIcon.png')" label="Add Application" left="5" verticalCenter="0" buttonMode="true" click="addProjectClickHandler(event)" />
				<mx:Button id="removeProject" styleName="blackButton" icon="@Embed('/assets/images/icons/minusIcon.png')" label="Hide Application" right="5" verticalCenter="0" buttonMode="{!selectedProject.published}" enabled="{!selectedProject.published}" click="removeSubmission(event)" />
			</mx:Canvas>
		</mx:Canvas>
		
		<mx:Canvas width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
			<mx:Label id="tabBarCanvasLoading" styleName="checkboxListHeaderText" x="10" y="10" text="Your Applications are currently loading..." visible="{!user.projectsLoaded}" />
			<mx:Label id="tabBarCanvasNoProjects" styleName="checkboxListHeaderText" x="10" y="10" text="You currently have no Applications." visible="{!user.hasProjects &amp;&amp; user.projectsLoaded}" />
			<mx:Canvas id="tabBarCanvas" width="100%" height="100%" visible="{user.hasProjects}"
				horizontalScrollPolicy="off" verticalScrollPolicy="auto">
				<mx:TabBar left="0" right="-2.5" dataProvider="viewStack" tabStyleName="tabBarLabel" selectedTabTextStyleName="tabBarLabel" />
				<mx:Canvas y="-5" width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
					<mx:ViewStack id="viewStack" left="0" right="0" top="30" bottom="10" creationPolicy="all">
						<account:ProjectInfoTab id="projectInfoTab" project="{selectedProject}" />
						<account:IndustriesTab id="industriesTab" project="{selectedProject}" industries="{industries}" />
						<account:TechnologyTab id="technologiesTab" project="{selectedProject}" technologies="{technologies}" />
						<account:TagsTab id="tagsTab" project="{selectedProject}" tags="{tags}" />
						<account:ScreenshotsTab id="screenshotsTab" project="{selectedProject}" />
					</mx:ViewStack>
				</mx:Canvas>
			</mx:Canvas>
		</mx:Canvas>
	</mx:VDividedBox>
	
	<mx:Canvas left="10" right="10" bottom="10" height="37" width="100%" borderStyle="none" horizontalScrollPolicy="off" verticalScrollPolicy="off">
		<mx:Image x="0" y="1" width="744" source="@Embed('/assets/images/footer_bg.png')" maintainAspectRatio="false" />
		<mx:Button id="saveButton" styleName="blackButton" right="5" verticalCenter="0" label="Save" width="90" 
			buttonMode="{readyToSave}" enabled="{readyToSave}" click="saveButtonClickHandler(event)" />
	</mx:Canvas>
	
	<panels:AddSubmissionPanel id="addSubmissionPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>
	<panels:MyProfilePanel id="profilePanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>
	<panels:AddScreenshotPanel id="addScreenshotPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" project="{selectedProject}" visible="false" alpha="0"/>
	
	<panels:ContactAdminPanel id="contactAdminPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>

</mx:Canvas>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -