Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Visualization/ChartDataRowsModel.cs @ 728

Last change on this file since 728 was 728, checked in by cbahner, 16 years ago

#320 first persistence mechanism (values) bugfix

File size: 2.7 KB
RevLine 
[680]1using System;
2using System.Collections.Generic;
[726]3using System.IO;
[680]4using System.Linq;
[726]5using System.Runtime.Serialization;
[680]6using System.Text;
[726]7//using System.Collections.Specialized;
8using System.Xml;
9using System.Xml.Serialization;
10using HeuristicLab.Core;
11using HeuristicLab.Data;
[680]12
[685]13
14namespace HeuristicLab.Visualization{
[697]15  public class ChartDataRowsModel : ChartDataModelBase, IChartDataRowsModel {
[685]16
[726]17    private IntData test = new IntData(1);
[685]18   
19    public ChartDataRowsModel(){
20
[726]21      columns = new List<ChartDataRowsModelColumn>();
22
23
[685]24    }
25
26    public void AddDataRow(int id){
27
[728]28      double[] vals = new double[0];
[726]29
30      ChartDataRowsModelColumn col = new ChartDataRowsModelColumn(id, vals);
31
32      columns.Add(col);
[685]33    }
34
35    public void PushData(int dataRowId, double value){
36
[728]37      double[] vals = new double[columns[dataRowId].Values.Length + 1];
38      for (int i = 0; i < columns[dataRowId].Values.Length; i++) {
39        vals[i] = columns[dataRowId].Values[i];
[727]40
[728]41      }
42
43      vals[vals.Length-1] = value;
44      columns[dataRowId].Values = vals;
[685]45    }
46
[726]47    public override IView CreateView() {
[727]48      //return new LineChart(this); when LineChart is implemented
[726]49      return new IntDataView(test);
50    }
51
[697]52    public event ChartDataRowsModelColumnChangedHandler ColumnChanged;
53
54    private void RaiseColumnChanged(ChangeType type, long columnId, double[] values) {
55      if (ColumnChanged != null) {
56        ColumnChanged(type, columnId, values);
57      }
58    }
59
[726]60    private List<ChartDataRowsModelColumn> columns;
61
[697]62    public List<ChartDataRowsModelColumn> Columns {
[726]63      get { return columns; }
[697]64    }
[726]65
66
67   
68    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
69
70      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
71
72      foreach (ChartDataRowsModelColumn column in Columns){
[727]73        XmlNode columnElement = document.CreateNode(XmlNodeType.Element, "column", null);
74
75        XmlAttribute idAttr = document.CreateAttribute("id");
76        idAttr.Value = (column.ColumnId).ToString();
77        columnElement.Attributes.Append(idAttr);
78
79        for (int i = 0; i < column.Values.Length; i++){
80          columnElement.InnerText += column.Values[i].ToString() + ";";
81        }
82          //columnElement.InnerText = "xx";
83          node.AppendChild(columnElement);
[726]84      }
85     
86      //node.InnerText = "test1";
87      //test.Data = 11;
88      return node;
89
90    }
91
92
93    /*
94    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
95      base.Populate(node, restoredObjects);
96      //Data = bool.Parse(node.InnerText);
97    }
98   */
[680]99  }
[685]100}
Note: See TracBrowser for help on using the repository browser.