Skip to content

Commit f12a58b

Browse files
fix BDV displaying
1 parent 0e49c1f commit f12a58b

File tree

2 files changed

+53
-4
lines changed

2 files changed

+53
-4
lines changed

src/main/java/net/preibisch/bigstitcher/spark/SplitDatasets.java

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,20 @@
44
import java.util.ArrayList;
55
import java.util.Arrays;
66
import java.util.HashMap;
7+
import java.util.List;
78

9+
import ij.ImageJ;
810
import mpicbg.spim.data.SpimDataException;
11+
import mpicbg.spim.data.generic.sequence.BasicViewDescription;
912
import mpicbg.spim.data.sequence.ViewId;
10-
import net.imglib2.multithreading.SimpleMultiThreading;
1113
import net.imglib2.util.Pair;
1214
import net.preibisch.bigstitcher.spark.abstractcmdline.AbstractBasic;
1315
import net.preibisch.bigstitcher.spark.util.Import;
1416
import net.preibisch.legacy.io.IOFunctions;
1517
import net.preibisch.mvrecon.fiji.plugin.Split_Views;
1618
import net.preibisch.mvrecon.fiji.spimdata.SpimData2;
1719
import net.preibisch.mvrecon.fiji.spimdata.XmlIoSpimData2;
20+
import net.preibisch.mvrecon.fiji.spimdata.explorer.SelectedViewDescriptionListener;
1821
import net.preibisch.mvrecon.process.splitting.SplittingTools;
1922
import net.preibisch.stitcher.gui.StitchingExplorer;
2023
import picocli.CommandLine;
@@ -70,7 +73,8 @@ public class SplitDatasets extends AbstractBasic
7073
@Override
7174
public Void call() throws Exception
7275
{
73-
this.dataGlobal = this.loadSpimData2();
76+
// if we want to display the result, we need to set the fetcher threads to anything but 0
77+
this.dataGlobal = displayResult ? this.loadSpimData2( Runtime.getRuntime().availableProcessors() ) : this.loadSpimData2();
7478

7579
if ( dataGlobal == null )
7680
throw new IllegalArgumentException( "Couldn't load SpimData XML project." );
@@ -119,11 +123,39 @@ public Void call() throws Exception
119123

120124
if ( displayResult )
121125
{
126+
new ImageJ();
127+
122128
final StitchingExplorer< SpimData2 > explorer = new StitchingExplorer< >( newData, xmlOutURI, new XmlIoSpimData2() );
123129
explorer.getFrame().toFront();
124130

125-
// TODO: check when it is quit
126-
SimpleMultiThreading.threadHaltUnClean();
131+
explorer.addListener( new SelectedViewDescriptionListener<SpimData2>() {
132+
133+
@Override
134+
public void updateContent(SpimData2 data) {}
135+
136+
@Override
137+
public void selectedViewDescriptions(List<List<BasicViewDescription<?>>> viewDescriptions) {}
138+
139+
@Override
140+
public void save() {}
141+
142+
@Override
143+
public void quit()
144+
{
145+
System.out.println( "quitting GUI.");
146+
System.exit( 0 );
147+
}
148+
});
149+
150+
// program will be quit by the listener above
151+
try
152+
{
153+
Thread.sleep( Long.MAX_VALUE );
154+
}
155+
catch ( final InterruptedException e )
156+
{
157+
System.err.println( "MultiThreading.threadWait(): Thread woken up: " + e );
158+
}
127159
}
128160
else if ( !dryRun )
129161
{

src/main/java/net/preibisch/bigstitcher/spark/abstractcmdline/AbstractBasic.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@
2525
import java.net.URI;
2626
import java.util.concurrent.Callable;
2727

28+
import bdv.ViewerImgLoader;
2829
import mpicbg.spim.data.SpimDataException;
30+
import mpicbg.spim.data.generic.sequence.BasicImgLoader;
31+
import mpicbg.spim.data.sequence.SequenceDescription;
2932
import net.preibisch.bigstitcher.spark.util.Spark;
3033
import net.preibisch.mvrecon.fiji.spimdata.SpimData2;
3134
import picocli.CommandLine.Option;
@@ -54,4 +57,18 @@ public SpimData2 loadSpimData2() throws SpimDataException
5457

5558
return dataGlobal;
5659
}
60+
61+
public SpimData2 loadSpimData2( final int numThreads ) throws SpimDataException
62+
{
63+
final SpimData2 data = loadSpimData2();
64+
65+
final SequenceDescription sequenceDescription = data.getSequenceDescription();
66+
67+
// set number of fetcher threads (by default set to 0 for spark)
68+
final BasicImgLoader imgLoader = sequenceDescription.getImgLoader();
69+
if (imgLoader instanceof ViewerImgLoader)
70+
((ViewerImgLoader) imgLoader).setNumFetcherThreads( numThreads);
71+
72+
return data;
73+
}
5774
}

0 commit comments

Comments
 (0)