| <?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:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" |
| xmlns:s="library://ns.adobe.com/flex/spark" |
| xmlns:mx="library://ns.adobe.com/flex/halo" |
| |
| doubleClickEnabled="true" |
| doubleClick="itemrenderer1_doubleClickHandler(event)" |
| autoDrawBackground="true" |
| useHandCursor="true" |
| buttonMode="true" |
| height="22" |
| > |
| |
| <fx:Metadata> |
| [HostComponent("spark.components.List")] |
| </fx:Metadata> |
| |
| <fx:Script> |
| <![CDATA[ |
| import com.flexcapacitor.model.IProject; |
| import com.flexcapacitor.model.DocumentData; |
| |
| import spark.components.List; |
| import spark.components.supportClasses.ListBase; |
| |
| /** |
| * |
| * */ |
| override public function set data(value:Object):void { |
| super.data = value; |
| var project:IProject = value ? IProject(value) : null; |
| |
| if (project && labelDisplay) { |
| labelDisplay.text = project.name; |
| } |
| |
| } |
| |
| |
| protected function dataChangeHandler():void { |
| //this.data = textInput.text; |
| |
| //dispatch the data update event |
| var list:ListBase = this.owner as ListBase; |
| var project:IProject = IProject(data); |
| project.name = textInput.text; |
| list.dataProvider.itemUpdated(project, "name", project.name, textInput.text); |
| currentState = "normal"; |
| project.checkProjectHasChanged(); |
| } |
| |
| protected function itemrenderer1_doubleClickHandler(event:MouseEvent):void { |
| currentState = "edit"; |
| textInput.text = labelDisplay.text; |
| } |
| |
| override protected function getCurrentRendererState():String { |
| // if in edit state don't change unless |
| if (currentState=="edit") return "edit"; |
| |
| return super.getCurrentRendererState(); |
| } |
| |
| protected function textInput_focusOutHandler(event:FocusEvent):void { |
| dataChangeHandler(); |
| currentState = "normal"; |
| } |
| |
| ]]> |
| </fx:Script> |
| |
| <s:states> |
| <s:State name="normal" /> |
| <s:State name="hovered" /> |
| <s:State name="selected" /> |
| <s:State name="disabled" /> |
| <s:State name="edit" enterState="textInput.setFocus()"/> |
| </s:states> |
| |
| <!--<s:Rect height="100%" width="100%"> |
| <s:fill> |
| <s:SolidColor color="0xEEFFFF" |
| alpha="0" |
| alpha.hovered="0.1" |
| alpha.selected="0.4" /> |
| </s:fill> |
| </s:Rect>--> |
| |
| <s:BitmapImage id="icon" |
| source="{data && DocumentData(data).isOpen ? Radii8LibraryAssets.openFolder : Radii8LibraryAssets.projectIcon}" |
| top="4" |
| left="5" |
| > |
| |
| </s:BitmapImage> |
| |
| <s:BitmapImage id="saveIcon" |
| source="{Radii8LibraryAssets.save}" |
| right="5" |
| top="2" |
| visible="{data && (DocumentData(data).saveInProgress || DocumentData(data).openInProgress)}" |
| > |
| </s:BitmapImage> |
| |
| <s:Label id="labelDisplay" |
| height="100%" |
| width="100%" |
| left="20" |
| top="3" |
| verticalAlign="middle" |
| itemCreationPolicy="immediate" |
| paddingLeft="5" |
| includeIn="hovered, normal, selected"/> |
| |
| <s:Label id="isChangedLabel2" |
| bottom="0" |
| left="0" |
| text=" " |
| height="100%" |
| width="4" |
| backgroundColor="#989898" |
| backgroundAlpha="1" |
| visible="{data && DocumentData(data).isChanged}"/> |
| |
| <s:TextInput id="textInput" |
| left="20" |
| includeIn="edit" |
| focusAlpha="0" |
| enter="dataChangeHandler()" |
| focusOut="textInput_focusOutHandler(event)" |
| width="100%" height="100%"/> |
| </s:ItemRenderer> |