public ColorSelectionProperty(object go, string propertyName, string resourceId, ColorList clrTable, ColorList.StaticFlags flags)
        {
            useFlags        = flags;
            flags           = clrTable.Usage;
            clrTable.Usage  = useFlags;
            base.resourceId = resourceId;
            colorList       = clrTable;
            choices         = clrTable.Names;

            objectWithProperty = go;
            propertyInfo       = objectWithProperty.GetType().GetProperty(propertyName);
            MethodInfo mi = propertyInfo.GetGetMethod();

            object[] prm           = new object[0];
            ColorDef selectedColor = (ColorDef)mi.Invoke(objectWithProperty, prm);

            if (selectedColor != null)
            {
                selectedText = selectedColor.Name;
            }
            selectedCD     = selectedColor;
            clrTable.Usage = flags;
            unselectedText = StringTable.GetString("ColorDef.Undefined");
            toWatch        = go as IGeoObject; // may be null
        }
 public ColorSelectionProperty(string resourceId, ColorList clrTable, ColorDef select, ColorList.StaticFlags flags)
 {
     selectedCD      = select;
     useFlags        = flags;
     clrTable.Usage  = flags;
     base.resourceId = resourceId;
     colorList       = clrTable;
     choices         = clrTable.Names;
     ExtendChoices();
     if (select != null)
     {
         selectedText = select.Name;
     }
     else
     {
         selectedText = unselectedText;
     }
     unselectedText     = StringTable.GetString("ColorDef.Undefined");
     showUnselectedGray = true;
 }
        public ColorSelectionProperty(IColorDef iColorDef, string resourceId, ColorList clrTable, ColorList.StaticFlags flags)
        {
            useFlags        = flags;
            clrTable.Usage  = flags;
            base.resourceId = resourceId;
            colorList       = clrTable;
            ColorDef selectedColor = iColorDef.ColorDef;

            selectedCD     = selectedColor;
            this.iColorDef = iColorDef;
            choices        = clrTable.Names;
            ExtendChoices();
            if (selectedColor != null)
            {
                selectedText = selectedColor.Name;
            }
            else
            {
                selectedText = unselectedText;
            }
            toWatch            = iColorDef as IGeoObject; // may be null
            showUnselectedGray = true;
        }
        protected override void OnSelectionChanged(string selected)
        {
            ColorList.StaticFlags flags = colorList.Usage;
            colorList.Usage = useFlags;
            ColorDef found = colorList.Find(selected);

            if (iColorDef != null)
            {
                iColorDef.ColorDef = found;
            }
            else if (propertyInfo != null)
            {
                MethodInfo mi  = propertyInfo.GetSetMethod();
                object[]   prm = new object[1];
                prm[0] = colorList.Find(selected);
                mi.Invoke(objectWithProperty, prm);
            }
            else if (ColorDefChangedEvent != null)
            {
                ColorDefChangedEvent(found);
            }
            base.OnSelectionChanged(selected);
            colorList.Usage = flags;
        }