public FormNewSLDRule(IFeatureLayer layer, SLDRenderer.Rule rule) { if (rule == null || layer == null) { return; } InitializeComponent(); symbolControl1.Symbol = rule.Symbol; _layer = layer; _rule = rule; btnQueryBuilder.Enabled = (_layer.FeatureClass != null); switch (rule.filterType) { case SLDRenderer.Rule.FilterType.None: radioFilterNone.Checked = true; break; case SLDRenderer.Rule.FilterType.OgcFilter: radioFilterOgc.Checked = true; break; case SLDRenderer.Rule.FilterType.ElseFilter: radioFilterElse.Checked = true; break; } if (rule.Filter != null && _layer != null) { XmlDocument doc = new XmlDocument(); doc.LoadXml(rule.Filter.ToXmlString(true)); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("OGC", "http://www.opengis.net/ogc"); _queryFilter = gView.Framework.OGC.WFS.Filter.FromWFS( _layer.FeatureClass, doc.SelectSingleNode("OGC:Filter", ns), GmlVersion.v1); gView.Framework.OGC.WFS.Filter.AppendSortBy(_queryFilter, doc.SelectSingleNode("OGC:SortBy", ns)); txtQuery.Text = _queryFilter.WhereClause; } if (rule.MinScale <= 1.0 && rule.MaxScale <= 1.0) { radioAllScales.Checked = true; } else { radioScales.Checked = true; } txtMinScale.Value = (decimal)Math.Abs(rule.MinScale); txtMaxScale.Value = (decimal)Math.Abs(rule.MaxScale); TabScalesGUI(); }
private void SelectRendererItem(SLDRenderer.Rule rule) { foreach (object item in RendererBox.Items) { if (item is RuleItem && ((RuleItem)item).Rule == rule) { RendererBox.SelectedItem = item; break; } } }
private void btnProperties_Click(object sender, EventArgs e) { if (_selectedItem == null || _selectedItem.Rule == null) { return; } SLDRenderer.Rule rule = _selectedItem.Rule; FormNewSLDRule dlg = new FormNewSLDRule(_layer, rule); if (dlg.ShowDialog() == DialogResult.OK) { RendererBox.Refresh(); } }
private void btnUp_Click(object sender, EventArgs e) { if (_selectedItem == null || _selectedItem.Rule == null || _renderer == null) { return; } SLDRenderer.Rule selectedRenderer = _selectedItem.Rule; int index = _renderer.Rules.IndexOf(_selectedItem.Rule); if (index <= 0) { return; } _renderer.Rules.Remove(_selectedItem.Rule); _renderer.Rules.Insert(Math.Max(0, index - 1), _selectedItem.Rule); BuildList(); SelectRendererItem(selectedRenderer); }
public RuleItem(SLDRenderer.Rule rule) { _rule = rule; }