3
3
import java .util .Arrays ;
4
4
import java .util .List ;
5
5
6
- import com .jlbabilino .json .JSONDeserializer ;
7
- import com .jlbabilino .json .JSONDeserializerException ;
8
- import com .jlbabilino .json .JSONEntry ;
9
- import com .jlbabilino .json .JSONParser ;
10
- import com .jlbabilino .json .JSONParserException ;
11
- import com .jlbabilino .json .JSONSerializer ;
12
- import com .jlbabilino .json .TypeMarker ;
13
-
6
+ import org .team2363 .helixnavigator .document .DocumentManager ;
14
7
import org .team2363 .helixnavigator .document .obstacle .HCircleObstacle ;
15
8
import org .team2363 .helixnavigator .document .obstacle .HObstacle ;
16
9
import org .team2363 .helixnavigator .document .obstacle .HObstacle .ObstacleType ;
17
10
import org .team2363 .helixnavigator .document .obstacle .HPolygonObstacle ;
18
11
import org .team2363 .helixnavigator .document .obstacle .HRectangleObstacle ;
19
12
import org .team2363 .helixnavigator .global .Standards ;
20
13
import org .team2363 .helixnavigator .ui .prompts .obstacle .ObstacleEditDialog ;
14
+ import org .team2363 .helixtrajectory .Obstacle ;
21
15
import org .team2363 .lib .ui .OrderableListCell ;
22
16
import org .team2363 .lib .ui .validation .FilteredTextField ;
23
17
18
+ import com .jlbabilino .json .JSONDeserializer ;
19
+ import com .jlbabilino .json .JSONDeserializerException ;
20
+ import com .jlbabilino .json .JSONEntry ;
21
+ import com .jlbabilino .json .JSONParser ;
22
+ import com .jlbabilino .json .JSONParserException ;
23
+ import com .jlbabilino .json .JSONSerializer ;
24
+ import com .jlbabilino .json .TypeMarker ;
25
+
24
26
import javafx .collections .ObservableList ;
25
27
import javafx .event .ActionEvent ;
26
28
import javafx .scene .control .ContentDisplay ;
@@ -42,20 +44,23 @@ public class ObstacleListCell extends OrderableListCell<HObstacle> {
42
44
private static final Image POLYGON ;
43
45
private static final Image RECTANGLE ;
44
46
45
- public static final Callback <ListView <HObstacle >, ListCell <HObstacle >> obstacleCellFactory =
46
- new Callback <ListView <HObstacle >, ListCell <HObstacle >>() {
47
- @ Override
48
- public ListCell <HObstacle > call (ListView <HObstacle > listView ) {
49
- return new ObstacleListCell ();
50
- }
51
- };
47
+ public static final Callback <ListView <HObstacle >, ListCell <HObstacle >> obstacleCellFactory (DocumentManager documentManager ) {
48
+ return new Callback <ListView <HObstacle >, ListCell <HObstacle >>() {
49
+ @ Override
50
+ public ListCell <HObstacle > call (ListView <HObstacle > listView ) {
51
+ return new ObstacleListCell (documentManager );
52
+ }
53
+ };
54
+ }
52
55
53
56
static {
54
57
CIRCLE = null ;
55
58
POLYGON = null ;
56
59
RECTANGLE = null ;
57
60
}
58
61
62
+ private final DocumentManager documentManager ;
63
+
59
64
private final ImageView circleView = new ImageView (CIRCLE );
60
65
private final ImageView polygonView = new ImageView (POLYGON );
61
66
private final ImageView rectangleView = new ImageView (RECTANGLE );
@@ -78,11 +83,14 @@ public ListCell<HObstacle> call(ListView<HObstacle> listView) {
78
83
private final MenuItem insertNewRectangleObstacleAfterMenuItem = new MenuItem ("Insert new rectangle obstacle after" );
79
84
private final MenuItem renameMenuItem = new MenuItem ("Rename" );
80
85
private final MenuItem deleteSingleMenuItem = new MenuItem ("Delete" );
86
+ private final MenuItem setAsBumpersMenuItem = new MenuItem ("Set As Bumpers" );
81
87
82
88
private final ContextMenu multipleSelectedContextMenu = new ContextMenu ();
83
89
private final MenuItem deleteMultipleMenuItem = new MenuItem ("Delete" );
84
90
85
- public ObstacleListCell () {
91
+ public ObstacleListCell (DocumentManager documentManager ) {
92
+ this .documentManager = documentManager ;
93
+
86
94
circleView .setPreserveRatio (true );
87
95
circleView .setFitHeight (20 );
88
96
polygonView .setPreserveRatio (true );
@@ -116,14 +124,15 @@ public ObstacleListCell() {
116
124
insertNewRectangleObstacleAfterMenuItem .setOnAction (this ::insertNewRectangleObstacleAfter );
117
125
renameMenuItem .setOnAction (this ::renameObstacle );
118
126
deleteSingleMenuItem .setOnAction (this ::deleteSelectedObstacles );
127
+ setAsBumpersMenuItem .setOnAction (this ::setAsBumpers );
119
128
deleteMultipleMenuItem .setOnAction (this ::deleteSelectedObstacles );
120
129
121
130
insertMenu .getItems ().addAll (insertNewCircleObstacleBeforeMenuItem , insertNewPolygonObstacleBeforeMenuItem ,
122
131
insertNewRectangleObstacleBeforeMenuItem , insertNewCircleObstacleAfterMenuItem ,
123
132
insertNewPolygonObstacleAfterMenuItem , insertNewRectangleObstacleAfterMenuItem );
124
133
125
134
noneSelectedContextMenu .getItems ().addAll (newCircleObstacleMenuItem , newPolygonObstacleMenuItem , newRectangleObstacleMenuItem );
126
- singleSelectedContextMenu .getItems ().addAll (editMenuItem , insertMenu , renameMenuItem , deleteSingleMenuItem );
135
+ singleSelectedContextMenu .getItems ().addAll (editMenuItem , insertMenu , renameMenuItem , deleteSingleMenuItem , setAsBumpersMenuItem );
127
136
multipleSelectedContextMenu .getItems ().addAll (deleteMultipleMenuItem );
128
137
129
138
noneSelectedContextMenu .setAutoHide (true );
@@ -291,4 +300,8 @@ private void deleteSelectedObstacles(ActionEvent event) {
291
300
getListView ().getItems ().remove (index .intValue ()); // have to use intValue() to remove ambiguity
292
301
}
293
302
}
303
+ private void setAsBumpers (ActionEvent event ) {
304
+ Obstacle bumpers = getItem ().toObstacle ();
305
+ documentManager .getDocument ().getRobotConfiguration ().setBumpers (bumpers );
306
+ }
294
307
}
0 commit comments