@@ -12,6 +12,7 @@ import javafx.scene.Scene
1212import javafx.scene.canvas.Canvas
1313import javafx.scene.canvas.GraphicsContext
1414import javafx.scene.control.Alert
15+ import javafx.scene.control.Label
1516import javafx.scene.input.KeyCode
1617import javafx.scene.input.KeyEvent
1718import javafx.scene.input.MouseEvent
@@ -31,6 +32,9 @@ class MainViewController {
3132 @FXML
3233 var canvas: Canvas ? = null
3334
35+ @FXML
36+ var infoText: Label ? = null
37+
3438 var positivesFile: File by Delegates .notNull()
3539
3640 var annotationImages: List <AnnotationImage > by Delegates .notNull()
@@ -45,6 +49,8 @@ class MainViewController {
4549
4650 var scaleFactor = 1.0
4751
52+ var imageCounter = 0
53+
4854 fun handleWindowShownEvent () {
4955 showSettingsView()
5056 }
@@ -55,6 +61,7 @@ class MainViewController {
5561 val controller = loader.getController<SettingsViewController >()
5662
5763 val settingStage = Stage ()
64+ settingStage.initOwner(stage)
5865 settingStage.initModality(Modality .WINDOW_MODAL )
5966 settingStage.title = " OpenCV Sample Annotator Settings"
6067 settingStage.scene = Scene (root)
@@ -80,6 +87,7 @@ class MainViewController {
8087 canvas!! .onMouseReleased = EventHandler <MouseEvent > { handleMouseReleased(it) }
8188
8289 canvas!! .isFocusTraversable = true
90+ canvas!! .requestFocus()
8391
8492 gc = canvas!! .graphicsContext2D
8593 resizeCanvas()
@@ -93,10 +101,10 @@ class MainViewController {
93101 }
94102
95103 fun loadNextImage () {
96- if (! imageIterator.hasNext()) {
104+ imageCounter++
105+
106+ if (! imageIterator.hasNext())
97107 saveAndClose()
98- exitProcess(0 )
99- }
100108
101109 activeImage = imageIterator.next()
102110 initImage()
@@ -111,6 +119,7 @@ class MainViewController {
111119 alert.showAndWait()
112120
113121 stage.close()
122+ exitProcess(0 )
114123 }
115124
116125 fun resizeCanvas () {
@@ -119,6 +128,8 @@ class MainViewController {
119128 }
120129
121130 fun initImage () {
131+ infoText!! .text = " $imageCounter of ${annotationImages.size} "
132+
122133 calculateScaleFactor()
123134 redrawCanvas()
124135 }
@@ -182,8 +193,6 @@ class MainViewController {
182193 }
183194
184195 fun handleMouseReleased (e : MouseEvent ) {
185- val m = Vector2 (e.x, e.y)
186-
187196 if (dragged) {
188197 println (" dragged!" )
189198 } else {
@@ -201,6 +210,10 @@ class MainViewController {
201210 loadNextImage()
202211 }
203212
213+ fun finishClicked (e : ActionEvent ) {
214+ saveAndClose()
215+ }
216+
204217 fun vectorToScreen (v : Vector2 ): Vector2 {
205218 return v.scale(scaleFactor)
206219 }
0 commit comments