package forms.layer { import core.AbstractController; public class LayerController extends AbstractController { public function get layerModel() : LayerModel { return _model as LayerModel; } public function afterEditableChange() : void { if(layerModel.editable) { setModelMember("selectable", true, false); } } public function afterSelectableChange() : void { if(!layerModel.selectable) { setModelMember("editable", false, false); } } public function checkScope(newScope:Object) : String { return inArrayCheck(newScope, layerModel.validScopes); } public function checkMinScale(newMinScale:Object) : String { if(emptyStringCheck(newMinScale)) { return null; } return isNumberCheck(newMinScale); } public function checkMaxScale(newMaxScale:Object) : String { if(emptyStringCheck(newMaxScale)) { return null; } return isNumberCheck(newMaxScale); } public function checkPopupTrigger(newPopupTrigger:Object) : String { return inArrayCheck(newPopupTrigger, layerModel.validPopupTriggers); } public function checkGeometryType(newGeometryType:Object) : String { if(!layerModel.selectable) { return null; } return inArrayCheck(newGeometryType, layerModel.validGeometryTypes); } public function checkFeatureServer(newFeatureServer:Object) : String { if(!layerModel.selectable) { return null; } return inXMLListCheck(newFeatureServer, layerModel.validFeatureServers); } public function checkFeatureType(newFeatureType:Object) : String { if(!layerModel.selectable) { return null; } return inXMLListCheck(newFeatureType, layerModel.validFeatureTypes); } private function doCheckProperty(newProperty:Object) : String { if(!layerModel.selectable) { return null; } if(newProperty.@name == "") { return null; } return inXMLListCheck(newProperty, layerModel.validFeatureTypeProperties); } public function checkHyperlinkProperty(newHyperlinkProperty:Object) : String { return doCheckProperty(newHyperlinkProperty); } public function checkAnnotationProperty(newAnnotationProperty:Object) : String { return doCheckProperty(newAnnotationProperty); } public function checkObjectOwnerProperty(newObjectOwnerProperty:Object) : String { if(!layerModel.selectable) { return null; } return doCheckProperty(newObjectOwnerProperty); } public function checkName(newName:Object) : String { var retval:String = emptyStringCheck(newName); if(retval) { return retval; } for each(var layer:XML in layerModel.dataSource.layers.source. (@id != layerModel.id && @clientId != layerModel.clientId)) { if(layer.Name == newName) { setModelMember("name", newName, false); return resourceManager.getString('abstractController', 'Msg_NameNotUnique'); } } return null; } public function checkServer(newServer:Object) : String { return notNullCheck(newServer); } public function checkServerLayer(newServerLayer:Object) : String { return notNullCheck(newServerLayer); } public function afterServerLayerChange() : void { var name:String = layerModel.serverLayer.Name.toString(); if(emptyStringCheck(layerModel.name)) { setModelMember("name", name); } for each(var title:Object in layerModel.titles) { if(emptyStringCheck(title.title)) { addModelMember("titles", {language: title.language, title: name}, false); } } } //Resets *Property if it refers to a removed feature type property public function afterFeatureTypePropertiesRemove() : void { var configured:XMLList = layerModel.configuredFeatureTypeProperties if(inXMLListCheck(layerModel.hyperlinkProperty, configured)) { setModelMember("hyperlinkProperty", null, false); } if(inXMLListCheck(layerModel.annotationProperty, configured)) { setModelMember("annotationProperty", null, false); } if(inXMLListCheck(layerModel.objectOwnerProperty, configured)) { setModelMember("objectOwnerProperty", null, false); } } } }