]> gitweb @ CieloNegro.org - task-reporter.git/blobdiff - src/main/scala/jp/ymir/taskReporter/core/Report.scala
wip
[task-reporter.git] / src / main / scala / jp / ymir / taskReporter / core / Report.scala
index 5fa1ceb4efa3e845b3768077972bc5f2cdd39c17..ef9a437e75008bb5fee7de188c8439f757938a7f 100644 (file)
@@ -1,14 +1,54 @@
 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 +=(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
+    }
+  }
 }