Changeset 2669


Ignore:
Timestamp:
04/25/07 10:31:12 (13 years ago)
Author:
melissa
Message:
  • Added Hashtables to CoreMetadata to allow separation of series-specific metadata.
  • Fixed bug in ImageJ thumbnail loader.
  • Changed importer to use ij.text.TextWindow to display metadata - this makes it easier for macros to retrieve metadata values.
Location:
trunk/loci
Files:
1 deleted
4 edited

Legend:

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

    r2584 r2669  
    2525package loci.formats; 
    2626 
     27import java.util.*; 
     28 
    2729/** Encompasses core metadata values. */ 
    2830public class CoreMetadata { 
     
    3234  public String[] currentOrder; 
    3335  public boolean[] orderCertain, rgb, littleEndian, interleaved; 
     36  public Hashtable[] seriesMetadata; 
    3437 
    3538  public CoreMetadata(int series) { 
     
    4851    littleEndian = new boolean[series]; 
    4952    interleaved = new boolean[series]; 
     53    seriesMetadata = new Hashtable[series]; 
     54    for (int i=0; i<series; i++) seriesMetadata[i] = new Hashtable();  
    5055  } 
    5156 
  • trunk/loci/formats/in/LIFReader.java

    r2641 r2669  
    240240      if (token.indexOf("=") != -1) { 
    241241        int idx = token.indexOf("Identifier") + 12; 
     242        if (idx == 11) idx = token.indexOf("Description") + 13; 
     243         
    242244        key = token.substring(idx, token.indexOf("\"", idx + 1)); 
    243245        idx = token.indexOf("Variant") + 9; 
     
    453455      Integer ii = new Integer(i); 
    454456 
    455       store.setImage((String) seriesNames.get(i), null, null, ii); 
     457      String seriesName = (String) seriesNames.get(i); 
     458      if (seriesName == null || seriesName.trim().length() == 0) { 
     459        seriesName = "Series " + (i + 1); 
     460      } 
     461      store.setImage(seriesName, null, null, ii); 
    456462 
    457463      store.setPixels( 
     
    476482      } 
    477483 
    478       String zoom = 
    479         (String) getMeta((String) seriesNames.get(i) + " - dblZoom"); 
     484      String zoom = (String) getMeta(seriesName + " - dblZoom"); 
    480485      store.setDisplayOptions(zoom == null ? null : new Float(zoom), 
    481486        new Boolean(core.sizeC[i] > 1), new Boolean(core.sizeC[i] > 1), 
    482487        new Boolean(core.sizeC[i] > 2), new Boolean(isRGB()), null, 
    483488        null, null, null, null, ii, null, null, null, null, null); 
     489     
     490      Enumeration keys = metadata.keys(); 
     491      while (keys.hasMoreElements()) { 
     492        String k = (String) keys.nextElement(); 
     493        if (k.startsWith(seriesName) || k.indexOf("-") == -1) { 
     494          core.seriesMetadata[i].put(k, metadata.get(k)); 
     495        } 
     496      } 
    484497    } 
    485498  } 
  • trunk/loci/plugins/Importer.java

    r2660 r2669  
    3232import ij.measure.Calibration; 
    3333import ij.process.*; 
     34import ij.text.TextWindow; 
    3435import java.awt.*; 
    3536import java.awt.event.ItemEvent; 
     
    3738import java.awt.image.*; 
    3839import java.io.IOException; 
    39 import java.util.Hashtable; 
    40 import java.util.Vector; 
     40import java.util.*; 
    4141import javax.swing.Box; 
    4242import javax.swing.JFrame; 
     
    362362        cStep[i] = zStep[i] = tStep[i] = 1; 
    363363        StringBuffer sb = new StringBuffer(); 
    364         if (seriesCount > 1) { 
    365           sb.append("Series_"); 
    366           sb.append(i + 1); 
    367           sb.append(" - "); 
    368         } 
    369364        String name = store.getImageName(new Integer(i)); 
    370365        if (name != null && name.length() > 0) { 
     
    569564 
    570565        // display standard metadata in a table in its own window 
    571         Hashtable meta = r.getMetadata(); 
    572         meta.put("\t\t" + idType, currentFile); 
     566        Hashtable meta = new Hashtable(); 
     567        if (r.getSeriesCount() == 1) meta = r.getMetadata();  
     568        meta.put(idType, currentFile); 
    573569        int digits = digits(seriesCount); 
    574570        for (int i=0; i<seriesCount; i++) { 
    575571          if (!series[i]) continue; 
    576572          r.setSeries(i); 
     573          meta.putAll(r.getCoreMetadata().seriesMetadata[i]);  
     574           
    577575          String s; 
    578576          if (seriesCount > 1) { 
     
    586584          } 
    587585          else s = ""; 
    588           meta.put("\t" + s + "SizeX", new Integer(r.getSizeX())); 
    589           meta.put("\t" + s + "SizeY", new Integer(r.getSizeY())); 
    590           meta.put("\t" + s + "SizeZ", new Integer(r.getSizeZ())); 
    591           meta.put("\t" + s + "SizeT", new Integer(r.getSizeT())); 
    592           meta.put("\t" + s + "SizeC", new Integer(r.getSizeC())); 
    593           meta.put("\t" + s + "IsRGB", new Boolean(r.isRGB())); 
    594           meta.put("\t" + s + "PixelType", 
     586          meta.put(s + "SizeX", new Integer(r.getSizeX())); 
     587          meta.put(s + "SizeY", new Integer(r.getSizeY())); 
     588          meta.put(s + "SizeZ", new Integer(r.getSizeZ())); 
     589          meta.put(s + "SizeT", new Integer(r.getSizeT())); 
     590          meta.put(s + "SizeC", new Integer(r.getSizeC())); 
     591          meta.put(s + "IsRGB", new Boolean(r.isRGB())); 
     592          meta.put(s + "PixelType", 
    595593            FormatTools.getPixelTypeString(r.getPixelType())); 
    596           meta.put("\t" + s + "LittleEndian", 
    597             new Boolean(r.isLittleEndian())); 
    598           meta.put("\t" + s + "DimensionOrder", r.getDimensionOrder()); 
    599           meta.put("\t" + s + "IsInterleaved", 
    600             new Boolean(r.isInterleaved())); 
    601         } 
    602         MetadataPane mp = new MetadataPane(meta); 
    603         JFrame frame = new JFrame("Metadata - " + currentFile); 
    604         frame.setContentPane(mp); 
    605         frame.pack(); 
    606         frame.setVisible(true); 
    607         frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    608         WindowManager.addWindow(frame); 
     594          meta.put(s + "LittleEndian", new Boolean(r.isLittleEndian())); 
     595          meta.put(s + "DimensionOrder", r.getDimensionOrder()); 
     596          meta.put(s + "IsInterleaved", new Boolean(r.isInterleaved())); 
     597        } 
     598 
     599        Enumeration keys = meta.keys(); 
     600        StringBuffer sb = new StringBuffer(); 
     601 
     602        while (keys.hasMoreElements()) { 
     603          Object key = keys.nextElement(); 
     604          sb.append(key); 
     605          sb.append("\t \t"); 
     606          sb.append(meta.get(key)); 
     607          sb.append("\n"); 
     608        } 
     609         
     610        TextWindow tw = new TextWindow("Metadata - " + currentFile,  
     611          "Key\t \tValue", sb.toString(), 400, 400); 
     612        tw.setVisible(true); 
     613        WindowManager.addWindow(tw); 
    609614      } 
    610615 
  • trunk/loci/plugins/ThumbLoader.java

    r2583 r2669  
    4646 
    4747  private IFormatReader ir; 
    48   private String id; 
    4948  private Panel[] p; 
    5049  private Dialog dialog; 
     
    9190    try { 
    9291      IJ.showStatus("Gathering series information"); 
    93       ir.setId(id);  
    9492      int seriesCount = ir.getSeriesCount(); 
    9593 
Note: See TracChangeset for help on using the changeset viewer.