Changeset 1857


Ignore:
Timestamp:
11/28/06 15:48:18 (13 years ago)
Author:
chris
Message:

Browser:
1)gui controls for switching internal axis priority order now functional.
2)gui controls for switching FilePattern block axis assignments functional.
3)a couple of minor bugs still remain.

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

Legend:

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

    r1849 r1857  
    247247 
    248248  // -- CustomWindow methods -- 
     249 
     250  public void updateControls() { 
     251    zSliceSel.setMinimum(1); 
     252    zSliceSel.setMaximum(db.hasZ ? db.numZ + 1 : 2); 
     253    if (!db.hasZ) zSliceSel.setEnabled(false); 
     254    else zSliceSel.setEnabled(true); 
     255    tSliceSel.setMinimum(1); 
     256    tSliceSel.setMaximum(db.hasT ? db.numT + 1 : 2); 
     257    if (!db.hasT) tSliceSel.setEnabled(false); 
     258    else tSliceSel.setEnabled(true); 
     259    setC(); 
     260    repaint(); 
     261  } 
    249262 
    250263  public void setC() { 
     
    336349    int textGap = 0; 
    337350 
    338     int nSlices = db.numZ * db.numT * c; 
     351    int nSlices = db.numZ * db.numT * db.numC; 
    339352    int currentSlice = imp.getCurrentSlice(); 
    340353    if (db.manager != null) currentSlice = db.manager.getSlice(); 
  • trunk/loci/plugins/browser/LociDataBrowser.java

    r1849 r1857  
    236236            try { 
    237237              setDimensions(); 
    238               if (reader.isRGB(id)) { 
    239                 if (numC <= 3) numC = 1; 
    240                 else numC /= 3; 
    241               } 
    242238 
    243239              // CTR: stack must not be null 
     
    274270 
    275271          if (ipw.getImagePlus().getStackSize() != numZ * numT * numC) { 
    276             numC = 1; 
     272            System.err.println("Error, stack size mismatch with dimension 
     273              sizes! StackSize = " + ipw.getImagePlus().getStackSize() + 
     274              " numZ = " + numZ + " numT = "  + numt + " numC = " + numC); 
    277275          } 
    278276 
  • trunk/loci/plugins/browser/OptionsWindow.java

    r1849 r1857  
    7777  /** Storage of what priority settings used to be.*/ 
    7878  private int oldTop,oldMid,oldLow; 
     79   
     80  FileStitcher fs; 
     81   
     82  JComboBox[] blockBoxes; 
     83  String id = null,order = null,suffix = null; 
     84  String[] prefixes = null,blocks = null; 
     85  int sizeZ = -1,sizeT = -1,sizeC = -1; 
     86  int[] axes = null; 
     87  FilePattern fp = null; 
     88   
     89  JComboBox zGroup,tGroup,cGroup; 
    7990 
    8091  // -- Constructor -- 
     
    8798    manager = cw.db.manager; 
    8899     
    89     FileStitcher fs = cw.db.fStitch; 
     100    fs = cw.db.fStitch; 
    90101 
    91102    update = false; 
     
    94105     
    95106    // get FilePattern Data 
    96       String id = null,order = null,suffix = null; 
    97       String[] prefixes = null,blocks = null; 
    98       int sizeZ = -1,sizeT = -1,sizeC = -1; 
    99       int[] axes = null; 
    100       FilePattern fp = null; 
    101107    try { 
    102108      id = cw.db.id; 
    103       order = fs.getDimensionOrder(id); 
     109      order = fs.getDimensionOrder(id).substring(2); 
    104110      sizeZ = fs.getSizeZ(id); 
    105111      sizeT = fs.getSizeT(id); 
     
    136142    for(int i = 0;i<blockLabelsO.length;i++) { 
    137143      blockLabels[i] = (JLabel) blockLabelsO[i]; 
     144      blockLabels[i].setForeground(getColor(i)); 
    138145    } 
    139146     
    140147    Object[] choices = {"Z-Depth", "Time", "Channel"}; 
    141     JComboBox zGroup = new JComboBox(choices); 
    142     JComboBox tGroup = new JComboBox(choices); 
    143     tGroup.setSelectedIndex(1); 
    144     JComboBox cGroup = new JComboBox(choices); 
    145     cGroup.setSelectedIndex(2); 
     148    zGroup = new JComboBox(choices); 
     149    setBox(zGroup,0); 
     150    tGroup = new JComboBox(choices); 
     151    setBox(tGroup,1); 
     152    cGroup = new JComboBox(choices); 
     153    setBox(cGroup,2); 
    146154    zGroup.addActionListener(this); 
    147155    tGroup.addActionListener(this); 
     
    158166    } 
    159167    Object[] blockBoxesO = blockBoxesV.toArray(); 
    160     JComboBox[] blockBoxes = new JComboBox[blockBoxesO.length]; 
     168    blockBoxes = new JComboBox[blockBoxesO.length]; 
    161169    for(int i = 0;i<blockBoxesO.length;i++) { 
    162170      JComboBox temp = (JComboBox) blockBoxesO[i]; 
     
    249257    JLabel tL = new JLabel("T:"); 
    250258    JLabel cL = new JLabel("C:"); 
    251     JLabel priorL = new JLabel("\u00B7" + "Axis Priority" + "\u00B7"); 
     259    JLabel priorL = new JLabel("\u00B7" + "Axis Cacheing Priority" + "\u00B7"); 
    252260    JLabel topL = new JLabel("Top Priority:"); 
    253261    JLabel midL = new JLabel("Mid Priority:"); 
     
    380388    update = true; 
    381389  } 
     390   
     391  private int getBoxIndex(JComboBox jcb) { 
     392    for(int i = 0;i<blockBoxes.length;i++) { 
     393      if (jcb == blockBoxes[i]) return i; 
     394    } 
     395    return -1; 
     396  } 
    382397 
    383398  private Color getColor(int i) { 
     
    424439    return -1; 
    425440  } 
     441   
     442  /** Set up the combo box to reflect appropriate axis.*/ 
     443  private void setBox(JComboBox thisBox, int index) { 
     444    switch(order.charAt(index)) { 
     445      case 'Z': 
     446        thisBox.setSelectedIndex(0); 
     447        break; 
     448      case 'T': 
     449        thisBox.setSelectedIndex(1); 
     450        break; 
     451      case 'C': 
     452        thisBox.setSelectedIndex(2); 
     453        break; 
     454    } 
     455  } 
     456   
     457  private char convertInt(int index) { 
     458    switch (index) { 
     459      case 0: 
     460        return 'Z'; 
     461      case 1: 
     462        return 'T'; 
     463      case 2: 
     464        return 'C'; 
     465      default: 
     466        return 'Q'; 
     467    } 
     468  } 
     469   
     470  private int convertChar(char c) { 
     471    switch (c) { 
     472      case 'Z': 
     473        return 0; 
     474      case 'T': 
     475        return 1; 
     476      case 'C': 
     477        return 2; 
     478      default: 
     479        return 'Q'; 
     480    } 
     481  } 
     482   
     483  private int getAxis(int i) { 
     484    switch (i) { 
     485      case 0: 
     486        return AxisGuesser.Z_AXIS; 
     487      case 1: 
     488        return AxisGuesser.T_AXIS; 
     489      case 2: 
     490        return AxisGuesser.C_AXIS; 
     491      default: 
     492        return -55555; 
     493    } 
     494  } 
    426495 
    427496  /** Enables/Disables CacheManager options in option window.*/ 
     
    561630         getConv(lowBox.getSelectedIndex())); 
    562631      } 
     632      else if (source == zGroup) { 
     633        char oldChar = order.charAt(0); 
     634        int sel = zGroup.getSelectedIndex(); 
     635        char zChar = convertInt(sel); 
     636         
     637        sel = tGroup.getSelectedIndex(); 
     638        char tChar = convertInt(sel); 
     639        if(tChar == zChar) tChar = oldChar; 
     640         
     641        sel = cGroup.getSelectedIndex(); 
     642        char cChar = convertInt(sel); 
     643        if(cChar == zChar) cChar = oldChar; 
     644         
     645        order = String.valueOf(zChar) + String.valueOf(tChar) 
     646          + String.valueOf(cChar); 
     647        try { 
     648          fs.swapDimensions(id,"XY" + order); 
     649          sizeZ = fs.getSizeZ(id); 
     650          sizeT = fs.getSizeT(id); 
     651          sizeC = fs.getSizeC(id); 
     652        } 
     653        catch(Exception exc) {exc.printStackTrace();} 
     654        update = false; 
     655        setBox(zGroup,0); 
     656        setBox(tGroup,1); 
     657        setBox(cGroup,2); 
     658        update = true; 
     659        cw.db.setDimensions(); 
     660        cw.updateControls(); 
     661      } 
     662      else if (source == tGroup) { 
     663        char oldChar = order.charAt(1); 
     664        int sel = tGroup.getSelectedIndex(); 
     665        char tChar = convertInt(sel); 
     666         
     667        sel = zGroup.getSelectedIndex(); 
     668        char zChar = convertInt(sel); 
     669        if(zChar == tChar) zChar = oldChar; 
     670         
     671        sel = cGroup.getSelectedIndex(); 
     672        char cChar = convertInt(sel); 
     673        if(cChar == tChar) cChar = oldChar; 
     674         
     675        order = String.valueOf(zChar) + String.valueOf(tChar) 
     676          + String.valueOf(cChar); 
     677        try { 
     678          fs.swapDimensions(id,"XY" + order); 
     679          sizeZ = fs.getSizeZ(id); 
     680          sizeT = fs.getSizeT(id); 
     681          sizeC = fs.getSizeC(id); 
     682        } 
     683        catch(Exception exc) {exc.printStackTrace();} 
     684        update = false; 
     685        setBox(zGroup,0); 
     686        setBox(tGroup,1); 
     687        setBox(cGroup,2); 
     688        update = true; 
     689        cw.db.setDimensions(); 
     690        cw.updateControls(); 
     691      } 
     692      else if (source == cGroup) { 
     693        char oldChar = order.charAt(2); 
     694        int sel = cGroup.getSelectedIndex(); 
     695        char cChar = convertInt(sel); 
     696         
     697        sel = zGroup.getSelectedIndex(); 
     698        char zChar = convertInt(sel); 
     699        if(zChar == cChar) zChar = oldChar; 
     700         
     701        sel = tGroup.getSelectedIndex(); 
     702        char tChar = convertInt(sel); 
     703        if(tChar == cChar) tChar = oldChar; 
     704         
     705        order = String.valueOf(zChar) + String.valueOf(tChar) 
     706          + String.valueOf(cChar); 
     707        try { 
     708          fs.swapDimensions(id,"XY" + order); 
     709          sizeZ = fs.getSizeZ(id); 
     710          sizeT = fs.getSizeT(id); 
     711          sizeC = fs.getSizeC(id); 
     712        } 
     713        catch(Exception exc) {exc.printStackTrace();} 
     714        update = false; 
     715        setBox(zGroup,0); 
     716        setBox(tGroup,1); 
     717        setBox(cGroup,2); 
     718        update = true; 
     719        cw.db.setDimensions(); 
     720        cw.updateControls(); 
     721      } 
     722      else if (getBoxIndex((JComboBox)source) >= 0) { 
     723        int index = getBoxIndex((JComboBox)source); 
     724        axes[index] = getAxis(blockBoxes[index].getSelectedIndex()); 
     725        try { 
     726          fs.setAxisTypes(id,axes); 
     727        } 
     728        catch(Exception exc) {exc.printStackTrace();} 
     729        cw.db.setDimensions(); 
     730        cw.updateControls(); 
     731      } 
    563732    } 
    564733  } 
Note: See TracChangeset for help on using the changeset viewer.