ArcFM Engine Developer Guide
XFRUnitNamer.cs

Resource Center Home

Display Name Objects Developer Sample (C#)

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

 

 

 


Send Comment to ArcFMdocumentation@schneider-electric.com