private void AddRuleButton_Click(object sender, EventArgs e) { if (m_point != null) { IPointRule prt = _factory.CreateDefaultPointRule(); int idx = m_point.RuleCount; conditionList.AddRuleControl(prt, idx).Focus(); m_point.AddRule(prt); } else if (m_line != null) { ILineRule lrt = _factory.CreateDefaultLineRule(); int idx = m_line.RuleCount; conditionList.AddRuleControl(lrt, idx).Focus(); m_line.AddRule(lrt); } else if (m_area != null) { IAreaRule art = _factory.CreateDefaultAreaRule(); int idx = m_area.RuleCount; conditionList.AddRuleControl(art, idx).Focus(); m_area.AddRule(art); } else if (m_comp != null) { ICompositeRule cr = _factory.CreateDefaultCompositeRule(); int idx = m_area.RuleCount; conditionList.AddRuleControl(cr, idx).Focus(); m_comp.AddCompositeRule(cr); } if (ItemChanged != null) { ItemChanged(this, null); } }
private ILineRule CreateLineRule(ILineRule template, ILayerElementFactory factory) { var lrule = factory.CreateDefaultLineRule(); foreach (var st in template.Strokes) { lrule.AddStroke(st.Clone()); } if (template.Label != null) lrule.Label = template.Label.Clone(); return lrule; }
private void ReSyncBindingListToRules(IVectorStyle style) { if (style != null) { switch (style.StyleType) { case StyleType.Point: { IPointVectorStyle pts = style as IPointVectorStyle; pts.RemoveAllRules(); for (int i = 0; i < _rules.Count; i++) { ILabeledRuleModel rule = (ILabeledRuleModel)_rules[i]; IPointRule pr = (IPointRule)rule.UnwrapRule(); pts.AddRule(pr); rule.SetIndex(i); } } break; case StyleType.Line: { ILineVectorStyle lts = style as ILineVectorStyle; lts.RemoveAllRules(); for (int i = 0; i < _rules.Count; i++) { ILabeledRuleModel rule = (ILabeledRuleModel)_rules[i]; ILineRule lr = (ILineRule)rule.UnwrapRule(); lts.AddRule(lr); rule.SetIndex(i); } } break; case StyleType.Area: { IAreaVectorStyle ats = style as IAreaVectorStyle; ats.RemoveAllRules(); for (int i = 0; i < _rules.Count; i++) { ILabeledRuleModel rule = (ILabeledRuleModel)_rules[i]; IAreaRule ar = (IAreaRule)rule.UnwrapRule(); ats.AddRule(ar); rule.SetIndex(i); } } break; case StyleType.Composite: { ICompositeTypeStyle cts = style as ICompositeTypeStyle; cts.RemoveAllRules(); for (int i = 0; i < _rules.Count; i++) { IRuleModel rule = (IRuleModel)_rules[i]; ICompositeRule cr = (ICompositeRule)rule.UnwrapRule(); cts.AddCompositeRule(cr); rule.SetIndex(i); } } break; } } }
public void SetItem(ILineRule parent, IEnumerable<IStroke> line, double previewScale, int themeCategory) { isLine = true; SetItemInternal(parent, line, previewScale, themeCategory); }
private RuleResult RuleApplyCached(ILineRule rule, int index, string line) { RuleResult result; ConcurrentDictionary<int, RuleResult> results; if(CachedResults.ContainsKey(rule)) { results = CachedResults[rule]; if(results.ContainsKey(index)) return results[index]; } else { results = new ConcurrentDictionary<int, RuleResult>(); CachedResults.AddOrUpdate(rule, results, (ru, rs) => rs); } result = rule.Apply(line); results.AddOrUpdate(index, result, (i, r) => r); return result; }
public void SetItem(ILineRule parent, IEnumerable <IStroke> line, double previewScale, int themeCategory) { isLine = true; SetItemInternal(parent, line, previewScale, themeCategory); }
private void Rule_ItemDeleted(object sender, EventArgs e) { foreach (Condition c in this.Controls) { if (c.Item == sender) { this.Controls.Remove(c); break; } } if (m_point != null) { IPointRule remove = null; foreach (var pr in m_point.Rules) { if (pr == sender) { remove = pr; break; } } if (remove != null) { m_point.RemoveRule(remove); } } else if (m_line != null) { ILineRule remove = null; foreach (var lr in m_line.Rules) { if (lr == sender) { remove = lr; break; } } if (remove != null) { m_line.RemoveRule(remove); } } else if (m_area != null) { IAreaRule remove = null; foreach (var ar in m_area.Rules) { if (ar == sender) { remove = ar; break; } } if (remove != null) { m_area.RemoveRule(remove); } } else if (m_comp != null) { ICompositeRule remove = null; foreach (var comp in m_comp.CompositeRule) { if (comp == sender) { remove = comp; break; } } if (remove != null) { m_comp.RemoveCompositeRule(remove); } } SignalItemChanged(); }
public void SetItem(ILineRule lrt, double previewScale, int themeCategory) { SetItemInternal(lrt, previewScale, themeCategory); }
public BasicLineSymbolizationAdapter(ILineRule wrappee) { _wrappee = wrappee; }
private void SetItemInternal(object item, double previewScale, int themeCategory) { m_prt = item as IPointRule; m_lrt = item as ILineRule; m_art = item as IAreaRule; m_comp = item as ICompositeRule; try { m_isUpdating = true; if (m_prt != null) { RuleCondition.Text = m_prt.Filter; LegendLabel.Text = m_prt.LegendLabel; Image w2d = null; if (m_prt.PointSymbolization2D != null) { //Determine if this is a w2d symbol style if (m_prt.PointSymbolization2D.Symbol.Type == PointSymbolType.W2D) { var sym = (IW2DSymbol)m_prt.PointSymbolization2D.Symbol; w2d = SymbolPicker.GetSymbol(_conn, sym.W2DSymbol.ResourceId, sym.W2DSymbol.LibraryItemName); } } FeatureStyle.SetItem(m_prt, m_prt.PointSymbolization2D, w2d, previewScale, themeCategory); LabelStyle.SetItem(m_prt, m_prt.Label, previewScale, themeCategory); LabelStyle.Visible = true; } else if (m_lrt != null) { RuleCondition.Text = m_lrt.Filter; LegendLabel.Text = m_lrt.LegendLabel; FeatureStyle.SetItem(m_lrt, m_lrt.Strokes, previewScale, themeCategory); LabelStyle.SetItem(m_lrt, m_lrt.Label, previewScale, themeCategory); LabelStyle.Visible = true; } else if (m_art != null) { RuleCondition.Text = m_art.Filter; LegendLabel.Text = m_art.LegendLabel; FeatureStyle.SetItem(m_art, m_art.AreaSymbolization2D, previewScale, themeCategory); LabelStyle.SetItem(m_art, m_art.Label, previewScale, themeCategory); LabelStyle.Visible = true; } else if (m_comp != null) { RuleCondition.Text = m_comp.Filter; LegendLabel.Text = m_comp.LegendLabel; FeatureStyle.SetItem(m_comp, m_comp.CompositeSymbolization, previewScale, themeCategory); LabelStyle.Visible = false; } } finally { m_isUpdating = false; } }