Changeset 4238


Ignore:
Timestamp:
07/23/08 12:57:02 (12 years ago)
Author:
curtis
Message:

Fix data offset bug; turn color range text fields red for bad input.

Location:
trunk/loci/slim
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/slim/SlimPlotter.java

    r4237 r4238  
    292292      progress.setNote("Reading data"); 
    293293      DataInputStream fin = new DataInputStream(new FileInputStream(file)); 
    294       fin.skipBytes(info.dataBlockOffs); // skip to data 
     294      fin.skipBytes(info.dataBlockOffs + 22); // skip to data 
    295295      byte[] data = new byte[2 * channels * height * width * timeBins]; 
    296296      int blockSize = 65536; 
  • trunk/loci/slim/TwoDPane.java

    r4232 r4238  
    2828package loci.slim; 
    2929 
    30 import java.awt.BorderLayout; 
    31 import java.awt.Dimension; 
     30import java.awt.*; 
    3231import java.awt.event.ActionEvent; 
    3332import java.awt.event.ActionListener; 
     
    5554{ 
    5655 
     56  // -- Constants -- 
     57 
     58  private static final Color INVALID_COLOR = Color.red.brighter(); 
     59 
    5760  // -- Fields -- 
    5861 
     
    9497  private JSlider cSlider; 
    9598  private JTextField minField, maxField; 
     99  private Color validColor = null; 
    96100  private JCheckBox cToggle; 
    97101 
     
    265269    maxField.getDocument().addDocumentListener(this); 
    266270    maxPane.add(maxField); 
     271 
     272    validColor = minField.getBackground(); 
    267273 
    268274    cSlider = new JSlider(1, channels, 1); 
     
    422428 
    423429  private void rescaleMinMax() { 
     430    int min = 0, max = 0; 
     431    boolean validRange = true; 
    424432    try { 
    425       int min = Integer.parseInt(minField.getText()); 
    426       int max = Integer.parseInt(maxField.getText()); 
    427       imageMap.setRange(min, max); 
    428     } 
    429     catch (NumberFormatException exc) { } 
    430     catch (VisADException exc) { exc.printStackTrace(); } 
    431     catch (RemoteException exc) { exc.printStackTrace(); } 
     433      min = Integer.parseInt(minField.getText()); 
     434      minField.setBackground(validColor); 
     435    } 
     436    catch (NumberFormatException exc) { 
     437      validRange = false; 
     438      minField.setBackground(INVALID_COLOR); 
     439    } 
     440    try { 
     441      max = Integer.parseInt(maxField.getText()); 
     442      maxField.setBackground(validColor); 
     443    } 
     444    catch (NumberFormatException exc) { 
     445      validRange = false; 
     446      maxField.setBackground(INVALID_COLOR); 
     447    } 
     448    if (validRange) { 
     449      try { 
     450        imageMap.setRange(min, max); 
     451      } 
     452      catch (VisADException exc) { exc.printStackTrace(); } 
     453      catch (RemoteException exc) { exc.printStackTrace(); } 
     454    } 
    432455  } 
    433456 
     
    441464        for (int c=0; c<channels; c++) { 
    442465          float[][] samples = new float[1][width * height]; 
    443           for (int h=0; h<height; h++) { 
    444             for (int w=0; w<width; w++) { 
     466          for (int y=0; y<height; y++) { 
     467            for (int x=0; x<width; x++) { 
    445468              int sum = 0; 
    446               for (int t=0; t<timeBins; t++) sum += data[c][h][w][t]; 
     469              for (int t=0; t<timeBins; t++) sum += data[c][y][x][t]; 
    447470              if (sum > intensityMax) { 
    448471                intensityMax = sum; 
    449472                maxChan = c; 
    450473              } 
    451               samples[0][width * h + w] = sum; 
     474              samples[0][width * y + x] = sum; 
    452475            } 
    453476          } 
Note: See TracChangeset for help on using the changeset viewer.