/src/org/ishafoundation/archives/transcript/components/studio/session/SessionMetadataPane.mxml
http://transcriptstudio4isha.googlecode.com/ · Macromedia eXtensible Markup Language · 147 lines · 138 code · 9 blank · 0 comment · 0 complexity · acc36795d8d3142d913bf027638e4c92 MD5 · raw file
- <?xml version="1.0" encoding="utf-8"?>
- <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler()" paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10">
- <mx:Script>
- <![CDATA[
- import org.ishafoundation.archives.transcript.model.ReferenceManager;
- import org.ishafoundation.archives.transcript.model.EventMetadata;
- import mx.controls.Alert;
- import org.ishafoundation.archives.transcript.model.SessionMetadata;
- import mx.events.PropertyChangeEvent;
- import mx.binding.utils.ChangeWatcher;
- import name.carter.mark.flex.util.collection.HashSet;
- import name.carter.mark.flex.util.collection.ISet;
- import mx.utils.StringUtil;
- import mx.formatters.DateBase;
- import name.carter.mark.flex.util.Utils;
- import name.carter.mark.flex.util.XMLUtils;
- import mx.collections.ArrayCollection;
-
- [Bindable]
- public var referenceMgr:ReferenceManager;
-
- [Bindable]
- public var selectableStartAtRange:Object;
-
- private var _sessionMetadata:SessionMetadata;
-
- private function creationCompleteHandler():void {
- var hourArr:Array = [];
- for (var hour:int = 0; hour < 24; hour++) {
- var hourStr:String = hour.toString();
- while (hourStr.length < 2) {
- hourStr = "0" + hourStr;
- }
- hourArr.push(hourStr);
- }
- hourComboBox.dataProvider = hourArr;
- hourComboBox.selectedIndex = hourArr.length / 2;
- var minuteArr:Array = [];
- for (var minute:int = 0; minute < 60; minute++) {
- var minuteStr:String = minute.toString();
- if (minute % 15 == 0) {
- while (minuteStr.length < 2) {
- minuteStr = "0" + minuteStr;
- }
- minuteArr.push(minuteStr);
- }
- }
- minuteComboBox.dataProvider = minuteArr;
- //minuteComboBox.selectedIndex = minuteArr.length / 2;
- }
-
- [Bindable]
- public function get sessionMetadata():SessionMetadata {
- return _sessionMetadata;
- }
-
- public function set sessionMetadata(newProps:SessionMetadata):void {
- if (newProps === _sessionMetadata) {
- return;
- }
- _sessionMetadata = newProps;
- sessionSubTitleTextInput.text = _sessionMetadata.subTitle;
- var startAt:Date = _sessionMetadata.startAt;
- startAtDateField.selectedDate = startAt;
- if (_sessionMetadata.startAtIncludesTime()) {
- unknownTimeCheckBox.selected = false;
- hourComboBox.selectedItem = fixWidth(startAt.hours, 2);
- minuteComboBox.selectedItem = fixWidth(startAt.minutes, 2);
- }
- else {
- unknownTimeCheckBox.selected = true;
- }
- startAtChangeHandler();
- notesTextArea.text = _sessionMetadata.notes;
- }
-
- private static function fixWidth(value:int, minLength:int):String {
- var result:String = value.toString();
- while (result.length < minLength) {
- result = "0" + result;
- }
- return result;
- }
-
- private function startAtChangeHandler():void {
- var startAt:Date = startAtDateField.selectedDate;
- if (startAt == null) {
- sessionMetadata.setStartAt(null, false);
- }
- else {
- // maybe we need to incorporate the time too
- if (!unknownTimeCheckBox.selected) {
- startAt.hours = int(hourComboBox.selectedItem);
- startAt.minutes = int(minuteComboBox.selectedItem);
- sessionMetadata.setStartAt(startAt, true);
- }
- else {
- sessionMetadata.setStartAt(startAt, false);
- }
- }
- mainGrid.executeChildBindings(true);
- }
-
- ]]>
- </mx:Script>
- <mx:Boolean id="ready">{true}</mx:Boolean>
- <mx:Grid id="mainGrid" width="100%" height="100%">
- <mx:GridRow width="100%">
- <mx:GridItem height="100%" horizontalAlign="right" verticalAlign="middle">
- <mx:Label text="Session Sub Title"/>
- </mx:GridItem>
- <mx:GridItem width="100%" height="100%" verticalAlign="middle">
- <mx:TextInput width="100%" id="sessionSubTitleTextInput" change="{sessionMetadata.subTitle = sessionSubTitleTextInput.text}"/>
- </mx:GridItem>
- </mx:GridRow>
- <mx:GridRow width="100%">
- <mx:GridItem height="100%" horizontalAlign="right" verticalAlign="middle">
- <mx:Label text="Session Date"/>
- </mx:GridItem>
- <mx:GridItem width="100%" height="100%" verticalAlign="middle">
- <mx:DateField id="startAtDateField" formatString="DD/MM/YYYY" change="{startAtChangeHandler()}" selectableRange="{selectableStartAtRange}"/>
- </mx:GridItem>
- </mx:GridRow>
- <mx:GridRow width="100%" enabled="{startAtDateField.selectedDate != null}">
- <mx:GridItem height="100%" horizontalAlign="right" verticalAlign="middle">
- <mx:Label text="Scheduled Start Time"/>
- </mx:GridItem>
- <mx:GridItem width="100%" height="100%" verticalAlign="middle">
- <mx:HBox horizontalGap="2" enabled="{!unknownTimeCheckBox.selected}" verticalAlign="middle">
- <mx:ComboBox width="55" id="hourComboBox" rowCount="13" change="{startAtChangeHandler()}"/>
- <mx:Label text=":" textAlign="center" maxWidth="10"/>
- <mx:ComboBox width="55" id="minuteComboBox" rowCount="12" change="{startAtChangeHandler()}"/>
- <mx:Label text="(hh:mm)"/>
- </mx:HBox>
- <mx:CheckBox label="unknown" labelPlacement="left" width="100%" textAlign="right" id="unknownTimeCheckBox" change="{startAtChangeHandler()}"/>
- </mx:GridItem>
- </mx:GridRow>
- <mx:GridRow width="100%" height="100%">
- <mx:GridItem height="100%" horizontalAlign="right" verticalAlign="top" paddingTop="2">
- <mx:Label text="Notes"/>
- </mx:GridItem>
- <mx:GridItem width="100%" height="100%" verticalAlign="middle">
- <mx:TextArea id="notesTextArea" width="100%" height="100%" change="{sessionMetadata.notes = notesTextArea.text}"/>
- </mx:GridItem>
- </mx:GridRow>
- </mx:Grid>
- </mx:VBox>