X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=task-reporter.git;a=blobdiff_plain;f=src%2Fmain%2Fscala%2Fjp%2Fymir%2FtaskReporter%2Fcore%2FReportSet.scala;h=66a5d6d08fdf90a79991b8a33adaff6ba2094eae;hp=b27af43a376f14dfaf528e6891af6785b99763b6;hb=cb226bf20b21a6ebc1213152f96e7bcd465cda9d;hpb=100ec0110d33876011bbd191da7e614445b627a5 diff --git a/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala b/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala index b27af43..66a5d6d 100644 --- a/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala +++ b/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala @@ -13,15 +13,26 @@ class ReportSet(private var _file: Option[File]) private var _reports : SortedMap[Calendar, Report] = TreeMap() private var _dirty = false - _file match { - case Some(file) => load(file) - case None => - } + _file.foreach { file => load(file) } def load(file: File) { + import Task._ + var reports = _reports.empty val src = Source.fromFile(file, "UTF-8") + TSV.decode(src.mkString).foreach { task => + if (reports.isDefinedAt(task.date)) { + reports(task.date) += task + } + else { + val report = new Report(task.date) + report += task + reports += (report.date -> report) + } + } + +/* for (line <- src.getLines) { if (!line.isEmpty) { val task = new Task(line) @@ -35,6 +46,7 @@ class ReportSet(private var _file: Option[File]) } } } + */ _file = Some(file) _reports = reports @@ -45,6 +57,10 @@ class ReportSet(private var _file: Option[File]) def file = _file def dirty = _dirty + def apply(n: Int) : Report = + // THINKME: Any better way than this? + _reports.values.toIndexedSeq(n) + def save(file: File) { _file = Some(file); save } @@ -66,11 +82,9 @@ class ReportSet(private var _file: Option[File]) } def getValueAt(row: Int, column: Int) : Object = { - // THINKME: Any better way than this? - val report = _reports.values.toIndexedSeq(row) column match { - case 0 => report.dateString - case 1 => report.size : Integer + case 0 => this(row).dateString + case 1 => this(row).size : Integer } } }