| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| --> |
| <windows:AnimatedPanelWindow xmlns:fx="http://ns.adobe.com/mxml/2009" |
| xmlns:s="library://ns.adobe.com/flex/spark" |
| xmlns:mx="library://ns.adobe.com/flex/mx" |
| xmlns:c="com.flexcapacitor.views.windows.*" |
| xmlns:handlers="com.flexcapacitor.handlers.*" |
| xmlns:fc="com.flexcapacitor.effects.popup.*" |
| xmlns:windows="com.flexcapacitor.views.windows.*" |
| |
| title.project="Delete Project" |
| title.document="Delete Document" |
| title.resource="Delete Resource" |
| |
| creationComplete="panel1_creationCompleteHandler(event)" |
| > |
| |
| <fx:Style> |
| @namespace s "library://ns.adobe.com/flex/spark"; |
| @namespace c "com.flexcapacitor.controls.*"; |
| @namespace mx "library://ns.adobe.com/flex/mx"; |
| @namespace handlers "com.flexcapacitor.handlers.*"; |
| @namespace fc "com.flexcapacitor.effects.popup.*"; |
| |
| </fx:Style> |
| |
| <fx:Script> |
| <![CDATA[ |
| import com.flexcapacitor.controller.Radiate; |
| import com.flexcapacitor.events.RadiateEvent; |
| import com.flexcapacitor.model.IDocument; |
| import com.flexcapacitor.model.IDocumentData; |
| import com.flexcapacitor.model.IProject; |
| |
| import mx.core.mx_internal; |
| import mx.events.FlexEvent; |
| import mx.managers.PopUpManager; |
| |
| use namespace mx_internal; |
| |
| public static const DOCUMENT:String = "document"; |
| public static const PROJECT:String = "project"; |
| public static const RESOURCE:String = "resource"; |
| |
| public var closeWindowDelay:int = 250; |
| |
| [Bindable] |
| public var documentData:IDocumentData; |
| |
| [Bindable] |
| public var documentName:String; |
| |
| /** |
| * This needs to work better. Only listen for events when deleting remote not local. |
| * */ |
| protected function deleteResource():void { |
| var localRemoveSuccessful:Boolean; |
| var isRemote:Boolean; |
| deleteWarningsLabel.text = ""; |
| radiate = Radiate.getInstance(); |
| |
| if (currentState==DOCUMENT) { |
| if (documentData==null) { |
| documentData = radiate.selectedDocument; |
| } |
| if (documentData) { |
| |
| if (documentData.id!=null) { |
| radiate.addEventListener(RadiateEvent.DOCUMENT_DELETED, deleteResultsHandler, false, 0, true); |
| isRemote = true; |
| } |
| |
| //radiate.addEventListener(RadiateEvent.DOCUMENT_REMOVED, deleteResultsHandler, false, 0, true); |
| localRemoveSuccessful = radiate.removeDocument(IDocument(documentData)); |
| } |
| } |
| else if (currentState==PROJECT) { |
| if (documentData==null) { |
| documentData = radiate.selectedProject; |
| } |
| |
| if (documentData) { |
| radiate.addEventListener(RadiateEvent.PROJECT_REMOVED, deleteResultsHandler, false, 0, true); |
| |
| if (documentData.id!=null) { |
| radiate.addEventListener(RadiateEvent.PROJECT_DELETED, deleteResultsHandler, false, 0, true); |
| isRemote = true; |
| } |
| |
| localRemoveSuccessful = radiate.removeProject(IProject(documentData)); |
| } |
| } |
| else if (currentState==RESOURCE) { |
| if (documentData==null) { |
| //documentData = radiate.selectedDocument; |
| } |
| if (documentData) { |
| |
| if (documentData.id!=null) { |
| radiate.addEventListener(RadiateEvent.DOCUMENT_DELETED, deleteResultsHandler, false, 0, true); |
| isRemote = true; |
| } |
| |
| //radiate.addEventListener(RadiateEvent.DOCUMENT_REMOVED, deleteResultsHandler, false, 0, true); |
| localRemoveSuccessful = radiate.removeAsset(IDocumentData(documentData)); |
| } |
| } |
| |
| |
| |
| if (isRemote) { |
| infoLabel.text = "Deleting..."; |
| inProgress = true; |
| } |
| else if (localRemoveSuccessful) { |
| playDeleteSuccessfulMessage(); |
| } |
| else { |
| playDeleteNotSuccessfulMessage(); |
| } |
| } |
| |
| /** |
| * Sets the action to deleted, the label to deleted and closes the window after a second. |
| * */ |
| public function playDeleteSuccessfulMessage():void { |
| infoLabel.text = "Deleted!"; |
| action = "Deleted"; |
| closePopUp.startDelay = closeWindowDelay; |
| closePopUp.play(); |
| } |
| |
| /** |
| * Display a message that the resource was not deleted. |
| * */ |
| public function playDeleteNotSuccessfulMessage():void { |
| infoLabel.text = "Item was not found. It may have already been deleted. "; |
| //action = "Deleted"; |
| //closePopUp.startDelay = 1000; |
| //closePopUp.play(); |
| } |
| |
| protected function deleteResultsHandler(event:RadiateEvent):void { |
| var data:Object = event.data; |
| var error:String; |
| var status:String = event.status; |
| var successful:Boolean = event.successful; |
| var message:String = ""; |
| var iDocument:IDocument = event.selectedItem as IDocument; |
| |
| inProgress = false; |
| |
| if (event.type==RadiateEvent.PROJECT_DELETED) { |
| radiate.removeEventListener(RadiateEvent.PROJECT_DELETED, deleteResultsHandler); |
| } |
| |
| if (event.type==RadiateEvent.DOCUMENT_DELETED) { |
| radiate.removeEventListener(RadiateEvent.DOCUMENT_DELETED, deleteResultsHandler); |
| } |
| |
| |
| |
| if (status=="error") { |
| |
| if (data && "error" in data) { |
| message += "Error. The item was not deleted. " + data.error + " "; |
| } |
| else { |
| message += "Error. The item was not deleted. It may have been deleted already. Resave the project. "; |
| } |
| } |
| else { |
| if (data==null && iDocument!=null && iDocument.id!=null) { |
| message += "Error. The item may have been deleted already. Reload or resave the project. "; |
| } |
| } |
| |
| |
| if (event.faultEvent) { |
| message += "Are you connected to the internet? "; |
| |
| if (event.faultEvent is IOErrorEvent) { |
| message += IOErrorEvent(event.faultEvent).text; |
| } |
| else if (event.faultEvent is SecurityErrorEvent) { |
| |
| if (SecurityErrorEvent(event.faultEvent).errorID==2048) { |
| |
| } |
| |
| message += SecurityErrorEvent(event.faultEvent).text; |
| } |
| } |
| |
| |
| deleteWarningsLabel.text = message; |
| |
| |
| if (successful) { |
| playDeleteSuccessfulMessage(); |
| } |
| else { |
| infoLabel.text = ""; |
| } |
| } |
| |
| protected function cancelButton_clickHandler(event:MouseEvent):void {
|
| callLater(PopUpManager.removePopUp, [this]); |
| } |
| |
| protected function panel1_creationCompleteHandler(event:FlexEvent):void {
|
| radiate = Radiate.getInstance(); |
| |
| if (currentState==DOCUMENT) { |
| if (documentData==null) { |
| documentData = radiate.selectedDocument; |
| } |
| } |
| else if (currentState==PROJECT) { |
| if (documentData==null) { |
| documentData = radiate.selectedProject; |
| } |
| } |
| else if (currentState==RESOURCE) { |
| if (documentData==null) { |
| //documentData = radiate.selectedProject; |
| } |
| } |
| |
| if (documentData) { |
| documentName = documentData.name; |
| }
|
| } |
| |
| ]]> |
| </fx:Script> |
| |
| <fx:Declarations> |
| |
| <!--- hide about popup --> |
| <handlers:EventHandler targets="{cancelButton}" eventName="clickNOT"> |
| <fc:ClosePopUp id="closePopUp" popUp="{this}" /> |
| </handlers:EventHandler> |
| |
| <!--- hide about popup --> |
| <!--<handlers:EventHandler targets="{importButton}" eventName="click"> |
| <s:SetAction property="action" target="{this}" value="import"/> |
| <fc:ClosePopUp popUp="{this}" /> |
| </handlers:EventHandler>--> |
| |
| <fx:String id="action"></fx:String> |
| |
| </fx:Declarations> |
| |
| <c:states> |
| <s:State name="document"/> |
| <s:State name="project"/> |
| <s:State name="resource"/> |
| </c:states> |
| |
| <s:VGroup left="15" |
| top="20" |
| right="20" |
| bottom="20" |
| gap="10" |
| > |
| |
| <s:Label text="Are you sure you want to delete the project, '{documentName}'?" |
| fontSize="16" includeIn="project" width="100%"/> |
| <s:Label text="Are you sure you want to delete the document, '{documentName}'?" |
| fontSize="16" includeIn="document" width="100%"/> |
| <s:Label text="Are you sure you want to delete the resource, '{documentName}'?" |
| fontSize="16" includeIn="resource" width="100%"/> |
| |
| <s:Label id="deleteWarningsLabel" |
| x="15" y="15" |
| text="" |
| fontWeight="bold" |
| color="red" |
| width="100%"/> |
| |
| <s:HGroup width="100%" horizontalAlign="right" verticalAlign="baseline"> |
| <s:Label id="infoLabel" text="" /> |
| <s:Spacer width="100%"/> |
| <s:Button id="cancelButton" label="Cancel" click="cancelButton_clickHandler(event)" /> |
| <s:Button label="Delete" click="deleteResource()" /> |
| </s:HGroup> |
| |
| </s:VGroup> |
| |
| |
| </windows:AnimatedPanelWindow> |