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