Changeset 1941


Ignore:
Timestamp:
12/18/06 15:24:54 (13 years ago)
Author:
curtis
Message:
  • Add file stitching pattern confirmation dialog, so that user can tweak it.
  • Fix bug with calibration using NaN values. You should not compare a variable to NaN directly, because NaN compared to anything in any way always returns false. Thus, the preferred ways of testing for NaN are either:

A) testing if the variable is equal to itself (for NaN this returns false)
B) test using Float.isNaN(v) or Double.isNaN(v) methods.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/Importer.java

    r1937 r1941  
    159159 
    160160    // prompt for parameters, if necessary 
    161     GenericDialog pd = new GenericDialog("LOCI Bio-Formats Import Options"); 
    162     pd.addCheckbox(mergeString, mergeChannels); 
    163     pd.addCheckbox(ignoreString, ignoreTables); 
    164     pd.addCheckbox(colorizeString, colorize); 
    165     pd.addCheckbox(splitString, splitWindows); 
    166     pd.addCheckbox(metadataString, showMetadata); 
    167     pd.addCheckbox(stitchString, stitchFiles); 
    168     pd.addCheckbox(rangeString, specifyRanges); 
    169     pd.addChoice(stackString, stackFormats, stackFormats[0]); 
    170     pd.showDialog(); 
    171     if (pd.wasCanceled()) { 
     161    GenericDialog gd = new GenericDialog("LOCI Bio-Formats Import Options"); 
     162    gd.addCheckbox(mergeString, mergeChannels); 
     163    gd.addCheckbox(ignoreString, ignoreTables); 
     164    gd.addCheckbox(colorizeString, colorize); 
     165    gd.addCheckbox(splitString, splitWindows); 
     166    gd.addCheckbox(metadataString, showMetadata); 
     167    gd.addCheckbox(stitchString, stitchFiles); 
     168    gd.addCheckbox(rangeString, specifyRanges); 
     169    gd.addChoice(stackString, stackFormats, stackFormats[0]); 
     170    gd.showDialog(); 
     171    if (gd.wasCanceled()) { 
    172172      plugin.canceled = true; 
    173173      return; 
    174174    } 
    175     mergeChannels = pd.getNextBoolean(); 
    176     ignoreTables = pd.getNextBoolean(); 
    177     colorize = pd.getNextBoolean(); 
    178     splitWindows = pd.getNextBoolean(); 
    179     showMetadata = pd.getNextBoolean(); 
    180     stitchFiles = pd.getNextBoolean(); 
    181     specifyRanges = pd.getNextBoolean(); 
    182     stackFormat = stackFormats[pd.getNextChoiceIndex()]; 
     175    mergeChannels = gd.getNextBoolean(); 
     176    ignoreTables = gd.getNextBoolean(); 
     177    colorize = gd.getNextBoolean(); 
     178    splitWindows = gd.getNextBoolean(); 
     179    showMetadata = gd.getNextBoolean(); 
     180    stitchFiles = gd.getNextBoolean(); 
     181    specifyRanges = gd.getNextBoolean(); 
     182    stackFormat = stackFormats[gd.getNextChoiceIndex()]; 
    183183 
    184184    // -- Step 4: open file -- 
     
    189189      // -- Step 4a: do some preparatory work -- 
    190190 
    191       if (stitchFiles) r = new FileStitcher(r); 
     191      FileStitcher fs = null; 
     192      if (stitchFiles) { 
     193        r = new FileStitcher(r, true); 
     194        // prompt user to confirm detected file pattern 
     195        id = FilePattern.findPattern(new File(id)); 
     196        gd = new GenericDialog("LOCI Bio-Formats File Stitching"); 
     197        int len = id.length() + 1; 
     198        if (len > 80) len = 80; 
     199        gd.addStringField("Pattern: ", id, len); 
     200        gd.showDialog(); 
     201        if (gd.wasCanceled()) { 
     202          plugin.canceled = true; 
     203          return; 
     204        } 
     205        id = gd.getNextString(); 
     206      } 
    192207      if (mergeChannels) r = new ChannelMerger(r); 
    193208      else r = new ChannelSeparator(r); 
     
    281296        IJ.showStatus(""); 
    282297 
    283         GenericDialog sd = new GenericDialog("LOCI Bio-Formats Series Options"); 
     298        gd = new GenericDialog("LOCI Bio-Formats Series Options"); 
    284299        for (int i=0; i<seriesCount; i++) { 
    285           sd.addCheckbox(seriesStrings[i], series[i]); 
    286         } 
    287         addScrollBars(sd); 
    288         sd.showDialog(); 
    289         if (sd.wasCanceled()) { 
     300          gd.addCheckbox(seriesStrings[i], series[i]); 
     301        } 
     302        addScrollBars(gd); 
     303        gd.showDialog(); 
     304        if (gd.wasCanceled()) { 
    290305          plugin.canceled = true; 
    291306          return; 
    292307        } 
    293         for (int i=0; i<seriesCount; i++) series[i] = sd.getNextBoolean(); 
     308        for (int i=0; i<seriesCount; i++) series[i] = gd.getNextBoolean(); 
    294309      } 
    295310 
     
    303318        if (needRange) { 
    304319          IJ.showStatus(""); 
    305           GenericDialog rd = 
    306             new GenericDialog("LOCI Bio-Formats Range Options"); 
     320          gd = new GenericDialog("LOCI Bio-Formats Range Options"); 
    307321          for (int i=0; i<seriesCount; i++) { 
    308322            if (!series[i]) continue; 
    309             rd.addMessage(seriesStrings[i].replaceAll("_", " ")); 
     323            gd.addMessage(seriesStrings[i].replaceAll("_", " ")); 
    310324            String s = "_" + (i + 1); 
    311325            if (certain[i]) { 
    312326              if (sizeC[i] > 1) { 
    313                 rd.addNumericField("C_Begin" + s, cBegin[i] + 1, 0); 
    314                 rd.addNumericField("C_End" + s, cEnd[i] + 1, 0); 
    315                 rd.addNumericField("C_Step" + s, cStep[i], 0); 
     327                gd.addNumericField("C_Begin" + s, cBegin[i] + 1, 0); 
     328                gd.addNumericField("C_End" + s, cEnd[i] + 1, 0); 
     329                gd.addNumericField("C_Step" + s, cStep[i], 0); 
    316330              } 
    317331              if (sizeZ[i] > 1) { 
    318                 rd.addNumericField("Z_Begin" + s, zBegin[i] + 1, 0); 
    319                 rd.addNumericField("Z_End" + s, zEnd[i] + 1, 0); 
    320                 rd.addNumericField("Z_Step" + s, zStep[i], 0); 
     332                gd.addNumericField("Z_Begin" + s, zBegin[i] + 1, 0); 
     333                gd.addNumericField("Z_End" + s, zEnd[i] + 1, 0); 
     334                gd.addNumericField("Z_Step" + s, zStep[i], 0); 
    321335              } 
    322336              if (sizeT[i] > 1) { 
    323                 rd.addNumericField("T_Begin" + s, tBegin[i] + 1, 0); 
    324                 rd.addNumericField("T_End" + s, tEnd[i] + 1, 0); 
    325                 rd.addNumericField("T_Step" + s, tStep[i], 0); 
     337                gd.addNumericField("T_Begin" + s, tBegin[i] + 1, 0); 
     338                gd.addNumericField("T_End" + s, tEnd[i] + 1, 0); 
     339                gd.addNumericField("T_Step" + s, tStep[i], 0); 
    326340              } 
    327341            } 
    328342            else { 
    329               rd.addNumericField("Begin" + s, cBegin[i] + 1, 0); 
    330               rd.addNumericField("End" + s, cEnd[i] + 1, 0); 
    331               rd.addNumericField("Step" + s, cStep[i], 0); 
    332             } 
    333           } 
    334           addScrollBars(rd); 
    335           rd.showDialog(); 
    336           if (rd.wasCanceled()) { 
     343              gd.addNumericField("Begin" + s, cBegin[i] + 1, 0); 
     344              gd.addNumericField("End" + s, cEnd[i] + 1, 0); 
     345              gd.addNumericField("Step" + s, cStep[i], 0); 
     346            } 
     347          } 
     348          addScrollBars(gd); 
     349          gd.showDialog(); 
     350          if (gd.wasCanceled()) { 
    337351            plugin.canceled = true; 
    338352            return; 
     
    342356            if (certain[i]) { 
    343357              if (sizeC[i] > 1) { 
    344                 cBegin[i] = (int) rd.getNextNumber() - 1; 
    345                 cEnd[i] = (int) rd.getNextNumber() - 1; 
    346                 cStep[i] = (int) rd.getNextNumber(); 
     358                cBegin[i] = (int) gd.getNextNumber() - 1; 
     359                cEnd[i] = (int) gd.getNextNumber() - 1; 
     360                cStep[i] = (int) gd.getNextNumber(); 
    347361              } 
    348362              if (sizeZ[i] > 1) { 
    349                 zBegin[i] = (int) rd.getNextNumber() - 1; 
    350                 zEnd[i] = (int) rd.getNextNumber() - 1; 
    351                 zStep[i] = (int) rd.getNextNumber(); 
     363                zBegin[i] = (int) gd.getNextNumber() - 1; 
     364                zEnd[i] = (int) gd.getNextNumber() - 1; 
     365                zStep[i] = (int) gd.getNextNumber(); 
    352366              } 
    353367              if (sizeT[i] > 1) { 
    354                 tBegin[i] = (int) rd.getNextNumber() - 1; 
    355                 tEnd[i] = (int) rd.getNextNumber() - 1; 
    356                 tStep[i] = (int) rd.getNextNumber(); 
     368                tBegin[i] = (int) gd.getNextNumber() - 1; 
     369                tEnd[i] = (int) gd.getNextNumber() - 1; 
     370                tStep[i] = (int) gd.getNextNumber(); 
    357371              } 
    358372            } 
    359373            else { 
    360               cBegin[i] = (int) rd.getNextNumber() - 1; 
    361               cEnd[i] = (int) rd.getNextNumber() - 1; 
    362               cStep[i] = (int) rd.getNextNumber(); 
     374              cBegin[i] = (int) gd.getNextNumber() - 1; 
     375              cEnd[i] = (int) gd.getNextNumber() - 1; 
     376              cStep[i] = (int) gd.getNextNumber(); 
    363377            } 
    364378            int maxC = certain[i] ? sizeC[i] : num[i]; 
     
    832846    if (zf != null) zcal = zf.floatValue(); 
    833847 
    834     if (xcal != Double.NaN || ycal != Double.NaN || zcal != Double.NaN) { 
     848    if (xcal == xcal || ycal == ycal || zcal == zcal) { 
    835849      Calibration cal = new Calibration(); 
    836850      cal.setUnit("micron"); 
Note: See TracChangeset for help on using the changeset viewer.