public LayerSelectionProperty(ILayer ObjectWithLayer, string resourceId, LayerList ll, bool includeUndefined) { layerList = ll; base.resourceId = resourceId; if (includeUndefined) { choices = new string[ll.Count + 1]; int i = 0; foreach (Layer lay in ll) { choices[i + 1] = lay.Name; i++; } string undef = StringTable.GetString("Layer.Undefined"); // sollte es den Namen schon geben, werden solange - davor und dahintergemacht, bis es den Namen mehr gibt while (layerList.Find(undef) != null) { undef = "-" + undef + "-"; } choices[0] = undef; objectWithLayer = ObjectWithLayer; if (objectWithLayer != null && objectWithLayer.Layer != null) { selectedText = objectWithLayer.Layer.Name; } else { selectedText = undef; } } else { choices = new string[ll.Count]; int i = 0; foreach (Layer lay in ll) { choices[i] = lay.Name; i++; } objectWithLayer = ObjectWithLayer; if (objectWithLayer != null && objectWithLayer.Layer != null) { selectedText = objectWithLayer.Layer.Name; } } toWatch = objectWithLayer as IGeoObject; }
protected override void OnSelectionChanged(string selected) { if (selected == null) { return; } Layer lay = layerList.Find(selected); // kann null sein if (objectWithLayer != null) { objectWithLayer.Layer = lay; } base.OnSelectionChanged(selected); if (LayerChangedEvent != null) { LayerChangedEvent(lay); } }
/// <summary> /// Alle Layer sollen sich mit ihrer ColorDef Property auf ColorDef Objekte /// aus der im Parameter gegebenen Liste beziehen. Die Liste wird ggf. erweitert. /// </summary> /// <param name="ct">Die Liste der benannten Farben</param> internal LayerList clone() { LayerList res = new LayerList(); foreach (DictionaryEntry de in entries) { res.Add((de.Value as Layer).Clone()); } if (current != null) { res.current = res.Find(current.Name); } else { res.current = null; } return(res); }
private void OnCheckStateChanged(string label, CheckState state) { Layer l = layerList.Find(label); if (l == null) { return; } if (state == CheckState.Checked) { if (!checkedLayers.Contains(l)) { checkedLayers.Add(l); } } else { checkedLayers.Remove(l); } if (CheckStateChangedEvent != null) { CheckStateChangedEvent(l, state == CheckState.Checked); } }