1 package jp.ymir.taskReporter.core
2 import java.text.SimpleDateFormat
3 import java.util.Calendar
4 import java.util.GregorianCalendar
5 import javax.swing.table.AbstractTableModel
6 import scala.collection.immutable._
8 class Report(private val _date: Calendar) extends AbstractTableModel {
9 private var _tasks : Seq[Task] = Vector()
11 def this() = this(new GregorianCalendar())
13 def date : Calendar = _date
14 def size : Int = _tasks.size
16 def apply(idx: Int) = _tasks(idx)
19 require(task.date == _date)
20 _tasks = _tasks :+ task
23 def dateString : String = dateString(_date)
24 def dateString(date: Calendar) : String = {
25 val fmt = new SimpleDateFormat("yyyy-MM-dd")
26 fmt.format(date.getTime)
29 /* Method definitions for AbstractTableModel
31 def getColumnCount = 6
32 def getRowCount = _tasks.size
34 override def getColumnName(column: Int) : String = {
45 def getValueAt(row: Int, column: Int) : Object = {
46 val task = _tasks(row)
48 case 0 => task.ticketID.map(_.toString).getOrElse("")
50 case 2 => dateString(task.expectedCompletionDate)
51 case 3 => task.deadline.map(dateString).getOrElse("")
53 case 5 => task.description.getOrElse("")