示例#1
0
        protected void AddLegItems(TreeNode pTN, LegendItem li)
        {
            if (li.LegendItemVisible == false) return;

            TreeNode tn = new TreeNode(li.LegendText);

            //tn.SelectAction = TreeNodeSelectAction.None;
            tn.PopulateOnDemand = false;
            //tn.Value = li.LegendText;
            //tn.NavigateUrl = "javascript:ManualSelect('" + "ciccio" + "')";
            //tn.Text = "<span onclick='return false;'>" + li.LegendText + "</span>";
            tn.Text = li.LegendText;
            
            if (li.LegendSymbolMode == SymbolMode.Checkbox)
            {
                tn.ShowCheckBox = true;
                tn.Checked = li.Checked;
            }

            if (li.LegendSymbolMode == SymbolMode.Symbol)
            {
                tn.ImageUrl = "ImageHandler.ashx?ID="+LegItemOnCache(ref li);
            }


            if (pTN == null)
            {
                Nodes.Add(tn);
            }
            else
            {
                pTN.ChildNodes.Add(tn);
            }


            if (li.LegendItems != null)
            {
                //foreach (LegendItem l in li.LegendItems)
                for(int i = li.LegendItems.Count()-1;i>=0;i--)
                {
                    LegendItem l = (LegendItem)li.LegendItems.ElementAt(i);
                    AddLegItems(tn, l);
                }
            }


        }
示例#2
0
        /// <summary>
        /// Handles updating event handlers during a copy process
        /// </summary>
        /// <param name="copy"></param>
        protected override void OnCopy(Descriptor copy)
        {
            LegendItem myCopy = copy as LegendItem;

            if (myCopy != null && myCopy.ItemChanged != null)
            {
                foreach (Delegate handler in myCopy.ItemChanged.GetInvocationList())
                {
                    myCopy.ItemChanged -= (EventHandler)handler;
                }
            }
            if (myCopy != null && myCopy.RemoveItem != null)
            {
                foreach (Delegate handler in myCopy.RemoveItem.GetInvocationList())
                {
                    myCopy.RemoveItem -= (EventHandler)handler;
                }
            }
            base.OnCopy(copy);
        }
示例#3
0
        LegendItem GetLegendItem(string[] keys, LegendItem lip)
        {

            if (keys.Count() == 0) return null;

            if (keys.Count() == 1 && lip.LegendText == keys[0]) return lip;

            foreach (LegendItem li in lip.LegendItems)
            {
                if (li.LegendText == keys[0])
                {
                    if (keys.Count() == 1)
                        return li;
                    else
                    {
                        string[] k = keysPop(keys);
                        
                        return GetLegendItem(k, li);
                    }
                }
            }
                        

            return null;
        }
示例#4
0
        private string LegItemOnCache(ref LegendItem li)
        {

            Size sz = li.GetLegendSymbolSize();

            Bitmap b = new Bitmap(sz.Width+1, sz.Height+1);
            Graphics g = Graphics.FromImage(b);

            li.LegendSymbol_Painted(g,new Rectangle(0,0,sz.Width,sz.Height));

            string name = Guid.NewGuid().ToString();

            MemoryStream MS = new MemoryStream();
            b.Save(MS, System.Drawing.Imaging.ImageFormat.Png);
            byte[] buffer = MS.ToArray();
            HttpContext.Current.Cache.Insert(name, buffer, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(15));

            g.Dispose();
            b.Dispose();

            return name;
        }