]> gitweb @ CieloNegro.org - task-reporter.git/blob - src/main/scala/jp/ymir/taskReporter/core/Report.scala
wip
[task-reporter.git] / src / main / scala / jp / ymir / taskReporter / core / Report.scala
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._
7
8 class Report(private val _date: Calendar) extends AbstractTableModel {
9   private var _tasks : Seq[Task] = Vector()
10
11   def this() = this(new GregorianCalendar())
12
13   def date : Calendar = _date
14   def size : Int      = _tasks.size
15
16   def +=(task: Task) {
17     require(task.date == _date)
18     _tasks = _tasks :+ task
19   }
20
21   def dateString : String = dateString(_date)
22   def dateString(date: Calendar) : String = {
23     val fmt = new SimpleDateFormat("yyyy-MM-dd")
24     fmt.format(date.getTime)
25   }
26
27   /* Method definitions for AbstractTableModel
28    */
29   def getColumnCount = 6
30   def getRowCount    = _tasks.size
31
32   override def getColumnName(column: Int) : String = {
33     column match {
34       case 0 => "チケットID"
35       case 1 => "作業名"
36       case 2 => "仮期限"
37       case 3 => "期限"
38       case 4 => "状態"
39       case 5 => "補足"
40     }
41   }
42
43   def getValueAt(row: Int, column: Int) : Object = {
44     val task = _tasks(row)
45     column match {
46       case 0 => task.ticketID : Integer
47       case 1 => task.title
48       case 2 => task.tentativeDeadline.map(dateString).getOrElse("")
49       case 3 => task.deadline         .map(dateString).getOrElse("")
50       case 4 => task.status
51       case 5 => task.supplement
52     }
53   }
54 }