@@ -389,6 +389,7 @@ public AcquisitionPanel(SPIMSetup setup, Studio studio, StagePanel stagePanel, T
389
389
{
390
390
@ Override public void changed ( ObservableValue < ? extends Number > observable , Number oldValue , Number newValue )
391
391
{
392
+ // System.out.println(String.format("%f / %d", newValue.doubleValue(), totalImages.getValue()));
392
393
pi .setProgress ( newValue .doubleValue () / totalImages .getValue () );
393
394
}
394
395
} );
@@ -1207,6 +1208,13 @@ private void updateUI ( AcquisitionSetting setting ) {
1207
1208
positionItems = setting .getPositionItems ();
1208
1209
positionItemTableView .getItems ().setAll ( positionItems );
1209
1210
1211
+ InvalidationListener invalidationListener = observable -> computeTotalPositionImages ();
1212
+ for (int i = 0 ; i < positionItems .size (); i ++) {
1213
+ // positionItems.get( i ).setValue( positionItems.get(i).getValue() );
1214
+ // positionItems.get( i ).setSelected( positionItems.get(i).getSelected() );
1215
+ positionItems .get ( i ).selectedProperty ().addListener ( observable -> invalidationListener .invalidated ( observable ) );
1216
+ }
1217
+
1210
1218
// 3. Z-Stack panel
1211
1219
enabledZStacks .set ( setting .getEnabledZStacks () );
1212
1220
@@ -1353,7 +1361,7 @@ public boolean startAcquisition( Button acquireButton )
1353
1361
if ( enabledSaveImages .get () )
1354
1362
{
1355
1363
if (null != folder .listFiles ()) {
1356
- boolean found = folder .exists ();
1364
+ boolean found = folder .exists () && folder . listFiles (). length > 1 ;
1357
1365
1358
1366
if (found ) {
1359
1367
Optional < ButtonType > results = new Alert ( Alert .AlertType .WARNING , "The filename already exists. All files with the same name will be replaced. Do you want to proceed?\n Press No to create another folder and keep all files." ,
@@ -1462,7 +1470,7 @@ public boolean startAcquisition( Button acquireButton )
1462
1470
engine .performAcquisition ( getStudio (), getSpimSetup (), stagePanel , ( java .awt .Rectangle ) roiRectangle .get (), tp ,
1463
1471
timePointItemTableView .getItems (), currentTP , waitSeconds ,
1464
1472
arduinoSelected , finalFolder , filename .getValue (),
1465
- positionItemTableView .getItems (), channelItemList , processedImages ,
1473
+ positionItemTableView .getItems (). filtered ( p -> p . getSelected ()) , channelItemList , processedImages ,
1466
1474
enabledSaveImages .get (), savingFormat .getValue (), saveMIP .getValue (), antiDrift .getValue (), experimentNote .getValue (),
1467
1475
antiDriftLog , antiDriftRefCh .get (), antiDriftTypeToggle , onTheFly .getValue () );
1468
1476
@@ -1515,17 +1523,19 @@ static double getUnit(String unitString) {
1515
1523
private Node createPositionListPane ( TableView < PositionItem > positionItemTableView ) {
1516
1524
positionItemTableView .setEditable ( true );
1517
1525
1526
+ InvalidationListener invalidationListener = observable -> computeTotalPositionImages ();
1527
+
1518
1528
EventHandler newEventHandler = ( EventHandler < ActionEvent > ) event -> {
1519
1529
SPIMSetup spimSetup = getSpimSetup ();
1520
1530
if (spimSetup != null ) {
1521
1531
double r = spimSetup .getThetaStage ().getPosition ();
1522
1532
double x = spimSetup .getXStage ().getPosition ();
1523
1533
double y = spimSetup .getYStage ().getPosition ();
1524
1534
double z = spimSetup .getZStage ().getPosition ();
1525
- positionItemTableView .getItems ().add ( new PositionItem ( x , y , r , z , z , zStackStepSize ) );
1535
+ positionItemTableView .getItems ().add ( new PositionItem ( x , y , r , z , z , zStackStepSize , invalidationListener ) );
1526
1536
}
1527
1537
else {
1528
- positionItemTableView .getItems ().add ( new PositionItem ( 10 , 20 , 30 , 20 , 50 , 10 ) );
1538
+ positionItemTableView .getItems ().add ( new PositionItem ( 10 , 20 , 30 , 20 , 50 , 10 , invalidationListener ) );
1529
1539
}
1530
1540
};
1531
1541
@@ -1610,12 +1620,12 @@ public void computeTotalPositionImages() {
1610
1620
long totalImages = 0 ;
1611
1621
for (PositionItem item : positionItemTableView .getItems ())
1612
1622
{
1613
- if (item .getZEnd () > item .getZStart ()) {
1623
+ if (item .getSelected () && item . getZEnd () > item .getZStart ()) {
1614
1624
totalImages += item .getNumberOfSlices ();
1615
1625
}
1616
1626
}
1617
1627
1618
- propertyMap .get ("positions" ).setValue ( positionItemTableView .getItems ().size () + "" );
1628
+ propertyMap .get ("positions" ).setValue ( positionItemTableView .getItems ().filtered ( p -> p . getSelected ()). size () + "" );
1619
1629
propertyMap .get ("slices" ).setValue ( totalImages + "" );
1620
1630
}
1621
1631
@@ -1853,6 +1863,8 @@ private LabeledPane createSummaryPane() {
1853
1863
label .textProperty ().bind ( propertyMap .get ("positions" ) );
1854
1864
label .textProperty ().addListener ( observable -> computeTotal () );
1855
1865
1866
+ propertyMap .get ("slices" ).addListener ( observable -> computeTotal () );
1867
+
1856
1868
Label label2 = new Label ();
1857
1869
label2 .textProperty ().bind ( propertyMap .get ("totalImages" ) );
1858
1870
gridpane .addRow ( 0 , new Label ("No. of positions: " ), label , new Label ("Total images: " ), label2 );
@@ -2097,7 +2109,8 @@ public void changed(ObservableValue<? extends String> observable, String oldValu
2097
2109
// }
2098
2110
// } );
2099
2111
2100
- Button clearButton = new Button ( "New Z-stack" );
2112
+ Button clearButton = new Button ( "Define new Z-stack" );
2113
+ clearButton .setStyle ("-fx-base: #ffbec4;" );
2101
2114
clearButton .setOnAction (new EventHandler <ActionEvent >() {
2102
2115
@ Override
2103
2116
public void handle (ActionEvent event ) {
@@ -2134,7 +2147,7 @@ public void handle(ActionEvent event) {
2134
2147
}
2135
2148
} );
2136
2149
2137
- zStackGridPane .addRow ( 3 , new HBox ( newButton , clearButton ) );
2150
+ zStackGridPane .addRow ( 3 , new VBox ( newButton , clearButton ) );
2138
2151
2139
2152
// create a group
2140
2153
HBox b = new HBox (new Label ("Stage" ));
@@ -2148,13 +2161,15 @@ public void handle(ActionEvent event) {
2148
2161
Button helpButton = createHelpButton ();
2149
2162
helpButton .setOnAction ( event -> new HelpWindow ().show (HelpType .ZSTACK ));
2150
2163
2151
- CheckboxPane pane = new CheckboxPane ( "Define Z-stacks" , zStackGroup , helpButton );
2164
+ CheckboxPane pane = new CheckboxPane ( "Z-stacks" , zStackGroup , helpButton );
2152
2165
enabledZStacks = pane .selectedProperty ();
2153
2166
return pane ;
2154
2167
}
2155
2168
2156
2169
private void addNewPosition ( int zStart , int zEnd , double zStep ) {
2157
2170
SPIMSetup spimSetup = getSpimSetup ();
2171
+ InvalidationListener invalidationListener = observable -> computeTotalPositionImages ();
2172
+
2158
2173
if (spimSetup != null ) {
2159
2174
double r = spimSetup .getThetaStage ().getPosition ();
2160
2175
double x = spimSetup .getXStage ().getPosition ();
@@ -2164,13 +2179,13 @@ private void addNewPosition( int zStart, int zEnd, double zStep ) {
2164
2179
2165
2180
if ( zStart < 0 && zEnd < 0 ) {
2166
2181
double z = spimSetup .getZStage ().getPosition ();
2167
- positionItemTableView .getItems ().add (new PositionItem (x , y , r , z , z , zStep ));
2182
+ positionItemTableView .getItems ().add (new PositionItem (x , y , r , z , z , zStep , invalidationListener ));
2168
2183
} else {
2169
- positionItemTableView .getItems ().add (new PositionItem (x , y , r , zStart , zEnd , zStep ));
2184
+ positionItemTableView .getItems ().add (new PositionItem (x , y , r , zStart , zEnd , zStep , invalidationListener ));
2170
2185
}
2171
2186
}
2172
2187
else {
2173
- positionItemTableView .getItems ().add ( new PositionItem ( 10 , 20 , 30 , zStart , zEnd , zStep ) );
2188
+ positionItemTableView .getItems ().add ( new PositionItem ( 10 , 20 , 30 , zStart , zEnd , zStep , invalidationListener ) );
2174
2189
}
2175
2190
}
2176
2191
0 commit comments