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
import scala.swing.event._
class MainFrame(reportFile: Option[File]) extends Frame {
- private var reportSet = new ReportSet(reportFile)
+ private val reportSet = new ReportSet(reportFile)
title = "Task Reporter " + Main.getVersion
preferredSize = Preferences.mainFrameSize()
val r = chooser.showOpenDialog(null)
if (r == FileChooser.Result.Approve) {
Preferences.lastChosenDir() = chooser.selectedFile.getParentFile
- reportSet = new ReportSet(Some(chooser.selectedFile))
+ reportSet.load(chooser.selectedFile)
}
}
})
}
}
- contents = new SplitPane {
+ val rootSplit = new SplitPane {
peer.setOrientation(JSplitPane.HORIZONTAL_SPLIT)
- resizeWeight = 0.3
+ continuousLayout = true
+ oneTouchExpandable = true
+ resizeWeight = 0.3
leftComponent = new BorderPanel {
- val title = new Label("Report date") {
- horizontalAlignment = Alignment.Leading
- }
- layout(title) = BorderPanel.Position.North
-
- val scroll = new ScrollPane {
- horizontalScrollBarPolicy = ScrollPane.BarPolicy.Never
- verticalScrollBarPolicy = ScrollPane.BarPolicy.Always
- contents = new ListView[String] {
- // FIXME
- // listData =
- }
- }
+ border = BorderFactory.createEmptyBorder(5, 5, 5, 5)
+
+ val scroll = new ScrollPane(
+ new Table() {
+ peer.setModel(reportSet)
+ })
layout(scroll) = BorderPanel.Position.Center
}
}
+ contents = rootSplit
+
+ // This can only be done after putting the pane on the frame.
+ rootSplit.dividerLocation = 0.3
centerOnScreen
visible = true
}
Preferences.lastChosenDir() = chooser.selectedFile.getParentFile
- reportSet.file = Some(chooser.selectedFile)
+ reportSet.save(chooser.selectedFile)
+ }
+ else {
+ reportSet.save
}
-
- reportSet.save
}
}