]> gitweb @ CieloNegro.org - task-reporter.git/blobdiff - src/main/scala/jp/ymir/taskReporter/ui/MainFrame.scala
wip
[task-reporter.git] / src / main / scala / jp / ymir / taskReporter / ui / MainFrame.scala
index d59493b8f93b33020b282f8ace109bd3ca82a329..a09aa5dfa6f2b655ce8c67dc71c1f7a30973b298 100644 (file)
@@ -3,7 +3,6 @@ import java.awt.Dimension
 import java.awt.event.ComponentAdapter
 import java.awt.event.ComponentEvent
 import java.io._
-import javax.swing.BorderFactory
 import javax.swing.JOptionPane
 import javax.swing.JSplitPane
 import javax.swing.KeyStroke
@@ -13,6 +12,7 @@ import javax.swing.filechooser.FileNameExtensionFilter
 import jp.ymir.taskReporter._
 import jp.ymir.taskReporter.core._
 import scala.swing._
+import scala.swing.Swing._
 import scala.swing.event._
 
 class MainFrame(reportFile: Option[File]) extends Frame {
@@ -94,13 +94,10 @@ class MainFrame(reportFile: Option[File]) extends Frame {
     oneTouchExpandable = true
     resizeWeight       = 0 // Let the left pane be fixed
 
-    rightComponent = new SplitPane {
-      peer.setOrientation(JSplitPane.VERTICAL_SPLIT)
-      continuousLayout   = true
-      oneTouchExpandable = true
-      resizeWeight       = 0.5
+    rightComponent = new BoxPanel(Orientation.Vertical) {
+      border = EmptyBorder(5, 5, 5, 5)
 
-      leftComponent = new ScrollPane(
+      contents += new ScrollPane(
         new Table() {
           peer setFillsViewportHeight true
           listenTo(frame)
@@ -128,44 +125,59 @@ class MainFrame(reportFile: Option[File]) extends Frame {
               }
           }
         })
-    }
-
-    leftComponent = new BorderPanel {
-      border = BorderFactory.createEmptyBorder(5, 5, 5, 5)
-
-      val reportsScroll = new ScrollPane(
-        new Table() {
-          peer setFillsViewportHeight true
-          peer setModel reportSet
-          listenTo(frame)
-          reactions += {
-            case FileOpened(f) =>
-              if (rowCount > 0) {
-                selection.rows += rowCount - 1 // Select the last report
-              }
-          }
-          selection.reactions += {
-            case TableRowsSelected(_, _, false) =>
-              selection.rows.size match {
-                case 1 =>
-                  val report = reportSet(selection.rows.head)
-                  frame publish ReportSelected(report)
-                case _ =>
-                  frame publish ReportDeselected()
-              }
-          }
-        })
-      layout(reportsScroll) = BorderPanel.Position.Center
-
-      val buttons = new FlowPanel(FlowPanel.Alignment.Left)() {
-        contents += new Button(new Action("Add") {
+      contents += VStrut(5)
+      contents += new Separator(Orientation.Horizontal)
+      contents += VStrut(5)
+      contents += new TaskEditor
+      contents += VStrut(5)
+      contents += new Separator(Orientation.Horizontal)
+      contents += VStrut(5)
+      contents += new FlowPanel(FlowPanel.Alignment.Left)() {
+        contents += new Button(new Action("New") {
           def apply = {} // FIXME
         })
         contents += new Button(new Action("Delete...") {
           def apply = {} // FIXME
         })
       }
-      layout(buttons) = BorderPanel.Position.South
+    }
+
+    leftComponent = new BorderPanel {
+      border = EmptyBorder(5, 5, 5, 5)
+
+      add(
+        new ScrollPane(
+          new Table() {
+            peer setFillsViewportHeight true
+            peer setModel reportSet
+            listenTo(frame)
+            reactions += {
+              case FileOpened(f) =>
+                if (rowCount > 0) {
+                  selection.rows += rowCount - 1 // Select the last report
+                }
+            }
+            selection.reactions += {
+              case TableRowsSelected(_, _, false) =>
+                selection.rows.size match {
+                  case 1 =>
+                    val report = reportSet(selection.rows.head)
+                    frame publish ReportSelected(report)
+                  case _ =>
+                    frame publish ReportDeselected()
+                }
+            }
+          }), BorderPanel.Position.Center)
+
+      add(
+        new FlowPanel(FlowPanel.Alignment.Left)() {
+          contents += new Button(new Action("New...") {
+            def apply = {} // FIXME
+          })
+          contents += new Button(new Action("Delete...") {
+            def apply = {} // FIXME
+          })
+        }, BorderPanel.Position.South)
 
       preferredSize = minimumSize
     }