X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fscala%2Fjp%2Fymir%2FtaskReporter%2Fcore%2FReportSet.scala;h=66a5d6d08fdf90a79991b8a33adaff6ba2094eae;hb=cb226bf20b21a6ebc1213152f96e7bcd465cda9d;hp=f90071dd1c65a74b584eda74969aa176bac8724e;hpb=79bcb816daaaa042ec7f1855c8307d9143f61956;p=task-reporter.git diff --git a/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala b/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala index f90071d..66a5d6d 100644 --- a/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala +++ b/src/main/scala/jp/ymir/taskReporter/core/ReportSet.scala @@ -1,5 +1,6 @@ package jp.ymir.taskReporter.core import java.io._ +import java.text.SimpleDateFormat import java.util.Calendar import javax.swing.table.AbstractTableModel import jp.ymir.taskReporter.core._ @@ -12,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) @@ -34,6 +46,7 @@ class ReportSet(private var _file: Option[File]) } } } + */ _file = Some(file) _reports = reports @@ -44,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 } @@ -65,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 } } }