@@ -389,6 +389,7 @@ public AcquisitionPanel(SPIMSetup setup, Studio studio, StagePanel stagePanel, T
389389 {
390390 @ Override public void changed ( ObservableValue < ? extends Number > observable , Number oldValue , Number newValue )
391391 {
392+ // System.out.println(String.format("%f / %d", newValue.doubleValue(), totalImages.getValue()));
392393 pi .setProgress ( newValue .doubleValue () / totalImages .getValue () );
393394 }
394395 } );
@@ -1207,6 +1208,13 @@ private void updateUI ( AcquisitionSetting setting ) {
12071208 positionItems = setting .getPositionItems ();
12081209 positionItemTableView .getItems ().setAll ( positionItems );
12091210
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+
12101218 // 3. Z-Stack panel
12111219 enabledZStacks .set ( setting .getEnabledZStacks () );
12121220
@@ -1353,7 +1361,7 @@ public boolean startAcquisition( Button acquireButton )
13531361 if ( enabledSaveImages .get () )
13541362 {
13551363 if (null != folder .listFiles ()) {
1356- boolean found = folder .exists ();
1364+ boolean found = folder .exists () && folder . listFiles (). length > 1 ;
13571365
13581366 if (found ) {
13591367 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 )
14621470 engine .performAcquisition ( getStudio (), getSpimSetup (), stagePanel , ( java .awt .Rectangle ) roiRectangle .get (), tp ,
14631471 timePointItemTableView .getItems (), currentTP , waitSeconds ,
14641472 arduinoSelected , finalFolder , filename .getValue (),
1465- positionItemTableView .getItems (), channelItemList , processedImages ,
1473+ positionItemTableView .getItems (). filtered ( p -> p . getSelected ()) , channelItemList , processedImages ,
14661474 enabledSaveImages .get (), savingFormat .getValue (), saveMIP .getValue (), antiDrift .getValue (), experimentNote .getValue (),
14671475 antiDriftLog , antiDriftRefCh .get (), antiDriftTypeToggle , onTheFly .getValue () );
14681476
@@ -1515,17 +1523,19 @@ static double getUnit(String unitString) {
15151523 private Node createPositionListPane ( TableView < PositionItem > positionItemTableView ) {
15161524 positionItemTableView .setEditable ( true );
15171525
1526+ InvalidationListener invalidationListener = observable -> computeTotalPositionImages ();
1527+
15181528 EventHandler newEventHandler = ( EventHandler < ActionEvent > ) event -> {
15191529 SPIMSetup spimSetup = getSpimSetup ();
15201530 if (spimSetup != null ) {
15211531 double r = spimSetup .getThetaStage ().getPosition ();
15221532 double x = spimSetup .getXStage ().getPosition ();
15231533 double y = spimSetup .getYStage ().getPosition ();
15241534 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 ) );
15261536 }
15271537 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 ) );
15291539 }
15301540 };
15311541
@@ -1610,12 +1620,12 @@ public void computeTotalPositionImages() {
16101620 long totalImages = 0 ;
16111621 for (PositionItem item : positionItemTableView .getItems ())
16121622 {
1613- if (item .getZEnd () > item .getZStart ()) {
1623+ if (item .getSelected () && item . getZEnd () > item .getZStart ()) {
16141624 totalImages += item .getNumberOfSlices ();
16151625 }
16161626 }
16171627
1618- propertyMap .get ("positions" ).setValue ( positionItemTableView .getItems ().size () + "" );
1628+ propertyMap .get ("positions" ).setValue ( positionItemTableView .getItems ().filtered ( p -> p . getSelected ()). size () + "" );
16191629 propertyMap .get ("slices" ).setValue ( totalImages + "" );
16201630 }
16211631
@@ -1853,6 +1863,8 @@ private LabeledPane createSummaryPane() {
18531863 label .textProperty ().bind ( propertyMap .get ("positions" ) );
18541864 label .textProperty ().addListener ( observable -> computeTotal () );
18551865
1866+ propertyMap .get ("slices" ).addListener ( observable -> computeTotal () );
1867+
18561868 Label label2 = new Label ();
18571869 label2 .textProperty ().bind ( propertyMap .get ("totalImages" ) );
18581870 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
20972109// }
20982110// } );
20992111
2100- Button clearButton = new Button ( "New Z-stack" );
2112+ Button clearButton = new Button ( "Define new Z-stack" );
2113+ clearButton .setStyle ("-fx-base: #ffbec4;" );
21012114 clearButton .setOnAction (new EventHandler <ActionEvent >() {
21022115 @ Override
21032116 public void handle (ActionEvent event ) {
@@ -2134,7 +2147,7 @@ public void handle(ActionEvent event) {
21342147 }
21352148 } );
21362149
2137- zStackGridPane .addRow ( 3 , new HBox ( newButton , clearButton ) );
2150+ zStackGridPane .addRow ( 3 , new VBox ( newButton , clearButton ) );
21382151
21392152 // create a group
21402153 HBox b = new HBox (new Label ("Stage" ));
@@ -2148,13 +2161,15 @@ public void handle(ActionEvent event) {
21482161 Button helpButton = createHelpButton ();
21492162 helpButton .setOnAction ( event -> new HelpWindow ().show (HelpType .ZSTACK ));
21502163
2151- CheckboxPane pane = new CheckboxPane ( "Define Z-stacks" , zStackGroup , helpButton );
2164+ CheckboxPane pane = new CheckboxPane ( "Z-stacks" , zStackGroup , helpButton );
21522165 enabledZStacks = pane .selectedProperty ();
21532166 return pane ;
21542167 }
21552168
21562169 private void addNewPosition ( int zStart , int zEnd , double zStep ) {
21572170 SPIMSetup spimSetup = getSpimSetup ();
2171+ InvalidationListener invalidationListener = observable -> computeTotalPositionImages ();
2172+
21582173 if (spimSetup != null ) {
21592174 double r = spimSetup .getThetaStage ().getPosition ();
21602175 double x = spimSetup .getXStage ().getPosition ();
@@ -2164,13 +2179,13 @@ private void addNewPosition( int zStart, int zEnd, double zStep ) {
21642179
21652180 if ( zStart < 0 && zEnd < 0 ) {
21662181 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 ));
21682183 } 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 ));
21702185 }
21712186 }
21722187 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 ) );
21742189 }
21752190 }
21762191
0 commit comments