Skip to content

Commit 10b48d2

Browse files
Update LeicaHandler plane handling for backwards compatibility
1 parent 676dfe6 commit 10b48d2

File tree

2 files changed

+38
-5
lines changed

2 files changed

+38
-5
lines changed

components/formats-gpl/src/loci/formats/in/LeicaHandler.java

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ public class LeicaHandler extends BaseHandler {
120120
private MetadataLevel level;
121121
private int laserCount = 0;
122122

123+
private boolean setPlaneMetadataInStore = true;
123124
private Map<String, Time> exposureTimes = new HashMap<String, Time>();
124125
private Map<String, Time> deltaT = new HashMap<String, Time>();
125126

@@ -139,6 +140,11 @@ public LeicaHandler(MetadataStore store, MetadataLevel level) {
139140
this.level = level;
140141
}
141142

143+
public LeicaHandler(MetadataStore store, MetadataLevel level, boolean planesInStore) {
144+
this(store, level);
145+
setPlaneMetadataInStore = planesInStore;
146+
}
147+
142148
// -- LeicaHandler API methods --
143149

144150
public List<CoreMetadata> getCoreMetadataList() { return core; }
@@ -556,7 +562,13 @@ else if (id.indexOf("WFC") == 1) {
556562
try {
557563
Double exposureTime = DataTools.parseDouble(value);
558564
if (exposureTime != null) {
559-
exposureTimes.put(numDatasets + "-" + c, new Time(exposureTime, UNITS.SECOND));
565+
Time expTime = new Time(exposureTime, UNITS.SECOND);
566+
if (setPlaneMetadataInStore) {
567+
store.setPlaneExposureTime(expTime, numDatasets, c);
568+
}
569+
else {
570+
exposureTimes.put(numDatasets + "-" + c, expTime);
571+
}
560572
}
561573
}
562574
catch (IndexOutOfBoundsException e) { }
@@ -885,14 +897,28 @@ else if (qName.equals("TimeStamp") && numDatasets >= 0) {
885897
store.setImageAcquisitionDate(new Timestamp(date), numDatasets);
886898
}
887899
firstStamp = ms;
888-
deltaT.put(numDatasets + "-" + count, new Time(0.0, UNITS.SECOND));
900+
901+
Time stamp = new Time(0.0, UNITS.SECOND);
902+
if (setPlaneMetadataInStore) {
903+
store.setPlaneDeltaT(stamp, numDatasets, count);
904+
}
905+
else {
906+
deltaT.put(numDatasets + "-" + count, stamp);
907+
}
889908
}
890909
else if (level != MetadataLevel.MINIMUM) {
891910
CoreMetadata coreMeta = core.get(numDatasets);
892911
int nImages = coreMeta.sizeZ * coreMeta.sizeT * coreMeta.sizeC;
893912
if (count < nImages) {
894913
ms -= firstStamp;
895-
deltaT.put(numDatasets + "-" + count, new Time(ms / 1000.0, UNITS.SECOND));
914+
915+
Time stamp = new Time(ms / 1000.00, UNITS.SECOND);
916+
if (setPlaneMetadataInStore) {
917+
store.setPlaneDeltaT(stamp, numDatasets, count);
918+
}
919+
else {
920+
deltaT.put(numDatasets + "-" + count, stamp);
921+
}
896922
}
897923
}
898924

@@ -904,7 +930,14 @@ else if (qName.equals("RelTimeStamp") && level != MetadataLevel.MINIMUM) {
904930
if (count < nImages) {
905931
Double time = DataTools.parseDouble(attributes.getValue("Time"));
906932
if (time != null) {
907-
deltaT.put(numDatasets + "-" + count, new Time(time, UNITS.SECOND));
933+
Time stamp = new Time(time, UNITS.SECOND);
934+
if (setPlaneMetadataInStore) {
935+
store.setPlaneDeltaT(stamp, numDatasets, count);
936+
}
937+
else {
938+
deltaT.put(numDatasets + "-" + count, stamp);
939+
}
940+
908941
count++;
909942
}
910943
}

components/formats-gpl/src/loci/formats/in/TCSReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ else if (getSizeT() == 1) {
476476
xml = XMLTools.sanitizeXML(PREFIX + xml + SUFFIX);
477477

478478
LeicaHandler handler =
479-
new LeicaHandler(store, getMetadataOptions().getMetadataLevel());
479+
new LeicaHandler(store, getMetadataOptions().getMetadataLevel(), false);
480480
XMLTools.parseXML(xml, handler);
481481
exposureTime = handler.getExposureTimes();
482482
deltaT = handler.getDeltaT();

0 commit comments

Comments
 (0)