From f6a51dbcc510104994344140fccdeaab459eb570 Mon Sep 17 00:00:00 2001 From: PHO Date: Wed, 8 Oct 2014 19:25:54 +0900 Subject: [PATCH] wip --- build.sbt | 5 ++ lib/jcalendar-1.4.jar | Bin 0 -> 165052 bytes .../jp/ymir/taskReporter/ui/MainFrame.scala | 69 +++++++++--------- .../jp/ymir/taskReporter/ui/TaskEditor.scala | 50 +++++++++++++ 4 files changed, 91 insertions(+), 33 deletions(-) create mode 100644 lib/jcalendar-1.4.jar create mode 100644 src/main/scala/jp/ymir/taskReporter/ui/TaskEditor.scala diff --git a/build.sbt b/build.sbt index ebb6b47..f92aaa8 100644 --- a/build.sbt +++ b/build.sbt @@ -8,6 +8,11 @@ libraryDependencies <+= libraryDependencies += "org.scala-tools.sbinary" %% "sbinary" % "0.4.2" +/* There is also manual dependencies in ./lib: + * + * - JCalendar + */ + scalacOptions ++= Seq("-deprecation", "-unchecked", "-encoding", "UTF-8") assemblySettings diff --git a/lib/jcalendar-1.4.jar b/lib/jcalendar-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..617a3351ca8ade8fa6d57648423a1f97e14c02dc GIT binary patch literal 165052 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�Upp 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 Df#%#d literal 0 HcmV?d00001 diff --git a/src/main/scala/jp/ymir/taskReporter/ui/MainFrame.scala b/src/main/scala/jp/ymir/taskReporter/ui/MainFrame.scala index d59493b..f8ecc2f 100644 --- a/src/main/scala/jp/ymir/taskReporter/ui/MainFrame.scala +++ b/src/main/scala/jp/ymir/taskReporter/ui/MainFrame.scala @@ -128,44 +128,47 @@ class MainFrame(reportFile: Option[File]) extends Frame { } } }) + rightComponent = new TaskEditor { + border = BorderFactory.createEmptyBorder(5, 5, 5, 5) + } } 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") { - def apply = {} // FIXME - }) - contents += new Button(new Action("Delete...") { - def apply = {} // FIXME - }) - } - layout(buttons) = BorderPanel.Position.South + 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("Add") { + def apply = {} // FIXME + }) + contents += new Button(new Action("Delete...") { + def apply = {} // FIXME + }) + }, BorderPanel.Position.South) preferredSize = minimumSize } diff --git a/src/main/scala/jp/ymir/taskReporter/ui/TaskEditor.scala b/src/main/scala/jp/ymir/taskReporter/ui/TaskEditor.scala new file mode 100644 index 0000000..95a3a67 --- /dev/null +++ b/src/main/scala/jp/ymir/taskReporter/ui/TaskEditor.scala @@ -0,0 +1,50 @@ +package jp.ymir.taskReporter.ui +import com.toedter.calendar._ +import java.awt.Insets +import scala.swing._ + +class TaskEditor extends GridBagPanel { + import GridBagPanel.Anchor._ + import GridBagPanel.Fill._ + + val commonInsets = new Insets(2, 3, 2, 3) + + add( + new Label("報告日"), + new Constraints() { gridx = 0; gridy = 0 }) + add( + Component.wrap(new JDateChooser() { + setDateFormatString("yyyy-MM-dd") + getJCalendar().setTodayButtonVisible(true) + getJCalendar().setWeekOfYearVisible(false) + }), + new Constraints() { + gridx = 1; gridy = 0; anchor = West + ipadx = 3; ipady = 3; insets = commonInsets + }) + + add( + new Label("チケットID"), + new Constraints() { gridx = 0; gridy = 1 }) + add( + new TextField(6) { + val isDigit = (c : Char) => c >= '0' && c <= '9' + inputVerifier = _ => wrapString(text).forall(isDigit) + peer.setMargin(commonInsets) + }, + new Constraints() { + gridx = 1; gridy = 1; anchor = West; insets = commonInsets + }) + + add( + new Label("作業名"), + new Constraints() { gridx = 0; gridy = 2 }) + add( + new TextField() { + peer.setMargin(commonInsets) + }, + new Constraints() { + gridx = 1; gridy = 2; fill = Horizontal; weightx = 1.0 + insets = commonInsets + }) +} -- 2.40.0