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;
}
]]>