+/* rightComponent = new BoxPanel(Orientation.Vertical) {
+ contents += new TaskEditor {
+ border = BorderFactory.createEmptyBorder(5, 5, 5, 5)
+ }
+ */
+ rightComponent = new TaskEditor {
+ border = BorderFactory.createEmptyBorder(5, 5, 5, 5)
+ }
+ }
+
+ leftComponent = new BorderPanel {
+ border = BorderFactory.createEmptyBorder(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("Add") {
+ def apply = {} // FIXME
+ })
+ contents += new Button(new Action("Delete...") {
+ def apply = {} // FIXME
+ })
+ }, BorderPanel.Position.South)
+
+ preferredSize = minimumSize