LegendCheckBoxes not working propperly.

TeeChart for Microsoft Visual Studio .NET, Xamarin Studio (Android, iOS & Forms) & Monodevelop.
Post Reply
Hermes
Newbie
Newbie
Posts: 33
Joined: Fri Feb 03, 2012 12:00 am

LegendCheckBoxes not working propperly.

Post by Hermes » Thu Mar 29, 2012 3:35 pm

Hi

Strange behaviours that occur using the legend checkboxes:

1 - When I click on a checkbox that was checked, the other ones are checked again (if they weren't of course).
2 - If I click on a checkbox that was unchecked, it remains the same.
3 - If I click outside of the legend all checkboxes are checked again.

As I was adding the chart dinamically I thought it could be that but I tried again adding the chart directly to the markup but the strange behaviour remains the same.

Attached you will find both samples.

I am using the last version available.

What could be wrong?

Thanks in advance for your help!
Attachments
LegendCheck.zip
Samples
(6.03 KiB) Downloaded 607 times

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Sandra » Fri Mar 30, 2012 3:27 pm

Hello Hermes,

I suggest do something us next code:

Code: Select all

public partial class _Default : System.Web.UI.Page
{
    TimeSpan timespant;
    public static System.IO.MemoryStream tmpChart;
    private static int index =-1;
    private static int counter = 1;
  //  private static int ActualSeconds, DateSeconds,seconds;
   
    private static System.Collections.ArrayList legendClickState;
  

    protected void Page_Load(object sender, EventArgs e)
    {
        Steema.TeeChart.Chart ch1;
        timespant = TimeSpan.FromSeconds(5);

        if (Session["ch1"] == null)
        {		
            ch1 = WebChart1.Chart;
            ch1.Legend.CheckBoxes = true;
            ch1.Series.Add(new Steema.TeeChart.Styles.Line());
            ch1.Series.Add(new Steema.TeeChart.Styles.Line());
            ch1.Series.Add(new Steema.TeeChart.Styles.Line());
            ch1.Series.Add(new Steema.TeeChart.Styles.Line());
            legendClickState= new System.Collections.ArrayList();
            //timer.Interval = 20;
          
            for (int i = 0; i < ch1.Series.Count; ++i)
            {
                ch1[i].FillSampleValues();
                ch1[i].XValues.DateTime = true;
                CheckedSeries chk = new CheckedSeries(WebChart1.Chart[i].Active, i,timespant);//,addr[i].ToString());
                legendClickState.Add(chk);
              
            }
            ch1.Axes.Bottom.Labels.DateTimeFormat = "MM/dd hh:mm";
            ch1.Axes.Bottom.Increment = Steema.TeeChart.Utils.GetDateTimeStep(Steema.TeeChart.DateTimeSteps.FifteenMinutes);
            ch1.Axes.Bottom.Labels.Angle = 90;
            tmpChart = new System.IO.MemoryStream();
            ch1.Legend.CheckBoxes = true;
            //export Chart to a MemoryStream template
            ch1.Export.Template.Save(tmpChart);
           // mysession = Session.SessionID;
            //save template to a Session variable
            Session.Add("ch1", tmpChart);
           //  WebChart1.ClickLegend += new Steema.TeeChart.Web.WebChart.ClickEventHandler(WebChart1_ClickLegend);     
        }
        else
        {
            //retrieve the session stored Chart
            tmpChart = (System.IO.MemoryStream)Session["ch1"];
            //set the Stream position to 0 as the last read/write
            //will have moved the position to the end of the stream
            tmpChart.Position = 0;


            //import saved Chart
            WebChart1.Chart.Import.Template.Load(tmpChart);
            ch1 = WebChart1.Chart;
            
            CheckLegendClick(WebChart1);
          
        }
       
    }

    private void CheckLegendClick(Steema.TeeChart.Web.WebChart wChart)
    {

        System.Drawing.Bitmap bmp = WebChart1.Chart.Bitmap((int)wChart.Width.Value, (int)wChart.Height.Value);
        index = wChart.Chart.Legend.Clicked(wChart.ClickedX, wChart.ClickedY);


        if (index != -1)
        {
            //tempspan
            if (Session["LegendClick"] == null)
            {
                Session.Add("LegendClick", legendClickState);

            }
            else
            {
                //timer.Start();
                legendClickState = CheckBoxBeforeDraw(legendClickState);
                int Seconds = DateTime.Now.Second;
              
                for (int i = 0; i < wChart.Chart.Series.Count; i++)
                {
                    if (((CheckedSeries)(legendClickState[i])).Index == index)
                    {
                       
                        CheckedSeries chk = (CheckedSeries)legendClickState[index];
                       
                        if ((Seconds - chk.TimeSpan.Seconds)>=0 && counter == 1)
                        {
                            chk.IsActive = !chk.IsActive;
                            legendClickState.RemoveAt(chk.Index);
                            legendClickState.Insert(chk.Index, chk);
                            bmp = WebChart1.Chart.Bitmap();
                            Session.Add("LegendClick", legendClickState);
                            counter++;
                        }
                        else if(counter>1)
                        {
                            counter = 1;
                        }
                       

                    }
                }
                     
            
            }
        }
    }

    private ArrayList CheckBoxBeforeDraw(ArrayList legendClickState)
    {
        legendClickState = (System.Collections.ArrayList)Session["LegendClick"];
        for (int i = 0; i < WebChart1.Chart.Series.Count; ++i)
        {
            CheckedSeries chk = (CheckedSeries)legendClickState[i];
            WebChart1.Chart[i].Active = chk.IsActive;
        }
        return legendClickState;
    }
   
    public struct CheckedSeries
    {
        public CheckedSeries(bool isActive, int index, TimeSpan timespan)
        {
            IsActive = isActive;
            Index = index;
            TimeSpan = timespan;
            
        }
        public bool IsActive;
        public int Index;
        public TimeSpan TimeSpan;
    }
}
Can you tell us if previous help you?

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Hermes
Newbie
Newbie
Posts: 33
Joined: Fri Feb 03, 2012 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Hermes » Tue Apr 24, 2012 2:21 pm

Hi!

Thanks for the answer and sorry for the late response.

It seems a lot of work to do as We add the chart dinamically on the page, expecting that not much work would be done after the chart is generated (we have other controls on the page too). So before I try the solution I should ask: is it expected that this functionality to work by itself in the near future? I mean without adding all this code?

Besides before trying the solution I think the static variables would not be addecuate in a multiuser enviroment am I right? Still, I will now try your solution for a static chart but would like to know the answer to the previous question before I start working on the actual project.

Thanks again!

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Sandra » Wed Apr 25, 2012 8:29 am

Hello Hermes,
It seems a lot of work to do as We add the chart dinamically on the page, expecting that not much work would be done after the chart is generated (we have other controls on the page too). So before I try the solution I should ask: is it expected that this functionality to work by itself in the near future? I mean without adding all this code?
It problem already exist in bug list report with number(TW77012763). We will try to fix it for next maintenance releases but at the moment the only solution I can recommend you is use my previous code.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Sandra » Wed Apr 25, 2012 8:29 am

Hello Hermes,
It seems a lot of work to do as We add the chart dinamically on the page, expecting that not much work would be done after the chart is generated (we have other controls on the page too). So before I try the solution I should ask: is it expected that this functionality to work by itself in the near future? I mean without adding all this code?
It problem already exist in bug list report with number(TW77012763). We will try to fix it for next maintenance releases but at the moment the only solution I can recommend you is use my previous code.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Hermes
Newbie
Newbie
Posts: 33
Joined: Fri Feb 03, 2012 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Hermes » Wed Apr 25, 2012 1:19 pm

Great I will try to adapt this solution to my project until the bug is fixed!

Is there any way to suscribe to the bug so I can get a notification when the bug is fixed?

Thanks a lot!

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Sandra » Wed Apr 25, 2012 3:21 pm

Hello Hermes,

You should be aware/subscribe to any of the Steema Software communication channels (this forum, Steema's home page, Steema's RSS feed, twitter or facebook) for new release announcements and what's implemented on them at the release notes accompanying the news, for example: http://www.teechart.net/support/viewtop ... =4&t=13090.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Hermes
Newbie
Newbie
Posts: 33
Joined: Fri Feb 03, 2012 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Hermes » Tue Jul 24, 2012 10:10 pm

Hi!

Checking the version info of the last two releases I see that this issue hasn't been addressed yet, is there a planned date for this to be fixed/released so we can take it into account?

Thanks!

Narcís
Site Admin
Site Admin
Posts: 14730
Joined: Mon Jun 09, 2003 4:00 am
Location: Banyoles, Catalonia
Contact:

Re: LegendCheckBoxes not working propperly.

Post by Narcís » Thu Jul 26, 2012 2:07 pm

Hi Hermes,

We have checked with the latest version of TeeChart and can confirm that the ClickLegend event quoted earlier in this thread is only visited once on Legend Checkbox click. The change in behaviour may have occurred during interim maintenance updates. With respect to the second part of your enquiry, we are looking at alternative means to actuate Legend click without the need for AutoPostback True, but it would require a re-work to part of the basic functionality of WebChart. It is a possibility but has been pushed back a little in priority order. We've put it down to be revisited now.
Best Regards,
Narcís Calvet / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Hermes
Newbie
Newbie
Posts: 33
Joined: Fri Feb 03, 2012 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Hermes » Tue Jun 10, 2014 3:58 pm

Hi,
I was searching for the bug TW77012763 in the versión list but it seems it not appear.
Was the problem solved?
And the point " we are looking at alternative means to actuate Legend click without the need for AutoPostback True" ?

thanks

Christopher
Guru
Posts: 1603
Joined: Fri Nov 15, 2002 12:00 am

Re: LegendCheckBoxes not working propperly.

Post by Christopher » Tue Jun 10, 2014 4:08 pm

Hello,
Hermes wrote: I was searching for the bug TW77012763 in the versión list but it seems it not appear.
Was the problem solved?
The bug is still open with id=388 as can be seen here. This bug database is public, so please feel free to comment on it.

I have made a request for the development team to reappraise this particular defect.
Best Regards,
Christopher Ireland / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Instructions - How to post in this forum

Post Reply