Changeset 2672


Ignore:
Timestamp:
04/25/07 11:20:43 (13 years ago)
Author:
curtis
Message:
  • Eliminate unnecessary exceptions from new method signatures
  • Update codebase to reflect changes
  • Clean up 4D Data Browser a bit
Location:
trunk/loci
Files:
44 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/ChannelMerger.java

    r2601 r2672  
    4242 
    4343  /** Determines whether the channels in the file can be merged. */ 
    44   public boolean canMerge() throws FormatException, IOException { 
     44  public boolean canMerge() { 
    4545    int c = getSizeC(); 
    4646    return c > 1 && c <= 4 && !reader.isRGB(); 
     
    5050 
    5151  /* @see IFormatReader#getImageCount() */ 
    52   public int getImageCount() throws FormatException, IOException { 
     52  public int getImageCount() { 
    5353    int no = reader.getImageCount(); 
    5454    if (canMerge()) no /= getSizeC(); 
     
    5757 
    5858  /* @see IFormatReader#getDimensionOrder() */ 
    59   public String getDimensionOrder() throws FormatException, IOException { 
     59  public String getDimensionOrder() { 
    6060    String order = reader.getDimensionOrder(); 
    6161    if (canMerge()) { 
     
    7272 
    7373  /* @see IFormatReader#isRGB() */ 
    74   public boolean isRGB() throws FormatException, IOException { 
     74  public boolean isRGB() { 
    7575    return canMerge() || reader.isRGB(); 
    7676  } 
     
    128128  } 
    129129 
    130   public int getIndex(int z, int c, int t) throws FormatException, IOException { 
     130  public int getIndex(int z, int c, int t) throws FormatException { 
    131131    return FormatTools.getIndex(this, z, c, t); 
    132132  } 
    133133 
    134   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     134  public int[] getZCTCoords(int index) throws FormatException { 
    135135    return FormatTools.getZCTCoords(this, index); 
    136136  } 
  • trunk/loci/formats/ChannelSeparator.java

    r2601 r2672  
    5353 
    5454  /* @see IFormatReader#getImageCount() */ 
    55   public int getImageCount() throws FormatException, IOException { 
     55  public int getImageCount() { 
    5656    return reader.isRGB() ? 
    5757      (getSizeC() / reader.getEffectiveSizeC()) * reader.getImageCount() : 
     
    6060 
    6161  /* @see IFormatReader#getDimensionOrder() */ 
    62   public String getDimensionOrder() throws FormatException, IOException { 
     62  public String getDimensionOrder() { 
    6363    String order = super.getDimensionOrder(); 
    6464    if (reader.isRGB()) { 
     
    154154  } 
    155155 
    156   public int getIndex(int z, int c, int t) throws FormatException, IOException { 
     156  public int getIndex(int z, int c, int t) throws FormatException { 
    157157    return FormatTools.getIndex(this, z, c, t); 
    158158  } 
    159159 
    160   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     160  public int[] getZCTCoords(int index) throws FormatException { 
    161161    return FormatTools.getZCTCoords(this, index); 
    162162  } 
  • trunk/loci/formats/DimensionSwapper.java

    r2601 r2672  
    2525package loci.formats; 
    2626 
    27 import java.io.IOException; 
    28  
    2927/** Handles swapping the dimension order of a file. */ 
    3028public class DimensionSwapper extends ReaderWrapper { 
     
    4139 
    4240  /* @see loci.formats.IFormatReader#getSizeX() */ 
    43   public int getSizeX() throws FormatException, IOException { 
     41  public int getSizeX() { 
    4442    return getCoreMetadata().sizeX[getSeries()]; 
    4543  } 
    4644 
    4745  /* @see loci.formats.IFormatReader#getSizeY() */ 
    48   public int getSizeY() throws FormatException, IOException { 
     46  public int getSizeY() { 
    4947    return getCoreMetadata().sizeY[getSeries()]; 
    5048  } 
    5149 
    5250  /* @see loci.formats.IFormatReader#getSizeZ() */ 
    53   public int getSizeZ() throws FormatException, IOException { 
     51  public int getSizeZ() { 
    5452    return getCoreMetadata().sizeZ[getSeries()]; 
    5553  } 
    5654 
    5755  /* @see loci.formats.IFormatReader#getSizeC() */ 
    58   public int getSizeC() throws FormatException, IOException { 
     56  public int getSizeC() { 
    5957    return getCoreMetadata().sizeC[getSeries()]; 
    6058  } 
    6159 
    6260  /* @see loci.formats.IFormatReader#getSizeT() */ 
    63   public int getSizeT() throws FormatException, IOException { 
     61  public int getSizeT() { 
    6462    return getCoreMetadata().sizeT[getSeries()]; 
    6563  } 
    6664 
    6765  /* @see loci.formats.IFormatReader#getDimensionOrder() */ 
    68   public String getDimensionOrder() throws FormatException, IOException { 
     66  public String getDimensionOrder() { 
    6967    return getCoreMetadata().currentOrder[getSeries()]; 
    7068  } 
     
    7876   * positions 0 and 1 (although X and Y can be reversed). 
    7977   */ 
    80   public void swapDimensions(String order)  throws FormatException, IOException 
    81   { 
     78  public void swapDimensions(String order) { 
    8279    if (order == null) return; 
    8380 
  • trunk/loci/formats/FileStitcher.java

    r2668 r2672  
    228228 
    229229  /* @see IFormatReader#getImageCount() */ 
    230   public int getImageCount() throws FormatException, IOException { 
     230  public int getImageCount() { 
    231231    return totalImages[getSeries()]; 
    232232  } 
    233233 
    234234  /* @see IFormatReader#isRGB() */ 
    235   public boolean isRGB() throws FormatException, IOException { 
     235  public boolean isRGB() { 
    236236    return reader.isRGB(); 
    237237  } 
    238238 
    239239  /* @see IFormatReader#getSizeX() */ 
    240   public int getSizeX() throws FormatException, IOException { 
     240  public int getSizeX() { 
    241241    return width[getSeries()]; 
    242242  } 
    243243 
    244244  /* @see IFormatReader#getSizeY() */ 
    245   public int getSizeY() throws FormatException, IOException { 
     245  public int getSizeY() { 
    246246    return height[getSeries()]; 
    247247  } 
    248248 
    249249  /* @see IFormatReader#getSizeZ() */ 
    250   public int getSizeZ() throws FormatException, IOException { 
     250  public int getSizeZ() { 
    251251    return totalSizeZ[getSeries()]; 
    252252  } 
    253253 
    254254  /* @see IFormatReader#getSizeC() */ 
    255   public int getSizeC() throws FormatException, IOException { 
     255  public int getSizeC() { 
    256256    return totalSizeC[getSeries()]; 
    257257  } 
    258258 
    259259  /* @see IFormatReader#getSizeT() */ 
    260   public int getSizeT() throws FormatException, IOException { 
     260  public int getSizeT() { 
    261261    return totalSizeT[getSeries()]; 
    262262  } 
    263263 
    264264  /* @see IFormatReader#getPixelType() */ 
    265   public int getPixelType() throws FormatException, IOException { 
     265  public int getPixelType() { 
    266266    return reader.getPixelType(); 
    267267  } 
    268268 
    269269  /* @see IFormatReader#getEffectiveSizeC() */ 
    270   public int getEffectiveSizeC() throws FormatException, IOException { 
     270  public int getEffectiveSizeC() { 
    271271    return getImageCount() / (getSizeZ() * getSizeT()); 
    272272  } 
    273273 
    274274  /* @see IFormatReader#getRGBChannelCount() */ 
    275   public int getRGBChannelCount() throws FormatException, IOException { 
     275  public int getRGBChannelCount() { 
    276276    return getSizeC() / getEffectiveSizeC(); 
    277277  } 
    278278 
    279279  /* @see IFormatReader#getChannelDimLengths() */ 
    280   public int[] getChannelDimLengths() throws FormatException, IOException { 
     280  public int[] getChannelDimLengths() { 
    281281    int sno = getSeries(); 
    282282    int len = lenC[sno].length; 
     
    287287 
    288288  /* @see IFormatReader#getChannelDimTypes() */ 
    289   public String[] getChannelDimTypes() throws FormatException, IOException { 
     289  public String[] getChannelDimTypes() { 
    290290    int sno = getSeries(); 
    291291    int len = lenC[sno].length; 
     
    296296 
    297297  /* @see IFormatReader#getThumbSizeX() */ 
    298   public int getThumbSizeX() throws FormatException, IOException { 
     298  public int getThumbSizeX() { 
    299299    return reader.getThumbSizeX(); 
    300300  } 
    301301 
    302302  /* @see IFormatReader#getThumbSizeY() */ 
    303   public int getThumbSizeY() throws FormatException, IOException { 
     303  public int getThumbSizeY() { 
    304304    return reader.getThumbSizeY(); 
    305305  } 
    306306 
    307307  /* @see IFormatReader#isLittleEndian() */ 
    308   public boolean isLittleEndian() throws FormatException, IOException { 
     308  public boolean isLittleEndian() { 
    309309    return reader.isLittleEndian(); 
    310310  } 
    311311 
    312312  /* @see IFormatReader#getDimensionOrder() */ 
    313   public String getDimensionOrder() throws FormatException, IOException { 
     313  public String getDimensionOrder() { 
    314314    return order[getSeries()]; 
    315315  } 
    316316 
    317317  /* @see IFormatReader#isOrderCertain() */ 
    318   public boolean isOrderCertain() throws FormatException, IOException { 
     318  public boolean isOrderCertain() { 
    319319    return ag[getSeries()].isCertain(); 
    320320  } 
    321321 
    322322  /* @see IFormatReader#isInterleaved() */ 
    323   public boolean isInterleaved() throws FormatException, IOException { 
     323  public boolean isInterleaved() { 
    324324    return reader.isInterleaved(); 
    325325  } 
    326326 
    327327  /* @see IFormatReader#isInterleaved(int) */ 
    328   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     328  public boolean isInterleaved(int subC) { 
    329329    return reader.isInterleaved(subC); 
    330330  } 
     
    417417 
    418418  /* @see IFormatReader#close(boolean) */ 
    419   public void close(boolean fileOnly) throws FormatException, IOException { 
     419  public void close(boolean fileOnly) throws IOException { 
    420420    if (readers == null) reader.close(fileOnly); 
    421421    else { 
     
    431431 
    432432  /* @see IFormatReader#close() */ 
    433   public void close() throws FormatException, IOException { 
     433  public void close() throws IOException { 
    434434    if (readers == null) reader.close(); 
    435435    else { 
     
    443443 
    444444  /* @see IFormatReader#getSeriesCount() */ 
    445   public int getSeriesCount() throws FormatException, IOException { 
     445  public int getSeriesCount() { 
    446446    return reader.getSeriesCount(); 
    447447  } 
    448448 
    449449  /* @see IFormatReader#setSeries(int) */ 
    450   public void setSeries(int no) throws FormatException, IOException { 
     450  public void setSeries(int no) throws FormatException { 
    451451    reader.setSeries(no); 
    452452  } 
    453453 
    454454  /* @see IFormatReader#getSeries() */ 
    455   public int getSeries() throws FormatException, IOException { 
     455  public int getSeries() { 
    456456    return reader.getSeries(); 
    457457  } 
     
    486486 
    487487  /* @see IFormatReader#getUsedFiles() */ 
    488   public String[] getUsedFiles() throws FormatException, IOException { 
     488  public String[] getUsedFiles() { 
    489489    // returning the files list directly here is fast, since we do not 
    490490    // have to call initFile on each constituent file; but we can only do so 
     
    499499        int total = 0; 
    500500        for (int i=0; i<files.length; i++) { 
    501           readers[i].setId(files[i]); 
     501          try { 
     502            readers[i].setId(files[i]); 
     503          } 
     504          catch (FormatException exc) { 
     505            exc.printStackTrace(); 
     506            return null; 
     507          } 
     508          catch (IOException exc) { 
     509            exc.printStackTrace(); 
     510            return null; 
     511          } 
    502512          used[i] = readers[i].getUsedFiles(); 
    503513          total += used[i].length; 
     
    521531 
    522532  /* @see IFormatReader#getIndex(int, int, int) */ 
    523   public int getIndex(int z, int c, int t) throws FormatException, IOException { 
     533  public int getIndex(int z, int c, int t) throws FormatException { 
    524534    return FormatTools.getIndex(this, z, c, t); 
    525535  } 
    526536 
    527537  /* @see IFormatReader#getZCTCoords(int) */ 
    528   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     538  public int[] getZCTCoords(int index) throws FormatException { 
    529539    return FormatTools.getZCTCoords(this, index); 
    530540  } 
    531541 
    532542  /* @see IFormatReader#getMetadataValue(String) */ 
    533   public Object getMetadataValue(String field) 
    534     throws FormatException, IOException 
    535   { 
     543  public Object getMetadataValue(String field) { 
    536544    return reader.getMetadataValue(field); 
    537545  } 
    538546 
    539547  /* @see IFormatReader#getMetadata() */ 
    540   public Hashtable getMetadata() throws FormatException, IOException { 
     548  public Hashtable getMetadata() { 
    541549    return reader.getMetadata(); 
    542550  } 
    543551 
    544552  /* @see IFormatReader#getCoreMetadata() */ 
    545   public CoreMetadata getCoreMetadata() throws FormatException, IOException { 
     553  public CoreMetadata getCoreMetadata() { 
    546554    return reader.getCoreMetadata(); 
    547555  } 
     
    563571 
    564572  /* @see IFormatReader#getMetadataStore() */ 
    565   public MetadataStore getMetadataStore() throws FormatException, IOException { 
     573  public MetadataStore getMetadataStore() { 
    566574    return reader.getMetadataStore(); 
    567575  } 
    568576 
    569577  /* @see IFormatReader#getMetadataStoreRoot() */ 
    570   public Object getMetadataStoreRoot() throws FormatException, IOException { 
     578  public Object getMetadataStoreRoot() { 
    571579    return reader.getMetadataStoreRoot(); 
    572580  } 
  • trunk/loci/formats/FormatReader.java

    r2655 r2672  
    122122 
    123123  /** Returns true if the given file name is in the used files list. */ 
    124   protected boolean isUsedFile(String id, String file) 
    125     throws FormatException, IOException 
    126   { 
     124  protected boolean isUsedFile(String file) { 
    127125    String[] usedFiles = getUsedFiles(); 
    128126    for (int i=0; i<usedFiles.length; i++) { 
     
    186184 
    187185  /* @see IFormatReader#getImageCount() */ 
    188   public int getImageCount() throws FormatException, IOException { 
     186  public int getImageCount() { 
    189187    return core.imageCount[series]; 
    190188  } 
     
    196194 
    197195  /* @see IFormatReader#isRGB() */ 
    198   public boolean isRGB() throws FormatException, IOException { 
     196  public boolean isRGB() { 
    199197    return core.rgb[series]; 
    200198  } 
    201199 
    202200  /* @see IFormatReader#getSizeX() */ 
    203   public int getSizeX() throws FormatException, IOException { 
     201  public int getSizeX() { 
    204202    return core.sizeX[series]; 
    205203  } 
    206204 
    207205  /* @see IFormatReader#getSizeY() */ 
    208   public int getSizeY() throws FormatException, IOException { 
     206  public int getSizeY() { 
    209207    return core.sizeY[series]; 
    210208  } 
    211209 
    212210  /* @see IFormatReader#getSizeZ() */ 
    213   public int getSizeZ() throws FormatException, IOException { 
     211  public int getSizeZ() { 
    214212    return core.sizeZ[series]; 
    215213  } 
    216214 
    217215  /* @see IFormatReader#getSizeC() */ 
    218   public int getSizeC() throws FormatException, IOException { 
     216  public int getSizeC() { 
    219217    return core.sizeC[series]; 
    220218  } 
    221219 
    222220  /* @see IFormatReader#getSizeT() */ 
    223   public int getSizeT() throws FormatException, IOException { 
     221  public int getSizeT() { 
    224222    return core.sizeT[series]; 
    225223  } 
    226224 
    227225  /* @see IFormatReader#getPixelType() */ 
    228   public int getPixelType() throws FormatException, IOException { 
     226  public int getPixelType() { 
    229227    return core.pixelType[series]; 
    230228  } 
    231229 
    232230  /* @see IFormatReader#getEffectiveSizeC() */ 
    233   public int getEffectiveSizeC() throws FormatException, IOException { 
     231  public int getEffectiveSizeC() { 
    234232    // NB: by definition, imageCount == effectiveSizeC * sizeZ * sizeT 
    235233    return getImageCount() / (getSizeZ() * getSizeT()); 
     
    237235 
    238236  /* @see IFormatReader#getRGBChannelCount() */ 
    239   public int getRGBChannelCount() throws FormatException, IOException { 
     237  public int getRGBChannelCount() { 
    240238    return getSizeC() / getEffectiveSizeC(); 
    241239  } 
    242240 
    243241  /* @see IFormatReader#getChannelDimLengths() */ 
    244   public int[] getChannelDimLengths() 
    245     throws FormatException, IOException 
    246   { 
     242  public int[] getChannelDimLengths() { 
    247243    if (core.cLengths[series] == null) { 
    248244      core.cLengths[series] = new int[] {core.sizeC[series]}; 
     
    252248 
    253249  /* @see IFormatReader#getChannelDimTypes() */ 
    254   public String[] getChannelDimTypes() throws FormatException, IOException { 
     250  public String[] getChannelDimTypes() { 
    255251    if (core.cTypes[series] == null) { 
    256252      core.cTypes[series] = new String[] {FormatTools.CHANNEL}; 
     
    260256 
    261257  /* @see IFormatReader#getThumbSizeX() */ 
    262   public int getThumbSizeX() throws FormatException, IOException { 
     258  public int getThumbSizeX() { 
    263259    int sx = getSizeX(); 
    264260    int sy = getSizeY(); 
     
    267263 
    268264  /* @see IFormatReader#getThumbSizeY() */ 
    269   public int getThumbSizeY() throws FormatException, IOException { 
     265  public int getThumbSizeY() { 
    270266    int sx = getSizeX(); 
    271267    int sy = getSizeY(); 
     
    274270 
    275271  /* @see IFormatReader.isLittleEndian() */ 
    276   public boolean isLittleEndian() throws FormatException, IOException { 
     272  public boolean isLittleEndian() { 
    277273    return core.littleEndian[series]; 
    278274  } 
    279275 
    280276  /* @see IFormatReader#getDimensionOrder() */ 
    281   public String getDimensionOrder() throws FormatException, IOException { 
     277  public String getDimensionOrder() { 
    282278    return core.currentOrder[series]; 
    283279  } 
    284280 
    285281  /* @see IFormatReader.isOrderCertain() */ 
    286   public boolean isOrderCertain() throws FormatException, IOException { 
     282  public boolean isOrderCertain() { 
    287283    return core.orderCertain[series]; 
    288284  } 
    289285 
    290286  /* @see IFormatReader#isInterleaved() */ 
    291   public boolean isInterleaved() throws FormatException, IOException { 
     287  public boolean isInterleaved() { 
    292288    return isInterleaved(0); 
    293289  } 
    294290 
    295291  /* @see IFormatReader#isInterleaved(int) */ 
    296   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     292  public boolean isInterleaved(int subC) { 
    297293    return core.interleaved[series]; 
    298294  } 
     
    334330 
    335331  /* @see IFormatReader#close(boolean) */ 
    336   public void close(boolean fileOnly) throws FormatException, IOException { 
     332  public void close(boolean fileOnly) throws IOException { 
    337333    if (fileOnly) { 
    338334      if (in != null) in.close(); 
     
    342338 
    343339  /* @see IFormatReader#close() */ 
    344   public void close() throws FormatException, IOException { 
     340  public void close() throws IOException { 
    345341    if (in != null) in.close(); 
    346342    in = null; 
     
    349345 
    350346  /* @see IFormatReader#getSeriesCount() */ 
    351   public int getSeriesCount() throws FormatException, IOException { 
     347  public int getSeriesCount() { 
    352348    return core.sizeX.length; 
    353349  } 
    354350 
    355351  /* @see IFormatReader#setSeries(int) */ 
    356   public void setSeries(int no) throws FormatException, IOException { 
     352  public void setSeries(int no) throws FormatException { 
    357353    if (no < 0 || no >= getSeriesCount()) { 
    358354      throw new FormatException("Invalid series: " + no); 
     
    362358 
    363359  /* @see IFormatReader#getSeries() */ 
    364   public int getSeries() throws FormatException, IOException { 
     360  public int getSeries() { 
    365361    return series; 
    366362  } 
     
    397393 
    398394  /* @see IFormatReader#getUsedFiles() */ 
    399   public String[] getUsedFiles() throws FormatException, IOException { 
     395  public String[] getUsedFiles() { 
    400396    return new String[] {currentId}; 
    401397  } 
     
    407403 
    408404  /* @see IFormatReader#getIndex(int, int, int) */ 
    409   public int getIndex(int z, int c, int t) 
    410     throws FormatException, IOException 
    411   { 
     405  public int getIndex(int z, int c, int t) throws FormatException { 
    412406    return FormatTools.getIndex(this, z, c, t); 
    413407  } 
    414408 
    415409  /* @see IFormatReader#getZCTCoords(int) */ 
    416   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     410  public int[] getZCTCoords(int index) throws FormatException { 
    417411    return FormatTools.getZCTCoords(this, index); 
    418412  } 
    419413 
    420414  /* @see IFormatReader#getMetadataValue(String) */ 
    421   public Object getMetadataValue(String field) 
    422     throws FormatException, IOException 
    423   { 
     415  public Object getMetadataValue(String field) { 
    424416    return getMeta(field); 
    425417  } 
    426418 
    427419  /* @see IFormatReader#getMetadata() */ 
    428   public Hashtable getMetadata() throws FormatException, IOException { 
     420  public Hashtable getMetadata() { 
    429421    return metadata; 
    430422  } 
    431423 
    432424  /* @see IFormatReader#getCoreMetadata() */ 
    433   public CoreMetadata getCoreMetadata() throws FormatException, IOException { 
     425  public CoreMetadata getCoreMetadata() { 
    434426    return core; 
    435427  } 
     
    461453 
    462454  /* @see IFormatReader#getMetadataStore() */ 
    463   public MetadataStore getMetadataStore() throws FormatException, IOException { 
     455  public MetadataStore getMetadataStore() { 
    464456    return metadataStore; 
    465457  } 
    466458 
    467459  /* @see IFormatReader#getMetadataStoreRoot() */ 
    468   public Object getMetadataStoreRoot() throws FormatException, IOException { 
     460  public Object getMetadataStoreRoot() { 
    469461    return getMetadataStore().getRoot(); 
    470462  } 
  • trunk/loci/formats/FormatTools.java

    r2655 r2672  
    640640   */ 
    641641  public static int getIndex(IFormatReader reader, int z, int c, int t) 
    642     throws FormatException, IOException 
     642    throws FormatException 
    643643  { 
    644644    String order = reader.getDimensionOrder(); 
     
    655655   */ 
    656656  public static int getIndex(String order, int zSize, int cSize, int tSize, 
    657     int num, int z, int c, int t) 
    658     throws FormatException, IOException 
     657    int num, int z, int c, int t) throws FormatException 
    659658  { 
    660659    // check DimensionOrder 
     
    715714   */ 
    716715  public static int[] getZCTCoords(IFormatReader reader, int index) 
    717     throws FormatException, IOException 
     716    throws FormatException 
    718717  { 
    719718    String order = reader.getDimensionOrder(); 
     
    730729   */ 
    731730  public static int[] getZCTCoords(String order, 
    732     int zSize, int cSize, int tSize, int num, int index) 
    733     throws FormatException, IOException 
     731    int zSize, int cSize, int tSize, int num, int index) throws FormatException 
    734732  { 
    735733    // check DimensionOrder 
  • trunk/loci/formats/IFormatReader.java

    r2648 r2672  
    3939 
    4040  /** Determines the number of images in the current file. */ 
    41   int getImageCount() throws FormatException, IOException; 
     41  int getImageCount(); 
    4242 
    4343  /** Checks if the images in the file are RGB. */ 
    44   boolean isRGB() throws FormatException, IOException; 
     44  boolean isRGB(); 
    4545 
    4646  /** Gets the size of the X dimension. */ 
    47   int getSizeX() throws FormatException, IOException; 
     47  int getSizeX(); 
    4848 
    4949  /** Gets the size of the Y dimension. */ 
    50   int getSizeY() throws FormatException, IOException; 
     50  int getSizeY(); 
    5151 
    5252  /** Gets the size of the Z dimension. */ 
    53   int getSizeZ() throws FormatException, IOException; 
     53  int getSizeZ(); 
    5454 
    5555  /** Gets the size of the C dimension. */ 
    56   int getSizeC() throws FormatException, IOException; 
     56  int getSizeC(); 
    5757 
    5858  /** Gets the size of the T dimension. */ 
    59   int getSizeT() throws FormatException, IOException; 
     59  int getSizeT(); 
    6060 
    6161  /** 
     
    6666   * @throws IOException if there was an error reading from the file. 
    6767   */ 
    68   int getPixelType() throws FormatException, IOException; 
     68  int getPixelType(); 
    6969 
    7070  /** 
     
    7373   * regardless of the result of isRGB(id). 
    7474   */ 
    75   int getEffectiveSizeC() throws FormatException, IOException; 
     75  int getEffectiveSizeC(); 
    7676 
    7777  /** Gets the number of channels per RGB image (if not RGB, this returns 1). */ 
    78   int getRGBChannelCount() throws FormatException, IOException; 
     78  int getRGBChannelCount(); 
    7979 
    8080  /** 
     
    8282   * in fastest-to-sloweset rasterization order. 
    8383   */ 
    84   int[] getChannelDimLengths() throws FormatException, IOException; 
     84  int[] getChannelDimLengths(); 
    8585 
    8686  /** 
     
    8989   * Common subdimensional types are enumerated in {@link FormatTools}. 
    9090   */ 
    91   String[] getChannelDimTypes() throws FormatException, IOException; 
     91  String[] getChannelDimTypes(); 
    9292 
    9393  /** Get the size of the X dimension for the thumbnail. */ 
    94   int getThumbSizeX() throws FormatException, IOException; 
     94  int getThumbSizeX(); 
    9595 
    9696  /** Get the size of the Y dimension for the thumbnail. */ 
    97   int getThumbSizeY() throws FormatException, IOException; 
     97  int getThumbSizeY(); 
    9898 
    9999  /** Gets whether the data is in little-endian format. */ 
    100   boolean isLittleEndian() throws FormatException, IOException; 
     100  boolean isLittleEndian(); 
    101101 
    102102  /** 
     
    114114   * {@link #isInterleaved(String)} method will return true. 
    115115   */ 
    116   String getDimensionOrder() throws FormatException, IOException; 
     116  String getDimensionOrder(); 
    117117 
    118118  /** 
    119119   * Gets whether the dimension order and sizes are known, or merely guesses. 
    120120   */ 
    121   boolean isOrderCertain() throws FormatException, IOException; 
     121  boolean isOrderCertain(); 
    122122 
    123123  /** 
     
    126126   * interleaved data, XYCTZ or XYCZT is used, and this method returns true. 
    127127   */ 
    128   boolean isInterleaved() throws FormatException, IOException; 
     128  boolean isInterleaved(); 
    129129 
    130130  /** 
     
    135135   * the interleaved lifetime bins and non-interleaved spectral channels. 
    136136   */ 
    137   boolean isInterleaved(int subC) 
    138     throws FormatException, IOException; 
     137  boolean isInterleaved(int subC); 
    139138 
    140139  /** Obtains the specified image from the current file. */ 
     
    174173   * happens; if unset, it is equivalent to calling close(). 
    175174   */ 
    176   void close(boolean fileOnly) throws FormatException, IOException; 
     175  void close(boolean fileOnly) throws IOException; 
    177176 
    178177  /** 
     
    180179   * allocated by this reader. 
    181180   */ 
    182   void close() throws FormatException, IOException; 
     181  void close() throws IOException; 
    183182 
    184183  /** Gets the number of series in this file. */ 
    185   int getSeriesCount() throws FormatException, IOException; 
     184  int getSeriesCount(); 
    186185 
    187186  /** Activates the specified series. */ 
    188   void setSeries(int no) throws FormatException, IOException; 
     187  void setSeries(int no) throws FormatException; 
    189188 
    190189  /** Gets the currently active series. */ 
    191   int getSeries() throws FormatException, IOException; 
     190  int getSeries(); 
    192191 
    193192  /** Specifies whether or not to normalize float data. */ 
     
    204203 
    205204  /** Returns an array of filenames needed to open this dataset. */ 
    206   String[] getUsedFiles() throws FormatException, IOException; 
     205  String[] getUsedFiles(); 
    207206 
    208207  /** Returns the current file. */ 
     
    213212   * to the given Z, C and T coordinates. 
    214213   */ 
    215   int getIndex(int z, int c, int t) throws FormatException, IOException; 
     214  int getIndex(int z, int c, int t) throws FormatException; 
    216215 
    217216  /** 
     
    219218   * to the given rasterized index value. 
    220219   */ 
    221   int[] getZCTCoords(int index) throws FormatException, IOException; 
     220  int[] getZCTCoords(int index) throws FormatException; 
    222221 
    223222  /** 
     
    226225   * @return the value, or null if the field doesn't exist 
    227226   */ 
    228   Object getMetadataValue(String field) throws FormatException, IOException; 
     227  Object getMetadataValue(String field); 
    229228 
    230229  /** 
     
    233232   * @return the hashtable containing all metadata from the file 
    234233   */ 
    235   Hashtable getMetadata() throws FormatException, IOException; 
     234  Hashtable getMetadata(); 
    236235 
    237236  /** Obtains the core metadata values for the current file. */ 
    238   CoreMetadata getCoreMetadata() throws FormatException, IOException; 
     237  CoreMetadata getCoreMetadata(); 
    239238 
    240239  /** 
     
    262261   * @return a metadata store implementation. 
    263262   */ 
    264   MetadataStore getMetadataStore() throws FormatException, IOException; 
     263  MetadataStore getMetadataStore(); 
    265264 
    266265  /** 
     
    269268   * Requests for a full populated root object should be made using this method. 
    270269   * @return current metadata store's root object fully populated. 
    271    * @throws IOException if there is an IO error when reading the file specified 
    272    *   by <code>path</code>. 
    273    * @throws FormatException if the file specified by <code>path</code> is of an 
    274    *   unsupported type. 
    275    */ 
    276   Object getMetadataStoreRoot() throws FormatException, IOException; 
     270   */ 
     271  Object getMetadataStoreRoot(); 
    277272 
    278273  /** 
  • trunk/loci/formats/ImageReader.java

    r2648 r2672  
    134134 
    135135  /** Gets the reader used to open the current file. */ 
    136   public IFormatReader getReader() throws FormatException, IOException { 
     136  public IFormatReader getReader() { 
    137137    return readers[current]; 
    138138  } 
     
    169169 
    170170  /* @see IFormatReader#getImageCount() */ 
    171   public int getImageCount() throws FormatException, IOException { 
     171  public int getImageCount() { 
    172172    return getReader().getImageCount(); 
    173173  } 
    174174 
    175175  /* @see IFormatReader#isRGB() */ 
    176   public boolean isRGB() throws FormatException, IOException { 
     176  public boolean isRGB() { 
    177177    return getReader().isRGB(); 
    178178  } 
    179179 
    180180  /* @see IFormatReader#getSizeX() */ 
    181   public int getSizeX() throws FormatException, IOException { 
     181  public int getSizeX() { 
    182182    return getReader().getSizeX(); 
    183183  } 
    184184 
    185185  /* @see IFormatReader#getSizeY() */ 
    186   public int getSizeY() throws FormatException, IOException { 
     186  public int getSizeY() { 
    187187    return getReader().getSizeY(); 
    188188  } 
    189189 
    190190  /* @see IFormatReader#getSizeC() */ 
    191   public int getSizeC() throws FormatException, IOException { 
     191  public int getSizeC() { 
    192192    return getReader().getSizeC(); 
    193193  } 
    194194 
    195195  /* @see IFormatReader#getSizeZ() */ 
    196   public int getSizeZ() throws FormatException, IOException { 
     196  public int getSizeZ() { 
    197197    return getReader().getSizeZ(); 
    198198  } 
    199199 
    200200  /* @see IFormatReader#getSizeT() */ 
    201   public int getSizeT() throws FormatException, IOException { 
     201  public int getSizeT() { 
    202202    return getReader().getSizeT(); 
    203203  } 
    204204 
    205205  /* @see IFormatReader#getPixelType() */ 
    206   public int getPixelType() throws FormatException, IOException { 
     206  public int getPixelType() { 
    207207    return getReader().getPixelType(); 
    208208  } 
    209209 
    210210  /* @see IFormatReader#getEffectiveSizeC() */ 
    211   public int getEffectiveSizeC() throws FormatException, IOException { 
     211  public int getEffectiveSizeC() { 
    212212    return getReader().getEffectiveSizeC(); 
    213213  } 
    214214 
    215215  /* @see IFormatReader#getRGBChannelCount() */ 
    216   public int getRGBChannelCount() throws FormatException, IOException { 
     216  public int getRGBChannelCount() { 
    217217    return getReader().getRGBChannelCount(); 
    218218  } 
    219219 
    220220  /* @see IFormatReader#getChannelDimLengths() */ 
    221   public int[] getChannelDimLengths() throws FormatException, IOException { 
     221  public int[] getChannelDimLengths() { 
    222222    return getReader().getChannelDimLengths(); 
    223223  } 
    224224 
    225225  /* @see IFormatReader#getChannelDimTypes() */ 
    226   public String[] getChannelDimTypes() throws FormatException, IOException { 
     226  public String[] getChannelDimTypes() { 
    227227    return getReader().getChannelDimTypes(); 
    228228  } 
    229229 
    230230  /* @see IFormatReader#getThumbSizeX() */ 
    231   public int getThumbSizeX() throws FormatException, IOException { 
     231  public int getThumbSizeX() { 
    232232    return getReader().getThumbSizeX(); 
    233233  } 
    234234 
    235235  /* @see IFormatReader#getThumbSizeY() */ 
    236   public int getThumbSizeY() throws FormatException, IOException { 
     236  public int getThumbSizeY() { 
    237237    return getReader().getThumbSizeY(); 
    238238  } 
    239239 
    240240  /* @see IFormatReader#isLittleEndian() */ 
    241   public boolean isLittleEndian() throws FormatException, IOException { 
     241  public boolean isLittleEndian() { 
    242242    return getReader().isLittleEndian(); 
    243243  } 
    244244 
    245245  /* @see IFormatReader#getDimensionOrder() */ 
    246   public String getDimensionOrder() throws FormatException, IOException { 
     246  public String getDimensionOrder() { 
    247247    return getReader().getDimensionOrder(); 
    248248  } 
    249249 
    250250  /* @see IFormatReader#isOrderCertain() */ 
    251   public boolean isOrderCertain() throws FormatException, IOException { 
     251  public boolean isOrderCertain() { 
    252252    return getReader().isOrderCertain(); 
    253253  } 
    254254 
    255255  /* @see IFormatReader#isInterleaved() */ 
    256   public boolean isInterleaved() throws FormatException, IOException { 
     256  public boolean isInterleaved() { 
    257257    return getReader().isInterleaved(); 
    258258  } 
    259259 
    260260  /* @see IFormatReader#isInterleaved(int) */ 
    261   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     261  public boolean isInterleaved(int subC) { 
    262262    return getReader().isInterleaved(subC); 
    263263  } 
     
    293293 
    294294  /* @see IFormatReader#getSeriesCount() */ 
    295   public int getSeriesCount() throws FormatException, IOException { 
     295  public int getSeriesCount() { 
    296296    return getReader().getSeriesCount(); 
    297297  } 
    298298 
    299299  /* @see IFormatReader#setSeries(int) */ 
    300   public void setSeries(int no) throws FormatException, IOException { 
     300  public void setSeries(int no) throws FormatException { 
    301301    getReader().setSeries(no); 
    302302  } 
    303303 
    304304  /* @see IFormatReader#getSeries() */ 
    305   public int getSeries() throws FormatException, IOException { 
     305  public int getSeries() { 
    306306    return getReader().getSeries(); 
    307307  } 
    308308 
    309309  /* @see IFormatReader#getUsedFiles() */ 
    310   public String[] getUsedFiles() throws FormatException, IOException { 
     310  public String[] getUsedFiles() { 
    311311    return getReader().getUsedFiles(); 
    312312  } 
    313313 
    314314  /* @see IFormatReader#getIndex(int, int, int) */ 
    315   public int getIndex(int z, int c, int t) throws FormatException, IOException { 
     315  public int getIndex(int z, int c, int t) throws FormatException { 
    316316    return getReader().getIndex(z, c, t); 
    317317  } 
    318318 
    319319  /* @see IFormatReader#getZCTCoords(int) */ 
    320   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     320  public int[] getZCTCoords(int index) throws FormatException { 
    321321    return getReader().getZCTCoords(index); 
    322322  } 
    323323 
    324324  /* @see IFormatReader#getMetadataValue(String) */ 
    325   public Object getMetadataValue(String field) 
    326     throws FormatException, IOException 
    327   { 
     325  public Object getMetadataValue(String field) { 
    328326    return getReader().getMetadataValue(field); 
    329327  } 
    330328 
    331329  /* @see IFormatReader#getMetadata() */ 
    332   public Hashtable getMetadata() throws FormatException, IOException { 
     330  public Hashtable getMetadata() { 
    333331    return getReader().getMetadata(); 
    334332  } 
    335333 
    336334  /* @see IFormatReader#getCoreMetadata() */ 
    337   public CoreMetadata getCoreMetadata() throws FormatException, IOException { 
     335  public CoreMetadata getCoreMetadata() { 
    338336    return getReader().getCoreMetadata(); 
    339337  } 
    340338 
    341339  /* @see IFormatReader#getMetadataStore() */ 
    342   public MetadataStore getMetadataStore() throws FormatException, IOException { 
     340  public MetadataStore getMetadataStore() { 
    343341    return getReader().getMetadataStore(); 
    344342  } 
    345343 
    346344  /* @see IFormatReader#getMetadataStoreRoot() */ 
    347   public Object getMetadataStoreRoot() throws FormatException, IOException { 
     345  public Object getMetadataStoreRoot() { 
    348346    return getReader().getMetadataStoreRoot(); 
    349347  } 
    350348 
    351349  /* @see IFormatReader#close(boolean) */ 
    352   public void close(boolean fileOnly) throws FormatException, IOException { 
     350  public void close(boolean fileOnly) throws IOException { 
    353351    for (int i=0; i<readers.length; i++) readers[i].close(fileOnly); 
    354352  } 
    355353 
    356354  /* @see IFormatReader#close() */ 
    357   public void close() throws FormatException, IOException { 
     355  public void close() throws IOException { 
    358356    for (int i=0; i<readers.length; i++) readers[i].close(); 
    359357  } 
     
    384382  /* @see IFormatReader#getCurrentFile() */ 
    385383  public String getCurrentFile() { 
    386     try { 
    387       return getReader().getCurrentFile(); 
    388     } 
    389     catch (FormatException e) { e.printStackTrace(); } 
    390     catch (IOException e) { e.printStackTrace(); } 
    391     return null; 
     384    return getReader().getCurrentFile(); 
    392385  } 
    393386 
  • trunk/loci/formats/MinMaxCalculator.java

    r2648 r2672  
    193193 
    194194  /* @see IFormatReader#close() */ 
    195   public void close() throws FormatException, IOException { 
     195  public void close() throws IOException { 
    196196    reader.close(); 
    197197    chanMin = null; 
  • trunk/loci/formats/ReaderWrapper.java

    r2601 r2672  
    6868  } 
    6969 
    70   public int getImageCount() throws FormatException, IOException { 
     70  public int getImageCount() { 
    7171    return reader.getImageCount(); 
    7272  } 
    7373 
    74   public boolean isRGB() throws FormatException, IOException { 
     74  public boolean isRGB() { 
    7575    return reader.isRGB(); 
    7676  } 
    7777 
    78   public int getSizeX() throws FormatException, IOException { 
     78  public int getSizeX() { 
    7979    return reader.getSizeX(); 
    8080  } 
    8181 
    82   public int getSizeY() throws FormatException, IOException { 
     82  public int getSizeY() { 
    8383    return reader.getSizeY(); 
    8484  } 
    8585 
    86   public int getSizeZ() throws FormatException, IOException { 
     86  public int getSizeZ() { 
    8787    return reader.getSizeZ(); 
    8888  } 
    8989 
    90   public int getSizeC() throws FormatException, IOException { 
     90  public int getSizeC() { 
    9191    return reader.getSizeC(); 
    9292  } 
    9393 
    94   public int getSizeT() throws FormatException, IOException { 
     94  public int getSizeT() { 
    9595    return reader.getSizeT(); 
    9696  } 
    9797 
    98   public int getPixelType() throws FormatException, IOException { 
     98  public int getPixelType() { 
    9999    return reader.getPixelType(); 
    100100  } 
    101101 
    102   public int getEffectiveSizeC() throws FormatException, IOException { 
     102  public int getEffectiveSizeC() { 
    103103    return getImageCount() / (getSizeZ() * getSizeT()); 
    104104  } 
    105105 
    106   public int getRGBChannelCount() throws FormatException, IOException { 
     106  public int getRGBChannelCount() { 
    107107    return getSizeC() / getEffectiveSizeC(); 
    108108  } 
    109109 
    110   public int[] getChannelDimLengths() throws FormatException, IOException { 
     110  public int[] getChannelDimLengths() { 
    111111    return reader.getChannelDimLengths(); 
    112112  } 
    113113 
    114   public String[] getChannelDimTypes() throws FormatException, IOException { 
     114  public String[] getChannelDimTypes() { 
    115115    return reader.getChannelDimTypes(); 
    116116  } 
    117117 
    118   public int getThumbSizeX() throws FormatException, IOException { 
     118  public int getThumbSizeX() { 
    119119    return reader.getThumbSizeX(); 
    120120  } 
    121121 
    122   public int getThumbSizeY() throws FormatException, IOException { 
     122  public int getThumbSizeY() { 
    123123    return reader.getThumbSizeY(); 
    124124  } 
    125125 
    126   public boolean isLittleEndian() throws FormatException, IOException { 
     126  public boolean isLittleEndian() { 
    127127    return reader.isLittleEndian(); 
    128128  } 
    129129 
    130   public String getDimensionOrder() throws FormatException, IOException { 
     130  public String getDimensionOrder() { 
    131131    return reader.getDimensionOrder(); 
    132132  } 
    133133 
    134   public boolean isOrderCertain() throws FormatException, IOException { 
     134  public boolean isOrderCertain() { 
    135135    return reader.isOrderCertain(); 
    136136  } 
    137137 
    138   public boolean isInterleaved() throws FormatException, IOException { 
     138  public boolean isInterleaved() { 
    139139    return reader.isInterleaved(); 
    140140  } 
    141141 
    142   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     142  public boolean isInterleaved(int subC) { 
    143143    return reader.isInterleaved(subC); 
    144144  } 
     
    168168  } 
    169169 
    170   public void close(boolean fileOnly) throws FormatException, IOException { 
     170  public void close(boolean fileOnly) throws IOException { 
    171171    reader.close(fileOnly); 
    172172  } 
    173173 
    174   public void close() throws FormatException, IOException { 
     174  public void close() throws IOException { 
    175175    reader.close(); 
    176176  } 
    177177 
    178   public int getSeriesCount() throws FormatException, IOException { 
     178  public int getSeriesCount() { 
    179179    return reader.getSeriesCount(); 
    180180  } 
    181181 
    182   public void setSeries(int no) throws FormatException, IOException { 
     182  public void setSeries(int no) throws FormatException { 
    183183    reader.setSeries(no); 
    184184  } 
    185185 
    186   public int getSeries() throws FormatException, IOException { 
     186  public int getSeries() { 
    187187    return reader.getSeries(); 
    188188  } 
     
    200200  public boolean isMetadataCollected() { return reader.isMetadataCollected(); } 
    201201 
    202   public String[] getUsedFiles() throws FormatException, IOException { 
     202  public String[] getUsedFiles() { 
    203203    return reader.getUsedFiles(); 
    204204  } 
     
    206206  public String getCurrentFile() { return reader.getCurrentFile(); } 
    207207 
    208   public int getIndex(int z, int c, int t) throws FormatException, IOException { 
     208  public int getIndex(int z, int c, int t) throws FormatException { 
    209209    return reader.getIndex(z, c, t); 
    210210  } 
    211211 
    212   public int[] getZCTCoords(int index) throws FormatException, IOException { 
     212  public int[] getZCTCoords(int index) throws FormatException { 
    213213    return reader.getZCTCoords(index); 
    214214  } 
    215215 
    216   public Object getMetadataValue(String field) 
    217     throws FormatException, IOException 
    218   { 
     216  public Object getMetadataValue(String field) { 
    219217    return reader.getMetadataValue(field); 
    220218  } 
    221219 
    222   public Hashtable getMetadata() throws FormatException, IOException { 
     220  public Hashtable getMetadata() { 
    223221    return reader.getMetadata(); 
    224222  } 
    225223 
    226   public CoreMetadata getCoreMetadata() throws FormatException, IOException { 
     224  public CoreMetadata getCoreMetadata() { 
    227225    return reader.getCoreMetadata(); 
    228226  } 
     
    238236  } 
    239237 
    240   public MetadataStore getMetadataStore() throws FormatException, IOException { 
     238  public MetadataStore getMetadataStore() { 
    241239    return reader.getMetadataStore(); 
    242240  } 
    243241 
    244   public Object getMetadataStoreRoot() throws FormatException, IOException { 
     242  public Object getMetadataStoreRoot() { 
    245243    return reader.getMetadataStoreRoot(); 
    246244  } 
  • trunk/loci/formats/in/BaseTiffReader.java

    r2616 r2672  
    544544      } 
    545545      catch (Exception e) { 
     546        // TODO: eliminate catch-all exception handling 
    546547        try { 
    547548          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
     
    552553        } 
    553554        catch (Exception ex) { 
     555          // TODO: eliminate catch-all exception handling 
    554556          if (debug) ex.printStackTrace(); 
    555557          creationDate = null; 
     
    624626    } 
    625627    catch (FormatException exc) { exc.printStackTrace(); } 
    626     catch (IOException ex) { ex.printStackTrace(); } 
    627628  } 
    628629 
     
    690691 
    691692  /* @see loci.formats.IFormatReader#getMetadataValue(String) */ 
    692   public Object getMetadataValue(String field) 
    693     throws FormatException, IOException 
    694   { 
     693  public Object getMetadataValue(String field) { 
    695694    return getMeta(field); 
    696695  } 
  • trunk/loci/formats/in/FluoviewReader.java

    r2616 r2672  
    307307  protected void initMetadataStore() { 
    308308    super.initMetadataStore(); 
    309     try { 
    310       MetadataStore store = getMetadataStore(); 
    311       store.setDimensions(new Float(voxelX), new Float(voxelY), 
    312         new Float(voxelZ), new Float(voxelC), new Float(voxelT), null); 
    313  
    314       Double gamma = (Double) getMeta("Gamma"); 
    315       for (int i=0; i<core.sizeC[0]; i++) { 
    316         store.setDisplayChannel(new Integer(i), null, null, 
    317           gamma == null ? null : new Float(gamma.floatValue()), null); 
    318  
    319         String gain = (String) getMeta("Gain Ch" + (i+1)); 
    320         String voltage = (String) getMeta("PMT Voltage Ch" + (i+1)); 
    321         String offset = (String) getMeta("Offset Ch" + (i+1)); 
    322  
    323         if (gain != null || voltage != null || offset != null) { 
    324           store.setDetector((String) getMeta("System Configuration"), null, 
    325             null, null, gain == null ? null : new Float(gain), 
    326             voltage == null ? null : new Float(voltage), 
    327             offset == null ? null : new Float(offset), null, new Integer(i)); 
    328         } 
    329       } 
    330  
    331       String mag = (String) getMeta("Magnification"); 
    332       if (mag != null && mag.toLowerCase().endsWith("x")) { 
    333         mag = mag.substring(0, mag.length() - 1); 
    334       } 
    335       else if (mag == null) mag = "1"; 
    336       store.setObjective((String) getMeta("Objective Lens"), null, null, null, 
    337         new Float(mag), null, null); 
    338  
    339     } 
    340     catch (FormatException fe) { 
    341       if (debug) fe.printStackTrace(); 
    342     } 
    343     catch (IOException ie) { 
    344       if (debug) ie.printStackTrace(); 
    345     } 
     309    MetadataStore store = getMetadataStore(); 
     310    store.setDimensions(new Float(voxelX), new Float(voxelY), 
     311      new Float(voxelZ), new Float(voxelC), new Float(voxelT), null); 
     312 
     313    Double gamma = (Double) getMeta("Gamma"); 
     314    for (int i=0; i<core.sizeC[0]; i++) { 
     315      store.setDisplayChannel(new Integer(i), null, null, 
     316        gamma == null ? null : new Float(gamma.floatValue()), null); 
     317 
     318      String gain = (String) getMeta("Gain Ch" + (i+1)); 
     319      String voltage = (String) getMeta("PMT Voltage Ch" + (i+1)); 
     320      String offset = (String) getMeta("Offset Ch" + (i+1)); 
     321 
     322      if (gain != null || voltage != null || offset != null) { 
     323        store.setDetector((String) getMeta("System Configuration"), null, 
     324          null, null, gain == null ? null : new Float(gain), 
     325          voltage == null ? null : new Float(voltage), 
     326          offset == null ? null : new Float(offset), null, new Integer(i)); 
     327      } 
     328    } 
     329 
     330    String mag = (String) getMeta("Magnification"); 
     331    if (mag != null && mag.toLowerCase().endsWith("x")) { 
     332      mag = mag.substring(0, mag.length() - 1); 
     333    } 
     334    else if (mag == null) mag = "1"; 
     335    store.setObjective((String) getMeta("Objective Lens"), null, null, null, 
     336      new Float(mag), null, null); 
    346337  } 
    347338 
  • trunk/loci/formats/in/ICSReader.java

    r2616 r2672  
    168168 
    169169  /* @see loci.formats.IFormatReader#getUsedFiles() */ 
    170   public String[] getUsedFiles() throws FormatException, IOException { 
     170  public String[] getUsedFiles() { 
    171171    if (versionTwo) { 
    172172      return new String[] {currentIdsId == null ? "" : currentIdsId}; 
     
    176176 
    177177  /* @see loci.formats.IFormatReader#close() */ 
    178   public void close() throws FormatException, IOException { 
     178  public void close() throws IOException { 
    179179    super.close(); 
    180180    icsIn = null; 
  • trunk/loci/formats/in/IPWReader.java

    r2616 r2672  
    152152 
    153153  /* @see loci.formats.IFormatReader#close() */ 
    154   public void close() throws FormatException, IOException { 
     154  public void close() throws IOException { 
    155155    super.close(); 
    156156 
  • trunk/loci/formats/in/ImageIOReader.java

    r2601 r2672  
    8888 
    8989  /* @see loci.formats.IFormatReader#close(boolean) */ 
    90   public void close(boolean fileOnly) throws FormatException, IOException { } 
     90  public void close(boolean fileOnly) throws IOException { } 
    9191 
    9292  /* @see loci.formats.IFormatReader#close() */ 
    93   public void close() throws FormatException, IOException { } 
     93  public void close() throws IOException { } 
    9494 
    9595  // -- Internal FormatReader API methods -- 
  • trunk/loci/formats/in/ImageJReader.java

    r2601 r2672  
    126126 
    127127  /* @see loci.formats.IFormatReader#close(boolean) */ 
    128   public void close(boolean fileOnly) throws FormatException, IOException { } 
     128  public void close(boolean fileOnly) throws IOException { } 
    129129 
    130130  /* @see loci.formats.IFormatReader#close() */ 
    131   public void close() throws FormatException, IOException { } 
     131  public void close() throws IOException { } 
    132132 
    133133  // -- Internal FormatReader API methods -- 
  • trunk/loci/formats/in/LIFReader.java

    r2669 r2672  
    7373 
    7474  /* @see loci.formats.IFormatReader#getSeriesCount() */ 
    75   public int getSeriesCount() throws FormatException, IOException { 
     75  public int getSeriesCount() { 
    7676    return core.sizeX.length; 
    7777  } 
  • trunk/loci/formats/in/LegacyPictReader.java

    r2601 r2672  
    109109 
    110110  /* @see loci.formats.IFormatReader#close(boolean) */ 
    111   public void close(boolean fileOnly) throws FormatException, IOException { } 
     111  public void close(boolean fileOnly) throws IOException { } 
    112112 
    113113} 
  • trunk/loci/formats/in/LegacyQTReader.java

    r2661 r2672  
    102102 
    103103  /* @see loci.formats.IFormatReader#close(boolean) */ 
    104   public void close(boolean fileOnly) throws FormatException, IOException { 
     104  public void close(boolean fileOnly) throws IOException { 
    105105    if (fileOnly) { 
    106106      try { 
     
    108108      } 
    109109      catch (ReflectException e) { 
    110         throw new FormatException("Close movie failed", e); 
     110        throw new IOException("Close movie failed", e); 
    111111      } 
    112112    } 
     
    115115 
    116116  /* @see loci.formats.IFormatReader#close() */ 
    117   public void close() throws FormatException, IOException { 
     117  public void close() throws IOException { 
    118118    if (currentId == null) return; 
    119119 
     
    125125    } 
    126126    catch (ReflectException e) { 
    127       throw new FormatException("Close movie failed", e); 
     127      throw new IOException("Close movie failed", e); 
    128128    } 
    129129    currentId = null; 
  • trunk/loci/formats/in/LegacyZVIReader.java

    r2616 r2672  
    114114 
    115115  /* @see loci.formats.IFormatReader#getImageCount() */ 
    116   public int getImageCount() throws FormatException, IOException { 
     116  public int getImageCount() { 
    117117    return blockList.size(); 
    118118  } 
  • trunk/loci/formats/in/LeicaReader.java

    r2616 r2672  
    155155 
    156156  /* @see loci.formats.IFormatReader#getUsedFiles() */ 
    157   public String[] getUsedFiles() throws FormatException, IOException { 
     157  public String[] getUsedFiles() { 
    158158    Vector v = new Vector(); 
    159159    v.add(leiFilename); 
     
    167167 
    168168  /* @see loci.formats.IFormatReader#close(boolean) */ 
    169   public void close(boolean fileOnly) throws FormatException, IOException { 
     169  public void close(boolean fileOnly) throws IOException { 
    170170    if (fileOnly) { 
    171171      if (in != null) in.close(); 
     
    184184 
    185185  /* @see loci.formats.IFormatReader#close() */ 
    186   public void close() throws FormatException, IOException { 
     186  public void close() throws IOException { 
    187187    super.close(); 
    188188    leiFilename = null; 
     
    590590 
    591591  /* @see BaseTiffReader#initMetadata() */ 
    592   protected void initMetadata() { 
     592  protected void initMetadata() throws FormatException, IOException { 
    593593    if (headerIFDs == null) headerIFDs = ifds; 
    594594 
     
    955955    // a later call to BaseTiffReader.initMetadata. 
    956956    if (core.sizeC != null) { 
    957       try { 
    958         int oldSeries = getSeries(); 
    959         for (int i=0; i<core.sizeC.length; i++) { 
    960           setSeries(i); 
    961           core.sizeZ[i] /= core.sizeC[i]; 
    962         } 
    963         setSeries(oldSeries); 
    964       } 
    965       catch (FormatException exc) { 
    966         exc.printStackTrace(); 
    967       } 
    968       catch (IOException exc) { 
    969         exc.printStackTrace(); 
    970       } 
     957      int oldSeries = getSeries(); 
     958      for (int i=0; i<core.sizeC.length; i++) { 
     959        setSeries(i); 
     960        core.sizeZ[i] /= core.sizeC[i]; 
     961      } 
     962      setSeries(oldSeries); 
    971963    } 
    972964 
     
    985977    else validBits = null; 
    986978 
    987     // The metadata store we're working with. 
    988     MetadataStore store = new DummyMetadataStore(); 
    989     try { 
    990       store = getMetadataStore(); 
    991     } 
    992     catch (FormatException e) { 
    993       if (debug) e.printStackTrace(); 
    994     } 
    995     catch (IOException e) { 
    996       if (debug) e.printStackTrace(); 
    997     } 
     979    // the metadata store we're working with 
     980    MetadataStore store = getMetadataStore(); 
    998981 
    999982    byte[] f = new byte[4]; 
     
    1001984      core.orderCertain[i] = true; 
    1002985      core.interleaved[i] = true; 
    1003       try { 
    1004         in.seek(0); 
    1005         in.read(f); 
    1006         core.littleEndian[i] = (f[0] == TiffTools.LITTLE && 
    1007           f[1] == TiffTools.LITTLE && f[2] == TiffTools.LITTLE && 
    1008           f[3] == TiffTools.LITTLE); 
    1009       } 
    1010       catch (Exception e) { 
    1011         if (debug) e.printStackTrace(); 
    1012       } 
     986 
     987      in.seek(0); 
     988      in.read(f); 
     989      core.littleEndian[i] = (f[0] == TiffTools.LITTLE && 
     990        f[1] == TiffTools.LITTLE && f[2] == TiffTools.LITTLE && 
     991        f[3] == TiffTools.LITTLE); 
    1013992 
    1014993      if (core.sizeC[i] == 0) core.sizeC[i] = 1; 
     
    10691048      for (int j=0; j<core.sizeC[0]; j++) { 
    10701049        store.setLogicalChannel(j, null, null, null, null, null, null, ii); 
    1071         // TODO : get channel min/max from metadata 
    1072         /* 
    1073         try { 
    1074           store.setChannelGlobalMinMax(j, getChannelGlobalMinimum(currentId, j), 
    1075             getChannelGlobalMaximum(currentId, j), ii); 
    1076         } 
    1077         catch (FormatException exc) { 
    1078           if (debug) exc.printStackTrace(); 
    1079         } 
    1080         catch (IOException exc) { 
    1081           if (debug) exc.printStackTrace(); 
    1082         } 
    1083         */ 
    1084       } 
    1085  
     1050        // TODO: get channel min/max from metadata 
     1051//        store.setChannelGlobalMinMax(j, getChannelGlobalMinimum(currentId, j), 
     1052//          getChannelGlobalMaximum(currentId, j), ii); 
     1053      } 
    10861054    } 
    10871055  } 
  • trunk/loci/formats/in/MicromanagerReader.java

    r2616 r2672  
    8787 
    8888  /* @see loci.formats.IFormatReader#close() */ 
    89   public void close() throws FormatException, IOException { 
     89  public void close() throws IOException { 
    9090    super.close(); 
    9191    if (tiffReader != null) tiffReader.close(); 
     
    9595 
    9696  /* @see loci.formats.IFormatReader#close(boolean) */ 
    97   public void close(boolean fileOnly) throws FormatException, IOException { 
     97  public void close(boolean fileOnly) throws IOException { 
    9898    if (fileOnly) tiffReader.close(fileOnly); 
    9999    else close(); 
  • trunk/loci/formats/in/OIBReader.java

    r2636 r2672  
    196196 
    197197  /* @see loci.formats.IFormatReader#close() */ 
    198   public void close() throws FormatException, IOException { 
     198  public void close() throws IOException { 
    199199    super.close(); 
    200200    String[] vars = {"dirName", "root", "dir", "document", "dis", 
  • trunk/loci/formats/in/OIFReader.java

    r2616 r2672  
    127127 
    128128  /* @see loci.formats.IFormatReader#getThumbSizeX() */ 
    129   public int getThumbSizeX() throws FormatException, IOException { 
    130     return openThumbImage(0).getWidth(); 
     129  public int getThumbSizeX() { 
     130    // TODO: populate thumbnail width in initFile instead of here! 
     131    try { 
     132      return openThumbImage(0).getWidth(); 
     133    } 
     134    catch (FormatException exc) { return -1; } 
     135    catch (IOException exc) { return -1; } 
    131136  } 
    132137 
    133138  /* @see loci.formats.IFormatReader#getThumbSizeY() */ 
    134   public int getThumbSizeY() throws FormatException, IOException { 
    135     return openThumbImage(0).getHeight(); 
     139  public int getThumbSizeY() { 
     140    // TODO: populate thumbnail height in initFile instead of here! 
     141    try { 
     142      return openThumbImage(0).getHeight(); 
     143    } 
     144    catch (FormatException exc) { return -1; } 
     145    catch (IOException exc) { return -1; } 
    136146  } 
    137147 
    138148  /* @see loci.formats.IFormatReader#getUsedFiles() */ 
    139   public String[] getUsedFiles() throws FormatException, IOException { 
     149  public String[] getUsedFiles() { 
    140150    return (String[]) usedFiles.toArray(new String[0]); 
    141151  } 
    142152 
    143153  /* @see loci.formats.IFormatReader#close(boolean) */ 
    144   public void close(boolean fileOnly) throws FormatException, IOException { 
     154  public void close(boolean fileOnly) throws IOException { 
    145155    if (fileOnly) { 
    146156      if (in != null) in.close(); 
     
    156166 
    157167  /* @see loci.formats.IFormatReader#close() */ 
    158   public void close() throws FormatException, IOException { 
     168  public void close() throws IOException { 
    159169    super.close(); 
    160170    if (thumbReader != null) thumbReader.close(); 
  • trunk/loci/formats/in/OpenlabReader.java

    r2616 r2672  
    302302 
    303303  /* @see loci.formats.IFormatReader#close(boolean) */ 
    304   public void close(boolean fileOnly) throws FormatException, IOException { 
     304  public void close(boolean fileOnly) throws IOException { 
    305305    if (fileOnly) { 
    306306      if (in != null) in.close(); 
     
    311311 
    312312  /* @see loci.formats.IFormatReader#close() */ 
    313   public void close() throws FormatException, IOException { 
     313  public void close() throws IOException { 
    314314    super.close();  
    315315    if (pict != null) pict.close(); 
  • trunk/loci/formats/in/PerkinElmerReader.java

    r2616 r2672  
    101101 
    102102  /* @see loci.formats.IFormatReader#getUsedFiles() */ 
    103   public String[] getUsedFiles() throws FormatException, IOException { 
     103  public String[] getUsedFiles() { 
    104104    return (String[]) allFiles.toArray(new String[0]); 
    105105  } 
    106106 
    107107  /* @see loci.formats.IFormatReader#close(boolean) */ 
    108   public void close(boolean fileOnly) throws FormatException, IOException { 
     108  public void close(boolean fileOnly) throws IOException { 
    109109    if (fileOnly) { 
    110110      if (tiff != null) { 
     
    118118 
    119119  /* @see loci.formats.IFormatReader#close() */ 
    120   public void close() throws FormatException, IOException { 
     120  public void close() throws IOException { 
    121121    currentId = null; 
    122122    files = null; 
     
    130130  /** Initializes the given PerkinElmer file. */ 
    131131  protected void initFile(String id) throws FormatException, IOException { 
    132     if (currentId != null && 
    133       (id.equals(currentId) || isUsedFile(currentId, id))) 
    134     { 
    135       return; 
    136     } 
     132    if (currentId != null && (id.equals(currentId) || isUsedFile(id))) return; 
    137133 
    138134    status("Finding HTML companion file"); 
  • trunk/loci/formats/in/PrairieReader.java

    r2616 r2672  
    126126 
    127127  /* @see loci.formats.IFormatReader#getUsedFiles() */ 
    128   public String[] getUsedFiles() throws FormatException, IOException { 
     128  public String[] getUsedFiles() { 
    129129    String[] s = new String[files.length + 2]; 
    130130    System.arraycopy(files, 0, s, 0, files.length); 
     
    165165 
    166166  /* @see loci.formats.IFormatReader#close(boolean) */ 
    167   public void close(boolean fileOnly) throws FormatException, IOException { 
     167  public void close(boolean fileOnly) throws IOException { 
    168168    if (fileOnly && tiff != null) tiff.close(fileOnly); 
    169169    else if (!fileOnly) close(); 
     
    171171 
    172172  /* @see loci.formats.IFormatReader#close() */ 
    173   public void close() throws FormatException, IOException { 
     173  public void close() throws IOException { 
    174174    files = null; 
    175175    if (tiff != null) tiff.close(); 
  • trunk/loci/formats/in/QTReader.java

    r2671 r2672  
    399399 
    400400  /* @see loci.formats.IFormatReader#close() */ 
    401   public void close() throws FormatException, IOException { 
     401  public void close() throws IOException { 
    402402    super.close();  
    403403    prevPixels = null; 
  • trunk/loci/formats/in/SDTReader.java

    r2616 r2672  
    9797 
    9898  /* @see loci.formats.IFormatReader#getRGBChannelCount(String) */ 
    99   public int getRGBChannelCount() throws FormatException, IOException { 
     99  public int getRGBChannelCount() { 
    100100    return intensity ? 1 : timeBins; 
    101101  } 
    102102 
    103103  /* @see loci.formats.IFormatReader#getChannelDimLengths() */ 
    104   public int[] getChannelDimLengths() throws FormatException, IOException { 
     104  public int[] getChannelDimLengths() { 
    105105    return intensity ? new int[] {channels} : new int[] {timeBins, channels}; 
    106106  } 
    107107 
    108108  /* @see loci.formats.IFormatReader#getChannelDimTypes() */ 
    109   public String[] getChannelDimTypes() throws FormatException, IOException { 
     109  public String[] getChannelDimTypes() { 
    110110    return intensity ? new String[] {FormatTools.SPECTRA} : 
    111111      new String[] {FormatTools.LIFETIME, FormatTools.SPECTRA}; 
     
    113113 
    114114  /* @see loci.formats.IFormatReader#isInterleaved(int) */ 
    115   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     115  public boolean isInterleaved(int subC) { 
    116116    return !intensity && subC == 0; 
    117117  } 
  • trunk/loci/formats/in/SEQReader.java

    r2616 r2672  
    110110    } 
    111111 
    112     try { 
    113       if (isRGB() && core.sizeC[0] != 3) core.sizeC[0] *= 3; 
    114     } 
    115     catch (IOException e) { 
    116       throw new FormatException(e); 
    117     } 
     112    if (isRGB() && core.sizeC[0] != 3) core.sizeC[0] *= 3; 
    118113 
    119114    core.currentOrder[0] = "XY"; 
  • trunk/loci/formats/in/TiffReader.java

    r2601 r2672  
    124124      // extract SizeZ, SizeC and SizeT from XML block 
    125125      if (tiffData != null) { 
    126         boolean rgb = false; 
    127         try { 
    128           rgb = isRGB(); 
    129         } 
    130         catch (IOException exc) { 
    131           throw new FormatException(exc); 
    132         } 
     126        boolean rgb = isRGB(); 
    133127 
    134128        core = new CoreMetadata(tiffData.length); 
     
    522516 
    523517  /* @see loci.formats.IFormatReader#getSeriesCount() */ 
    524   public int getSeriesCount() throws FormatException, IOException { 
     518  public int getSeriesCount() { 
    525519    return core.currentOrder.length; 
    526520  } 
  • trunk/loci/formats/in/ZeissLSMReader.java

    r2601 r2672  
    9090 
    9191  /* @see loci.formats.IFormatReader#getThumbSizeX() */ 
    92   public int getThumbSizeX() throws FormatException, IOException { 
     92  public int getThumbSizeX() { 
    9393    if (ifds.length == 1) return super.getThumbSizeX(); 
    94     return TiffTools.getIFDIntValue(ifds[1], TiffTools.IMAGE_WIDTH, false, 1); 
     94    // TODO: populate thumbnail width in initFile instead of here! 
     95    try { 
     96      return TiffTools.getIFDIntValue(ifds[1], TiffTools.IMAGE_WIDTH, false, 1); 
     97    } 
     98    catch (FormatException exc) { return -1; } 
    9599  } 
    96100 
    97101  /* @see loci.formats.IFormatReader#getThumbSizeY() */ 
    98   public int getThumbSizeY() throws FormatException, IOException { 
     102  public int getThumbSizeY() { 
    99103    if (ifds.length == 1) return super.getThumbSizeY(); 
    100     return TiffTools.getIFDIntValue(ifds[1], TiffTools.IMAGE_LENGTH, false, 1); 
     104    // TODO: populate thumbnail height in initFile instead of here! 
     105    try { 
     106      return TiffTools.getIFDIntValue(ifds[1], 
     107        TiffTools.IMAGE_LENGTH, false, 1); 
     108    } 
     109    catch (FormatException exc) { return -1; } 
    101110  } 
    102111 
     
    565574    Float pixZ = new Float(pixelSizeZ == null ? "0" : pixelSizeZ.toString()); 
    566575 
    567     try { 
    568       MetadataStore store = getMetadataStore(); 
    569       store.setDimensions(pixX, pixY, pixZ, null, null, null); 
    570     } 
    571     catch (FormatException e) { 
    572       if (debug) e.printStackTrace(); 
    573     } 
    574     catch (IOException e) { 
    575       if (debug) e.printStackTrace(); 
    576     } 
     576    MetadataStore store = getMetadataStore(); 
     577    store.setDimensions(pixX, pixY, pixZ, null, null, null); 
    577578 
    578579    // see if we have an associated MDB file 
     
    599600  /** Parses overlay-related fields. */ 
    600601  protected void parseOverlays(long data, String suffix, boolean little) 
    601     throws IOException, FormatException 
     602    throws IOException 
    602603  { 
    603604    if (data == 0) return; 
  • trunk/loci/formats/in/ZeissZVIReader.java

    r2616 r2672  
    189189 
    190190  /* @see loci.formats.IFormatReader#close(boolean) */ 
    191   public void close(boolean fileOnly) throws FormatException, IOException { 
     191  public void close(boolean fileOnly) throws IOException { 
    192192    if (fileOnly) { 
    193193      if (in != null) in.close(); 
     
    198198 
    199199  /* @see loci.formats.IFormatReader#close() */ 
    200   public void close() throws FormatException, IOException { 
     200  public void close() throws IOException { 
    201201    super.close(); 
    202202    needLegacy = false; 
  • trunk/loci/formats/ome/OMEReader.java

    r2583 r2672  
    193193 
    194194  /* @see loci.formats.IFormatReader#getImageCount() */ 
    195   public int getImageCount() throws FormatException, IOException { 
     195  public int getImageCount() { 
    196196    return numImages; 
    197197  } 
    198198 
    199199  /* @see loci.formats.IFormatReader#isRGB() */ 
    200   public boolean isRGB() throws FormatException, IOException { 
     200  public boolean isRGB() { 
    201201    return false; 
    202202  } 
    203203 
    204204  /* @see loci.formats.IFormatReader#getThumbSizeX() */ 
    205   public int getThumbSizeX() throws FormatException, IOException { 
     205  public int getThumbSizeX() { 
    206206    return thumb.getWidth(); 
    207207  } 
    208208 
    209209  /* @see loci.formats.IFormatReader#getThumbSizeY() */ 
    210   public int getThumbSizeY() throws FormatException, IOException { 
     210  public int getThumbSizeY() { 
    211211    return thumb.getHeight(); 
    212212  } 
    213213 
    214214  /* @see loci.formats.IFormatReader#isLittleEndian() */ 
    215   public boolean isLittleEndian() throws FormatException, IOException { 
     215  public boolean isLittleEndian() { 
    216216    return true; 
    217217  } 
    218218 
    219219  /* @see loci.formats.IFormatReader#isInterleaved(int) */ 
    220   public boolean isInterleaved(int subC) throws FormatException, IOException { 
     220  public boolean isInterleaved(int subC) { 
    221221    return false; 
    222222  } 
     
    268268 
    269269  /* @see loci.formats.IFormatReader#close(boolean) */ 
    270   public void close(boolean fileOnly) throws FormatException, IOException { 
    271     if (fileOnly && rc != null) rc.logout(); 
     270  public void close(boolean fileOnly) throws IOException { 
     271    if (fileOnly) { 
     272      if (rc != null) rc.logout(); 
     273    } 
    272274    else close(); 
    273275  } 
    274276 
    275277  /* @see loci.formats.IFormatReader#close() */ 
    276   public void close() throws FormatException, IOException { 
     278  public void close() throws IOException { 
    277279    if (rc != null) rc.logout(); 
    278280    thumb = null; 
  • trunk/loci/plugins/Importer.java

    r2669 r2672  
    55/* 
    66LOCI Plugins for ImageJ: a collection of ImageJ plugins including 
    7 the 4D Data Browser, OME Plugin and Bio-Formats Exporter. 
     7the LOCI Data Browser, OME Plugin and Bio-Formats Exporter. 
    88Copyright (C) 2006-@year@ Melissa Linkert, Christopher Peterson, 
    99Curtis Rueden, Philip Huettl and Francis Wong. 
     
    5858  private static final String VIEW_NONE = "Metadata only"; 
    5959  private static final String VIEW_STANDARD = "Standard ImageJ"; 
    60   private static final String VIEW_BROWSER = "4D Data Browser"; 
     60  private static final String VIEW_BROWSER = "LOCI Data Browser"; 
    6161  private static final String VIEW_IMAGE_5D = "Image5D"; 
    6262  private static final String VIEW_VIEW_5D = "View5D"; 
     
    129129      if (location == null) { 
    130130        // open a dialog asking the user where their dataset is 
    131         gd = new GenericDialog("LOCI Bio-Formats Dataset Location"); 
     131        gd = new GenericDialog("Bio-Formats Dataset Location"); 
    132132        gd.addChoice("Location: ", 
    133133          new String[] {LOCATION_LOCAL, LOCATION_OME, LOCATION_HTTP}, 
     
    155155        if (id == null || !new Location(id).exists()) { 
    156156          if (!quiet) { 
    157             IJ.error("LOCI Bio-Formats", "The specified file " + 
     157            IJ.error("Bio-Formats", "The specified file " + 
    158158              (id == null ? "" : ("(" + id + ") ")) + "does not exist."); 
    159159          } 
     
    167167      else if (LOCATION_HTTP.equals(location)) { 
    168168        // prompt for URL 
    169         gd = new GenericDialog("LOCI Bio-Formats URL"); 
     169        gd = new GenericDialog("Bio-Formats URL"); 
    170170        gd.addStringField("URL: ", "http://", 30); 
    171171        gd.showDialog(); 
     
    177177        fileName = id; 
    178178      } 
    179       else IJ.error("LOCI Bio-Formats", "Invalid location: " + location); 
     179      else IJ.error("Bio-Formats", "Invalid location: " + location); 
    180180    } 
    181181 
     
    198198        if (!quiet) { 
    199199          String msg = exc.getMessage(); 
    200           IJ.error("LOCI Bio-Formats", "Sorry, there was a problem " + 
     200          IJ.error("Bio-Formats", "Sorry, there was a problem " + 
    201201            "reading the file" + (msg == null ? "." : (":\n" + msg))); 
    202202        } 
     
    243243 
    244244    // prompt for parameters, if necessary 
    245     gd = new GenericDialog("LOCI Bio-Formats Import Options"); 
     245    gd = new GenericDialog("Bio-Formats Import Options"); 
    246246    gd.addCheckbox(mergeString, mergeChannels); 
    247247    gd.addCheckbox(colorizeString, colorize); 
     
    309309        // prompt user to confirm detected file pattern 
    310310        id = FilePattern.findPattern(new Location(id)); 
    311         gd = new GenericDialog("LOCI Bio-Formats File Stitching"); 
     311        gd = new GenericDialog("Bio-Formats File Stitching"); 
    312312        int len = id.length() + 1; 
    313313        if (len > 80) len = 80; 
     
    404404 
    405405      if (seriesCount > 1) { 
    406         gd = new GenericDialog("LOCI Bio-Formats Series Options"); 
     406        gd = new GenericDialog("Bio-Formats Series Options"); 
    407407 
    408408        GridBagLayout gdl = (GridBagLayout) gd.getLayout(); 
     
    472472        if (needRange) { 
    473473          IJ.showStatus(""); 
    474           gd = new GenericDialog("LOCI Bio-Formats Range Options"); 
     474          gd = new GenericDialog("Bio-Formats Range Options"); 
    475475          for (int i=0; i<seriesCount; i++) { 
    476476            if (!series[i]) continue; 
     
    616616      // -- Step 4d: read pixel data -- 
    617617 
    618       // only read data explicitly if not using 4D Data Browser 
     618      // only read data explicitly if not using LOCI Data Browser 
    619619      if (!stackFormat.equals(VIEW_BROWSER)) { 
    620620        IJ.showStatus("Reading " + currentFile); 
     
    879879          double elapsed = (endTime - startTime) / 1000.0; 
    880880          if (num[i] == 1) { 
    881             IJ.showStatus("LOCI Bio-Formats: " + elapsed + " seconds"); 
     881            IJ.showStatus("Bio-Formats: " + elapsed + " seconds"); 
    882882          } 
    883883          else { 
    884884            long average = (endTime - startTime) / num[i]; 
    885             IJ.showStatus("LOCI Bio-Formats: " + elapsed + " seconds (" + 
     885            IJ.showStatus("Bio-Formats: " + elapsed + " seconds (" + 
    886886              average + " ms per plane)"); 
    887887          } 
     
    948948 
    949949      if (stackFormat.equals(VIEW_BROWSER)) { 
    950         LociDataBrowser ldb = new LociDataBrowser(r, fs, id); 
    951         ldb.run(""); 
     950        boolean first = true; 
     951        for (int i=0; i<seriesCount; i++) { 
     952          if (!series[i]) continue; 
     953          IFormatReader reader = first ? r : null; 
     954          FileStitcher stitcher = first ? fs : null; 
     955          new LociDataBrowser(reader, stitcher, id, i, mergeChannels).run(); 
     956          first = false; 
     957        } 
    952958      } 
    953959    } 
     
    961967          msg = msg + "\n" + ste[i].toString(); 
    962968        } 
    963         IJ.error("LOCI Bio-Formats", "Sorry, there was a problem " + 
     969        IJ.error("Bio-Formats", "Sorry, there was a problem " + 
    964970          "reading the data" + (msg == null ? "." : (":\n" + msg))); 
    965971      } 
  • trunk/loci/plugins/browser/CacheIndicator.java

    r2665 r2672  
    3131public class CacheIndicator extends JComponent { 
    3232 
     33  // -- Constants -- 
     34 
    3335  private static final int COMPONENT_HEIGHT = 5; 
    3436  private static final boolean DEBUG = false; 
    3537 
    36   protected int [] cache,loadList; 
     38  // -- Fields -- 
     39 
     40  protected int[] cache, loadList; 
    3741  protected int cacheLength; 
    3842  protected double ratio; 
    3943  protected JScrollBar scroll; 
    4044  protected boolean doUpdate; 
     45 
     46  // -- Constructor -- 
    4147 
    4248  public CacheIndicator(JScrollBar scroll) { 
     
    4955  } 
    5056 
    51   public void setIndicator(int [] someCache, int [] someLoadList, int length) { 
     57  // -- CacheIndicator API methods -- 
     58 
     59  public void setIndicator(int[] someCache, int[] someLoadList, int length) { 
    5260    doUpdate = false; 
    5361    cache = someCache; 
     
    5967  } 
    6068 
     69  // -- JComponent API methods -- 
     70 
    6171  public void paintComponent(Graphics g) { 
    6272    super.paintComponent(g); 
    63     if(doUpdate) { 
    64       g.setColor(Color.black); 
    65       g.drawRect(0,0,getWidth()-1,COMPONENT_HEIGHT - 1); 
    66  
    67       if(ratio < 1 && ratio != 0) { 
    68         int [] loadCount = new int[getWidth()]; 
    69         int [] cacheCount = new int[getWidth()]; 
    70  
    71         for(int i = 0;i < loadCount.length;i++) { 
    72           loadCount[i] = 0; 
    73           cacheCount[i] = 0; 
    74         } 
    75  
    76         //find how many entries of the cache are handled per pixel of indicator 
    77         int perPixel; 
    78         double integers = 2; 
    79         double dPerPixel = ratio * integers; 
    80  
    81         if(DEBUG) System.out.println("Ratio: " + ratio); 
    82         while(dPerPixel < 1) { 
    83           integers++; 
    84           dPerPixel = ratio * integers; 
    85         } 
    86  
    87         Double temp = new Double(integers); 
    88         perPixel = temp.intValue(); 
    89  
    90         if(DEBUG) System.out.println("PerPixel: " + perPixel); 
    91  
    92         int colorAmount = 255 / perPixel; 
    93         if(DEBUG) System.out.println("ColorAmount: " + colorAmount); 
    94  
    95         for(int i = 0;i<loadList.length;i++) { 
    96           boolean isLoaded = false; 
    97           if( Arrays.binarySearch(cache, loadList[i]) >= 0) isLoaded = true; 
    98           int index = translate(loadList[i]); 
    99           if(!isLoaded) loadCount[index]++; 
    100         } 
    101         for(int i = 0;i<cache.length;i++) { 
    102           int index = translate(cache[i]); 
    103           cacheCount[index]++; 
    104         } 
    105  
    106         for(int i = 0;i < getWidth();i++) { 
    107           int loadColor,cacheColor; 
    108           loadColor = colorAmount * loadCount[i]; 
    109           cacheColor = colorAmount * cacheCount[i]; 
    110           if(loadColor != 0 || cacheColor != 0) { 
    111             g.setColor(new Color(loadColor,0,cacheColor)); 
    112             g.drawLine(i,1,i,COMPONENT_HEIGHT - 2); 
    113           } 
    114         } 
    115       } 
    116       else if (ratio >= 1) { 
    117         int prevLoad = -1; 
    118         int startLoad = -1; 
    119         g.setColor(Color.red); 
    120         for(int i = 0;i<loadList.length;i++) { 
    121           if(!doUpdate) break; 
    122           int toLoad = loadList[i]; 
    123  
    124           //correct for bug with length 1 
    125           if(loadList.length == 1) { 
    126             startLoad = toLoad; 
    127             prevLoad = toLoad; 
    128           } 
    129  
    130           if(startLoad == -1) { 
    131             startLoad = toLoad; 
    132             prevLoad = toLoad; 
    133           } 
    134           else if(toLoad == prevLoad + 1 && startLoad != -1) { 
    135             prevLoad = toLoad; 
    136           } 
    137           else if (toLoad != prevLoad +1 && startLoad != -1 && cache.length - 1 != i) { 
    138             prevLoad = prevLoad + 1; 
    139             int x = translate(startLoad); 
    140             int wid = translate(prevLoad) - x; 
    141             g.fillRect(x,1,wid,COMPONENT_HEIGHT - 2); 
    142             startLoad = -1; 
    143           } 
    144  
    145           if (i == loadList.length - 1) { 
    146             prevLoad = prevLoad + 1; 
    147             int x = translate(startLoad); 
    148             int wid = translate(prevLoad) - x; 
    149             g.fillRect(x,1,wid,COMPONENT_HEIGHT - 2); 
    150             startLoad = -1; 
    151           } 
    152         } 
    153  
    154         prevLoad = -1; 
    155         startLoad = -1; 
    156         g.setColor(Color.blue); 
    157         for(int i = 0;i<cache.length;i++) { 
    158           if(!doUpdate) break; 
    159           int toLoad = cache[i]; 
    160  
    161           //correct for bug with length 1 
    162           if(loadList.length == 1) { 
    163             startLoad = toLoad; 
    164             prevLoad = toLoad; 
    165           } 
    166  
    167           if(startLoad == -1) { 
    168             startLoad = toLoad; 
    169             prevLoad = toLoad; 
    170           } 
    171           else if(toLoad == prevLoad + 1 && startLoad != -1) { 
    172             prevLoad = toLoad; 
    173           } 
    174           else if (toLoad != prevLoad +1 && startLoad != -1 && cache.length - 1 != i) { 
    175             prevLoad = prevLoad + 1; 
    176             int x = translate(startLoad); 
    177             int wid = translate(prevLoad) - x; 
    178             g.fillRect(x,1,wid,COMPONENT_HEIGHT - 2); 
    179             startLoad = -1; 
    180           } 
    181  
    182           if (i == cache.length - 1) { 
    183             prevLoad = prevLoad + 1; 
    184             int x = translate(startLoad); 
    185             int wid = translate(prevLoad) - x; 
    186             g.fillRect(x,1,wid,COMPONENT_HEIGHT - 2); 
    187             startLoad = -1; 
    188           } 
    189         } 
    190       } 
    191     } 
    192   } 
     73    if (!doUpdate) return; 
     74 
     75    g.setColor(Color.black); 
     76    g.drawRect(0, 0, getWidth() - 1, COMPONENT_HEIGHT - 1); 
     77 
     78    if (ratio < 1 && ratio != 0) { 
     79      int[] loadCount = new int[getWidth()]; 
     80      int[] cacheCount = new int[getWidth()]; 
     81 
     82      for (int i=0; i<loadCount.length; i++) { 
     83        loadCount[i] = 0; 
     84        cacheCount[i] = 0; 
     85      } 
     86 
     87      // find how many entries of the cache are handled per pixel of indicator 
     88      double integers = 2; 
     89      double dPerPixel = ratio * integers; 
     90 
     91      if (DEBUG) System.out.println("Ratio: " + ratio); 
     92      while (dPerPixel < 1) { 
     93        integers++; 
     94        dPerPixel = ratio * integers; 
     95      } 
     96 
     97      int perPixel = (int) integers; 
     98 
     99      if (DEBUG) System.out.println("PerPixel: " + perPixel); 
     100 
     101      int colorAmount = 255 / perPixel; 
     102      if (DEBUG) System.out.println("ColorAmount: " + colorAmount); 
     103 
     104      for (int i=0; i<loadList.length; i++) { 
     105        boolean isLoaded = false; 
     106        if (Arrays.binarySearch(cache, loadList[i]) >= 0) isLoaded = true; 
     107        int index = translate(loadList[i]); 
     108        if (!isLoaded) loadCount[index]++; 
     109      } 
     110      for (int i=0; i<cache.length; i++) { 
     111        int index = translate(cache[i]); 
     112        cacheCount[index]++; 
     113      } 
     114 
     115      for (int i=0; i<getWidth(); i++) { 
     116        int loadColor, cacheColor; 
     117        loadColor = colorAmount * loadCount[i]; 
     118        cacheColor = colorAmount * cacheCount[i]; 
     119        if (loadColor != 0 || cacheColor != 0) { 
     120          g.setColor(new Color(loadColor, 0, cacheColor)); 
     121          g.drawLine(i, 1, i, COMPONENT_HEIGHT - 2); 
     122        } 
     123      } 
     124    } 
     125    else if (ratio >= 1) { 
     126      int prevLoad = -1; 
     127      int startLoad = -1; 
     128      g.setColor(Color.red); 
     129      for (int i=0; i<loadList.length; i++) { 
     130        if (!doUpdate) break; 
     131        int toLoad = loadList[i]; 
     132 
     133        // correct for bug with length 1 
     134        if (loadList.length == 1) { 
     135          startLoad = toLoad; 
     136          prevLoad = toLoad; 
     137        } 
     138 
     139        if (startLoad == -1) { 
     140          startLoad = toLoad; 
     141          prevLoad = toLoad; 
     142        } 
     143        else if (toLoad == prevLoad + 1 && startLoad != -1) { 
     144          prevLoad = toLoad; 
     145        } 
     146        else if (toLoad != prevLoad + 1 && 
     147          startLoad != -1 && cache.length - 1 != i) 
     148        { 
     149          prevLoad = prevLoad + 1; 
     150          int x = translate(startLoad); 
     151          int wid = translate(prevLoad) - x; 
     152          g.fillRect(x, 1, wid, COMPONENT_HEIGHT - 2); 
     153          startLoad = -1; 
     154        } 
     155 
     156        if (i == loadList.length - 1) { 
     157          prevLoad = prevLoad + 1; 
     158          int x = translate(startLoad); 
     159          int wid = translate(prevLoad) - x; 
     160          g.fillRect(x, 1, wid, COMPONENT_HEIGHT - 2); 
     161          startLoad = -1; 
     162        } 
     163      } 
     164 
     165      prevLoad = -1; 
     166      startLoad = -1; 
     167      g.setColor(Color.blue); 
     168      for (int i=0; i<cache.length; i++) { 
     169        if (!doUpdate) break; 
     170        int toLoad = cache[i]; 
     171 
     172        // correct for bug with length 1 
     173        if (loadList.length == 1) { 
     174          startLoad = toLoad; 
     175          prevLoad = toLoad; 
     176        } 
     177 
     178        if (startLoad == -1) { 
     179          startLoad = toLoad; 
     180          prevLoad = toLoad; 
     181        } 
     182        else if (toLoad == prevLoad + 1 && startLoad != -1) { 
     183          prevLoad = toLoad; 
     184        } 
     185        else if (toLoad != prevLoad + 1 && 
     186          startLoad != -1 && cache.length - 1 != i) 
     187        { 
     188          prevLoad = prevLoad + 1; 
     189          int x = translate(startLoad); 
     190          int wid = translate(prevLoad) - x; 
     191          g.fillRect(x, 1, wid, COMPONENT_HEIGHT - 2); 
     192          startLoad = -1; 
     193        } 
     194 
     195        if (i == cache.length - 1) { 
     196          prevLoad = prevLoad + 1; 
     197          int x = translate(startLoad); 
     198          int wid = translate(prevLoad) - x; 
     199          g.fillRect(x, 1, wid, COMPONENT_HEIGHT - 2); 
     200          startLoad = -1; 
     201        } 
     202      } 
     203    } 
     204  } 
     205 
     206  // -- Component API methods -- 
     207 
     208  public Dimension getPreferredSize() { 
     209    return new Dimension(scroll.getPreferredSize().width, COMPONENT_HEIGHT); 
     210  } 
     211 
     212  public Dimension getMinimumSize() { 
     213    return new Dimension(scroll.getMinimumSize().width, COMPONENT_HEIGHT); 
     214  } 
     215 
     216  public Dimension getMaximumSize() { 
     217    return new Dimension(scroll.getMaximumSize().width, COMPONENT_HEIGHT); 
     218  } 
     219 
     220  // -- Helper methods -- 
    193221 
    194222  private int translate(int cacheIndex) { 
    195223    Integer width = new Integer(scroll.getWidth()); 
    196224    double compSize = width.doubleValue(); 
    197     if(cacheLength == 0) return -1; 
     225    if (cacheLength == 0) return -1; 
    198226    Integer length = new Integer(cacheLength); 
    199227    double cLength = length.doubleValue(); 
     
    201229    double dIndex = thisIndex.doubleValue(); 
    202230 
    203     ratio = compSize/cLength; 
     231    ratio = compSize / cLength; 
    204232    double dPixel = ratio * dIndex; 
    205233 
     
    208236  } 
    209237 
    210   public Dimension getPreferredSize() { 
    211     return new Dimension(scroll.getPreferredSize().width, COMPONENT_HEIGHT); 
    212   } 
    213  
    214   public Dimension getMinimumSize() { 
    215     return new Dimension(scroll.getMinimumSize().width, COMPONENT_HEIGHT); 
    216   } 
    217  
    218   public Dimension getMaximumSize() { 
    219     return new Dimension(scroll.getMaximumSize().width, COMPONENT_HEIGHT); 
     238  // -- Main method -- 
     239 
     240  /** Tests the cache indicator GUI component. */ 
     241  public static void main(String[] args) { 
     242    JFrame frame = new JFrame("Cache indicator test"); 
     243    JPanel pane = new JPanel(); 
     244    frame.setContentPane(pane); 
     245    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     246    pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS)); 
     247    JScrollBar scroll = new JScrollBar(JScrollBar.HORIZONTAL); 
     248    pane.add(scroll); 
     249    int len = 2000; 
     250    CacheIndicator[] ci = new CacheIndicator[len]; 
     251    for (int i=0; i<len; i++) { 
     252      ci[i] = new CacheIndicator(scroll); 
     253      pane.add(ci[i]); 
     254    } 
     255    frame.pack(); 
     256    frame.setBounds(100, 100, 500, frame.getHeight()); 
     257    frame.setVisible(true); 
     258    for (int i=0; i<len; i++) { 
     259      int[] cache = new int[len / 10]; 
     260      for (int j=i; j<i+len/10; j++) cache[j-i] = j % len; 
     261      int[] load = new int[len / 10]; 
     262      for (int j=i+len/10; j<i+len/5; j++) load[j-i-len/10] = j % len; 
     263      ci[i].setIndicator(cache, load, len); 
     264    } 
    220265  } 
    221266 
  • trunk/loci/plugins/browser/CacheManager.java

    r2665 r2672  
    2626 
    2727import ij.process.ImageProcessor; 
    28 import java.io.IOException; 
    2928import java.util.Arrays; 
    3029import java.util.Vector; 
     
    232231      catch (Exception exc) { 
    233232        if (DEBUG) System.out.println("Error reading size of file."); 
    234         LociDataBrowser.exceptionMessage(exc); 
     233        LociDataBrowser.dumpException(exc); 
    235234      } 
    236235    } 
     
    428427      } 
    429428      catch (Exception exc) { 
    430         LociDataBrowser.exceptionMessage(exc); 
     429        LociDataBrowser.dumpException(exc); 
    431430        return -1; 
    432431      } 
     
    453452      catch (FormatException exc) { 
    454453        exc.printStackTrace(); 
    455         LociDataBrowser.exceptionMessage(exc); 
    456       } 
    457       catch (IOException exc) { 
    458         exc.printStackTrace(); 
    459         LociDataBrowser.exceptionMessage(exc); 
     454        LociDataBrowser.dumpException(exc); 
    460455      } 
    461456    } 
     
    498493      catch (Exception exc) { 
    499494        if (DEBUG) exc.printStackTrace(); 
    500         LociDataBrowser.exceptionMessage(exc); 
     495        LociDataBrowser.dumpException(exc); 
    501496        return null; 
    502497      } 
     
    530525      catch (Exception exc) { 
    531526        if (DEBUG) exc.printStackTrace(); 
    532         LociDataBrowser.exceptionMessage(exc); 
     527        LociDataBrowser.dumpException(exc); 
    533528        return null; 
    534529      } 
     
    598593      int[] lowSet = getLowSet(lowBound, upBound, axis, z, t, c); 
    599594 
    600       result = new int [upSet.length + lowSet.length]; 
     595      result = new int[upSet.length + lowSet.length]; 
    601596 
    602597      if (strategy == FORWARD_FIRST) { 
     
    10971092          catch (Exception exc) { 
    10981093            exc.printStackTrace(); 
    1099             LociDataBrowser.exceptionMessage(exc); 
     1094            LociDataBrowser.dumpException(exc); 
    11001095            return null; 
    11011096          } 
     
    11891184          catch (Exception exc) { 
    11901185            exc.printStackTrace(); 
    1191             LociDataBrowser.exceptionMessage(exc); 
     1186            LociDataBrowser.dumpException(exc); 
    11921187            return null; 
    11931188          } 
     
    12151210  * to load in "correct" order (kind of arbitrary here). 
    12161211  */ 
    1217   private int [] getRing(int fAxis, int sAxis, 
     1212  private int[] getRing(int fAxis, int sAxis, 
    12181213    int z,int t,int c,int r) 
    12191214  { 
     
    12261221      catch(Exception exc) { 
    12271222        if(DEBUG) exc.printStackTrace(); 
    1228         LociDataBrowser.exceptionMessage(exc); 
     1223        LociDataBrowser.dumpException(exc); 
    12291224      } 
    12301225 
     
    13051300              catch(Exception exc) { 
    13061301                if(DEBUG) exc.printStackTrace(); 
    1307                 LociDataBrowser.exceptionMessage(exc); 
     1302                LociDataBrowser.dumpException(exc); 
    13081303              } 
    13091304            } 
     
    13531348              catch(Exception exc) { 
    13541349                if(DEBUG) exc.printStackTrace(); 
    1355                 LociDataBrowser.exceptionMessage(exc); 
     1350                LociDataBrowser.dumpException(exc); 
    13561351              } 
    13571352            } 
     
    14011396              catch(Exception exc) { 
    14021397                if(DEBUG) exc.printStackTrace(); 
    1403                 LociDataBrowser.exceptionMessage(exc); 
     1398                LociDataBrowser.dumpException(exc); 
    14041399              } 
    14051400            } 
     
    14491444              catch(Exception exc) { 
    14501445                if(DEBUG) exc.printStackTrace(); 
    1451                 LociDataBrowser.exceptionMessage(exc); 
     1446                LociDataBrowser.dumpException(exc); 
    14521447              } 
    14531448            } 
     
    14901485    int sAxis,int sLow,int sUp,int z,int t,int c) 
    14911486  { 
    1492     int [] result = {}; 
     1487    int[] result = {}; 
    14931488    int fSize,sSize,fMid,sMid; 
    14941489    if (fAxis == Z_AXIS) { 
     
    15411536      catch (Exception exc) { 
    15421537        exc.printStackTrace(); 
    1543         LociDataBrowser.exceptionMessage(exc); 
     1538        LociDataBrowser.dumpException(exc); 
    15441539      } 
    15451540 
     
    15591554        catch (Exception exc) { 
    15601555          exc.printStackTrace(); 
    1561           LociDataBrowser.exceptionMessage(exc); 
     1556          LociDataBrowser.dumpException(exc); 
    15621557        } 
    15631558 
     
    15771572      catch (Exception exc) { 
    15781573        exc.printStackTrace(); 
    1579         LociDataBrowser.exceptionMessage(exc); 
     1574        LociDataBrowser.dumpException(exc); 
    15801575      } 
    15811576 
     
    15951590        catch (Exception exc) { 
    15961591          exc.printStackTrace(); 
    1597           LociDataBrowser.exceptionMessage(exc); 
     1592          LociDataBrowser.dumpException(exc); 
    15981593        } 
    15991594 
     
    16261621    int tAxis,int tLow,int tUp, int z,int t,int c) 
    16271622  { 
    1628           int [] result = {}; 
     1623    int[] result = {}; 
    16291624    int fSize,sSize,tSize,fMid,sMid,tMid; 
    16301625    if (fAxis == Z_AXIS) { 
     
    17211716    int sAxis,int sLow,int sUp,int z,int t,int c) 
    17221717  { 
    1723     int [] result = {}; 
     1718    int[] result = {}; 
    17241719    int fMax, sMax, rMax; 
    17251720 
     
    18451840      catch (Exception exc) { 
    18461841        if (DEBUG) System.out.println("Error reading size of file."); 
    1847         LociDataBrowser.exceptionMessage(exc); 
     1842        LociDataBrowser.dumpException(exc); 
    18481843      } 
    18491844    } 
     
    18631858      } 
    18641859      catch(Exception exc) { 
    1865         LociDataBrowser.exceptionMessage(exc); 
     1860        LociDataBrowser.dumpException(exc); 
    18661861      } 
    18671862 
     
    18751870      } 
    18761871      catch(Exception exc) { 
    1877         LociDataBrowser.exceptionMessage(exc); 
     1872        LociDataBrowser.dumpException(exc); 
    18781873      } 
    18791874 
     
    18941889      } 
    18951890      catch(Exception exc) { 
    1896         LociDataBrowser.exceptionMessage(exc); 
     1891        LociDataBrowser.dumpException(exc); 
    18971892      } 
    18981893      if (coords != null) { 
     
    19241919  } 
    19251920 
    1926   private static int [] makeInt(Object[] array) { 
    1927     int [] result  = new int[array.length]; 
     1921  private static int[] makeInt(Object[] array) { 
     1922    int[] result  = new int[array.length]; 
    19281923    for(int i = 0;i<result.length;i++) { 
    19291924      result[i] = ((Integer) array[i]).intValue(); 
     
    19531948      } 
    19541949      catch(Exception exc){ 
    1955         LociDataBrowser.exceptionMessage(exc); 
     1950        LociDataBrowser.dumpException(exc); 
    19561951      } 
    19571952      erase = false; 
  • trunk/loci/plugins/browser/CustomWindow.java

    r2665 r2672  
    3838import loci.formats.*; 
    3939import org.openmicroscopy.xml.OMENode; 
    40 import java.io.IOException; 
    4140 
    4241//import loci.ome.notebook.MetadataNotebook; 
     
    108107      catch (Exception exc) { 
    109108        exc.printStackTrace(); 
    110         LociDataBrowser.exceptionMessage(exc); 
     109        LociDataBrowser.dumpException(exc); 
    111110      } 
    112111    } 
     
    537536        JOptionPane.showMessageDialog(this, 
    538537          "Sorry, there has been an error creating the metadata editor.", 
    539           "LOCI 4D Data Browser", JOptionPane.ERROR_MESSAGE); 
    540         LociDataBrowser.exceptionMessage(exc); 
    541       } 
    542       catch (IOException exc) { 
    543         JOptionPane.showMessageDialog(this, 
    544           "We could not find metadata for this file.", 
    545           "LOCI 4D Data Browser", JOptionPane.ERROR_MESSAGE); 
    546       } 
    547       catch (FormatException exc) { 
    548         JOptionPane.showMessageDialog(this, 
    549           "A FormatException occured trying to get the metadata for this file.", 
    550           "LOCI 4D Data Browser", JOptionPane.ERROR_MESSAGE); 
     538          "4D Data Browser", JOptionPane.ERROR_MESSAGE); 
     539        LociDataBrowser.dumpException(exc); 
    551540      } 
    552541    } 
  • trunk/loci/plugins/browser/ImagePlusWrapper.java

    r2665 r2672  
    5757      catch (Exception e) { 
    5858        e.printStackTrace(); 
    59         LociDataBrowser.exceptionMessage(e); 
     59        LociDataBrowser.dumpException(e); 
    6060      } 
    6161 
     
    8181      catch(Exception exc) { 
    8282        exc.printStackTrace(); 
    83         LociDataBrowser.exceptionMessage(exc); 
     83        LociDataBrowser.dumpException(exc); 
    8484      } 
    8585 
     
    211211      catch (FormatException exc) { 
    212212        problem = exc; 
    213         LociDataBrowser.exceptionMessage(exc); 
     213        LociDataBrowser.dumpException(exc); 
    214214      } 
    215215      catch (IOException exc) { 
    216216        problem = exc; 
    217         LociDataBrowser.exceptionMessage(exc); 
     217        LociDataBrowser.dumpException(exc); 
    218218      } 
    219219      if (problem != null) { 
     
    228228      catch (FormatException exc) { 
    229229        exc.printStackTrace(); 
    230         LociDataBrowser.exceptionMessage(exc); 
     230        LociDataBrowser.dumpException(exc); 
    231231      } 
    232232      catch (IOException exc) { 
    233233        exc.printStackTrace(); 
    234         LociDataBrowser.exceptionMessage(exc); 
     234        LociDataBrowser.dumpException(exc); 
    235235      } 
    236236    } 
  • trunk/loci/plugins/browser/LociDataBrowser.java

    r2665 r2672  
    2626 
    2727import ij.*; 
    28 import ij.gui.GenericDialog; 
    2928import ij.gui.ImageCanvas; 
    3029import ij.io.FileInfo; 
     30import java.io.ByteArrayOutputStream; 
     31import java.io.PrintStream; 
    3132import loci.formats.*; 
    3233import loci.formats.ome.OMEXMLMetadataStore; 
     
    5657  protected DimensionSwapper reader; 
    5758 
    58   /** The file stitcher used by the reader.*/ 
     59  /** The file stitcher used by the reader. */ 
    5960  protected FileStitcher fStitch; 
    6061 
    61   /** The CustomWindow used to display data.*/ 
     62  /** The CustomWindow used to display data. */ 
    6263  protected CustomWindow cw; 
    6364 
     
    9495  private ImageStack stack; 
    9596 
    96   // -- Constructor -- 
    97  
    98   /** Constructs a new data browser. */ 
    99   public LociDataBrowser() { 
    100     fStitch = new FileStitcher(); 
    101     reader = new DimensionSwapper(new ChannelSeparator(fStitch)); 
     97  // -- Constructors -- 
     98 
     99  public LociDataBrowser(String name) { 
     100    this(null, null, name, 0, false); 
     101  } 
     102 
     103  public LociDataBrowser(String name, boolean merged) { 
     104    this(null, null, name, 0, merged); 
     105  } 
     106 
     107  public LociDataBrowser(IFormatReader r, 
     108    FileStitcher fs, String name, int seriesNo, boolean merged) 
     109  { 
     110    fStitch = fs; 
     111    if (fStitch == null) fStitch = new FileStitcher(); 
     112    if (r == null) { 
     113      r = merged ? (IFormatReader) 
     114        new ChannelMerger(fStitch) : new ChannelSeparator(fStitch); 
     115    } 
     116    reader = new DimensionSwapper(r); 
     117    id = name; 
     118    series = seriesNo; 
     119    virtual = true; 
     120    try { 
     121      reader.setId(id); 
     122      reader.setSeries(series); 
     123    } 
     124    catch (Exception exc) { 
     125      exc.printStackTrace(); 
     126      dumpException(exc); 
     127      String msg = exc.getMessage(); 
     128      IJ.showMessage("4D Data Browser", "Sorry, there was a problem " + 
     129        "reading the data" + (msg == null ? "." : (": " + msg))); 
     130    } 
     131 
    102132// TODO: macros 
    103133//    macro = new MacroManager(); 
     
    106136  } 
    107137 
    108   public LociDataBrowser(String name) { 
    109     this(); 
    110     id = name; 
    111     virtual = true; 
    112   } 
    113  
    114   public LociDataBrowser(boolean merged) { 
    115     fStitch = new FileStitcher(); 
    116     if (merged) reader = new DimensionSwapper(new ChannelMerger(fStitch)); 
    117     else reader = new DimensionSwapper(new ChannelSeparator(fStitch)); 
    118   } 
    119  
    120   public LociDataBrowser(String name, boolean merged) { 
    121     this(merged); 
    122     id = name; 
    123     virtual = true; 
    124   } 
    125  
    126   public LociDataBrowser(IFormatReader r, FileStitcher fs, String name) { 
    127     virtual = true; 
    128     reader = new DimensionSwapper(r); 
    129     fStitch = fs; 
    130     id = name; 
    131   } 
    132  
    133138  // -- LociDataBrowser API methods -- 
    134139 
    135   /** 
    136    * Displays the given ImageJ image in a 4D browser window. 
    137    */ 
     140  /** Displays the given ImageJ image in a 4D browser window. */ 
    138141  private void show(ImagePlus imp) { 
    139142    int stackSize = imp == null ? 0 : imp.getStackSize(); 
     
    158161  } 
    159162 
    160   /** Set the length of each dimensional axis and the dimension order. */ 
     163  /** Sets the length of each dimensional axis and the dimension order. */ 
    161164  public void setDimensions(int sizeZ, int sizeC, int sizeT, int z, 
    162165    int c, int t) 
     
    180183  } 
    181184 
    182   /** Reset all dimensional data in case they've switched.*/ 
     185  /** Resets all dimensional data in case they've switched. */ 
    183186  public void setDimensions() { 
    184187    String order = null; 
    185188 
    186189    try { 
    187       reader.setId(id); 
    188190      numZ = reader.getSizeZ(); 
    189191      numC = reader.getEffectiveSizeC(); 
     
    193195    catch (Exception exc) { 
    194196      if (DEBUG) exc.printStackTrace(); 
    195       exceptionMessage(exc); 
     197      dumpException(exc); 
    196198      return; 
    197199    } 
     
    219221      catch (Exception exc) { 
    220222        if (DEBUG) exc.printStackTrace(); 
    221         exceptionMessage(exc); 
     223        dumpException(exc); 
    222224      } 
    223225    } 
     
    225227  } 
    226228 
    227   /** Sets the series to open. */ 
    228   public void setSeries(int num) { 
    229     // TODO : this isn't the prettiest way of prompting for a series 
    230     GenericDialog datasets = 
    231       new GenericDialog("4D Data Browser Series Chooser"); 
    232  
    233     String[] values = new String[num]; 
    234     for (int i=0; i<values.length; i++) values[i] = "" + i; 
    235  
    236     datasets.addChoice("Series ", values, "0"); 
    237  
    238     if (num > 1) datasets.showDialog(); 
    239  
    240     series = Integer.parseInt(datasets.getNextChoice()); 
    241   } 
    242  
    243   public static void exceptionMessage(Exception exc) { 
    244     if(DEBUG) { 
    245       String msg = exc.toString(); 
    246       StackTraceElement[] ste = exc.getStackTrace(); 
    247       for(int i = 0;i<ste.length;i++) { 
    248        msg = msg + "\n" + ste[i].toString(); 
    249       } 
    250  
    251       IJ.showMessage(msg); 
    252     } 
     229  public static void dumpException(Exception exc) { 
     230    exc.printStackTrace(); 
     231    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     232    exc.printStackTrace(new PrintStream(out)); 
     233    String dump = new String(out.toByteArray()); 
     234    String msg = "Sorry, there was a problem:\n\n" + dump; 
     235    IJ.showMessage("4D Data Browser", msg); 
    253236  } 
    254237 
     
    256239    if (cached != virtual) { 
    257240      virtual = !virtual; 
    258       run(""); 
     241      run(); 
    259242    } 
    260243  } 
     
    264247      IFormatReader parent = ((ReaderWrapper) reader).getReader(); 
    265248      reader = new DimensionSwapper(new ChannelSeparator(parent)); 
    266       run(""); 
     249      run(); 
    267250    } 
    268251    else if (reader.getReader() instanceof ChannelSeparator) { 
    269252      IFormatReader parent = ((ReaderWrapper) reader).getReader(); 
    270253      reader = new DimensionSwapper(new ChannelMerger(parent)); 
    271       run(""); 
     254      run(); 
    272255    } 
    273256    else { 
     
    281264  } 
    282265 
    283   public void run(String arg) { 
     266  public void run() { 
    284267// TODO: macros 
    285268//    macro = new MacroManager(); 
     
    287270//    macroThread.start(); 
    288271 
    289     boolean done2 = false; 
    290     String directory = ""; 
    291     String name = ""; 
    292     boolean quiet = false; 
    293  
    294     // get file name and virtual stack option 
    295272    stack = null; 
    296     while (!done2) { 
    297       try { 
    298         ImagePlusWrapper ipw = null; 
    299  
    300         // process input 
    301         lengths = new int[3]; 
    302  
    303         if (virtual) { 
    304           synchronized (reader) { 
    305             reader.setId(id); 
    306             reader.setSeries(series); 
    307  
    308             int num = reader.getImageCount(); 
    309             if(manager != null) { 
    310               manager.finish(); 
    311               manager = null; 
    312             } 
    313             manager = new CacheManager(0, 0, 0, 0, 0, 0, 20, 0, 0, 
    314               this, id, CacheManager.T_AXIS, 
    315               CacheManager.CROSS_MODE, CacheManager.FORWARD_FIRST); 
    316  
    317             try { 
    318               setDimensions(); 
    319  
    320               // CTR: stack must not be null 
    321               int sizeX = reader.getSizeX(); 
    322               int sizeY = reader.getSizeY(); 
    323               stack = new ImageStack(sizeX, sizeY); 
    324               // CTR: must add at least one image to the stack 
    325               stack.addSlice(id + " : 1", manager.getSlice(0, 0, 0)); 
    326             } 
    327             catch (OutOfMemoryError e) { 
    328               IJ.outOfMemory("LociDataBrowser"); 
    329               if (stack != null) stack.trim(); 
    330             } 
     273    try { 
     274      ImagePlusWrapper ipw = null; 
     275 
     276      // process input 
     277      lengths = new int[3]; 
     278 
     279      if (virtual) { 
     280        synchronized (reader) { 
     281          int num = reader.getImageCount(); 
     282          if (manager != null) { 
     283            manager.finish(); 
     284            manager = null; 
    331285          } 
    332  
    333           if (stack == null || stack.getSize() == 0) { 
    334             IJ.error("Sorry, there was a problem creating the image stack."); 
    335             return; 
     286          manager = new CacheManager(0, 0, 0, 0, 0, 0, 20, 0, 0, 
     287            this, id, CacheManager.T_AXIS, 
     288            CacheManager.CROSS_MODE, CacheManager.FORWARD_FIRST); 
     289 
     290          try { 
     291            setDimensions(); 
     292 
     293            // CTR: stack must not be null 
     294            int sizeX = reader.getSizeX(); 
     295            int sizeY = reader.getSizeY(); 
     296            stack = new ImageStack(sizeX, sizeY); 
     297            // CTR: must add at least one image to the stack 
     298            stack.addSlice(id + " : 1", manager.getSlice(0, 0, 0)); 
    336299          } 
    337           ImagePlus imp = new ImagePlus(id, stack); 
    338  
    339           FileInfo fi = new FileInfo(); 
    340           try { 
    341             OMEXMLMetadataStore store = 
    342               (OMEXMLMetadataStore) reader.getMetadataStore(); 
    343             fi.description = store.dumpXML(); 
     300          catch (OutOfMemoryError e) { 
     301            IJ.outOfMemory("4D Data Browser"); 
     302            if (stack != null) stack.trim(); 
    344303          } 
    345           catch (Exception exc) { 
    346             exc.printStackTrace(); 
    347             exceptionMessage(exc); 
    348           } 
    349  
    350           imp.setFileInfo(fi); 
    351           show(imp); 
    352         } 
    353         else { 
    354           manager = null; 
    355           ipw = new ImagePlusWrapper(id, reader, fStitch, true); 
    356           setDimensions(); 
    357  
    358           int stackSize = ipw.getImagePlus().getStackSize(); 
    359           if (stackSize != numZ * numT * numC) { 
    360             System.err.println("Error, stack size mismatch with dimension " + 
    361               "sizes: stackSize=" + stackSize + ", numZ=" + numZ + 
    362               ", numT=" + numT + ", numC=" + numC); 
    363           } 
    364  
    365           FileInfo fi = ipw.getImagePlus().getOriginalFileInfo(); 
    366           if (fi == null) fi = new FileInfo(); 
    367           try { 
    368             fi.description = ((OMEXMLMetadataStore) ipw.store).dumpXML(); 
    369           } 
    370           catch (Exception exc) { 
    371             exceptionMessage(exc); 
    372           } 
    373           ipw.getImagePlus().setFileInfo(fi); 
    374  
    375           show(ipw.getImagePlus()); 
    376         } 
    377         done2 = true; 
     304        } 
     305 
     306        if (stack == null || stack.getSize() == 0) { 
     307          IJ.error("Sorry, there was a problem creating the image stack."); 
     308          return; 
     309        } 
     310        ImagePlus imp = new ImagePlus(id, stack); 
     311 
     312        FileInfo fi = new FileInfo(); 
     313 
     314        MetadataStore store = reader.getMetadataStore(); 
     315        if (store instanceof OMEXMLMetadataStore) { 
     316          fi.description = ((OMEXMLMetadataStore) store).dumpXML(); 
     317        } 
     318 
     319        imp.setFileInfo(fi); 
     320        show(imp); 
    378321      } 
    379       catch (Exception exc) { 
    380         exc.printStackTrace(); 
    381         IJ.showStatus(""); 
    382         if (!quiet) { 
    383           exceptionMessage(exc); 
    384           String msg = exc.getMessage(); 
    385           IJ.showMessage("LOCI Bio-Formats", "Sorry, there was a problem " + 
    386             "reading the data" + (msg == null ? "." : (": " + msg))); 
    387         } 
    388         if (DEBUG) System.err.println("Read error"); 
    389         done2 = false; 
     322      else { 
     323        manager = null; 
     324        ipw = new ImagePlusWrapper(id, reader, fStitch, true); 
     325        setDimensions(); 
     326 
     327        int stackSize = ipw.getImagePlus().getStackSize(); 
     328        if (stackSize != numZ * numT * numC) { 
     329          System.err.println("Error, stack size mismatch with dimension " + 
     330            "sizes: stackSize=" + stackSize + ", numZ=" + numZ + 
     331            ", numT=" + numT + ", numC=" + numC); 
     332        } 
     333 
     334        FileInfo fi = ipw.getImagePlus().getOriginalFileInfo(); 
     335        if (fi == null) fi = new FileInfo(); 
     336 
     337        MetadataStore store = ipw.store; 
     338        if (store instanceof OMEXMLMetadataStore) { 
     339          fi.description = ((OMEXMLMetadataStore) store).dumpXML(); 
     340        } 
     341 
     342        ipw.getImagePlus().setFileInfo(fi); 
     343        show(ipw.getImagePlus()); 
    390344      } 
    391345    } 
     346    catch (Exception exc) { dumpException(exc); } 
    392347  } 
    393348 
     
    396351  /** Main method, for testing. */ 
    397352  public static void main(String[] args) { 
     353    if (args.length < 1) { 
     354      System.out.println("Please specify a filename on the command line."); 
     355      System.exit(1); 
     356    } 
    398357    new ImageJ(null); 
    399     StringBuffer sb = new StringBuffer(); 
    400     for (int i=0; i<args.length; i++) { 
    401       if (i > 0) sb.append(" "); 
    402       sb.append(args[i]); 
    403     } 
    404     new LociDataBrowser().run(sb.toString()); 
     358    new LociDataBrowser(args[0]).run(); 
    405359  } 
    406360 
  • trunk/loci/plugins/browser/OptionsWindow.java

    r2665 r2672  
    9292  // -- Constructor -- 
    9393  public OptionsWindow(int numZ, int numT, CustomWindow c) { 
    94     super("LOCI Data Browser - Options"); 
     94    super("4D Data Browser - Options"); 
    9595    setBackground(Color.gray); 
    9696 
     
    122122      catch(Exception exc) { 
    123123        exc.printStackTrace(); 
    124         LociDataBrowser.exceptionMessage(exc); 
     124        LociDataBrowser.dumpException(exc); 
    125125      } 
    126126    } 
     
    136136      catch(Exception exc) { 
    137137        exc.printStackTrace(); 
    138         LociDataBrowser.exceptionMessage(exc); 
     138        LociDataBrowser.dumpException(exc); 
    139139      } 
    140140    } 
     
    763763        catch(Exception exc) { 
    764764          exc.printStackTrace(); 
    765           LociDataBrowser.exceptionMessage(exc); 
     765          LociDataBrowser.dumpException(exc); 
    766766        } 
    767767        update = false; 
     
    798798        catch(Exception exc) { 
    799799          exc.printStackTrace(); 
    800           LociDataBrowser.exceptionMessage(exc); 
     800          LociDataBrowser.dumpException(exc); 
    801801        } 
    802802        update = false; 
     
    833833        catch(Exception exc) { 
    834834          exc.printStackTrace(); 
    835           LociDataBrowser.exceptionMessage(exc); 
     835          LociDataBrowser.dumpException(exc); 
    836836        } 
    837837        update = false; 
     
    853853        catch(Exception exc) { 
    854854          exc.printStackTrace(); 
    855           LociDataBrowser.exceptionMessage(exc); 
     855          LociDataBrowser.dumpException(exc); 
    856856        } 
    857857        cw.db.setDimensions(); 
  • trunk/loci/plugins/plugins.config

    r2178 r2672  
    2222# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
    2323 
    24 #Plugins>LOCI, "4D Data Browser", loci.plugins.browser.BrowserPlugin("") 
     24#Plugins>LOCI, "4D Data Browser", loci.plugins.LociImporter("location=[Local machine] groupFiles stackFormat=[LOCI Data Browser]") 
    2525#Plugins>LOCI, "OME Plugin", loci.plugins.ome.OMEPlugin("") 
    2626Plugins>LOCI, "Bio-Formats Importer", loci.plugins.LociImporter("location=[Local machine]") 
  • trunk/loci/visbio/data/Dataset.java

    r2621 r2672  
    570570    String fname = new File(ids[0]).getName(); 
    571571    status(3, numTasks, "Reading " + fname + " metadata"); 
    572     try { metadata = readers[0].getMetadata(); } 
    573     catch (IOException exc) { metadata = null; } 
    574     catch (FormatException exc) { metadata = null; } 
     572    metadata = readers[0].getMetadata(); 
    575573    if (metadata == null) { 
    576574      System.err.println("Could not read metadata from " + 
     
    578576      return; 
    579577    } 
    580     try { 
    581       MetadataStore ms = readers[0].getMetadataStore(); 
    582       if (ms instanceof OMEXMLMetadataStore) { 
    583         ome = (OMENode) ((OMEXMLMetadataStore) ms).getRoot(); 
    584       } 
    585     } 
    586     catch (IOException exc) { ome = null; } 
    587     catch (FormatException exc) { ome = null; } 
     578    MetadataStore ms = readers[0].getMetadataStore(); 
     579    if (ms instanceof OMEXMLMetadataStore) { 
     580      ome = (OMENode) ((OMEXMLMetadataStore) ms).getRoot(); 
     581    } 
    588582 
    589583    // construct metadata controls 
  • trunk/loci/visbio/data/DatasetPane.java

    r2610 r2672  
    413413 
    414414    // get dimensional axis lengths 
    415     String dimOrder = null; 
    416     int sizeX = -1, sizeY = -1; 
    417     int sizeZ = 1, sizeT = 1, sizeC = 1; 
    418     try { 
    419       sizeX = reader.getSizeX(); 
    420       sizeY = reader.getSizeY(); 
    421       sizeZ = reader.getSizeZ(); 
    422       sizeT = reader.getSizeT(); 
    423       sizeC = reader.getSizeC(); 
    424       dimOrder = reader.getDimensionOrder(); 
    425     } 
    426     catch (FormatException exc) { exc.printStackTrace(); } 
    427     catch (IOException exc) { exc.printStackTrace(); } 
     415    int sizeX = reader.getSizeX(); 
     416    int sizeY = reader.getSizeY(); 
     417    int sizeZ = reader.getSizeZ(); 
     418    int sizeT = reader.getSizeT(); 
     419    int sizeC = reader.getSizeC(); 
     420    String dimOrder = reader.getDimensionOrder(); 
    428421 
    429422    // autodetect dimensional types 
Note: See TracChangeset for help on using the changeset viewer.