XFRUnitNamer.cs
Copy Code
|
|
---|---|
//----------------------------------------------------------------------------------- //Schneider Electric //Copyright 2010 //----------------------------------------------------------------------------------- //Module Name: XFRUnitNamer //Description: // //Written: 9/20/2010 by Daniel Rouleau // //Last Revision: // //----------------------------------------------------------------------------------- using System.Runtime.InteropServices; using Miner.Interop; using Miner.ComCategories; using Esri.ArcGIS.Geodatabase; namespace Miner.Samples { [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] [Guid("F2444618-3B35-498c-B92E-A0DE45611989")] [ComponentCategory(ComCategory.MMDisplayNameObjects)] public class XFRUnitNamer : IMMDisplayNamer { //Member constants private const string _facilityIdFieldName = "FacilityID"; private const string _ratedKvaFieldName = "RatedKVA"; private const string _phaseDesignationFieldName = "PhaseDesignation"; private static readonly Resourcer Resourcer = new Resourcer(); public string DisplayString(IRow pRow) { IFields fields = pRow.Fields; ICodedValueDomain codedValueDomain; // Assemble individual display strings // Store FacilityID field value int facilityIDIndex = fields.FindField(_facilityIdFieldName); string facilityID = pRow.get_Value(facilityIDIndex) as string ?? ("(" + pRow.OID + ")"); // Store RatedKVA field value string ratedKVA; int ratedKVAIndex = fields.FindField(_ratedKvaFieldName); int? lRatedKVAValue = pRow.get_Value(ratedKVAIndex) as int?; if (lRatedKVAValue == null) { ratedKVA = Resourcer.GetString("CustomDisplayNamers.NullValue"); } else { //Get appropriate RatedKVA code description from subtype domain //or default domain codedValueDomain = CustomNamerUtils.GetCVDomain(pRow, ratedKVAIndex); if (codedValueDomain != null) { ratedKVA = CustomNamerUtils.GetCVDescFromCode(codedValueDomain, lRatedKVAValue.ToString()); ratedKVA = ratedKVA.Substring(0, (ratedKVA.IndexOf('k')) - 1); ratedKVA = ratedKVA + " KVA"; } else { ratedKVA = "KVA Code: " + lRatedKVAValue; } } // Store phasedesignation field value string phaseDesignation; int phaseDesigIndex = fields.FindField(_phaseDesignationFieldName); int? lPhaseDesignationValue = pRow.get_Value(phaseDesigIndex) as int?; if (lPhaseDesignationValue == null) { phaseDesignation = Resourcer.GetString("CustomDisplayNamers.NullValue"); } else { //Get appropriate PhaseDesignation code description from subtype domain //or default domain codedValueDomain = CustomNamerUtils.GetCVDomain(pRow, phaseDesigIndex); if (codedValueDomain != null) { phaseDesignation = CustomNamerUtils.GetCVDescFromCode(codedValueDomain, lPhaseDesignationValue.ToString()); } else { phaseDesignation = "Phase Code: " + lPhaseDesignationValue; } } string displayString = facilityID + " - " + ratedKVA + " - " + phaseDesignation; //Return display string return displayString; } public bool get_Enabled(IDataset pDataset) { bool result = false; //Enable only on "TransformerUnit" model name IObjectClass objectClass = pDataset as IObjectClass; if (objectClass != null) { if (CustomNamerUtils.GetModelNameMgr.ContainsClassModelName(objectClass, "TransformerUnit")) { result = true; } } return result; } public string Name { get { return "Minerville Transformer Unit Display Namer"; } } } } |