| <?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. |
| |
| --> |
| <s:Group 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:views="com.flexcapacitor.views.*" |
| xmlns:c="com.flexcapacitor.controls.*" |
| xmlns:fc="com.flexcapacitor.effects.popup.*" |
| xmlns:e="com.flexcapacitor.handlers.*" |
| |
| width="200" height="100%" |
| implements="com.flexcapacitor.views.IInspector" |
| > |
| |
| <fx:Script> |
| <![CDATA[ |
| import com.flexcapacitor.controller.Radiate; |
| import com.flexcapacitor.events.RadiateEvent; |
| import com.flexcapacitor.model.DocumentData; |
| import com.flexcapacitor.model.IProject; |
| import com.flexcapacitor.views.windows.DeleteDocumentWindow; |
| import com.flexcapacitor.views.windows.PublishWindow; |
| |
| import spark.events.IndexChangeEvent; |
| |
| [Bindable] |
| private var radiate:Radiate; |
| |
| |
| |
| public function activate():void { |
| radiate = Radiate.instance; |
| |
| radiate.addEventListener(RadiateEvent.PROJECT_CHANGE, projectChangeHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.PROJECT_ADDED, projectCreatedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.PROJECT_CREATED, projectCreatedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.PROJECT_REMOVED, projectRemovedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.PROJECT_DELETED, projectRemovedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.PROJECT_SAVED, projectSavedHandler, false, 0, true); |
| |
| |
| radiate.addEventListener(RadiateEvent.DOCUMENT_ADDED, documentChangedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.DOCUMENT_REMOVED, documentChangedHandler, false, 0, true); |
| radiate.addEventListener(RadiateEvent.DOCUMENT_DELETED, documentChangedHandler, false, 0, true); |
| |
| update(); |
| } |
| |
| public function deactivate():void { |
| if (radiate) { |
| radiate.removeEventListener(RadiateEvent.PROJECT_CHANGE, projectChangeHandler); |
| radiate.removeEventListener(RadiateEvent.PROJECT_ADDED, projectCreatedHandler); |
| radiate.removeEventListener(RadiateEvent.PROJECT_CREATED, projectCreatedHandler); |
| radiate.removeEventListener(RadiateEvent.PROJECT_REMOVED, projectRemovedHandler); |
| radiate.removeEventListener(RadiateEvent.PROJECT_DELETED, projectRemovedHandler); |
| radiate.removeEventListener(RadiateEvent.PROJECT_SAVED, projectSavedHandler); |
| |
| |
| radiate.removeEventListener(RadiateEvent.DOCUMENT_ADDED, documentChangedHandler); |
| radiate.removeEventListener(RadiateEvent.DOCUMENT_REMOVED, documentChangedHandler); |
| radiate.removeEventListener(RadiateEvent.DOCUMENT_DELETED, documentChangedHandler); |
| } |
| } |
| |
| protected function update():void { |
| |
| if (radiate.selectedProject) { |
| updateSelectedItem(radiate.selectedProject); |
| } |
| } |
| |
| /** |
| * |
| * */ |
| private function labelFunction(data:Object):String { |
| return data.name; |
| } |
| |
| /** |
| * |
| * */ |
| protected function projectChangeHandler(event:RadiateEvent):void { |
| //updateProjects(); |
| updateSelectedItem(event.selectedItem as IProject); |
| } |
| |
| private function updateProjects():void { |
| projects.refresh(); |
| |
| // must call validate now so selected index doesn't revert if a new project is selected |
| list.validateNow(); |
| } |
| |
| private function updateSelectedItem(project:IProject):void {
|
| list.selectedItem = project;
|
| } |
| |
| public function projectCreatedHandler(event:RadiateEvent):void {
|
| updateProjects();
|
| } |
| |
| protected function list_changeHandler(event:IndexChangeEvent):void { |
| var project:IProject = list.selectedItem ? IProject(list.selectedItem) : null; |
| |
| if (project && !project.isOpen) { |
| radiate.openProject(project); |
| } |
| |
| if (project) { |
| radiate.setProject(project); |
| } |
| } |
| |
| protected function publishButton_clickHandler(event:MouseEvent):void {
|
|
|
| } |
| |
| protected function saveProjectIcon_clickHandler(event:MouseEvent):void {
|
| radiate.saveProject(radiate.selectedProject);
|
| //radiate.save();
|
| radiate.saveSettings();
|
| } |
| |
| protected function getSavedProjectsIcon_clickHandler(event:MouseEvent):void {
|
| radiate.getSavedData();
|
| radiate.getSettingsData();
|
| } |
| /* |
| protected function deleteProjectIcon_clickHandler(event:MouseEvent):void { |
| var selectedProject:IProject = list.selectedItem as IProject; |
|
|
| if (selectedProject) { |
| radiate.removeProject(selectedProject); |
| } |
| else { |
| Radiate.log.info("Please select a project"); |
| }
|
| }*/ |
| |
| protected function newProjectIcon_clickHandler(event:MouseEvent):void { |
| //radiate.createProject(); |
| //radiate.addProject(radiate.createProject(), true, true, true); |
| radiate.createBlankDemoDocument(); |
| } |
| |
| protected function removeSavedDataIcon_clickHandler(event:MouseEvent):void {
|
| radiate.removeSavedData();
|
| radiate.removeSavedSettings();
|
| } |
| |
| /** |
| * Handle when a project has been removed |
| * */ |
| protected function projectRemovedHandler(event:Event):void { |
| updateProjects(); |
|
|
| if (radiate.projects.length>0) { |
| radiate.setProject(radiate.projects[0], true); |
| }
|
| } |
| |
| protected function closeProjectIcon_clickHandler(event:MouseEvent):void { |
| var project:IProject = list.selectedItem ? IProject(list.selectedItem) : null; |
| |
| if (project) { |
| radiate.closeProject(project); |
| }
|
| } |
| |
| protected function openProjectsIcon_clickHandler(event:MouseEvent):void { |
| var project:IProject = list.selectedItem ? IProject(list.selectedItem) : null; |
| |
| if (project) {
|
| radiate.openProject(project, DocumentData.INTERNAL_LOCATION); |
| }
|
| } |
| |
| // HACK TO Mark project needs saved |
| protected function documentChangedHandler(event:RadiateEvent):void { |
| |
| if (radiate.selectedProject) { |
| radiate.selectedProject.checkProjectHasChanged(); |
| } |
| } |
| |
| |
| // HACK TO Mark project needs saved |
| protected function projectSavedHandler(event:Event):void {
|
| |
| if (radiate.selectedProject) { |
| radiate.selectedProject.checkProjectHasChanged(); |
| }
|
| } |
| |
| protected function autoSaveToggle_clickHandler(event:MouseEvent):void {
|
| radiate.enableAutoSave = autoSaveToggle.selected; |
| } |
| |
| ]]> |
| </fx:Script> |
| |
| <fx:Declarations> |
| <s:ArrayCollection id="projects" source="{radiate.projects}"/> |
| <s:ArrayCollection id="projectsFiltersTypes"> |
| <fx:Array> |
| <fx:String>All Projects</fx:String> |
| <fx:String>Open Projects</fx:String> |
| </fx:Array> |
| </s:ArrayCollection> |
| |
| <e:EventHandler eventName="click" target="{publishButton}"> |
| <fc:OpenPopUp popUpType="{PublishWindow}" modalDuration="250"/> |
| </e:EventHandler> |
| |
| <!--- show delete project popup --> |
| <e:EventHandler targets="{deleteProjectIcon}" eventName="click" > |
| <fc:OpenPopUp id="openDeleteProjectPopUp" |
| popUpType="{DeleteDocumentWindow}" |
| modalDuration="100" |
| percentWidth="75" |
| percentHeight="90" |
| width="600" |
| parent="{parentApplication}" |
| popUpOptions="{{currentState:'project',documentData:list.selectedItem}}" |
| /> |
| </e:EventHandler> |
| </fx:Declarations> |
| |
| <s:layout> |
| <s:VerticalLayout paddingLeft="5" paddingRight="5" paddingBottom="5"/> |
| </s:layout> |
| |
| <s:ButtonBar id="projectFilters" |
| requireSelection="true" |
| selectedIndex="0" |
| labelField="name" |
| dataProvider="{projectsFiltersTypes}" |
| includeInLayout="false" |
| visible="false" |
| > |
| </s:ButtonBar> |
| |
| <s:List id="list" |
| focusAlpha="0" |
| minHeight="20" |
| width="100%" |
| height="100%" |
| labelFunction="labelFunction" |
| borderAlpha=".2" |
| dataProvider="{projects}" |
| change="list_changeHandler(event)" |
| itemRenderer="com.flexcapacitor.views.renderers.EditableProjectRenderer" |
| > |
| |
| </s:List> |
| |
| <s:HGroup width="100%" |
| height="24" |
| minHeight="24" |
| verticalAlign="middle" |
| > |
| <s:Button id="publishButton" |
| label="Publish" |
| visible="false" |
| includeInLayout="false"/> |
| |
| <c:ImageButton id="removeSavedDataIcon" |
| source="{Radii8LibraryAssets.clear}" |
| toolTip="Remove All Locally Saved Projects and Documents" |
| click="removeSavedDataIcon_clickHandler(event)" |
| visible="false" |
| includeInLayout="false" |
| /> |
| <c:ImageButton id="getProjectsIcon" |
| source="{Radii8LibraryAssets.openFolder}" |
| toolTip="Load all locally Saved Projects and documents" |
| click="getSavedProjectsIcon_clickHandler(event)" |
| visible="false" |
| includeInLayout="false" |
| /> |
| <s:CheckBox id="autoSaveToggle" |
| selected="{radiate.enableAutoSave}" |
| useHandCursor="true" |
| buttonMode="true" |
| enabled="true" |
| toolTip="Enables auto save" |
| label="Auto Save" |
| click="autoSaveToggle_clickHandler(event)" |
| /> |
| |
| <s:Spacer width="100%"/> |
| <!--<c:ImageButton id="closeProjectIcon" |
| source="{Radii8LibraryAssets.closedFolder}" |
| toolTip="Close Project" |
| click="closeProjectIcon_clickHandler(event)" |
| /> |
| <c:ImageButton id="openProjectsIcon" |
| source="{Radii8LibraryAssets.openFolder}" |
| toolTip="Open Project" |
| click="openProjectsIcon_clickHandler(event)" |
| />--> |
| <c:ImageButton id="saveProjectIcon" |
| source="{Radii8LibraryAssets.save}" |
| toolTip="Save Project" |
| click="saveProjectIcon_clickHandler(event)" |
| height="15" |
| /> |
| <c:ImageButton id="newProjectIcon" |
| source="{Radii8LibraryAssets.newFile}" |
| toolTip="New Project" |
| click="newProjectIcon_clickHandler(event)" |
| /> |
| <c:ImageButton id="deleteProjectIcon" |
| source="{Radii8LibraryAssets.trashCan}" |
| toolTip="Remove Project" |
| /> |
| </s:HGroup> |
| |
| </s:Group> |