| <?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" |
| xmlns:s="library://ns.adobe.com/flex/spark" title="EmployeeDetails"> |
| |
| <fx:Script> |
| <![CDATA[ |
| import mx.collections.ArrayCollection; |
| |
| import spark.events.IndexChangeEvent; |
| |
| |
| [Bindable] |
| protected var actions:ArrayCollection; |
| |
| [Embed("assets/sms.png")] |
| private var smsIcon:Class; |
| |
| [Embed("assets/phone.png")] |
| private var phoneIcon:Class; |
| |
| [Embed("assets/mail.png")] |
| private var mailIcon:Class; |
| |
| |
| override public function set data(value:Object):void |
| { |
| super.data = value; |
| actions = new ArrayCollection(); |
| |
| if (data.officePhone) |
| { |
| actions.addItem({type: "tel", name: "Call office", |
| details: data.officePhone, icon:phoneIcon}); |
| } |
| if (data.cellPhone) |
| { |
| actions.addItem({type: "tel", name: "Call mobile", |
| details: data.cellPhone, icon:phoneIcon}); |
| actions.addItem({type: "sms", name: "SMS", |
| details: data.cellPhone, icon:smsIcon}); |
| } |
| if (data.email) |
| { |
| actions.addItem({type: "mailto", name: "Email", |
| details: data.email, icon:mailIcon}); |
| } |
| if (data.manager) |
| { |
| actions.addItem({type: "employee", name: "View manager", |
| details: data.manager.firstName + " " + data.manager.lastName, employee: data.manager}); |
| } |
| if (data.directReports && data.directReports.length > 0) |
| { |
| actions.addItem({type: "reports", name: "View direct reports", |
| details: "(" + data.directReports.length + ")", |
| employee: data}); |
| } |
| } |
| |
| protected function list_changeHandler(event:IndexChangeEvent):void |
| { |
| var action:Object = list.selectedItem; |
| switch (action.type) |
| { |
| case "tel": |
| navigateToURL(new URLRequest("tel:"+action.details)); |
| break; |
| |
| case "sms": |
| navigateToURL(new URLRequest("sms:"+action.details)); |
| break; |
| |
| case "mailto": |
| navigateToURL(new URLRequest("mailto:"+action.details)); |
| break; |
| case "employee": |
| navigator.pushView(EmployeeDetails, action.employee); |
| break; |
| |
| case "reports": |
| navigator.pushView(DirectReports, action.employee); |
| break; |
| |
| } |
| } |
| |
| |
| ]]> |
| </fx:Script> |
| |
| <s:HGroup verticalAlign="middle" gap="12"> |
| |
| <s:Image source="assets/pics/{data.picture}"/> |
| |
| <s:VGroup> |
| <s:Label text="{data.firstName} {data.lastName}"/> |
| <s:Label text="{data.title}"/> |
| <s:Label text="{data.department}"/> |
| <s:Label text="{data.city}"/> |
| </s:VGroup> |
| |
| </s:HGroup> |
| |
| <s:List id="list" dataProvider="{actions}" |
| top="160" left="0" right="0" bottom="0" |
| change="list_changeHandler(event)"> |
| <s:itemRenderer> |
| <fx:Component> |
| <s:IconItemRenderer |
| paddingTop="8" paddingBottom="8" verticalGap="6" |
| labelField="name" |
| messageField="details" |
| decorator="{data.icon}"/> |
| </fx:Component> |
| </s:itemRenderer> |
| </s:List> |
| |
| </s:View> |