Esempio n. 1
0
        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;
 }