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) extends AbstractTableModel { private var _tasks : Seq[Task] = Vector() def this() = this(new GregorianCalendar()) def date : Calendar = _date def size : Int = _tasks.size 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 : Integer case 1 => task.title case 2 => task.tentativeDeadline.map(dateString).getOrElse("") case 3 => task.deadline .map(dateString).getOrElse("") case 4 => task.status case 5 => task.supplement } } }