0) { InfoDialog.show("The following duplicate names must be corrected before saving:\n" + dups, "Duplicate Names", false, btnSave); return; } if (dflts.length > 0) { InfoDialog.show("The following are default rooms/areas and may not be inactivated:\n" + dflts, "Default Rooms/Areas", false, btnSave); return; } var saveEvent: SaveBedConfigEvent = new SaveBedConfigEvent(SaveBedConfigEvent.EVENT_SAVE_CONFIG_BEDS); saveEvent.dispatch(); } private function addBed(): void { newCount++; var addEvent: AddBedEvent = new AddBedEvent(AddBedEvent.EVENT_ADD_BED); addEvent.newIndex = newCount; addEvent.dispatch(); this.callLater(selectNewIndex, [model.config.beds.length]); } private function isDuplicate(field: String, value: String, index: int): Boolean { if (!((field == "name") || (field == "displayName"))) return false; var bed: RoomBedVO; for (var i: int = 0; i < model.config.beds.length; i++) { if (i == index) continue; bed = model.config.beds[i] as RoomBedVO; if (bed[field].toLowerCase() == value.toLowerCase()) return true; } return false; } private function markChanged(event: Event): void { var bed: RoomBedVO = selectedBed; if (event.currentTarget === nameInput) { if (bed.name != nameInput.text) { bed.name = nameInput.text; bed.changed = true; } } else if (event.currentTarget === displayNameInput) { if (bed.displayName != displayNameInput.text) { bed.displayName = displayNameInput.text; bed.changed = true; } } else if (event.currentTarget === whenChooser) { if (bed.displayWhen != whenChooser.selectedItem.data) { bed.displayWhen = int(whenChooser.selectedItem.data); bed.changed = true; } } else if (event.currentTarget === statusChooser) { if (bed.defaultStatus != statusChooser.selectedItem.data) { bed.defaultStatus = statusChooser.selectedItem.data; bed.changed = true; } } else if (event.currentTarget === inactiveCheckBox) { if (bed.inactive != inactiveCheckBox.selected) { bed.inactive = inactiveCheckBox.selected; bed.changed = true; } } else if (event.currentTarget === roomCategoryChooser) { if (bed.category != roomCategoryChooser.selectedItem.data) { bed.category = int(roomCategoryChooser.selectedItem.data); bed.changed = true; } } else if (event.currentTarget === sharedInput) { if (bed.sharedName != sharedInput.text) { bed.sharedName = sharedInput.text; bed.changed = true; } } else if (event.currentTarget === boardInput) { if (bed.boardName != boardInput.text) { bed.boardName = boardInput.text; bed.changed = true; } } else if (event.currentTarget === colorSelector) { if (bed.color != colorSelector.color) { bed.color.ignore = colorSelector.color.ignore; bed.color.text = colorSelector.color.text; bed.color.back = colorSelector.color.back; bed.changed = true; } } if (bed.changed) { new ConfigurationEvent(ConfigurationEvent.EVENT_BED_MODIFIED).dispatch(); } model.config.beds.refresh(); } private function listOrderTextChanged(event:Event):void { if (listOrderInput.text.length == 0) return; var newIndex:int = int(listOrderInput.text) - 1; if (newIndex < 0 || newIndex >= grdBeds.dataProvider.length) return; if (newIndex != grdBeds.selectedIndex) { reordering = true; var changeEvent: ChangeBedSequenceEvent = new ChangeBedSequenceEvent(ChangeBedSequenceEvent.EVENT_CHANGE_BED_SEQUENCE); changeEvent.newIndex = newIndex; changeEvent.oldIndex = grdBeds.selectedIndex; changeEvent.dispatch(); grdBeds.selectedIndex = -1; } } private function selectNewIndex(newIndex: int): void { grdBeds.scrollToIndex(newIndex); grdBeds.selectedIndex = newIndex; } private function refreshBedFilter(): void { if (hideInactiveCheckBox.selected) { model.config.beds.filterFunction = activeBedFilter; } else { model.config.beds.filterFunction = null; } model.config.beds.refresh(); } private function activeBedFilter(item:Object): Boolean { var roomBed : RoomBedVO = item as RoomBedVO; return !roomBed.inactive; } private function keyDownHadler(event:KeyboardEvent): void { if (event.keyCode == Keyboard.ESCAPE) { update(); } } private function update():void { if (btnSave.enabled) btnSave.setFocus(); else grdBeds.setFocus(); grdBeds.selectedIndex = -1; } private function doDragDrop(event:DragEvent):void { reordering = true; } ]]>