X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=task-reporter.git;a=blobdiff_plain;f=src%2Fmain%2Fscala%2Fjp%2Fymir%2FtaskReporter%2Fcore%2FReport.scala;h=1963b6c799784f401fe0f1d428479ea02e5f5719;hp=5fa1ceb4efa3e845b3768077972bc5f2cdd39c17;hb=cb226bf20b21a6ebc1213152f96e7bcd465cda9d;hpb=8bb945088ae66f9687f1fd5aa72a1440aba54466 diff --git a/src/main/scala/jp/ymir/taskReporter/core/Report.scala b/src/main/scala/jp/ymir/taskReporter/core/Report.scala index 5fa1ceb..1963b6c 100644 --- a/src/main/scala/jp/ymir/taskReporter/core/Report.scala +++ b/src/main/scala/jp/ymir/taskReporter/core/Report.scala @@ -1,14 +1,56 @@ package jp.ymir.taskReporter.core +import java.text.SimpleDateFormat import java.util.Calendar +import java.util.GregorianCalendar +import javax.swing.table.AbstractTableModel import scala.collection.immutable._ -class Report(private val _date: Calendar) { +class Report(private val _date: Calendar) extends AbstractTableModel { private var _tasks : Seq[Task] = Vector() - def date = _date + def this() = this(new GregorianCalendar()) + + def date : Calendar = _date + def size : Int = _tasks.size + + def apply(idx: Int) = _tasks(idx) def +=(task: Task) { require(task.date == _date) _tasks = _tasks :+ task } + + def dateString : String = dateString(_date) + def dateString(date: Calendar) : String = { + val fmt = new SimpleDateFormat("yyyy-MM-dd") + fmt.format(date.getTime) + } + + /* Method definitions for AbstractTableModel + */ + def getColumnCount = 6 + def getRowCount = _tasks.size + + override def getColumnName(column: Int) : String = { + column match { + case 0 => "チケットID" + case 1 => "作業名" + case 2 => "作業完了予定年月日" + case 3 => "タスク期限" + case 4 => "状態" + case 5 => "説明" + } + } + + def getValueAt(row: Int, column: Int) : Object = { + val task = _tasks(row) + column match { + case 0 => task.ticketID.map(_.toString).getOrElse("") + case 1 => task.title + case 2 => dateString(task.expectedCompletionDate) + case 3 => task.deadline.map(dateString).getOrElse("") + case 4 => task.status + case 5 => task.description.getOrElse("") + } + } }