Exemplo n.º 1
0
        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);
            }

            ItemChanged?.Invoke(this, null);
        }
Exemplo n.º 2
0
        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;
            }
        }
        public void RemoveRule(IPointRule rule)
        {
            var pr = rule as PointRuleType;

            if (pr != null)
            {
                this.PointRule.Remove(pr);
            }
        }
        public void AddRule(IPointRule rule)
        {
            var pr = rule as PointRuleType;

            if (pr != null)
            {
                this.PointRule.Add(pr);
            }
        }
        public bool MoveDown(IPointRule rule)
        {
            var pr = rule as PointRuleType;

            if (pr != null)
            {
                return(CollectionUtil.MoveDown(this.PointRule, pr));
            }
            return(false);
        }
        public int IndexOfRule(IPointRule rule)
        {
            var pr = rule as PointRuleType;

            if (pr != null)
            {
                return(this.PointRule.IndexOf(pr));
            }
            return(-1);
        }
Exemplo n.º 7
0
        private void ReSyncRulesToBindingList(IVectorStyle style)
        {
            _rules.Clear();
            if (style != null)
            {
                switch (style.StyleType)
                {
                case StyleType.Point:
                {
                    for (int i = 0; i < style.RuleCount; i++)
                    {
                        IPointRule pr = (IPointRule)style.GetRuleAt(i);
                        _rules.Add(new PointRuleModel(pr, i));
                    }
                }
                break;

                case StyleType.Line:
                {
                    for (int i = 0; i < style.RuleCount; i++)
                    {
                        ILineRule lr = (ILineRule)style.GetRuleAt(i);
                        _rules.Add(new LineRuleModel(lr, i));
                    }
                }
                break;

                case StyleType.Area:
                {
                    for (int i = 0; i < style.RuleCount; i++)
                    {
                        IAreaRule ar = (IAreaRule)style.GetRuleAt(i);
                        _rules.Add(new AreaRuleModel(ar, i));
                    }
                }
                break;

                case StyleType.Composite:
                {
                    for (int i = 0; i < style.RuleCount; i++)
                    {
                        ICompositeRule cr = (ICompositeRule)style.GetRuleAt(i);
                        _rules.Add(new CompositeRuleModel(cr, i));
                    }
                }
                break;
                }
            }
            else
            {
                _rules.Clear();
            }
        }
Exemplo n.º 8
0
 public void SetItem(IPointRule parent, IPointSymbolization2D point, Image img, double previewScale, int themeCategory)
 {
     if (point == null)
     {
         isPoint     = false;
         isW2dSymbol = false;
     }
     else
     {
         isPoint     = (point.Symbol.Type != PointSymbolType.W2D);
         isW2dSymbol = (point.Symbol.Type == PointSymbolType.W2D);
     }
     SetItemInternal(parent, point, previewScale, themeCategory);
     m_w2dsymbol = img;
 }
Exemplo n.º 9
0
        private IPointRule CreatePointRule(IPointRule template, ILayerElementFactory factory)
        {
            var ptRule = factory.CreateDefaultPointRule();

            var srcSym = template.PointSymbolization2D;
            if (srcSym != null)
            {
                ptRule.PointSymbolization2D = srcSym.Clone();
            }
            var srcLabel = template.Label;
            if (srcLabel != null)
            {
                ptRule.Label = srcLabel.Clone();
            }
            return ptRule;
        }
Exemplo n.º 10
0
        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;
                }
            }
        }
Exemplo n.º 11
0
 public void SetItem(IPointRule parent, IPointSymbolization2D point, Image img, double previewScale, int themeCategory)
 {
     if (point == null)
     {
         isPoint = false;
         isW2dSymbol = false;
     }
     else
     {
         isPoint = (point.Symbol.Type != PointSymbolType.W2D);
         isW2dSymbol = (point.Symbol.Type == PointSymbolType.W2D);
     }
     SetItemInternal(parent, point, previewScale, themeCategory);
     m_w2dsymbol = img;
 }
        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();
        }
Exemplo n.º 13
0
 public void SetItem(IPointRule prt, double previewScale, int themeCategory)
 {
     SetItemInternal(prt, previewScale, themeCategory);
 }
Exemplo n.º 14
0
        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;
            }
        }
Exemplo n.º 15
0
 public void SetItem(IPointRule prt, double previewScale, int themeCategory)
 {
     SetItemInternal(prt, previewScale, themeCategory);
 }