Changeset 1837


Ignore:
Timestamp:
11/21/06 14:17:17 (13 years ago)
Author:
chris
Message:

Browser:
1) fixed annoying bug that made the browser's window
title dissapear.
2) made it so that the browser window's title reflects
the whole file pattern now if using a cachemanager.
3) streamlined code for setting up axes in LociDataBrowser
to reflect new FileStitcher API.

Location:
trunk/loci/plugins/browser
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/browser/CustomWindow.java

    r1801 r1837  
    3636import loci.formats.ReflectedUniverse; 
    3737import loci.formats.ReflectException; 
     38import loci.formats.FilePattern; 
    3839//import loci.ome.notebook.MetadataNotebook; 
    3940 
     
    8485  private CardLayout switcher; 
    8586  private JPanel channelPanel; 
     87  private String patternTitle; 
    8688 
    8789  // -- Constructor -- 
     
    9294    this.db = db; 
    9395    ow = null; 
    94     String title = imp.getTitle(); 
    95     this.setTitle(title.substring(title.lastIndexOf(File.separatorChar) + 1)); 
     96     
     97    String id = db.id;     
     98    if(db.virtual) { 
     99      FilePattern fp = null; 
     100      try { fp = db.fStitch.getFilePattern(id); } 
     101      catch (Exception exc) {exc.printStackTrace();} 
     102       
     103      String[] prefixes = fp.getPrefixes(); 
     104      String[] blocks = fp.getBlocks(); 
     105      String suffix = fp.getSuffix(); 
     106       
     107      StringBuffer sb = new StringBuffer(); 
     108      for (int i=0; i<prefixes.length; i++) { 
     109        sb.append(prefixes[i]); 
     110        sb.append(blocks[i]); 
     111      } 
     112      sb.append(suffix); 
     113 
     114      patternTitle = sb.toString(); 
     115      setTitle(patternTitle); 
     116    } 
     117    else setTitle(id); 
    96118 
    97119    //setup which variables the sliders are set to 
     
    311333    index++; 
    312334 
     335    String title = null; 
     336    if(db.virtual) title = patternTitle; 
     337    else title = db.id; 
     338 
    313339    if (db.manager != null) { 
    314       imp.setProcessor("", db.manager.getSlice(index - 1)); 
     340      imp.setProcessor(title, db.manager.getSlice(index - 1)); 
    315341      index = 1; 
    316342    } 
     
    341367 
    342368  public void showTempSlice(int index) { 
    343  
    344     imp.setProcessor("", db.manager.getTempSlice(index)); 
     369    String title = null; 
     370    if(db.virtual) title = patternTitle; 
     371    else title = db.id; 
     372    imp.setProcessor(title, db.manager.getTempSlice(index)); 
    345373    imp.updateAndDraw(); 
    346374 
  • trunk/loci/plugins/browser/ImagePlusWrapper.java

    r1562 r1837  
    4545   * @param stitch true if use file stitching 
    4646   */ 
    47   public ImagePlusWrapper(String name, IFormatReader r, boolean stitch) 
     47  public ImagePlusWrapper(String name, IFormatReader r, FileStitcher fs, boolean stitch) 
    4848    throws IOException, FormatException 
    4949  { 
     
    5757 
    5858      // get # images in all matching files 
    59       numTotal = r.getImageCount(name); 
    60  
    61       dim = r.getDimensionOrder(name); 
    62       sizeX = r.getSizeX(name); 
    63       sizeY = r.getSizeY(name); 
    64       sizeZ = r.getSizeZ(name); 
    65       sizeT = r.getSizeT(name); 
    66       sizeC = r.getSizeC(name); 
    67       if (LociDataBrowser.DEBUG) { 
    68         System.err.println("numTotal = "+numTotal); 
    69       } 
     59       
     60      try { 
     61        numTotal = fs.getImageCount(name); 
     62         
     63        dim = fs.getDimensionOrder(name); 
     64        sizeX = fs.getSizeX(name); 
     65        sizeY = fs.getSizeY(name); 
     66        sizeZ = fs.getSizeZ(name); 
     67        sizeT = fs.getSizeT(name); 
     68        sizeC = fs.getSizeC(name); 
     69        if (LociDataBrowser.DEBUG) { 
     70          System.err.println("numTotal = "+numTotal); 
     71        } 
     72      } 
     73      catch(Exception exc) { exc.printStackTrace();} 
    7074 
    7175      int num = r.getImageCount(name); 
  • trunk/loci/plugins/browser/LociDataBrowser.java

    r1790 r1837  
    5454  protected IFormatReader reader; 
    5555   
     56  /** The file stitcher used by the reader.*/ 
     57  protected FileStitcher fStitch; 
     58   
    5659  /** The CustomWindow used to display data.*/ 
    5760  protected CustomWindow cw; 
     
    8790  /** Constructs a new data browser. */ 
    8891  public LociDataBrowser() { 
    89     reader = new ChannelSeparator(new FileStitcher()); 
     92    fStitch = new FileStitcher(); 
     93    reader = new ChannelSeparator(fStitch); 
    9094  } 
    9195 
     
    109113    cw = new CustomWindow(this, imp, new ImageCanvas(imp)); 
    110114  } 
    111  
    112   /** Set the length of each dimensional axis and the dimension order. */ 
    113   public void setDimensions(int sizeZ, int sizeC, int sizeT, int z, 
    114     int c, int t) 
    115   { 
    116     numZ = sizeZ; 
    117     numC = sizeC; 
    118     numT = sizeT; 
    119  
     115   
     116  /** Reset all dimensional data in case they've switched.*/ 
     117  public void setDimensions() { 
     118    String order = null; 
     119   
     120    try { 
     121      numZ = fStitch.getSizeZ(id); 
     122      numC = fStitch.getSizeC(id); 
     123      numT = fStitch.getSizeT(id); 
     124      order = fStitch.getDimensionOrder(id); 
     125    } 
     126    catch (Exception exc) { 
     127      if (DEBUG) exc.printStackTrace(); 
     128      return; 
     129    } 
     130     
    120131    hasZ = numZ > 1; 
    121132    hasC = numC > 1; 
    122133    hasT = numT > 1; 
    123  
    124     lengths = new int[3]; 
    125     lengths[z] = numZ; 
    126     lengths[c] = numC; 
    127     lengths[t] = numT; 
    128  
    129     zIndex = z; 
    130     cIndex = c; 
    131     tIndex = t; 
     134     
     135    zIndex = order.indexOf("Z") - 2; 
     136    cIndex = order.indexOf("C") - 2; 
     137    tIndex = order.indexOf("T") - 2; 
     138 
     139    lengths[zIndex] = numZ; 
     140    lengths[tIndex] = numT; 
     141    lengths[cIndex] = numC; 
    132142  } 
    133143 
     
    198208            int num = reader.getImageCount(id); 
    199209 
    200             int size = 20; 
    201             if (num < size) size = num; 
    202  
    203             String ord = reader.getDimensionOrder(id); 
    204             ord = ord.substring(2); 
    205             int minor, major; 
    206             if (ord.charAt(0) == 'Z') { 
    207               minor = reader.getSizeZ(id); 
    208               major = reader.getSizeT(id); 
    209             } 
    210             else if (ord.charAt(0) == 'T') { 
    211               major = reader.getSizeZ(id); 
    212               minor = reader.getSizeT(id); 
    213             } 
    214             else { 
    215               if (ord.charAt(1) == 'Z') { 
    216                 minor = reader.getSizeZ(id); 
    217                 major = reader.getSizeT(id); 
    218               } 
    219               else { 
    220                 major = reader.getSizeZ(id); 
    221                 minor = reader.getSizeT(id); 
    222               } 
    223             } 
    224  
    225210            manager = new CacheManager(0, 0, 0, 0, 0, 0, 20, 0, 0, 
    226211              this, id, CacheManager.T_AXIS, 
     
    228213 
    229214            try { 
    230               numZ = reader.getSizeZ(id); 
    231               numC = reader.getSizeC(id); 
     215              setDimensions(); 
    232216              if (reader.isRGB(id)) { 
    233217                if (numC <= 3) numC = 1; 
    234218                else numC /= 3; 
    235219              } 
    236               numT = reader.getSizeT(id); 
    237               hasZ = numZ > 1; 
    238               hasC = numC > 1; 
    239               hasT = numT > 1; 
    240  
    241               String order = reader.getDimensionOrder(id); 
    242               zIndex = order.indexOf("Z") - 2; 
    243               cIndex = order.indexOf("C") - 2; 
    244               tIndex = order.indexOf("T") - 2; 
    245  
    246               lengths[zIndex] = numZ; 
    247               lengths[tIndex] = numT; 
    248               lengths[cIndex] = numC; 
    249220 
    250221              // CTR: stack must not be null 
     
    277248        } 
    278249        else { 
    279           ipw = new ImagePlusWrapper(id, reader, true); 
    280           numZ = ipw.sizeZ; numT = ipw.sizeT; numC = ipw.sizeC; 
    281           zIndex = ipw.dim.indexOf('Z') - 2; 
    282           tIndex = ipw.dim.indexOf('T') - 2; 
    283           cIndex = ipw.dim.indexOf('C') - 2; 
     250          ipw = new ImagePlusWrapper(id, reader, fStitch, true); 
     251          setDimensions(); 
    284252 
    285253          if (ipw.getImagePlus().getStackSize() != numZ * numT * numC) { 
    286254            numC = 1; 
    287255          } 
    288  
    289           lengths[zIndex] = numZ; 
    290           lengths[tIndex] = numT; 
    291           lengths[cIndex] = numC; 
    292  
    293           hasZ = numZ > 1; 
    294           hasT = numT > 1; 
    295           hasC = numC > 1; 
    296256 
    297257          FileInfo fi = ipw.getImagePlus().getOriginalFileInfo(); 
Note: See TracChangeset for help on using the changeset viewer.