Skip to content

Commit 6891c2e

Browse files
committed
Better generation complete
1 parent f75ab9e commit 6891c2e

File tree

2 files changed

+36
-12
lines changed

2 files changed

+36
-12
lines changed

app/src/main/java/org/team2363/helixnavigator/document/DocumentActions.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
import javafx.beans.property.BooleanProperty;
3838
import javafx.beans.property.ObjectProperty;
39+
import javafx.beans.property.ReadOnlyBooleanProperty;
3940
import javafx.beans.property.SimpleBooleanProperty;
4041
import javafx.beans.property.SimpleObjectProperty;
4142
import javafx.beans.value.ObservableValue;
@@ -409,9 +410,16 @@ protected Task<HolonomicTrajectory> createTask() {
409410
Task<HolonomicTrajectory> optimizeTask = new Task<HolonomicTrajectory>() {
410411
@Override
411412
protected HolonomicTrajectory call() throws PluginLoadException, InvalidPathException, TrajectoryGenerationException {
413+
// Thread generationThread = Thread.currentThread();
412414
System.out.println("Path optimizing: " + path.toString());
413415
if (drive != null && path != null) {
414-
return OptimalTrajectoryGenerator.generate(drive, path);
416+
// new Thread(() -> {
417+
// while (!isCancelled()) {}
418+
// generationThread.stop();
419+
// }).start();
420+
HolonomicTrajectory traj = OptimalTrajectoryGenerator.generate(drive, path);
421+
System.out.println("Generation complete, closing task...");
422+
return traj;
415423
} else {
416424
throw new TrajectoryGenerationException("No path specified for optimization service.");
417425
}
@@ -423,6 +431,7 @@ protected HolonomicTrajectory call() throws PluginLoadException, InvalidPathExce
423431
}
424432

425433
private static final TrajectoryGenerationService SERVICE = new TrajectoryGenerationService();
434+
public static final ReadOnlyBooleanProperty IS_GENERATION_RUNNING = SERVICE.runningProperty();
426435
public void generateTrajectory() {
427436
if (documentManager.getIsDocumentOpen() && documentManager.getDocument().isPathSelected()) {
428437
HDocument hDocument = documentManager.getDocument();
@@ -444,15 +453,20 @@ public void generateTrajectory() {
444453
}
445454
}
446455
}
447-
public void toggleTrajectoryGeneration() {
448-
if (SERVICE.isRunning()) {
449-
System.out.println("Cancelling trajopt");
450-
SERVICE.cancel();
451-
} else {
452-
System.out.println("Restarting trajopt");
453-
generateTrajectory();
454-
}
455-
}
456+
// public void toggleTrajectoryGeneration() {
457+
// if (SERVICE.isRunning()) {
458+
// System.out.println("Cancelling trajopt");
459+
// SERVICE.cancel();
460+
// } else {
461+
// System.out.println("Restarting trajopt");
462+
// generateTrajectory();
463+
// }
464+
// }
465+
// public void cancelTrajectoryGeneration() {
466+
// if (SERVICE.isRunning()) {
467+
// SERVICE.cancel();
468+
// }
469+
// }
456470

457471
private static final Rotate ROTATE_90_CLOCKWISE = new Rotate(-90);
458472
private static final Rotate ROTATE_90_COUNTERCLOCKWISE = new Rotate(90);

app/src/main/java/org/team2363/helixnavigator/ui/editor/toolbar/TrajectoryToolBar.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import javax.measure.quantity.Time;
99

10+
import org.team2363.helixnavigator.document.DocumentActions;
1011
import org.team2363.helixnavigator.document.DocumentManager;
1112
import org.team2363.helixnavigator.document.HDocument;
1213
import org.team2363.helixnavigator.document.HPath;
@@ -39,7 +40,7 @@ public class TrajectoryToolBar extends ToolBar {
3940
private final ChangeListener<? super HPath> onSelectedPathChanged = this::selectedPathChanged;
4041
private final ChangeListener<? super HTrajectory> onTrajectoryChanged = this::trajectoryChanged;
4142

42-
private final Button generateTraj = new Button("Generate Traj");
43+
private final Button generateTraj = new Button("Generate");
4344
private final Button importTraj = new Button("Import Traj");
4445
private final Button exportTraj = new Button ("Export Traj");
4546
private final Slider timestampSlider = new Slider();
@@ -54,8 +55,17 @@ public TrajectoryToolBar(DocumentManager documentManager) {
5455
timestampSlider.setMinWidth(400.0);
5556
getItems().addAll(importTraj, exportTraj, generateTraj, timestampSlider, animateButton);
5657

58+
DocumentActions.IS_GENERATION_RUNNING.addListener((obsVal, isIdle, isGenerating) -> {
59+
System.out.println("Generation status changed to: " + isGenerating);
60+
if (isIdle) {
61+
generateTraj.setText("Generate");
62+
} else {
63+
generateTraj.setText("Generating...");
64+
}
65+
generateTraj.setDisable(isGenerating);
66+
});
5767
generateTraj.setOnAction(event -> {
58-
documentManager.actions().toggleTrajectoryGeneration();
68+
documentManager.actions().generateTrajectory();
5969
});
6070
importTraj.setOnAction(event -> {
6171
if (this.documentManager.getIsDocumentOpen() && this.documentManager.getDocument().isPathSelected()) {

0 commit comments

Comments
 (0)