]> 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 54942607e052fbf6dc44c7bac7ddbe739098abba..ef9a437e75008bb5fee7de188c8439f757938a7f 100644 (file)
@@ -1,11 +1,15 @@
 package jp.ymir.taskReporter.core
-import java.util.Calendar
 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 this() = this(new GregorianCalendar())
+
   def date : Calendar = _date
   def size : Int      = _tasks.size
 
@@ -14,8 +18,37 @@ class Report(private val _date: Calendar) {
     _tasks = _tasks :+ task
   }
 
-  def dateString : String = {
+  def dateString : String = dateString(_date)
+  def dateString(date: Calendar) : String = {
     val fmt = new SimpleDateFormat("yyyy-MM-dd")
-    fmt.format(_date.getTime)
+    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
+    }
   }
 }