Changeset 2725


Ignore:
Timestamp:
05/02/07 14:05:08 (13 years ago)
Author:
curtis
Message:

Whitespace.

Location:
trunk/loci
Files:
47 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/apps/stitcher/MovieStitcher.java

    r2692 r2725  
    3131 * TIFF series and other 4D datasets. 
    3232 */ 
    33 public class MovieStitcher extends JFrame implements  
    34   ActionListener, ChangeListener, Runnable  
     33public class MovieStitcher extends JFrame implements 
     34  ActionListener, ChangeListener, Runnable 
    3535{ 
    3636 
     
    4343 
    4444  private FileStitcher reader = new FileStitcher(true); 
    45   private DimensionSwapper swap = new DimensionSwapper(reader);  
     45  private DimensionSwapper swap = new DimensionSwapper(reader); 
    4646  private ImageWriter writer = new ImageWriter(); 
    4747  private JFileChooser rc, wc; 
     
    172172    row3.add(includeZ); 
    173173    row3.add(Box.createHorizontalStrut(4)); 
    174      
     174 
    175175    row3 = new RowPanel(); 
    176176    row3.setLayout(new BoxLayout(row3, BoxLayout.X_AXIS)); 
    177177    pane.add(row3); 
    178178    pane.add(Box.createVerticalStrut(9)); 
    179      
     179 
    180180    row3.add(tLabel); 
    181181    row3.add(tChoice); 
    182182    row3.add(includeT); 
    183183    row3.add(Box.createHorizontalStrut(4)); 
    184      
     184 
    185185    row3 = new RowPanel(); 
    186186    row3.setLayout(new BoxLayout(row3, BoxLayout.X_AXIS)); 
    187187    pane.add(row3); 
    188188    pane.add(Box.createVerticalStrut(9)); 
    189      
     189 
    190190    row3.add(cLabel); 
    191191    row3.add(cChoice); 
     
    207207    row4.add(fps); 
    208208    row4.add(Box.createHorizontalStrut(3)); 
    209    
     209 
    210210    JLabel codecLabel = new JLabel("Output compression type: "); 
    211211    row4.add(codecLabel); 
     
    227227 
    228228    row5.add(Box.createHorizontalStrut(3)); 
    229     
     229 
    230230    forceType = new JCheckBox("Force", true); 
    231231    forceType.setActionCommand("force"); 
     
    281281      String pattern = FilePattern.findPattern(file); 
    282282      input.setText(pattern); 
    283      
     283 
    284284      try { 
    285285        swap.setId(pattern); 
    286          
     286 
    287287        if (swap.getSeriesCount() > 1 && series == null) { 
    288288          JLabel seriesLabel = new JLabel("Series: "); 
    289           series = new JSpinner(new SpinnerNumberModel(1, 1,  
    290             swap.getSeriesCount(), 1));  
     289          series = new JSpinner(new SpinnerNumberModel(1, 1, 
     290            swap.getSeriesCount(), 1)); 
    291291          series.addChangeListener(this); 
    292292          seriesRow.add(seriesLabel); 
     
    308308        exc.printStackTrace(); 
    309309      } 
    310        
    311       updateLabels(pattern);  
     310 
     311      updateLabels(pattern); 
    312312    } 
    313313    else if ("output".equals(cmd)) { 
     
    368368    } 
    369369  } 
    370   
     370 
    371371  // -- ChangeListener methods -- 
    372372 
     
    382382    } 
    383383  } 
    384  
    385384 
    386385  // -- Runnable methods -- 
     
    415414        String stitchDir = name + "-stitched"; 
    416415        new File(f.getParent() + File.separator + stitchDir).mkdir(); 
    417         out = f.getParent() + File.separator + stitchDir +  
    418           File.separator + name + ".tif";  
     416        out = f.getParent() + File.separator + stitchDir + 
     417          File.separator + name + ".tif"; 
    419418        out = out.replaceAll(File.separator + File.separator, File.separator); 
    420419        output.setText(out); 
     
    440439 
    441440      String order = swap.getDimensionOrder(); 
    442        
     441 
    443442      if (zLabel.getText().indexOf("Time") != -1) { 
    444443        order = order.replace('Z', 'T') ; 
     
    513512      } 
    514513      else if (!force && !writer.isSupportedType(type)) { 
    515         throw new FormatException("Unsupported pixel type: " +  
     514        throw new FormatException("Unsupported pixel type: " + 
    516515          FormatTools.getPixelTypeString(type) + 
    517516          "\nTo write to this format, the \"force\" box must be checked.\n" + 
     
    530529            String tBlock = ""; 
    531530            String cBlock = ""; 
    532              
     531 
    533532            if (externalZ > 1) { 
    534533              String num = "" + i; 
     
    560559            int planesPerFile = internalZ * internalT * internalC; 
    561560            int filePlane = 0; 
    562      
     561 
    563562            for (int z=0; z<internalZ; z++) { 
    564563              for (int t=0; t<internalT; t++) { 
     
    567566                  int tPos = t*externalT + j; 
    568567                  int cPos = c*externalC + k; 
    569                   
     568 
    570569                  progress.setString(outName + " " + (filePlane + 1) + 
    571570                    "/" + planesPerFile); 
     
    581580                    switch (type) { 
    582581                      case FormatTools.INT8: 
    583                       case FormatTools.UINT8:  
     582                      case FormatTools.UINT8: 
    584583                        pixelType = DataBuffer.TYPE_BYTE; 
    585584                        break; 
    586                       case FormatTools.INT16:  
     585                      case FormatTools.INT16: 
    587586                        pixelType = DataBuffer.TYPE_USHORT; 
    588587                        break; 
    589                       case FormatTools.UINT16:  
     588                      case FormatTools.UINT16: 
    590589                        pixelType = DataBuffer.TYPE_SHORT; 
    591590                        break; 
    592591                      case FormatTools.INT32: 
    593                       case FormatTools.UINT32:  
     592                      case FormatTools.UINT32: 
    594593                        pixelType = DataBuffer.TYPE_INT; 
    595594                        break; 
    596                       case FormatTools.FLOAT:  
     595                      case FormatTools.FLOAT: 
    597596                        pixelType = DataBuffer.TYPE_FLOAT; 
    598597                        break; 
    599598                      case FormatTools.DOUBLE: 
    600599                        pixelType = DataBuffer.TYPE_DOUBLE; 
    601                         break;  
     600                        break; 
    602601                    } 
    603602                    img = ImageTools.makeType(img, pixelType); 
     
    610609              } 
    611610            } 
    612            
    613             // if we're writing a TIFF file, insert an OME-XML block  
     611 
     612            // if we're writing a TIFF file, insert an OME-XML block 
    614613            if (writer.getWriter(outFile) instanceof TiffWriter) { 
    615614              RandomAccessFile raf = new RandomAccessFile(outFile, "rw"); 
    616                
    617               OMENode root = (OMENode)  
     615 
     616              OMENode root = (OMENode) 
    618617                ((OMEXMLMetadataStore) swap.getMetadataStore()).getRoot(); 
    619                  
    620               // add TiffData element here  
     618 
     619              // add TiffData element here 
    621620              Vector images = root.getChildNodes("Image"); 
    622621              for (int p=0; p<images.size(); p++) { 
    623                 PixelsNode pix =  
     622                PixelsNode pix = 
    624623                  (PixelsNode) ((ImageNode) images.get(p)).getDefaultPixels(); 
    625624                DOMUtil.createChild(pix.getDOMElement(), "TiffData"); 
     
    682681  private void updateLabels(String pattern) { 
    683682    try { 
    684       swap.setId(pattern);  
     683      swap.setId(pattern); 
    685684 
    686685      String z = zLabel.getText(); 
     
    698697      c += "<1-" + swap.getEffectiveSizeC() + ">"; 
    699698      cLabel.setText(c); 
    700        
     699 
    701700      includeZ.setEnabled(true); 
    702701      includeT.setEnabled(true); 
  • trunk/loci/formats/FileStitcher.java

    r2709 r2725  
    347347        sizeC[sno], getPixelType()); 
    348348    } 
    349      
     349 
    350350    return blankImage[sno]; 
    351351  } 
  • trunk/loci/formats/FormatHandler.java

    r2721 r2725  
    123123    for (int i=0; i<suffixes.length; i++) { 
    124124      if (lname.endsWith("." + suffixes[i])) return true; 
    125       if (lname.endsWith("." + suffixes[i] + ".gz")) return true;  
    126       //if (lname.endsWith("." + suffixes[i] + ".bz2")) return true;  
     125      if (lname.endsWith("." + suffixes[i] + ".gz")) return true; 
     126      //if (lname.endsWith("." + suffixes[i] + ".bz2")) return true; 
    127127    } 
    128128    return false; 
  • trunk/loci/formats/RandomAccessStream.java

    r2721 r2725  
    116116    if (f.exists()) { 
    117117      raf = new RAFile(f, "r"); 
    118        
     118 
    119119      BufferedInputStream bis = new BufferedInputStream( 
    120         new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD);  
    121       
     120        new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD); 
     121 
    122122      String path = f.getPath().toLowerCase(); 
    123123 
     
    125125        dis = new DataInputStream(new GZIPInputStream(bis)); 
    126126        compressed = true; 
    127       
     127 
    128128        length = 0; 
    129129 
     
    133133 
    134134        bis = new BufferedInputStream( 
    135           new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD);  
     135          new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD); 
    136136        dis = new DataInputStream(new GZIPInputStream(bis)); 
    137137      } 
     
    140140        dis = new DataInputStream(new CBZip2InputStream(bis)); 
    141141        compressed = true; 
    142       
     142 
    143143        length = 0; 
    144144 
     
    148148 
    149149        bis = new BufferedInputStream( 
    150           new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD);  
     150          new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD); 
    151151        dis = new DataInputStream(new CBZip2InputStream(bis)); 
    152152      } 
    153       */  
     153      */ 
    154154      else dis = new DataInputStream(bis); 
    155        
     155 
    156156      if (!compressed) { 
    157157        length = raf.length(); 
     
    162162        lastValid = 1; 
    163163        nextMark = MAX_OVERHEAD; 
    164       }  
     164      } 
    165165    } 
    166166    else if (file.startsWith("http")) { 
     
    183183    fp = 0; 
    184184    afp = 0; 
    185     length = raf.length();  
     185    length = raf.length(); 
    186186  } 
    187187 
     
    338338    int n = 0; 
    339339 
    340     if (status == DIS) {  
     340    if (status == DIS) { 
    341341      return read(array, 0, array.length); 
    342342    } 
     
    370370    if (status == DIS) { 
    371371      int p = dis.read(array, offset, n); 
    372       if (p == -1) return -1;  
    373       if ((p >= 0) && ((fp + p) < length)) {  
    374         int k = p;  
    375         while ((k >= 0) && (p < n) && ((afp + p) <= length) &&  
     372      if (p == -1) return -1; 
     373      if ((p >= 0) && ((fp + p) < length)) { 
     374        int k = p; 
     375        while ((k >= 0) && (p < n) && ((afp + p) <= length) && 
    376376          ((offset + p) < array.length)) 
    377377        { 
    378           k = dis.read(array, offset + p, n - p);  
    379           if (k >= 0) p += k;  
    380         } 
    381       } 
    382       n = p;  
     378          k = dis.read(array, offset + p, n - p); 
     379          if (k >= 0) p += k; 
     380        } 
     381      } 
     382      n = p; 
    383383    } 
    384384    else if (status == ARRAY) { 
     
    508508      if (afp < fp) { 
    509509        dis.close(); 
    510        
     510 
    511511        BufferedInputStream bis = new BufferedInputStream( 
    512           new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD);  
    513      
     512          new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD); 
     513 
    514514        String path = Location.getMappedId(file).toLowerCase(); 
    515515 
     
    522522        } 
    523523        */ 
    524         fp = 0;  
     524        fp = 0; 
    525525      } 
    526526 
     
    528528        fp += dis.skipBytes((int) (afp - fp)); 
    529529      } 
    530        
     530 
    531531      return DIS; 
    532532    } 
     
    631631    if (f.exists()) { 
    632632      raf = new RAFile(f, "r"); 
    633        
     633 
    634634      BufferedInputStream bis = new BufferedInputStream( 
    635         new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD);  
    636       
     635        new FileInputStream(Location.getMappedId(file)), MAX_OVERHEAD); 
     636 
    637637      String path = f.getPath().toLowerCase(); 
    638638 
     
    648648      */ 
    649649      else dis = new DataInputStream(bis); 
    650        
     650 
    651651      if (!compressed) { 
    652652        length = raf.length(); 
     
    654654        raf.readFully(buf); 
    655655        raf.seek(0); 
    656       }  
     656      } 
    657657    } 
    658658    else { 
  • trunk/loci/formats/in/AVIReader.java

    r2704 r2725  
    123123 
    124124    if (isRLE) { 
    125       byte[] b = new byte[(int) ((Long) lengths.get(no)).longValue()];  
     125      byte[] b = new byte[(int) ((Long) lengths.get(no)).longValue()]; 
    126126      in.read(b); 
    127        
     127 
    128128      b = decodeRLE(b); 
    129       if (no == core.imageCount[0] - 1) lastImage = null;  
     129      if (no == core.imageCount[0] - 1) lastImage = null; 
    130130      byte[] colors = new byte[b.length * 3]; 
    131131      for (int i=0; i<b.length; i++) { 
     
    135135        colors[i*3 + 1] = pg[ndx]; 
    136136        colors[i*3 + 2] = pb[ndx]; 
    137       }  
    138       return colors;  
     137      } 
     138      return colors; 
    139139    } 
    140140 
     
    417417                { 
    418418                  offsets.add(new Long(in.getFilePointer())); 
    419                   lengths.add(new Long(size));  
     419                  lengths.add(new Long(size)); 
    420420                  in.skipBytes(size); 
    421421                } 
     
    492492  } 
    493493 
    494   /**  
     494  /** 
    495495   * Decodes an RLE-encoded frame. This code was adapted from the FFMPEG source, 
    496496   * http://ffmpeg.mplayerhq.hu. 
     
    510510 
    511511    while (rowPt >= 0 && pt < in.length - 1 && pixelPt < lastImage.length) { 
    512       stream = in[pt++];  
    513       if (stream < 0) stream += 256;  
     512      stream = in[pt++]; 
     513      if (stream < 0) stream += 256; 
    514514      code = stream; 
    515515 
    516516      if (code == 0) { 
    517517        stream = in[pt++]; 
    518         if (stream < 0) stream += 256;  
     518        if (stream < 0) stream += 256; 
    519519        if (stream == 0) { 
    520520          rowPt -= row; 
     
    524524        else if (stream == 2) { 
    525525          stream = in[pt++]; 
    526           if (stream < 0) stream += 256;  
     526          if (stream < 0) stream += 256; 
    527527          pixelPt += stream; 
    528528          stream = in[pt++]; 
    529           if (stream < 0) stream += 256;  
     529          if (stream < 0) stream += 256; 
    530530          rowPt -= stream * row; 
    531531        } 
  • trunk/loci/formats/in/LeicaReader.java

    r2710 r2725  
    116116    tiff[series][no].setId((String) files[series].get(no)); 
    117117    byte[] b = tiff[series][no].openBytes(0); 
    118      
    119     int c = b.length / (core.sizeX[series] * core.sizeY[series] *  
    120       FormatTools.getBytesPerPixel(core.pixelType[series]));  
    121      
     118 
     119    int c = b.length / (core.sizeX[series] * core.sizeY[series] * 
     120      FormatTools.getBytesPerPixel(core.pixelType[series])); 
     121 
    122122    b = ImageTools.splitChannels(b, c, false, 
    123123      isInterleaved())[channelIndices[ndx]]; 
     
    139139 
    140140    int ndx = no % channelIndices.length; 
    141     int c = buf.length / (core.sizeX[series] * core.sizeY[series] *  
    142       FormatTools.getBytesPerPixel(core.pixelType[series]));  
     141    int c = buf.length / (core.sizeX[series] * core.sizeY[series] * 
     142      FormatTools.getBytesPerPixel(core.pixelType[series])); 
    143143    buf = ImageTools.splitChannels(buf, c, false, 
    144144      isInterleaved())[channelIndices[ndx]]; 
  • trunk/loci/formats/in/NRRDReader.java

    r2710 r2725  
    184184            if (numDimensions >= 3 && i == 0 && size > 1 && size <= 4) { 
    185185              core.sizeC[0] = size; 
    186             }  
     186            } 
    187187            else if (i == 0 || (core.sizeC[0] > 1 && i == 1)) { 
    188188              core.sizeX[0] = size; 
     
    209209        else if (key.equals("max")) max = v; 
    210210      } 
    211        
     211 
    212212      if ((line.length() == 0 && dataFile == null) || line == null) { 
    213213        finished = true; 
    214       }  
     214      } 
    215215      if (dataFile != null && (in.length() - in.getFilePointer() < 2)) { 
    216216        finished = true; 
  • trunk/loci/ome/editor/MetadataPane.java

    r2692 r2725  
    393393        xml = thisOmeNode.writeOME(false); 
    394394        xml = addTiffData(xml, file); 
    395         reader.setId(id);  
     395        reader.setId(id); 
    396396        imageCount = reader.getImageCount(); 
    397397      } 
     
    785785 
    786786        //Set up thumbnails 
    787         reader.setId(id);  
     787        reader.setId(id); 
    788788        int numSeries = reader.getSeriesCount(); 
    789789 
  • trunk/loci/ome/notebook/Notebook.java

    r2656 r2725  
    1 //  
     1// 
    22// Notebook.java 
    33// 
     
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8    
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    1111the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13      
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18        
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    4444 
    4545  /** Template that is loaded automatically. */ 
    46   private static final String DEFAULT_TEMPLATE = "templates/viewer.template";  
     46  private static final String DEFAULT_TEMPLATE = "templates/viewer.template"; 
    4747 
    4848  // -- Fields -- 
     
    6161 
    6262  /** Current template file name. */ 
    63   private String templateName;  
     63  private String templateName; 
    6464 
    6565  /** Foreground (font) color. */ 
     
    7878  private OMENode currentRoot; 
    7979 
    80   // -- Constructor --  
     80  // -- Constructor -- 
    8181 
    8282  /** Constructs a new main window with the default template. */ 
    8383  public Notebook(String template, String newfile) { 
    84     super("OME Notebook");  
     84    super("OME Notebook"); 
    8585 
    8686    // set up the main panel 
     
    8989 
    9090    // set up the menu bar 
    91      
     91 
    9292    menubar = new JMenuBar(); 
    93      
     93 
    9494    JMenu file = new JMenu("File"); 
    95   
     95 
    9696    JMenuItem newFile = new JMenuItem("New..."); 
    9797    newFile.setActionCommand("new"); 
     
    127127    // add the status bar 
    128128    progress = new JProgressBar(0, 1); 
    129     progress.setStringPainted(true);  
     129    progress.setStringPainted(true); 
    130130    menubar.add(progress); 
    131131 
    132     setJMenuBar(menubar);  
     132    setJMenuBar(menubar); 
    133133 
    134134    // provide a place to show metadata 
     
    143143    } 
    144144    else { 
    145       templateName = DEFAULT_TEMPLATE;  
     145      templateName = DEFAULT_TEMPLATE; 
    146146      loadTemplate(Notebook.class.getResourceAsStream(DEFAULT_TEMPLATE)); 
    147147    } 
    148    
     148 
    149149    try { 
    150150      if (newfile != null) openFile(newfile); 
     
    154154    } 
    155155 
    156     setDefaultCloseOperation(DISPOSE_ON_CLOSE);  
     156    setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
    157157    setVisible(true); 
    158158  } 
     
    162162  /** Load and apply a template from the specified file. */ 
    163163  public void loadTemplate(String filename) { 
    164     // clear out previous template  
     164    // clear out previous template 
    165165 
    166166    progress.setString("Loading template " + filename); 
     
    168168    templateName = filename; 
    169169 
    170     // parse the template file  
    171     try {  
     170    // parse the template file 
     171    try { 
    172172      loadTemplate(new Template(filename)); 
    173173    } 
     
    195195    tabPane = new JTabbedPane(); 
    196196    getContentPane().add(tabPane); 
    197      
     197 
    198198    // retrieve defined GUI parameters 
    199     setPreferredSize(new Dimension(currentTemplate.getDefaultWidth(),  
     199    setPreferredSize(new Dimension(currentTemplate.getDefaultWidth(), 
    200200      currentTemplate.getDefaultHeight())); 
    201201 
    202     font = new Font(currentTemplate.getFontStyle(), Font.PLAIN,  
     202    font = new Font(currentTemplate.getFontStyle(), Font.PLAIN, 
    203203      currentTemplate.getFontSize()); 
    204204 
     
    209209    background = new Color(back[0], back[1], back[2]); 
    210210 
    211     // set up all of the defined tabs and fields  
    212      
     211    // set up all of the defined tabs and fields 
     212 
    213213    TemplateTab[] tabs = currentTemplate.getTabs(); 
    214214 
     
    216216      Vector groups = tabs[i].getAllGroups(); 
    217217      Vector fields = tabs[i].getAllFields(); 
    218    
     218 
    219219      JScrollPane scroll = new JScrollPane(); 
    220220      JPanel panel = new JPanel(); 
    221        
     221 
    222222      String rowString = ""; 
    223223      String colString = "pref:grow,"; 
     
    227227      if (currentTemplate.editTemplateFields()) { 
    228228        colString = "30dlu,30dlu,3dlu,pref:grow,"; 
    229         paddingColumns = 4;  
     229        paddingColumns = 4; 
    230230      } 
    231231 
     
    234234      int numColumns = tabs[i].getColumns(); 
    235235      if (numColumns < 2) numColumns = 2; 
    236       else numColumns += 2;  
     236      else numColumns += 2; 
    237237      for (int j=0; j<numRows; j++) { 
    238238        rowString += "pref:grow,"; 
     
    245245 
    246246      scroll.getViewport().add(panel); 
    247     
     247 
    248248      int[] rowNumber = new int[l.getColumnCount()]; 
    249249      Arrays.fill(rowNumber, 1); 
     
    252252 
    253253      for (int j=0; j<groups.size(); j++) { 
    254         TemplateGroup group = (TemplateGroup) groups.get(j);  
    255         for (int r=0; r<group.getRepetitions(); r++) {  
     254        TemplateGroup group = (TemplateGroup) groups.get(j); 
     255        for (int r=0; r<group.getRepetitions(); r++) { 
    256256          FormLayout layout = (FormLayout) panel.getLayout(); 
    257           if (tabs[i].getRows() == 0) {  
     257          if (tabs[i].getRows() == 0) { 
    258258            for (int n=0; n<group.getNumFields() + 1; n++) { 
    259259              layout.appendRow(new RowSpec("pref:grow")); 
    260260            } 
    261261            panel.setLayout(layout); 
    262           }  
    263      
    264           panel.add(new JLabel(group.getName() + " #" + (r + 1)),  
     262          } 
     263 
     264          panel.add(new JLabel(group.getName() + " #" + (r + 1)), 
    265265            cc.xyw(paddingColumns, rowNumber[paddingColumns - 1], 2)); 
    266266          if (currentTemplate.editTemplateFields()) { 
     
    269269            add.addActionListener(this); 
    270270            panel.add(add, cc.xy(1, rowNumber[0])); 
    271             rowNumber[0]++;  
    272            
     271            rowNumber[0]++; 
     272 
    273273            JButton remove = new JButton("-"); 
    274274            remove.setActionCommand("removeGroup" + i + "-" + j); 
    275275            remove.addActionListener(this); 
    276276            panel.add(remove, cc.xy(2, rowNumber[1])); 
    277             rowNumber[1]++;  
    278           }  
     277            rowNumber[1]++; 
     278          } 
    279279 
    280280          for (int k=0; k<group.getNumFields(); k++) { 
    281             TemplateField field = group.getField(r, k);  
    282             if (field.getRow() != -1) {  
    283               panel.add(new JLabel(field.getName()),  
    284                 cc.xy(field.getColumn() + paddingColumns,  
     281            TemplateField field = group.getField(r, k); 
     282            if (field.getRow() != -1) { 
     283              panel.add(new JLabel(field.getName()), 
     284                cc.xy(field.getColumn() + paddingColumns, 
    285285                field.getRow() + 1)); 
    286               panel.add(field.getComponent(),  
    287                 cc.xywh(field.getColumn() + paddingColumns + 1,  
     286              panel.add(field.getComponent(), 
     287                cc.xywh(field.getColumn() + paddingColumns + 1, 
    288288                field.getRow() + 1, field.getWidth(), field.getHeight())); 
    289               rowNumber[field.getColumn() + paddingColumns - 1]++;  
    290               rowNumber[field.getColumn() + paddingColumns]++;  
    291             }  
     289              rowNumber[field.getColumn() + paddingColumns - 1]++; 
     290              rowNumber[field.getColumn() + paddingColumns]++; 
     291            } 
    292292            else { 
    293               panel.add(new JLabel(field.getName()),  
     293              panel.add(new JLabel(field.getName()), 
    294294                cc.xy(paddingColumns + 1, rowNumber[paddingColumns])); 
    295295              rowNumber[paddingColumns]++; 
    296               panel.add(field.getComponent(), cc.xywh(paddingColumns + 2,  
    297                 rowNumber[paddingColumns + 1], field.getWidth(),  
     296              panel.add(field.getComponent(), cc.xywh(paddingColumns + 2, 
     297                rowNumber[paddingColumns + 1], field.getWidth(), 
    298298                field.getHeight())); 
    299               rowNumber[paddingColumns + 1]++;  
     299              rowNumber[paddingColumns + 1]++; 
    300300            } 
    301             rowNumber[paddingColumns - 1]++;  
    302           }  
    303         }  
     301            rowNumber[paddingColumns - 1]++; 
     302          } 
     303        } 
    304304      } 
    305305 
     
    311311 
    312312      for (int j=0; j<fields.size(); j++) { 
    313         TemplateField f = tabs[i].getField(j);  
    314         if (f.getRow() != -1 || f.getColumn() != -1) {  
     313        TemplateField f = tabs[i].getField(j); 
     314        if (f.getRow() != -1 || f.getColumn() != -1) { 
    315315          int column = f.getColumn() == -1 ? 1 : f.getColumn(); 
    316316          int row = f.getRow() == -1 ? rowNumber[column - 1] : f.getRow(); 
    317317          int width = f.getWidth(); 
    318318          int height = f.getHeight(); 
    319           
     319 
    320320          panel.add(new JLabel(f.getName()), cc.xyw(column, row, 1)); 
    321321          panel.add(f.getComponent(), cc.xywh(column + 1, row, width, height)); 
    322           rowNumber[column - 1]++;  
    323         }  
     322          rowNumber[column - 1]++; 
     323        } 
    324324        else { 
    325           panel.add(new JLabel(f.getName()),  
     325          panel.add(new JLabel(f.getName()), 
    326326            cc.xyw(1, rowNumber[0], paddingColumns + 1)); 
    327           rowNumber[0]++;  
    328           panel.add(f.getComponent(), cc.xywh(paddingColumns + 1,  
     327          rowNumber[0]++; 
     328          panel.add(f.getComponent(), cc.xywh(paddingColumns + 1, 
    329329            rowNumber[paddingColumns], f.getWidth(), f.getHeight())); 
    330           rowNumber[paddingColumns]++;  
    331         } 
    332       } 
    333      
    334       tabPane.add(scroll, tabs[i].getName());  
    335     } 
    336      
     330          rowNumber[paddingColumns]++; 
     331        } 
     332      } 
     333 
     334      tabPane.add(scroll, tabs[i].getName()); 
     335    } 
     336 
    337337    setFontAndColors(this); 
    338338    changeEditable(currentTemplate.isEditable(), this); 
    339339    progress.setString(""); 
    340340 
    341     pack();  
     341    pack(); 
    342342  } 
    343343 
    344344  /** Recursively set the font and colors for the root and all children. */ 
    345345  public void setFontAndColors(Container root) { 
    346     Component[] components = root instanceof JMenu ?  
     346    Component[] components = root instanceof JMenu ? 
    347347      ((JMenu) root).getMenuComponents() : root.getComponents(); 
    348348    for (int i=0; i<components.length; i++) { 
     
    351351      components[i].setBackground(background); 
    352352 
    353       if (components[i] instanceof JTextArea ||  
    354         components[i] instanceof JComboBox ||  
    355         components[i] instanceof JCheckBox)  
     353      if (components[i] instanceof JTextArea || 
     354        components[i] instanceof JComboBox || 
     355        components[i] instanceof JCheckBox) 
    356356      { 
    357         LineBorder b = new LineBorder(foreground);  
    358         ((JComponent) components[i]).setBorder(b);  
     357        LineBorder b = new LineBorder(foreground); 
     358        ((JComponent) components[i]).setBorder(b); 
    359359      } 
    360360 
     
    369369    Component[] c = root.getComponents(); 
    370370    for (int i=0; i<c.length; i++) { 
    371       if (!(c[i] instanceof JMenuBar) && !(c[i] instanceof JMenu) &&  
     371      if (!(c[i] instanceof JMenuBar) && !(c[i] instanceof JMenu) && 
    372372        !(c[i] instanceof JMenuItem) && !(c[i] instanceof JLabel) && 
    373373        !(c[i] instanceof JScrollBar) && !(c[i] instanceof JTabbedPane)) 
    374       {   
    375         c[i].setEnabled(enable);  
     374      { 
     375        c[i].setEnabled(enable); 
    376376      } 
    377377      if (c[i] instanceof Container) { 
     
    387387 
    388388    if (cmd.equals("new")) { 
    389       // check if the user wants to save the current metadata first  
    390  
    391       int s = JOptionPane.showConfirmDialog(this, "Save current metadata?", "",  
    392         JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);  
    393         
     389      // check if the user wants to save the current metadata first 
     390 
     391      int s = JOptionPane.showConfirmDialog(this, "Save current metadata?", "", 
     392        JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE); 
     393 
    394394      if (s == JOptionPane.YES_OPTION) { 
    395395        actionPerformed(new ActionEvent(this, -1, "save")); 
    396       }  
    397       loadTemplate(currentTemplate);  
     396      } 
     397      loadTemplate(currentTemplate); 
    398398    } 
    399399    else if (cmd.equals("open")) { 
    400       progress.setString("Opening file...");  
     400      progress.setString("Opening file..."); 
    401401 
    402402      try { 
     
    408408          currentFile = chooser.getSelectedFile().getAbsolutePath(); 
    409409        } 
    410         if (currentFile == null) return;  
     410        if (currentFile == null) return; 
    411411 
    412412        openFile(currentFile); 
     
    418418    else if (cmd.equals("save")) { 
    419419      progress.setString("Saving metadata to companion file..."); 
    420       
     420 
    421421      if (currentRoot == null) { 
    422422        OMEXMLMetadataStore tmp = new OMEXMLMetadataStore(); 
     
    426426 
    427427      currentTemplate.saveFields(currentRoot); 
    428     
    429       // always save to the current filename + ".ome"  
    430        
     428 
     429      // always save to the current filename + ".ome" 
     430 
    431431      OMEXMLMetadataStore store = new OMEXMLMetadataStore(); 
    432432      store.setRoot(currentRoot); 
     
    434434      try { 
    435435        String name = currentFile; 
    436          
     436 
    437437        if (name == null) { 
    438438          JFileChooser chooser = new JFileChooser(); 
    439        
     439 
    440440          FileFilter filter = new FileFilter() { 
    441441            public boolean accept(File f) { 
    442               return true;  
     442              return true; 
    443443            } 
    444444            public String getDescription() { 
     
    452452          if (status == JFileChooser.APPROVE_OPTION) { 
    453453            name = chooser.getSelectedFile().getAbsolutePath(); 
    454             if (name == null) return;  
     454            if (name == null) return; 
    455455          } 
    456456        } 
    457         
     457 
    458458        if (name == null) return; 
    459459        if (!name.endsWith(".ome")) name += ".ome"; 
     
    461461        File f = new File(name); 
    462462        currentRoot.writeOME(f, false); 
    463         progress.setString("Finished writing companion file (" + name + ")");  
     463        progress.setString("Finished writing companion file (" + name + ")"); 
    464464      } 
    465465      catch (Exception io) { 
     
    471471    } 
    472472    else if (cmd.equals("load")) { 
    473       // prompt for the new template file  
     473      // prompt for the new template file 
    474474      JFileChooser chooser = new JFileChooser(); 
    475        
     475 
    476476      FileFilter filter = new FileFilter() { 
    477477        public boolean accept(File f) { 
     
    489489        loadTemplate(chooser.getSelectedFile().getAbsolutePath()); 
    490490      } 
    491       try {  
    492         if (currentFile != null) openFile(currentFile);  
     491      try { 
     492        if (currentFile != null) openFile(currentFile); 
    493493      } 
    494494      catch (Exception exc) { 
     
    504504      TemplateGroup group = tab.getGroup(groupIndex); 
    505505      group.setRepetitions(group.getRepetitions() + 1); 
    506        
    507       int tabIdx = tabPane.getSelectedIndex();  
    508        
    509       loadTemplate(currentTemplate);  
    510       try {  
    511         if (currentFile != null) openFile(currentFile);  
     506 
     507      int tabIdx = tabPane.getSelectedIndex(); 
     508 
     509      loadTemplate(currentTemplate); 
     510      try { 
     511        if (currentFile != null) openFile(currentFile); 
    512512      } 
    513513      catch (Exception exc) { 
     
    515515      } 
    516516 
    517       tabPane.setSelectedIndex(tabIdx);  
    518     }  
     517      tabPane.setSelectedIndex(tabIdx); 
     518    } 
    519519    else if (cmd.startsWith("removeGroup")) { 
    520520      cmd = cmd.substring(11); 
     
    524524      TemplateTab tab = currentTemplate.getTabs()[tabIndex]; 
    525525      TemplateGroup group = tab.getGroup(groupIndex); 
    526       group.setRepetitions(group.getRepetitions() - 1);   
    527        
    528       int tabIdx = tabPane.getSelectedIndex();  
    529        
    530       loadTemplate(currentTemplate);  
    531       try {  
    532         if (currentFile != null) openFile(currentFile);  
     526      group.setRepetitions(group.getRepetitions() - 1); 
     527 
     528      int tabIdx = tabPane.getSelectedIndex(); 
     529 
     530      loadTemplate(currentTemplate); 
     531      try { 
     532        if (currentFile != null) openFile(currentFile); 
    533533      } 
    534534      catch (Exception exc) { 
    535535        exc.printStackTrace(); 
    536536      } 
    537        
     537 
    538538      tabPane.setSelectedIndex(tabIdx); 
    539539    } 
     
    544544 
    545545  private void openFile(String file) throws Exception { 
    546     currentFile = file;  
     546    currentFile = file; 
    547547    FileStitcher stitcher = new FileStitcher(); 
    548548    progress.setString("Reading " + currentFile); 
    549      
     549 
    550550    if (currentFile.endsWith(".ome")) { 
    551       File f = new File(currentFile);  
     551      File f = new File(currentFile); 
    552552      currentRoot = new OMENode(f); 
    553553    } 
     
    556556      File companion = new File(currentFile + ".ome"); 
    557557      if (companion.exists()) { 
    558         progress.setString("Reading companion file (" + companion + ")");  
     558        progress.setString("Reading companion file (" + companion + ")"); 
    559559        currentRoot = new OMENode(companion); 
    560560      } 
    561561 
    562562      stitcher.setMetadataStore(new OMEXMLMetadataStore()); 
    563       stitcher.setId(currentFile);  
    564       OMEXMLMetadataStore store =  
     563      stitcher.setId(currentFile); 
     564      OMEXMLMetadataStore store = 
    565565        (OMEXMLMetadataStore) stitcher.getMetadataStore(); 
    566566 
     
    575575        } 
    576576        else { 
    577           currentRoot = merge((OMENode) store.getRoot(), currentRoot);  
     577          currentRoot = merge((OMENode) store.getRoot(), currentRoot); 
    578578        } 
    579579      } 
    580580      else currentRoot = (OMENode) store.getRoot(); 
    581581      stitcher.close(); 
    582     }  
    583     progress.setString("Populating fields...");  
    584     currentTemplate.initializeFields(currentRoot);  
    585     currentTemplate.populateFields(currentRoot);  
    586     loadTemplate(currentTemplate);  
    587     progress.setString("");  
     582    } 
     583    progress.setString("Populating fields..."); 
     584    currentTemplate.initializeFields(currentRoot); 
     585    currentTemplate.populateFields(currentRoot); 
     586    loadTemplate(currentTemplate); 
     587    progress.setString(""); 
    588588  } 
    589589 
     
    601601    return null; 
    602602  } 
    603    
     603 
    604604  /** 
    605605   * Merge two OME-XML trees. 
     
    630630        else if (!isHighCustom && isLowCustom && !addedCustom) { 
    631631          result.getDOMElement().appendChild(createClone( 
    632             lowNode.getDOMElement(),  
     632            lowNode.getDOMElement(), 
    633633            highNode.getDOMElement().getOwnerDocument())); 
    634634          addedCustom = true; 
     
    640640            if (ids.indexOf(lowID) > -1) { 
    641641              result.getDOMElement().appendChild(createClone( 
    642                 lowNode.getDOMElement(),  
     642                lowNode.getDOMElement(), 
    643643                highNode.getDOMElement().getOwnerDocument())); 
    644               ids.add(lowID);  
     644              ids.add(lowID); 
    645645            } 
    646646          } 
     
    648648      } 
    649649    } 
    650     return result;  
    651   } 
    652  
    653   /**  
    654    * Clones the specified DOM element, preserving the parent structure.  
     650    return result; 
     651  } 
     652 
     653  /** 
     654   * Clones the specified DOM element, preserving the parent structure. 
    655655   * This method was adapted from an earlier version of the OME Notebook, 
    656656   * written by Christopher Peterson. 
     
    667667      } 
    668668    } 
    669    
     669 
    670670    if (el.hasChildNodes()) { 
    671671      NodeList nodes = el.getChildNodes(); 
     
    677677      } 
    678678    } 
    679     return clone;  
     679    return clone; 
    680680  } 
    681681 
     
    686686    for (int i=0; i<args.length; i++) { 
    687687      if (args[i].equals("-template")) { 
    688         if (args.length > i + 1) {  
     688        if (args.length > i + 1) { 
    689689          template = args[++i]; 
    690690        } 
    691691        else System.err.println("Please specify a template file"); 
    692692      } 
    693       else data = args[i];  
    694     } 
    695     
     693      else data = args[i]; 
     694    } 
     695 
    696696    new Notebook(template, data); 
    697697  } 
  • trunk/loci/ome/notebook/Template.java

    r2659 r2725  
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8   
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    1111the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13    
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18    
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    3131import org.w3c.dom.Element; 
    3232 
    33 /**  
    34  * Loads a template from a file, and stores the options associated with this  
     33/** 
     34 * Loads a template from a file, and stores the options associated with this 
    3535 * template.  See template-format.txt for details of how to construct a 
    3636 * valid template file. 
     
    3939 
    4040  // -- Constants -- 
    41    
     41 
    4242  /** Width to use if a value wasn't specified. */ 
    4343  private static final int DEFAULT_WIDTH = 800; 
     
    8181  /** Constructs a new Template from the given InputStream. */ 
    8282  public Template(InputStream stream) throws IOException { 
    83     options = new Hashtable();  
    84      
    85     try {  
     83    options = new Hashtable(); 
     84 
     85    try { 
    8686      parse(stream); 
    8787    } 
     
    111111    boolean openField = false; 
    112112    boolean openGroup = false; 
    113     boolean openTab = false;  
    114     StringBuffer field = new StringBuffer();  
     113    boolean openTab = false; 
     114    StringBuffer field = new StringBuffer(); 
    115115    Vector parsedFields = new Vector(); 
    116116 
     
    127127        field.append(line); 
    128128        field.append("\n"); 
    129       }  
     129      } 
    130130      else if (openField && line.startsWith("}")) { 
    131131        openField = false; 
     
    138138          currentTab = new TemplateTab(); 
    139139          currentTab.addField(t); 
    140         }  
     140        } 
    141141        field.delete(0, field.length()); 
    142142      } 
     
    146146      } 
    147147      else if (line.startsWith("group")) { 
    148         openGroup = true;  
    149         currentGroup = new TemplateGroup();  
    150       }  
     148        openGroup = true; 
     149        currentGroup = new TemplateGroup(); 
     150      } 
    151151      else if (openGroup && line.startsWith("name")) { 
    152152        line = line.substring(line.indexOf(" ")).trim(); 
    153153        line = line.substring(1, line.length() - 1); 
    154         currentGroup.setName(line);  
     154        currentGroup.setName(line); 
    155155      } 
    156156      else if (openGroup && line.startsWith("count")) { 
    157157        line = line.substring(line.indexOf(" ")).trim(); 
    158158        line = line.substring(1, line.length() - 1); 
    159         currentGroup.setRepetitions(Integer.parseInt(line));  
     159        currentGroup.setRepetitions(Integer.parseInt(line)); 
    160160      } 
    161161      else if (openGroup && line.startsWith("}")) { 
     
    163163        if (currentTab == null) currentTab = new TemplateTab(); 
    164164        currentTab.addGroup(currentGroup); 
    165         currentGroup = null;  
    166       }  
     165        currentGroup = null; 
     166      } 
    167167      else if (line.startsWith("tab")) { 
    168         openTab = true;  
    169         currentTab = new TemplateTab();  
    170       }  
     168        openTab = true; 
     169        currentTab = new TemplateTab(); 
     170      } 
    171171      else if (openTab && line.startsWith("name")) { 
    172172        line = line.substring(line.indexOf(" ")).trim(); 
    173173        line = line.substring(1, line.length() - 1); 
    174         currentTab.setName(line);  
     174        currentTab.setName(line); 
    175175      } 
    176176      else if (openTab && line.startsWith("grid")) { 
     
    184184      else if (openTab && line.startsWith("}")) { 
    185185        openTab = false; 
    186         tempTabs.add(currentTab);  
    187         currentTab = null;  
     186        tempTabs.add(currentTab); 
     187        currentTab = null; 
    188188      } 
    189189      else { 
     
    191191        String value = line.substring(line.indexOf(" ")).trim(); 
    192192        value = value.substring(1, value.length() - 1); 
    193         options.put(key, value);  
    194       } 
    195     }  
     193        options.put(key, value); 
     194      } 
     195    } 
    196196 
    197197    tabs = new TemplateTab[tempTabs.size()]; 
     
    199199  } 
    200200 
    201   /**  
    202    * Populates the fields using the given OME root node and the  
    203    * template's OME-CA mapping.  
     201  /** 
     202   * Populates the fields using the given OME root node and the 
     203   * template's OME-CA mapping. 
    204204   */ 
    205205  public void populateFields(OMENode root) { 
    206     if (root == null) return;     
    207      
     206    if (root == null) return; 
     207 
    208208    try { 
    209209      for (int i=0; i<tabs.length; i++) { 
    210210        for (int j=0; j<tabs[i].getNumGroups(); j++) { 
    211           TemplateGroup group = tabs[i].getGroup(j);  
     211          TemplateGroup group = tabs[i].getGroup(j); 
    212212          for (int k=0; k<group.getNumFields(); k++) { 
    213213            if (group.getRepetitions() == 0) { 
    214214              // special case : number of repetitions depends on the file 
    215215              // we're opening 
    216              
    217               String map = group.getField(0, k).getMap();  
     216 
     217              String map = group.getField(0, k).getMap(); 
    218218              map = map.substring(0, map.indexOf(":")); 
    219219 
     
    224224              catch (ClassNotFoundException c) { 
    225225                st = Class.forName("org.openmicroscopy.xml.st." + map + "Node"); 
    226               }  
    227              
    228               Vector nodes = OMEXMLNode.createNodes(st,  
    229                 DOMUtil.getChildElements(map, root.getDOMElement()));  
    230               group.setRepetitions(nodes.size());  
    231             } 
    232              
    233             for (int r=0; r<group.getRepetitions(); r++) {  
     226              } 
     227 
     228              Vector nodes = OMEXMLNode.createNodes(st, 
     229                DOMUtil.getChildElements(map, root.getDOMElement())); 
     230              group.setRepetitions(nodes.size()); 
     231            } 
     232 
     233            for (int r=0; r<group.getRepetitions(); r++) { 
    234234              populateField(root, group.getField(r, k)); 
    235             }  
    236           } 
    237         } 
    238        
     235            } 
     236          } 
     237        } 
     238 
    239239        for (int j=0; j<tabs[i].getNumFields(); j++) { 
    240240          populateField(root, tabs[i].getField(j)); 
     
    254254      for (int i=0; i<tabs.length; i++) { 
    255255        for (int j=0; j<tabs[i].getNumGroups(); j++) { 
    256           TemplateGroup group = tabs[i].getGroup(j);  
     256          TemplateGroup group = tabs[i].getGroup(j); 
    257257          for (int k=0; k<group.getNumFields(); k++) { 
    258             for (int r=0; r<group.getRepetitions(); r++) {  
     258            for (int r=0; r<group.getRepetitions(); r++) { 
    259259              saveField(root, group.getField(r, k)); 
    260             }  
     260            } 
    261261          } 
    262262        } 
     
    265265          saveField(root, tabs[i].getField(j)); 
    266266        } 
    267       }  
     267      } 
    268268    } 
    269269    catch (Exception e) { 
     
    274274  /** Save the template to a file. */ 
    275275  public void save(String filename) throws IOException { 
    276     BufferedWriter writer = new BufferedWriter(new FileWriter(filename));  
    277     
     276    BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); 
     277 
    278278    if (options != null) { 
    279279      Enumeration keys = options.keys(); 
     
    282282        writer.write(key + " \"" + options.get(key) + "\"\n"); 
    283283      } 
    284     }  
     284    } 
    285285    if (tabs == null) return; 
    286286 
     
    288288      writer.write("tab {\n"); 
    289289      writer.write("  name \"" + tabs[i].getName() + "\"\n"); 
    290        
     290 
    291291      for (int j=0; j<tabs[i].getNumFields(); j++) { 
    292         TemplateField t = tabs[i].getField(j);  
     292        TemplateField t = tabs[i].getField(j); 
    293293        writer.write("  field {\n"); 
    294294        writer.write("    name \"" + t.getName() + "\"\n"); 
     
    296296        if (t.getMap() != null) { 
    297297          writer.write("    map \"" + t.getMap() + "\"\n"); 
    298         }  
     298        } 
    299299        if (t.getDefaultValue() != null) { 
    300300          writer.write("    default \"" + t.getDefaultValue() + "\"\n"); 
    301301        } 
    302302        writer.write("    grid \"" + t.getRow() + "," + t.getColumn() + "\"\n"); 
    303         writer.write("    span \"" + t.getWidth() + "," +  
    304           t.getHeight() + "\"\n");  
     303        writer.write("    span \"" + t.getWidth() + "," + 
     304          t.getHeight() + "\"\n"); 
    305305        writer.write("    repeated \"" + t.isRepeated() + "\"\n"); 
    306306 
     
    309309          writer.write("    values {"); 
    310310          for (int k=0; k<enums.length; k++) { 
    311             writer.write("\"" + enums[k] + "\"");  
    312             if (k < enums.length - 1) writer.write(", ");  
    313           } 
    314           writer.write("}\n");  
    315         } 
    316         writer.write("  }\n");  
    317       } 
    318       
     311            writer.write("\"" + enums[k] + "\""); 
     312            if (k < enums.length - 1) writer.write(", "); 
     313          } 
     314          writer.write("}\n"); 
     315        } 
     316        writer.write("  }\n"); 
     317      } 
     318 
    319319      for (int j=0; j<tabs[i].getNumGroups(); j++) { 
    320         TemplateGroup g = tabs[i].getGroup(j);  
     320        TemplateGroup g = tabs[i].getGroup(j); 
    321321 
    322322        writer.write("  group {\n"); 
     
    325325 
    326326        for (int k=0; k<g.getNumFields(); k++) { 
    327           TemplateField t = g.getField(0, k);  
     327          TemplateField t = g.getField(0, k); 
    328328          writer.write("    field {\n"); 
    329329          writer.write("      name \"" + t.getName() + "\"\n"); 
     
    331331          if (t.getMap() != null) { 
    332332            writer.write("      map \"" + t.getMap() + "\"\n"); 
    333           }  
     333          } 
    334334          if (t.getDefaultValue() != null) { 
    335335            writer.write("      default \"" + t.getDefaultValue() + "\"\n"); 
    336           }  
    337           writer.write("      grid \"" + t.getRow() + "," +  
     336          } 
     337          writer.write("      grid \"" + t.getRow() + "," + 
    338338            t.getColumn() + "\"\n"); 
    339           writer.write("      span \"" + t.getWidth() + "," +  
    340             t.getHeight() + "\"\n");  
     339          writer.write("      span \"" + t.getWidth() + "," + 
     340            t.getHeight() + "\"\n"); 
    341341          writer.write("      repeated \"" + t.isRepeated() + "\"\n"); 
    342            
     342 
    343343          String[] enums = t.getEnums(); 
    344344          if (enums != null && enums.length > 0) { 
    345345            writer.write("      values {"); 
    346346            for (int m=0; m<enums.length; m++) { 
    347               writer.write("\"" + enums[m] + "\"");  
    348               if (m < enums.length - 1) writer.write(", ");  
    349             } 
    350             writer.write("}\n");  
    351           } 
    352           writer.write("    }\n");  
    353         } 
    354        
    355         writer.write("  }\n");  
     347              writer.write("\"" + enums[m] + "\""); 
     348              if (m < enums.length - 1) writer.write(", "); 
     349            } 
     350            writer.write("}\n"); 
     351          } 
     352          writer.write("    }\n"); 
     353        } 
     354 
     355        writer.write("  }\n"); 
    356356      } 
    357357 
    358358      writer.write("}\n"); 
    359359    } 
    360    
    361     writer.close();  
     360 
     361    writer.close(); 
    362362  } 
    363363 
     
    365365  public void initializeFields(OMENode root) { 
    366366    for (int i=0; i<tabs.length; i++) { 
    367       int fields = tabs[i].getNumFields();  
     367      int fields = tabs[i].getNumFields(); 
    368368      for (int j=0; j<fields; j++) { 
    369369        if (tabs[i].getField(j).isRepeated()) { 
    370370          String map = tabs[i].getField(j).getMap(); 
    371371          if (map.indexOf("-") != -1) map = map.substring(0, map.indexOf("-")); 
    372            
     372 
    373373          try { 
    374374            int nodeCount = getNodeCount(root, map); 
     
    376376              TemplateField f = tabs[i].getField(j).copy(); 
    377377              f.setMap(map + "-" + k); 
    378               tabs[i].addField(f);  
     378              tabs[i].addField(f); 
    379379            } 
    380380          } 
     
    384384        } 
    385385      } 
    386      
     386 
    387387      for (int j=0; j<tabs[i].getNumGroups(); j++) { 
    388388        TemplateGroup g = tabs[i].getGroup(j); 
    389         fields = g.getNumFields();  
     389        fields = g.getNumFields(); 
    390390        for (int k=0; k<fields; k++) { 
    391391          TemplateField f = g.getField(0, k).copy(); 
    392           if (f.isRepeated()) {  
     392          if (f.isRepeated()) { 
    393393            String map = f.getMap(); 
    394394            if (map.indexOf("-") != -1) { 
     
    403403            } 
    404404            catch (Exception e) { 
    405               e.printStackTrace();   
    406             } 
    407           }  
    408         } 
    409       }  
    410      
     405              e.printStackTrace(); 
     406            } 
     407          } 
     408        } 
     409      } 
     410 
    411411    } 
    412412  } 
     
    414414  /** Change the value of an option. */ 
    415415  public void changeValue(String key, String value) { 
    416     options.put(key, value);  
     416    options.put(key, value); 
    417417  } 
    418418 
     
    421421 
    422422  /** Get the font style defined by this template. */ 
    423   public String getFontStyle() {  
    424     String style = (String) options.get("font-style");  
    425     return style == null ? DEFAULT_FONT : style;  
     423  public String getFontStyle() { 
     424    String style = (String) options.get("font-style"); 
     425    return style == null ? DEFAULT_FONT : style; 
    426426  } 
    427427 
     
    443443    String green = tuple.substring(comma + 1, tuple.indexOf(",", comma + 1)); 
    444444    String blue = tuple.substring(tuple.indexOf(",", comma + 1) + 1); 
    445    
     445 
    446446    return new int[] { 
    447447      Integer.parseInt(red), Integer.parseInt(green), Integer.parseInt(blue)}; 
     
    452452    String tuple = (String) options.get("background-color"); 
    453453 
    454     if (tuple == null) return DEFAULT_BACKGROUND_COLOR;  
     454    if (tuple == null) return DEFAULT_BACKGROUND_COLOR; 
    455455 
    456456    int comma = tuple.indexOf(","); 
     
    459459    String green = tuple.substring(comma + 1, tuple.indexOf(",", comma + 1)); 
    460460    String blue = tuple.substring(tuple.indexOf(",", comma + 1) + 1); 
    461    
     461 
    462462    return new int[] { 
    463463      Integer.parseInt(red), Integer.parseInt(green), Integer.parseInt(blue)}; 
     
    482482  } 
    483483 
    484   /**  
    485    * Returns whether or not the companion-file metadata should take precedence.  
     484  /** 
     485   * Returns whether or not the companion-file metadata should take precedence. 
    486486   */ 
    487487  public boolean preferCompanion() { 
    488488    String prefer = (String) options.get("prefer-companion"); 
    489     return prefer == null ? true : prefer.toLowerCase().equals("true");  
     489    return prefer == null ? true : prefer.toLowerCase().equals("true"); 
    490490  } 
    491491 
     
    506506  /** Populate the given TemplateField. */ 
    507507  private void populateField(OMENode root, TemplateField t) throws Exception { 
    508     OMEXMLNode node = findNode(root, t.getMap(), false);  
    509     
     508    OMEXMLNode node = findNode(root, t.getMap(), false); 
     509 
    510510    if (node == null) { 
    511511      // unmapped field 
     
    514514 
    515515      if (ca != null) { 
    516         Vector elements = DOMUtil.getChildElements("NotebookField",  
     516        Vector elements = DOMUtil.getChildElements("NotebookField", 
    517517          ca.getDOMElement()); 
    518518        for (int i=0; i<elements.size(); i++) { 
    519519          Element el = (Element) elements.get(i); 
    520520          if (DOMUtil.getAttribute("name", el).equals(t.getName())) { 
    521             String v = DOMUtil.getAttribute("value", el);  
    522             setComponentValue(t, t.getComponent(), v);   
     521            String v = DOMUtil.getAttribute("value", el); 
     522            setComponentValue(t, t.getComponent(), v); 
    523523          } 
    524524        } 
     
    532532    if (map.indexOf("-") != -1) { 
    533533      map = map.substring(0, map.indexOf("-")); 
    534     }  
     534    } 
    535535 
    536536    if (node instanceof AttributeNode) { 
    537       setComponentValue(t, t.getComponent(), node.getAttribute(map));   
    538       return;  
     537      setComponentValue(t, t.getComponent(), node.getAttribute(map)); 
     538      return; 
    539539    } 
    540540 
     
    548548    Method[] methods = node.getClass().getMethods(); 
    549549    for (int j=0; j<methods.length; j++) { 
    550       String name = methods[j].getName();   
    551            
    552       if ((name.equals(methodName1) || name.equals(methodName2)) &&  
    553         methods[j].getParameterTypes().length == 0)  
     550      String name = methods[j].getName(); 
     551 
     552      if ((name.equals(methodName1) || name.equals(methodName2)) && 
     553        methods[j].getParameterTypes().length == 0) 
    554554      { 
    555         Object o = methods[j].invoke(node, new Object[0]);  
     555        Object o = methods[j].invoke(node, new Object[0]); 
    556556        String s = o == null ? "" : o.toString(); 
    557557        String v = s.toLowerCase(); 
     
    560560 
    561561        setComponentValue(t, t.getComponent(), v); 
    562         break;  
     562        break; 
    563563      } 
    564564    } 
     
    568568  private void saveField(OMENode root, TemplateField t) throws Exception { 
    569569    OMEXMLNode node = findNode(root, t.getMap(), true); 
    570         
     570 
    571571    JComponent c = t.getComponent(); 
    572572    Object value = null; 
     
    588588 
    589589    String map = t.getMap(); 
    590      
     590 
    591591    if (map == null || map.length() == 0) { 
    592592      // this is a custom unmapped field, which gets stored in a 
     
    595595      CustomAttributesNode ca = root.getCustomAttributes(); 
    596596      Element el = DOMUtil.createChild(ca.getDOMElement(), "NotebookField"); 
    597       OMEXMLNode newNode = OMEXMLNode.createNode(el);  
     597      OMEXMLNode newNode = OMEXMLNode.createNode(el); 
    598598      newNode.setAttribute("name", t.getName()); 
    599599      newNode.setAttribute("value", value.toString()); 
    600       return;  
    601     } 
    602      
     600      return; 
     601    } 
     602 
    603603    map = map.substring(map.lastIndexOf(":") + 1); 
    604604    if (map.indexOf("-") != -1) { 
     
    612612    Method[] methods = node.getClass().getMethods(); 
    613613    for (int j=0; j<methods.length; j++) { 
    614       String name = methods[j].getName();   
    615          
     614      String name = methods[j].getName(); 
     615 
    616616      Class[] params = methods[j].getParameterTypes(); 
    617617 
    618618      if (name.equals(methodName) && params[0].equals(String.class)) { 
    619         methods[j].invoke(node, new Object[] {value});   
    620       }  
     619        methods[j].invoke(node, new Object[] {value}); 
     620      } 
    621621      else if (name.equals(methodName) && params[0].equals(Integer.class)) { 
    622622        methods[j].invoke(node, new Object[] {new Integer(value.toString())}); 
     
    631631    map = map.substring(map.lastIndexOf(":") + 1); 
    632632    if (map.indexOf("-") != -1) map = map.substring(0, map.indexOf("-")); 
    633     return DOMUtil.findElementList(map, root.getOMEDocument(true)).size();  
    634   } 
    635  
    636   /**  
    637    * Find the OME-XML node corresponding to the given map string.  
     633    return DOMUtil.findElementList(map, root.getOMEDocument(true)).size(); 
     634  } 
     635 
     636  /** 
     637   * Find the OME-XML node corresponding to the given map string. 
    638638   * If the 'create' flag is set, a new node will be created if one does not 
    639639   * already exist. 
    640640   */ 
    641   private OMEXMLNode findNode(OMENode root, String map, boolean create)  
    642     throws Exception  
     641  private OMEXMLNode findNode(OMENode root, String map, boolean create) 
     642    throws Exception 
    643643  { 
    644644    if (map == null || map.length() == 0) return null; 
     
    667667      stClass = Class.forName("org.openmicroscopy.xml.st." + st + "Node"); 
    668668    } 
    669      
     669 
    670670    Vector nodes = OMEXMLNode.createNodes(stClass, 
    671671      DOMUtil.getChildElements(st, root.getDOMElement())); 
     
    680680 
    681681    OMEXMLNode node = (OMEXMLNode) nodes.get(ndx < nodes.size() ? ndx : 0); 
    682     
     682 
    683683    if (map.indexOf("OriginalMetadata") != -1 && map.indexOf("-") != -1) { 
    684684      ndx = Integer.parseInt(map.substring(map.indexOf("-") + 1)); 
     
    696696        methodName2 = "getCAList"; 
    697697      } 
    698        
    699       // find the next node in the list  
    700       
     698 
     699      // find the next node in the list 
     700 
    701701      Method[] methods = node.getClass().getMethods(); 
    702702 
     
    713713              className = className.substring(idx + 1); 
    714714 
    715               if (className.equals(type + "Node") ||  
    716                 (className.equals("AttributeNode") &&  
    717                 type.equals("OriginalMetadata")))  
     715              if (className.equals(type + "Node") || 
     716                (className.equals("AttributeNode") && 
     717                type.equals("OriginalMetadata"))) 
    718718              { 
    719                 count++;  
    720                 if (count == ndx) {  
     719                count++; 
     720                if (count == ndx) { 
    721721                  node = (OMEXMLNode) list.get(k); 
    722                   if (type.equals("OriginalMetadata")) return node;  
    723                   break;  
    724                 }  
     722                  if (type.equals("OriginalMetadata")) return node; 
     723                  break; 
     724                } 
    725725              } 
    726726            } 
    727727          } 
    728           else node = (OMEXMLNode) methods[j].invoke(node, new Object[0]);  
    729         
     728          else node = (OMEXMLNode) methods[j].invoke(node, new Object[0]); 
     729 
    730730          // check if we found a matching node; if not, create one 
    731           if (node == null ||  
    732             !node.getClass().getName().endsWith(type + "Node"))  
     731          if (node == null || 
     732            !node.getClass().getName().endsWith(type + "Node")) 
    733733          { 
    734734            Class target = null; 
     
    738738            } 
    739739            catch (ClassNotFoundException e) { 
    740               try {  
    741                 target =  
     740              try { 
     741                target = 
    742742                  Class.forName("org.openmicroscopy.xml.st." + type + "Node"); 
    743743              } 
    744744              catch (ClassNotFoundException cfe) { 
    745                 cfe.printStackTrace();      
     745                cfe.printStackTrace(); 
    746746              } 
    747747            } 
    748              
    749             Class param =  
    750               target.getName().startsWith("org.openmicroscopy.xml.st.") ?  
     748 
     749            Class param = 
     750              target.getName().startsWith("org.openmicroscopy.xml.st.") ? 
    751751              CustomAttributesNode.class : node.getClass(); 
    752752            Constructor con = target.getConstructor(new Class[] {param}); 
    753              
     753 
    754754            if (node == null) { 
    755755              node = (OMEXMLNode) nodes.get(ndx < nodes.size() ? ndx : 0); 
    756               node = (OMEXMLNode) param.getConstructor(new Class[]  
     756              node = (OMEXMLNode) param.getConstructor(new Class[] 
    757757                {node.getClass()}).newInstance(new Object[] {node}); 
    758758            } 
     
    764764      } 
    765765    } 
    766     return node;  
     766    return node; 
    767767  } 
    768768 
    769769  /** Sets the value of the given component, based on the given string. */ 
    770   private void setComponentValue(TemplateField t, JComponent component,  
    771     String v)  
     770  private void setComponentValue(TemplateField t, JComponent component, 
     771    String v) 
    772772  { 
    773773    if (component instanceof JCheckBox) { 
     
    786786      JScrollPane scroll = (JScrollPane) component; 
    787787      JViewport view = scroll.getViewport(); 
    788       ((JTextArea) view.getView()).setText(v);  
     788      ((JTextArea) view.getView()).setText(v); 
    789789    } 
    790790    else if (component instanceof JSpinner) { 
  • trunk/loci/ome/notebook/TemplateField.java

    r2656 r2725  
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8     
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    1111the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13       
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18         
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    6969    if (s.indexOf("{") != -1 && s.lastIndexOf("}") != -1) { 
    7070      s = s.substring(s.indexOf("{") + 1, s.lastIndexOf("}")).trim(); 
    71        
     71 
    7272      StringTokenizer lines = new StringTokenizer(s, "\n"); 
    7373      while (lines.hasMoreTokens()) { 
    7474        String line = lines.nextToken().trim(); 
    75         
     75 
    7676        String key = line.substring(0, line.indexOf(" ")).trim(); 
    7777        String value = line.substring(line.indexOf(" ")).trim(); 
    7878        value = value.substring(1, value.length() - 1); 
    7979 
    80         if (key.startsWith("name")) name = value;  
    81         else if (key.startsWith("type")) type = value;  
    82         else if (key.startsWith("map")) omecaMap = value;  
     80        if (key.startsWith("name")) name = value; 
     81        else if (key.startsWith("type")) type = value; 
     82        else if (key.startsWith("map")) omecaMap = value; 
    8383        else if (key.startsWith("repeated")) { 
    84           repeated = new Boolean(value).booleanValue();  
    85         }  
     84          repeated = new Boolean(value).booleanValue(); 
     85        } 
    8686        else if (key.startsWith("grid")) { 
    8787          row = Integer.parseInt(value.substring(0, value.indexOf(","))); 
     
    9191          width = Integer.parseInt(value.substring(0, value.indexOf(","))); 
    9292          height = Integer.parseInt(value.substring(value.indexOf(",") + 1)); 
    93         }         
     93        } 
    9494        else if (key.startsWith("values")) { 
    9595          StringTokenizer e = new StringTokenizer(value, "\", "); 
    96           Vector tokens = new Vector();  
     96          Vector tokens = new Vector(); 
    9797          while (e.hasMoreTokens()) { 
    9898            String token = e.nextToken().trim(); 
     
    104104        else if (key.startsWith("default")) { 
    105105          if (type.equals("var") || type.equals("enum")) { 
    106             defaultValue = value;     
     106            defaultValue = value; 
    107107          } 
    108108          else if (type.equals("bool")) { 
     
    115115      } 
    116116    } 
    117    
    118     // create the associate JComponent  
    119      
     117 
     118    // create the associate JComponent 
     119 
    120120    if (type.equals("var")) { 
    121121      JTextArea text = null; 
    122122      if (width != 1 || height != 1) { 
    123         text = new JTextArea((String) defaultValue, width, height);  
     123        text = new JTextArea((String) defaultValue, width, height); 
    124124      } 
    125125      else text = new JTextArea((String) defaultValue); 
     
    135135    } 
    136136    else if (type.equals("int")) { 
    137       if (defaultValue == null) defaultValue = new Integer(0);  
     137      if (defaultValue == null) defaultValue = new Integer(0); 
    138138      int v = ((Integer) defaultValue).intValue(); 
    139       component =  
     139      component = 
    140140        new JSpinner(new SpinnerNumberModel(v, 0, Integer.MAX_VALUE, 1)); 
    141141    } 
     
    161161      JTextArea text = null; 
    162162      if (width != 1 || height != 1) { 
    163         text = new JTextArea((String) defaultValue, width, height);  
     163        text = new JTextArea((String) defaultValue, width, height); 
    164164      } 
    165165      else text = new JTextArea((String) defaultValue); 
     
    180180 
    181181    rtn.setComponent(comp); 
    182     return rtn;  
     182    return rtn; 
    183183  } 
    184184 
     
    197197  public String getName() { return name; } 
    198198 
    199   public void setName(String name) { this.name = name; }  
     199  public void setName(String name) { this.name = name; } 
    200200 
    201201  public String getMap() { return omecaMap; } 
  • trunk/loci/ome/notebook/TemplateGroup.java

    r2649 r2725  
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8     
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    11 the Free Software Foundation; either version 2 of the License, or  
     11the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13       
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18         
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    5454  public int getRepetitions() { return repetitions; } 
    5555 
    56   public void setRepetitions(int repetitions) {  
    57     int oldRepetitions = this.repetitions;  
    58     this.repetitions = repetitions;  
    59    
     56  public void setRepetitions(int repetitions) { 
     57    int oldRepetitions = this.repetitions; 
     58    this.repetitions = repetitions; 
     59 
    6060    if (oldRepetitions < repetitions) { 
    6161      for (int i=oldRepetitions; i<repetitions; i++) { 
    6262        for (int j=0; j<numFields; j++) { 
    63           TemplateField f = null;  
     63          TemplateField f = null; 
    6464          if (oldRepetitions == 0) { 
    65             f = ((TemplateField) fields.get(new Point(0, j))).copy();  
     65            f = ((TemplateField) fields.get(new Point(0, j))).copy(); 
    6666          } 
    67           else f = ((TemplateField) fields.get(new Point(i - 1, j))).copy();  
    68           adjustMap(f, i);  
    69           fields.put(new Point(i, j), f);  
     67          else f = ((TemplateField) fields.get(new Point(i - 1, j))).copy(); 
     68          adjustMap(f, i); 
     69          fields.put(new Point(i, j), f); 
    7070        } 
    71       }  
     71      } 
    7272    } 
    7373    else if (oldRepetitions > repetitions) { 
     
    8686  public int getNumFields() { return numFields; } 
    8787 
    88   public TemplateField getField(int repetition, int ndx) {  
    89     return (TemplateField) fields.get(new Point(repetition, ndx));  
     88  public TemplateField getField(int repetition, int ndx) { 
     89    return (TemplateField) fields.get(new Point(repetition, ndx)); 
    9090  } 
    9191 
    9292  public void addField(TemplateField t) { 
    93     if (repetitions > 0) {  
     93    if (repetitions > 0) { 
    9494      for (int i=0; i<repetitions; i++) { 
    9595        TemplateField f = t.copy(); 
    9696        adjustMap(f, i); 
    97         fields.put(new Point(i, numFields), f);     
     97        fields.put(new Point(i, numFields), f); 
    9898      } 
    9999    } 
    100     else fields.put(new Point(0, numFields), t.copy());  
    101     numFields++;  
     100    else fields.put(new Point(0, numFields), t.copy()); 
     101    numFields++; 
    102102  } 
    103103 
    104   public void removeField(int ndx) {  
     104  public void removeField(int ndx) { 
    105105    for (int i=0; i<repetitions; i++) { 
    106106      fields.remove(new Point(i, ndx)); 
     
    110110  // -- Helper methods -- 
    111111 
    112   /**  
    113    * Adjust the mapping so that the node index matches the repetition number.  
     112  /** 
     113   * Adjust the mapping so that the node index matches the repetition number. 
    114114   */ 
    115115  private void adjustMap(TemplateField t, int repetition) { 
     
    118118 
    119119    if (map.lastIndexOf("-") != -1) { 
    120       map = map.substring(0, map.lastIndexOf("-"));  
     120      map = map.substring(0, map.lastIndexOf("-")); 
    121121    } 
    122    
    123     map = map + "-" + repetition;  
    124     t.setMap(map);  
     122 
     123    map = map + "-" + repetition; 
     124    t.setMap(map); 
    125125  } 
    126126 
  • trunk/loci/ome/notebook/TemplateTab.java

    r2656 r2725  
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8    
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    11 the Free Software Foundation; either version 2 of the License, or  
     11the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13       
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18         
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    5252  // -- TemplateTab API methods -- 
    5353 
    54   public int getRows() {  
     54  public int getRows() { 
    5555    if (rows == 0) { 
    5656      for (int i=0; i<fields.size(); i++) { 
    5757        rows += ((TemplateField) fields.get(i)).getHeight(); 
    58       }  
    59      
     58      } 
     59 
    6060      for (int i=0; i<groups.size(); i++) { 
    6161        TemplateGroup g = (TemplateGroup) groups.get(i); 
    62         for (int k=0; k<g.getRepetitions(); k++) {  
     62        for (int k=0; k<g.getRepetitions(); k++) { 
    6363          for (int j=0; j<g.getNumFields(); j++) { 
    6464            rows += g.getField(0, j).getHeight(); 
    6565          } 
    66           rows++;  
    67         }  
     66          rows++; 
     67        } 
    6868      } 
    6969    } 
    70      
    71     return rows;  
     70 
     71    return rows; 
    7272  } 
    7373 
     
    9898      TemplateField t = (TemplateField) fields.get(i); 
    9999      if (t.getRow() == row && t.getColumn() == col) return t; 
    100     }  
    101     return null;  
     100    } 
     101    return null; 
    102102  } 
    103103 
  • trunk/loci/ome/notebook/editor/TemplateEditor.java

    r2656 r2725  
    66OME Metadata Notebook application for exploration and editing of OME-XML and 
    77OME-TIFF metadata. Copyright (C) 2006-@year@ Christopher Peterson. 
    8     
     8 
    99This program is free software; you can redistribute it and/or modify 
    1010it under the terms of the GNU Library General Public License as published by 
    1111the Free Software Foundation; either version 2 of the License, or 
    1212(at your option) any later version. 
    13         
     13 
    1414This program is distributed in the hope that it will be useful, 
    1515but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1616MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1717GNU Library General Public License for more details. 
    18             
     18 
    1919You should have received a copy of the GNU Library General Public License 
    2020along with this program; if not, write to the Free Software 
     
    3636 
    3737/** Main class for notebook template editor. */ 
    38 public class TemplateEditor extends JFrame  
    39   implements ActionListener, MouseListener  
     38public class TemplateEditor extends JFrame 
     39  implements ActionListener, MouseListener 
    4040{ 
    4141 
     
    4343 
    4444  /** List of component names. */ 
    45   private String[] COMPONENT_NAMES = new String[] {"Text field",  
     45  private String[] COMPONENT_NAMES = new String[] {"Text field", 
    4646    "Number field", "Choice field", "Checkbox field" 
    4747  }; 
     
    8484  /** List of tab panels corresponding to TemplateTabs. */ 
    8585  private Vector tabPanels; 
    86   
     86 
    8787  /** Current tab index. */ 
    8888  private int currentTab; 
     
    103103    tabPanels = new Vector(); 
    104104 
    105     // set up menu bar  
     105    // set up menu bar 
    106106 
    107107    JMenuBar menubar = new JMenuBar(); 
     
    128128    quit.addActionListener(this); 
    129129    file.add(quit); 
    130   
     130 
    131131    menubar.add(file); 
    132    
     132 
    133133    JMenu view = new JMenu("View"); 
    134134 
     
    158158    } 
    159159 
    160     menubar.add(add);  
     160    menubar.add(add); 
    161161 
    162162    JMenu remove = new JMenu("Remove"); 
     
    188188 
    189189    // set up popup menu 
    190        
     190 
    191191    popup = new JPopupMenu(); 
    192192    JMenuItem item = new JMenuItem("Add row"); 
     
    225225    } 
    226226 
    227     setContentPane(template);  
     227    setContentPane(template); 
    228228    setPreferredSize(new Dimension(768, 768)); 
    229229    pack(); 
     
    250250      if (i < rows - 1) row.append(", "); 
    251251    } 
    252    
     252 
    253253    for (int i=0; i<columns; i++) { 
    254254      col.append("pref:grow, pref:grow"); 
    255255      if (i < columns - 1) col.append(", "); 
    256     }  
     256    } 
    257257 
    258258    FormLayout layout = new FormLayout(col.toString(), row.toString()); 
    259     JPanel panel = new JPanel(layout);  
    260     
     259    JPanel panel = new JPanel(layout); 
     260 
    261261    CellConstraints cc = new CellConstraints(); 
    262        
     262 
    263263    for (int i=0; i<tab.getNumFields(); i++) { 
    264       TemplateField f = tab.getField(i);  
     264      TemplateField f = tab.getField(i); 
    265265      panel.add(new JLabel(f.getName()), cc.xy(1, i + 1)); 
    266       panel.add(f.getComponent(), cc.xywh(2, i + 1, f.getWidth(),  
    267         f.getHeight()));     
    268     } 
    269     tabPanels.add(panel);  
    270    
     266      panel.add(f.getComponent(), cc.xywh(2, i + 1, f.getWidth(), 
     267        f.getHeight())); 
     268    } 
     269    tabPanels.add(panel); 
     270 
    271271    // add this tab to the menu bar 
    272272    JMenuItem item = new JMenuItem(tab.getName()); 
     
    274274    item.addActionListener(this); 
    275275    tabMenu.add(item); 
    276     pack();  
     276    pack(); 
    277277  } 
    278278 
     
    281281    removeGroup.removeAll(); 
    282282    removeField.removeAll(); 
    283   
     283 
    284284    for (int i=0; i<tabs.size(); i++) { 
    285       TemplateTab tab = (TemplateTab) tabs.get(i);  
    286        
     285      TemplateTab tab = (TemplateTab) tabs.get(i); 
     286 
    287287      JMenuItem item = new JMenuItem(tab.getName()); 
    288288      item.setActionCommand("removeTab " + i); 
     
    306306          removeField.add(f); 
    307307        } 
    308         numFields += g.getNumFields();  
    309       } 
    310        
     308        numFields += g.getNumFields(); 
     309      } 
     310 
    311311      for (int j=0; j<tab.getNumFields(); j++) { 
    312312        JMenuItem f = new JMenuItem(tab.getField(j).getName()); 
    313         f.setActionCommand("removeField " + (numFields + j));  
     313        f.setActionCommand("removeField " + (numFields + j)); 
    314314        f.addActionListener(this); 
    315315        removeField.add(f); 
    316316      } 
    317317    } 
    318   
     318 
    319319  } 
    320320 
     
    334334          return f.getAbsolutePath().endsWith(".template") || f.isDirectory(); 
    335335        } 
    336         public String getDescription() { return "OME Notebook templates"; }  
     336        public String getDescription() { return "OME Notebook templates"; } 
    337337      }; 
    338338 
     
    340340 
    341341      if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { 
    342         try {  
    343           Template t =  
     342        try { 
     343          Template t = 
    344344            new Template(chooser.getSelectedFile().getAbsolutePath()); 
    345345          TemplateTab[] newTabs = t.getTabs(); 
     
    350350        } 
    351351      } 
    352      
     352 
    353353    } 
    354354    else if (cmd.equals("save")) { 
    355355      // prompt for path to save to 
    356       try {  
     356      try { 
    357357        JFileChooser chooser = new JFileChooser(); 
    358358        if (chooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { 
    359359          Hashtable h = new Hashtable(); 
    360           if (options != null && options.size() > 0) {   
     360          if (options != null && options.size() > 0) { 
    361361            Object[] keys = options.keySet().toArray(); 
    362362            for (int i=0; i<keys.length; i++) { 
    363               String value = ((Option) options.get(keys[i])).value;  
    364               if (value != null) h.put(keys[i], value);  
    365             }  
    366           }  
     363              String value = ((Option) options.get(keys[i])).value; 
     364              if (value != null) h.put(keys[i], value); 
     365            } 
     366          } 
    367367 
    368368          Template t = new Template( 
    369369            (TemplateTab[]) tabs.toArray(new TemplateTab[0]), h); 
    370           t.save(chooser.getSelectedFile().getAbsolutePath());  
     370          t.save(chooser.getSelectedFile().getAbsolutePath()); 
    371371        } 
    372372      } 
     
    375375      } 
    376376    } 
    377     else if (cmd.equals("quit")) dispose();  
     377    else if (cmd.equals("quit")) dispose(); 
    378378    else if (cmd.equals("new tab")) { 
    379379      TemplateTab t = new TemplateTab(); 
    380       Prompter fp =  
    381         new Prompter(this, null, Integer.MAX_VALUE, Integer.MAX_VALUE, TAB);  
    382       if (!fp.wasCanceled()) {  
    383         t.setName(fp.getName());  
    384         addTab(t, fp.getRow(), fp.getColumn());  
    385       }   
    386       updateRemoveLists();  
     380      Prompter fp = 
     381        new Prompter(this, null, Integer.MAX_VALUE, Integer.MAX_VALUE, TAB); 
     382      if (!fp.wasCanceled()) { 
     383        t.setName(fp.getName()); 
     384        addTab(t, fp.getRow(), fp.getColumn()); 
     385      } 
     386      updateRemoveLists(); 
    387387    } 
    388388    else if (cmd.equals("new group")) { 
     
    396396 
    397397      ((TemplateTab) tabs.get(currentTab)).addGroup(g); 
    398       updateRemoveLists();  
     398      updateRemoveLists(); 
    399399    } 
    400400    else if (cmd.startsWith("removeTab")) { 
    401401      int ndx = Integer.parseInt(cmd.substring(cmd.indexOf(" ") + 1)); 
    402       tabs.removeElementAt(ndx);  
    403       
     402      tabs.removeElementAt(ndx); 
     403 
    404404      tabMenu.removeAll(); 
    405405 
     
    410410        tabMenu.add(item); 
    411411      } 
    412        
    413       updateRemoveLists();   
     412 
     413      updateRemoveLists(); 
    414414    } 
    415415    else if (cmd.startsWith("removeGroup")) { 
    416416      int ndx = Integer.parseInt(cmd.substring(cmd.indexOf(" ") + 1)); 
    417417      ((TemplateTab) tabs.get(currentTab)).removeGroup(ndx); 
    418       updateRemoveLists();  
     418      updateRemoveLists(); 
    419419    } 
    420420    else if (cmd.startsWith("removeField")) { 
     
    431431        ((TemplateTab) tabs.get(currentTab)).removeField(fieldIdx); 
    432432      } 
    433       updateRemoveLists();  
     433      updateRemoveLists(); 
    434434    } 
    435435    else if (cmd.equals("general options")) { 
    436       // pop up a dialog with general template options  
    437    
     436      // pop up a dialog with general template options 
     437 
    438438      if (options == null) { 
    439439        options = new Hashtable(); 
    440440        //options.put("font-style", new Option("Font", new JTextField(""))); 
    441         //options.put("font-size", new Option("Font size",  
     441        //options.put("font-size", new Option("Font size", 
    442442        //  new JSpinner(new SpinnerNumberModel(12, 1, Integer.MAX_VALUE, 1)))); 
    443443        //options.put("font-color", new Option()); 
     
    447447        options.put("default-height", new Option("Window height", 
    448448          new JSpinner(new SpinnerNumberModel(600, 1, Integer.MAX_VALUE, 1)))); 
    449         options.put("editable", new Option("Allow editing",  
     449        options.put("editable", new Option("Allow editing", 
    450450          new JCheckBox("", true))); 
    451         options.put("prefer-companion",  
    452           new Option("Prefer metadata companion file",  
     451        options.put("prefer-companion", 
     452          new Option("Prefer metadata companion file", 
    453453          new JCheckBox("", true))); 
    454454        //options.put("edit-template-fields", new Options()); 
    455455        //options.put("edit-mapping", new Options()); 
    456         options.put("rows",  
    457           new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1)));  
    458         options.put("columns",  
    459           new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1)));  
    460       }  
     456        options.put("rows", 
     457          new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1))); 
     458        options.put("columns", 
     459          new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1))); 
     460      } 
    461461 
    462462      Options window = new Options(this, options); 
     
    465465    else if (cmd.startsWith("tab")) { 
    466466      // switch which tab we're editing 
    467     
     467 
    468468      currentTab = Integer.parseInt(cmd.substring(3)); 
    469469      template = (JPanel) tabPanels.get(currentTab); 
    470       template.addMouseListener(this);  
    471       setContentPane(template);  
    472        
     470      template.addMouseListener(this); 
     471      setContentPane(template); 
     472 
    473473      fieldOptions.removeAll(); 
    474474      TemplateTab tab = (TemplateTab) tabs.get(currentTab); 
     
    478478        item.addActionListener(this); 
    479479        fieldOptions.add(item); 
    480       }  
    481        
     480      } 
     481 
    482482      pack(); 
    483       updateRemoveLists();  
     483      updateRemoveLists(); 
    484484    } 
    485485    else if (cmd.equals("add row")) { 
    486       FormLayout current =  
     486      FormLayout current = 
    487487        (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout(); 
    488       current.appendRow(new RowSpec("pref:grow"));  
    489       ((JPanel) tabPanels.get(currentTab)).setLayout(current);  
     488      current.appendRow(new RowSpec("pref:grow")); 
     489      ((JPanel) tabPanels.get(currentTab)).setLayout(current); 
    490490    } 
    491491    else if (cmd.equals("remove row")) { 
    492       FormLayout current =  
     492      FormLayout current = 
    493493        (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout(); 
    494       current.removeRow(current.getRowCount());  
    495       ((JPanel) tabPanels.get(currentTab)).setLayout(current);  
     494      current.removeRow(current.getRowCount()); 
     495      ((JPanel) tabPanels.get(currentTab)).setLayout(current); 
    496496    } 
    497497    else if (cmd.equals("add column")) { 
    498       FormLayout current =  
     498      FormLayout current = 
    499499        (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout(); 
    500       current.appendColumn(new ColumnSpec("pref:grow"));  
    501       current.appendColumn(new ColumnSpec("pref:grow"));  
    502       ((JPanel) tabPanels.get(currentTab)).setLayout(current);  
     500      current.appendColumn(new ColumnSpec("pref:grow")); 
     501      current.appendColumn(new ColumnSpec("pref:grow")); 
     502      ((JPanel) tabPanels.get(currentTab)).setLayout(current); 
    503503    } 
    504504    else if (cmd.equals("remove column")) { 
    505       FormLayout current =  
     505      FormLayout current = 
    506506        (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout(); 
    507       current.removeColumn(current.getColumnCount());  
    508       current.removeColumn(current.getColumnCount());  
    509       ((JPanel) tabPanels.get(currentTab)).setLayout(current);  
     507      current.removeColumn(current.getColumnCount()); 
     508      current.removeColumn(current.getColumnCount()); 
     509      ((JPanel) tabPanels.get(currentTab)).setLayout(current); 
    510510    } 
    511511    else { 
    512       // prompt for name and location  
    513       FormLayout current =  
    514         (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout();  
     512      // prompt for name and location 
     513      FormLayout current = 
     514        (FormLayout) ((JPanel) tabPanels.get(currentTab)).getLayout(); 
    515515      int maxRow = current.getRowCount(); 
    516516      int maxCol = current.getColumnCount() / 2; 
    517        
    518       String[] groupNames =  
    519         new String[((TemplateTab) tabs.get(currentTab)).getNumGroups() + 1];  
     517 
     518      String[] groupNames = 
     519        new String[((TemplateTab) tabs.get(currentTab)).getNumGroups() + 1]; 
    520520      for (int i=1; i<=groupNames.length-1; i++) { 
    521         groupNames[i] =  
     521        groupNames[i] = 
    522522          ((TemplateTab) tabs.get(currentTab)).getGroup(i - 1).getName(); 
    523523      } 
    524524 
    525       Prompter fp = new Prompter(this, groupNames, maxRow, maxCol, FIELD);  
    526       
    527       if (fp.wasCanceled()) return;  
     525      Prompter fp = new Prompter(this, groupNames, maxRow, maxCol, FIELD); 
     526 
     527      if (fp.wasCanceled()) return; 
    528528 
    529529      int row = fp.getRow(); 
    530530      int col = fp.getColumn(); 
    531531      String name = fp.getName(); 
    532     
     532 
    533533      int ndx = -1; 
    534534      for (int i=0; i<COMPONENT_NAMES.length; i++) { 
     
    539539      } 
    540540 
    541       // now add this component to the panel  
    542   
    543       // TODO : need to handle group layouts  
     541      // now add this component to the panel 
     542 
     543      // TODO : need to handle group layouts 
    544544      try { 
    545545        CellConstraints cc = new CellConstraints(); 
    546546        JPanel pane = (JPanel) tabPanels.get(currentTab); 
    547547        pane.add(new JLabel(name), cc.xy(col*2 - 1, row)); 
    548         pane.add((JComponent) COMPONENTS[ndx].newInstance(),  
     548        pane.add((JComponent) COMPONENTS[ndx].newInstance(), 
    549549          cc.xywh(col*2, row, fp.getWidth(), fp.getHeight())); 
    550550        tabPanels.setElementAt(pane, currentTab); 
    551         pack();  
     551        pack(); 
    552552      } 
    553553      catch (Exception exc) { 
     
    555555      } 
    556556 
    557       // add this field to the current tab  
     557      // add this field to the current tab 
    558558      TemplateField field = new TemplateField(); 
    559559      field.setName(name); 
     
    563563      field.setHeight(fp.getHeight()); 
    564564      field.setType(COMPONENT_TYPES[ndx]); 
    565       field.setMap(fp.getMap());  
     565      field.setMap(fp.getMap()); 
    566566 
    567567      String group = fp.getGroup(); 
     
    573573        for (int i=0; i<thisTab.getNumGroups(); i++) { 
    574574          if (thisTab.getGroup(i).getName().equals(group)) { 
    575             thisTab.getGroup(i).addField(field);   
    576             break;  
     575            thisTab.getGroup(i).addField(field); 
     576            break; 
    577577          } 
    578         }  
     578        } 
    579579      } 
    580580 
     
    585585      fieldOptions.add(menuItem); 
    586586      pack(); 
    587       updateRemoveLists();  
    588     } 
    589    
    590   } 
    591   
     587      updateRemoveLists(); 
     588    } 
     589 
     590  } 
     591 
    592592  // -- MouseListener API methods -- 
    593593 
     
    620620  /** Prompts for necessary information about a tab, group or field. */ 
    621621  public class Prompter extends JDialog implements ActionListener { 
    622    
     622 
    623623    // -- Static fields -- 
    624624 
     
    626626 
    627627    Hashtable buildMappings() { 
    628       InputStream stream =  
    629         TemplateEditor.class.getResourceAsStream("mapping.txt");   
    630       BufferedReader b = new BufferedReader(new InputStreamReader(stream));  
    631      
     628      InputStream stream = 
     629        TemplateEditor.class.getResourceAsStream("mapping.txt"); 
     630      BufferedReader b = new BufferedReader(new InputStreamReader(stream)); 
     631 
    632632      Hashtable h = new Hashtable(); 
    633        
     633 
    634634      try { 
    635635        String line = b.readLine().trim(); 
     
    654654    private JTextField name; 
    655655    private JSpinner row, col; 
    656     private JSpinner width, height;  
     656    private JSpinner width, height; 
    657657    private JComboBox omexml; 
    658     private JComboBox group;  
    659     private JSpinner groupSpinner;  
     658    private JComboBox group; 
     659    private JSpinner groupSpinner; 
    660660    private boolean canceled = false; 
    661661 
    662662    // -- Constructor -- 
    663    
    664     public Prompter(JFrame owner, String[] groups, int rowMax, int colMax,  
    665       int type)  
     663 
     664    public Prompter(JFrame owner, String[] groups, int rowMax, int colMax, 
     665      int type) 
    666666    { 
    667       super(owner, "New " + (type == TemplateEditor.FIELD ? "field" :  
    668         type == TemplateEditor.TAB ? "tab" : "group") + "...", true);  
     667      super(owner, "New " + (type == TemplateEditor.FIELD ? "field" : 
     668        type == TemplateEditor.TAB ? "tab" : "group") + "...", true); 
    669669 
    670670      FormLayout layout = 
     
    677677      name = new JTextField(); 
    678678 
    679       String n = type == TemplateEditor.TAB ? "Tab" :  
     679      String n = type == TemplateEditor.TAB ? "Tab" : 
    680680        type == TemplateEditor.GROUP ? "Group" : "Field"; 
    681681 
    682682      pane.add(new JLabel(n + " name:"), cc.xy(2, 1)); 
    683       pane.add(name, cc.xy(4, 1));  
    684        
    685       if (type != TemplateEditor.GROUP) {  
    686         boolean field = type == TemplateEditor.FIELD;  
    687          
     683      pane.add(name, cc.xy(4, 1)); 
     684 
     685      if (type != TemplateEditor.GROUP) { 
     686        boolean field = type == TemplateEditor.FIELD; 
     687 
    688688        row = new JSpinner(new SpinnerNumberModel(1, 1, rowMax, 1)); 
    689689        col = new JSpinner(new SpinnerNumberModel(1, 1, colMax, 1)); 
     
    692692        pane.add(row, cc.xy(4, 2)); 
    693693        pane.add(col, cc.xy(4, 3)); 
    694       }  
    695        
     694      } 
     695 
    696696      if (type == TemplateEditor.FIELD) { 
    697697        width = new JSpinner(new SpinnerNumberModel(1, 1, rowMax, 1)); 
     
    702702        pane.add(height, cc.xy(4, 5)); 
    703703 
    704         pane.add(new JLabel("OME-XML mapping:"), cc.xy(2, 6));  
     704        pane.add(new JLabel("OME-XML mapping:"), cc.xy(2, 6)); 
    705705        pane.add(new JLabel("Group:"), cc.xy(2, 5)); 
    706706        group = new JComboBox(groups); 
     
    708708 
    709709        omexml = new JComboBox(omexmlMaps.keySet().toArray()); 
    710         pane.add(omexml, cc.xy(4, 6));  
    711       }  
    712       
     710        pane.add(omexml, cc.xy(4, 6)); 
     711      } 
     712 
    713713      if (type == TemplateEditor.GROUP) { 
    714         groupSpinner = new JSpinner(new SpinnerNumberModel(0, 0,  
     714        groupSpinner = new JSpinner(new SpinnerNumberModel(0, 0, 
    715715          Integer.MAX_VALUE, 1)); 
    716716        pane.add(new JLabel("Repetitions:"), cc.xy(2, 2)); 
     
    721721      ok.setActionCommand("ok"); 
    722722      ok.addActionListener(this); 
    723       pane.add(ok, cc.xy(2, 7));  
     723      pane.add(ok, cc.xy(2, 7)); 
    724724 
    725725      JButton cancel = new JButton("Cancel"); 
     
    728728      pane.add(cancel, cc.xy(4, 7)); 
    729729 
    730       setContentPane(pane);   
     730      setContentPane(pane); 
    731731      setPreferredSize(new Dimension(325, 130)); 
    732732      pack(); 
    733       setDefaultCloseOperation(DISPOSE_ON_CLOSE);  
    734       setVisible(true);  
     733      setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
     734      setVisible(true); 
    735735    } 
    736736 
     
    747747    public String getName() { return name.getText(); } 
    748748 
    749     public String getMap() {  
    750       return (String) omexmlMaps.get(omexml.getSelectedItem());  
     749    public String getMap() { 
     750      return (String) omexmlMaps.get(omexml.getSelectedItem()); 
    751751    } 
    752752 
    753753    public String getGroup() { return (String) group.getSelectedItem(); } 
    754754 
    755     public int getRepetitions() {  
    756       return ((Integer) groupSpinner.getValue()).intValue();  
     755    public int getRepetitions() { 
     756      return ((Integer) groupSpinner.getValue()).intValue(); 
    757757    } 
    758758 
     
    767767      else if (e.getActionCommand().equals("cancel")) { 
    768768        canceled = true; 
    769         dispose();  
     769        dispose(); 
    770770      } 
    771771    } 
     
    784784      super(parent, "General Template Options", true); 
    785785      this.options = options; 
    786    
     786 
    787787      String rowString = "2dlu"; 
    788788      for (int i=0; i<=options.size(); i++) { 
     
    790790      } 
    791791 
    792       FormLayout layout =  
     792      FormLayout layout = 
    793793        new FormLayout("2dlu, pref:grow, 2dlu, pref:grow, 2dlu", rowString); 
    794794      JPanel panel = new JPanel(layout); 
     
    801801        Option o = (Option) options.get(keys[i]); 
    802802        panel.add(new JLabel(o.label), cc.xy(2, 2*(i + 1))); 
    803         panel.add(o.component, cc.xy(4, 2*(i + 1)));  
     803        panel.add(o.component, cc.xy(4, 2*(i + 1))); 
    804804      } 
    805805 
     
    812812      setPreferredSize(new Dimension(400, 400)); 
    813813      setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
    814       pack();  
     814      pack(); 
    815815      setVisible(true); 
    816816    } 
     
    825825      if (e.getActionCommand().equals("ok")) { 
    826826        Component[] components = getContentPane().getComponents(); 
    827         for (int i=0; i<components.length; i++) {  
    828           Component src = components[i];  
     827        for (int i=0; i<components.length; i++) { 
     828          Component src = components[i]; 
    829829 
    830830          Option o = null; 
     
    835835            if (((Option) options.get(keys[j])).component.equals(src)) { 
    836836              o = (Option) options.get(keys[j]); 
    837               cmd = (String) keys[j];  
     837              cmd = (String) keys[j]; 
    838838              break; 
    839839            } 
    840840          } 
    841            
     841 
    842842          if (src instanceof JTextField) { 
    843843            o.value = ((JTextField) src).getText(); 
    844             options.put(cmd, o);  
     844            options.put(cmd, o); 
    845845          } 
    846846          else if (src instanceof JSpinner) { 
     
    856856            options.put(cmd, o); 
    857857          } 
    858         }  
    859         dispose();  
     858        } 
     859        dispose(); 
    860860      } 
    861861    } 
     
    867867    public String value; 
    868868    public JComponent component; 
    869    
     869 
    870870    public Option(String label, JComponent component) { 
    871871      this.label = label; 
  • trunk/loci/ome/util/OMEUtils.java

    r2229 r2725  
    4343 
    4444  /** Login to the OME database */ 
    45   public static void login(String server, String user, String pass)  
     45  public static void login(String server, String user, String pass) 
    4646    throws MalformedURLException 
    4747  { 
     
    5555 
    5656  /** Login to the OME database */ 
    57   public static void login(String server, String sessionKey)  
     57  public static void login(String server, String sessionKey) 
    5858    throws MalformedURLException 
    5959  { 
     
    8787  } 
    8888 
    89   /**  
    90    * Display a OMETablePanel using the given IDs.  
     89  /** 
     90   * Display a OMETablePanel using the given IDs. 
    9191   * @return a list of Image IDs 
    9292   */ 
     
    102102  } 
    103103 
    104   /**  
    105    * Display a OMETablePanel using the given Images.  
    106    * @return a list of Image IDs  
     104  /** 
     105   * Display a OMETablePanel using the given Images. 
     106   * @return a list of Image IDs 
    107107   */ 
    108108  public static int[] showTable(Image[] images) throws ImageServerException { 
     
    130130    Object[][] props = new Object[numImages][4]; 
    131131    Object[][] details = new Object[numImages][10]; 
    132                                                                                     Pixels p; 
     132 
     133    Pixels p; 
    133134    for (int i=0; i<props.length; i++) { 
    134135      props[i][0] = new Boolean(false); 
    135136      props[i][1] = images[i].getName() == null ? "" : images[i].getName(); 
    136137      props[i][2] = String.valueOf(images[i].getID()); 
    137       props[i][3] = images[i].getCreated() == null ? "" :  
     138      props[i][3] = images[i].getCreated() == null ? "" : 
    138139        images[i].getCreated(); 
    139140      p = images[i].getDefaultPixels(); 
  • trunk/loci/plugins/Importer.java

    r2682 r2725  
    564564        // display standard metadata in a table in its own window 
    565565        Hashtable meta = new Hashtable(); 
    566         if (r.getSeriesCount() == 1) meta = r.getMetadata();  
     566        if (r.getSeriesCount() == 1) meta = r.getMetadata(); 
    567567        meta.put(idType, currentFile); 
    568568        int digits = digits(seriesCount); 
     
    570570          if (!series[i]) continue; 
    571571          r.setSeries(i); 
    572           meta.putAll(r.getCoreMetadata().seriesMetadata[i]);  
    573            
     572          meta.putAll(r.getCoreMetadata().seriesMetadata[i]); 
     573 
    574574          String s; 
    575575          if (seriesCount > 1) { 
     
    606606          sb.append("\n"); 
    607607        } 
    608          
    609         TextWindow tw = new TextWindow("Metadata - " + currentFile,  
     608 
     609        TextWindow tw = new TextWindow("Metadata - " + currentFile, 
    610610          "Key\t \tValue", sb.toString(), 400, 400); 
    611611        tw.setVisible(true); 
     
    10771077 
    10781078    for (int i=0; i<newStacks.length; i++) { 
    1079       ImagePlus imp = new ImagePlus(r.getCurrentFile() + " - Ch" + (i+1),  
     1079      ImagePlus imp = new ImagePlus(r.getCurrentFile() + " - Ch" + (i+1), 
    10801080        newStacks[i]); 
    10811081      applyCalibration((OMEXMLMetadataStore) r.getMetadataStore(), imp, 
     
    11351135  } 
    11361136 
    1137   private void makeRGB(ImagePlus imp, IFormatReader r, int c)  
    1138     throws FormatException, IOException  
     1137  private void makeRGB(ImagePlus imp, IFormatReader r, int c) 
     1138    throws FormatException, IOException 
    11391139  { 
    11401140    ImageStack s = imp.getStack(); 
     
    11561156      for (int t=0; t<sizeT; t++) { 
    11571157        byte[][] bytes = new byte[c][]; 
    1158         for (int ch=0; ch<r.getSizeC()/c; ch++) {  
     1158        for (int ch=0; ch<r.getSizeC()/c; ch++) { 
    11591159          for (int ch1=0; ch1<c; ch1++) { 
    11601160            int ndx = r.getIndex(z, ch*c + ch1, t) + 1; 
     
    11671167          int ndx = r.getIndex(z, ch*c, t) + 1; 
    11681168          newStack.addSlice(s.getSliceLabel(ndx), cp); 
    1169         }  
     1169        } 
    11701170      } 
    11711171    } 
     
    11811181 
    11821182      int pixelType = r.getPixelType(); 
    1183       if (mergeChannels && r.getSizeC() > 1 && r.getSizeC() < 4 &&  
    1184         (pixelType == FormatTools.UINT8 || pixelType == FormatTools.INT8))  
     1183      if (mergeChannels && r.getSizeC() > 1 && r.getSizeC() < 4 && 
     1184        (pixelType == FormatTools.UINT8 || pixelType == FormatTools.INT8)) 
    11851185      { 
    1186         makeRGB(imp, r, r.getSizeC());  
    1187       } 
    1188       else if (mergeChannels && r.getSizeC() > 1 && r.getSizeC() < 4 &&  
    1189         imp.getStackSize() == r.getSizeC())  
     1186        makeRGB(imp, r, r.getSizeC()); 
     1187      } 
     1188      else if (mergeChannels && r.getSizeC() > 1 && r.getSizeC() < 4 && 
     1189        imp.getStackSize() == r.getSizeC()) 
    11901190      { 
    11911191        // create a composite image - this feature is available starting in 
    11921192        // ImageJ 1.38n 
    1193        
     1193 
    11941194        if (IJ.versionLessThan("1.38n")) { 
    11951195          IJ.showMessage("Please upgrade to ImageJ 1.38n to use this feature."); 
    11961196        } 
    1197         else {  
     1197        else { 
    11981198          imp = new CompositeImage(imp, r.getSizeC()); 
    1199         }  
     1199        } 
    12001200      } 
    12011201      else if (mergeChannels && r.getSizeC() >= 4) { 
    1202         // ask the user what they would like to do...  
    1203      
     1202        // ask the user what they would like to do... 
     1203 
    12041204        int planes1 = r.getImageCount() / 2; 
    12051205        if (planes1 * 2 < r.getImageCount()) planes1++; 
     
    12101210        gd.addMessage("How would you like to merge this data?"); 
    12111211        gd.addChoice("", new String[] { 
    1212           planes1 + " planes, 2 channels per plane",  
     1212          planes1 + " planes, 2 channels per plane", 
    12131213          planes2 + " planes, 3 channels per plane", "Do not merge"}, ""); 
    12141214        gd.showDialog(); 
    12151215 
    12161216        if (gd.wasCanceled()) return; 
    1217          
     1217 
    12181218        int idx = gd.getNextChoiceIndex(); 
    1219       
     1219 
    12201220        switch (idx) { 
    12211221          case 0: 
     
    13011301    } 
    13021302    catch (Exception e) { 
    1303       /* debug */ e.printStackTrace();  
     1303      /* debug */ e.printStackTrace(); 
    13041304      if (!concatenate) imp.show(); 
    13051305      else imps.add(imp); 
  • trunk/loci/plugins/LociUploader.java

    r2722 r2725  
    8989    try { 
    9090      IJ.showStatus("Starting upload..."); 
    91       OMEWriter ul = new OMEWriter();  
    92       String id = server + "?user=" + user + "&password=" + pass;  
     91      OMEWriter ul = new OMEWriter(); 
     92      String id = server + "?user=" + user + "&password=" + pass; 
    9393      ul.setId(id); 
    9494 
     
    138138          new Integer(FormatTools.UINT8), null, null, null, null); 
    139139      } 
    140       ul.setMetadataStore(store);  
     140      ul.setMetadataStore(store); 
    141141 
    142142      boolean little = !store.getBigEndian(null).booleanValue(); 
     
    149149 
    150150        if (pix instanceof byte[]) { 
    151           toUpload = (byte[]) pix;  
     151          toUpload = (byte[]) pix; 
    152152        } 
    153153        else if (pix instanceof short[]) { 
     
    155155          toUpload = new byte[s.length * 2]; 
    156156          for (int j=0; j<s.length; j++) { 
    157             toUpload[j*2] = little ? (byte) (s[j] & 0xff) :  
     157            toUpload[j*2] = little ? (byte) (s[j] & 0xff) : 
    158158              (byte) ((s[j] >>> 8) & 0xff); 
    159             toUpload[j*2 + 1] = little ? (byte) ((s[j] >>> 8) & 0xff):  
    160               (byte) (s[j] & 0xff);  
     159            toUpload[j*2 + 1] = little ? (byte) ((s[j] >>> 8) & 0xff): 
     160              (byte) (s[j] & 0xff); 
    161161          } 
    162162        } 
     
    168168            int channels = store.getSizeC(null).intValue(); 
    169169            if (channels > 3) channels = 3; 
    170             toUpload = new byte[channels * rgb[0].length];  
     170            toUpload = new byte[channels * rgb[0].length]; 
    171171            for (int j=0; j<channels; j++) { 
    172               System.arraycopy(rgb[j], 0, toUpload, 0, rgb[j].length);  
     172              System.arraycopy(rgb[j], 0, toUpload, 0, rgb[j].length); 
    173173            } 
    174174          } 
     
    177177            toUpload = new byte[4 * p.length]; 
    178178            for (int j=0; j<p.length; j++) { 
    179               toUpload[j*4] = little ? (byte) (p[j] & 0xff) :  
    180                 (byte) ((p[j] >> 24) & 0xff);  
    181               toUpload[j*4 + 1] = little ? (byte) ((p[j] >> 8) & 0xff) :  
    182                 (byte) ((p[j] >> 16) & 0xff);  
     179              toUpload[j*4] = little ? (byte) (p[j] & 0xff) : 
     180                (byte) ((p[j] >> 24) & 0xff); 
     181              toUpload[j*4 + 1] = little ? (byte) ((p[j] >> 8) & 0xff) : 
     182                (byte) ((p[j] >> 16) & 0xff); 
    183183              toUpload[j*4 + 2] = little ? (byte) ((p[j] >> 16) & 0xff) : 
    184                 (byte) ((p[j] >> 8) & 0xff);  
     184                (byte) ((p[j] >> 8) & 0xff); 
    185185              toUpload[j*4 + 3] = little ? (byte) ((p[j] >> 24) & 0xff) : 
    186                 (byte) (p[j] & 0xff);  
     186                (byte) (p[j] & 0xff); 
    187187            } 
    188188          } 
     
    193193          for (int j=0; j<f.length; j++) { 
    194194            int k = Float.floatToIntBits(f[j]); 
    195             toUpload[j*4] = little ? (byte) (k & 0xff) :  
    196               (byte) ((k >> 24) & 0xff);  
    197             toUpload[j*4 + 1] = little ? (byte) ((k >> 8) & 0xff) :  
    198               (byte) ((k >> 16) & 0xff);  
     195            toUpload[j*4] = little ? (byte) (k & 0xff) : 
     196              (byte) ((k >> 24) & 0xff); 
     197            toUpload[j*4 + 1] = little ? (byte) ((k >> 8) & 0xff) : 
     198              (byte) ((k >> 16) & 0xff); 
    199199            toUpload[j*4 + 2] = little ? (byte) ((k >> 16) & 0xff) : 
    200               (byte) ((k >> 8) & 0xff);  
     200              (byte) ((k >> 8) & 0xff); 
    201201            toUpload[j*4 + 3] = little ? (byte) ((k >> 24) & 0xff) : 
    202               (byte) (k & 0xff);  
    203           } 
    204         } 
    205        
    206         ul.saveBytes(toUpload, i == is.getSize() - 1);  
     202              (byte) (k & 0xff); 
     203          } 
     204        } 
     205 
     206        ul.saveBytes(toUpload, i == is.getSize() - 1); 
    207207      } 
    208208 
    209209      IJ.showStatus("Sending data to server..."); 
    210       ul.close();  
     210      ul.close(); 
    211211      IJ.showStatus("Upload finished."); 
    212212    } 
  • trunk/loci/plugins/browser/ImagePlusWrapper.java

    r2672 r2725  
    4646   * @param stitch true if use file stitching 
    4747   */ 
    48   public ImagePlusWrapper(String name, IFormatReader r, FileStitcher fs, boolean stitch) 
    49     throws IOException, FormatException 
     48  public ImagePlusWrapper(String name, IFormatReader r, FileStitcher fs, 
     49    boolean stitch) throws IOException, FormatException 
    5050  { 
    5151    store = new OMEXMLMetadataStore(); 
  • trunk/loci/plugins/browser/OptionsWindow.java

    r2681 r2725  
    361361    FormLayout layout3 = new FormLayout( 
    362362      TAB + ",pref," + TAB + ",pref:grow," + TAB + ",pref:grow," + TAB, 
    363       "pref,pref,pref,pref," + TAB + ",pref,pref,pref,pref,pref," 
    364       + TAB + ",pref," + TAB + ",pref,pref,pref," + TAB + ",pref," + TAB + ",pref," + TAB + ",pref"); 
     363      "pref,pref,pref,pref," + TAB + ",pref,pref,pref,pref,pref," + TAB + 
     364      ",pref," + TAB + ",pref,pref,pref," + TAB + ",pref," + TAB + 
     365      ",pref," + TAB + ",pref"); 
    365366    cachePane.setLayout(layout3); 
    366367    CellConstraints cc3 = new CellConstraints(); 
  • trunk/loci/visbio/data/DataControls.java

    r2582 r2725  
    392392    String overlaysName = data.getName() + "  overlays"; 
    393393    OverlayTransform overlays = new OverlayTransform(data, overlaysName); 
    394     DataManager dm = (DataManager)  
     394    DataManager dm = (DataManager) 
    395395      lm.getVisBio().getManager(DataManager.class); 
    396396    if (dm == null) return; 
  • trunk/loci/visbio/data/Dataset.java

    r2672 r2725  
    220220 
    221221    int numImg = -1; 
    222     try {  
     222    try { 
    223223      // CTR TODO - This results in superfluous initFile calls! 
    224       readers[fileIndex].setId(ids[fileIndex]);  
    225       numImg = readers[fileIndex].getImageCount();  
     224      readers[fileIndex].setId(ids[fileIndex]); 
     225      numImg = readers[fileIndex].getImageCount(); 
    226226    } 
    227227    catch (IOException exc) { numImg = -1; } 
     
    488488    String filename = "\"" + new File(ids[0]).getName() + "\""; 
    489489    try { 
    490       readers[0].setId(ids[0]);  
     490      readers[0].setId(ids[0]); 
    491491      numImages = readers[0].getImageCount(); 
    492492      format = readers[0].getFormat(ids[0]); 
  • trunk/loci/visbio/data/DatasetPane.java

    r2672 r2725  
    389389    reader.setMetadataStore(store); 
    390390    try { 
    391       reader.setId(ids[0]);  
     391      reader.setId(ids[0]); 
    392392      numImages = reader.getImageCount(); 
    393393    } 
  • trunk/loci/visbio/help/HelpManager.java

    r2663 r2725  
    9393 
    9494      // create option for 2D visualization w/ overlays 
    95       JRadioButton visOver = new JRadioButton("In 2D with overlays",  
     95      JRadioButton visOver = new JRadioButton("In 2D with overlays", 
    9696        !canDisplay3D); 
    9797      visOver.setEnabled(canDisplay2D); 
     
    106106      // create panel for asking user about immediate visualization 
    107107      PanelBuilder builder = new PanelBuilder(new FormLayout( 
    108         "15dlu, pref:grow, 15dlu",  
     108        "15dlu, pref:grow, 15dlu", 
    109109        "pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref" 
    110110      )); 
     
    125125      boolean success = om.checkMessage(dc, 
    126126        DISPLAY_DATA, false, visPanel, "VisBio"); 
    127       if (success && !visNot.isSelected()) {  
     127      if (success && !visNot.isSelected()) { 
    128128        if (!visOver.isSelected()) dc.doNewDisplay(vis3D.isSelected()); 
    129129        else dc.doNewDisplayWithOverlays(); 
  • trunk/loci/visbio/ome/ImageUploader.java

    r2692 r2725  
    5656    String server, String username, String password) 
    5757  { 
    58     try {   
     58    try { 
    5959      OMEWriter writer = new OMEWriter(); 
    6060      OMEXMLMetadataStore store = new OMEXMLMetadataStore(); 
    6161      store.setRoot(data.getOMENode()); 
    6262      writer.setMetadataStore(store); 
    63    
     63 
    6464      String id = server + "?user=" + username + "&password=" + password; 
    6565      writer.setId(id); 
     
    7171        for (int j=0; j<numImages; j++) { 
    7272          int[] coords = FormatTools.getZCTCoords(store.getDimensionOrder(null), 
    73             store.getSizeZ(null).intValue(), store.getSizeC(null).intValue(),  
    74             store.getSizeT(null).intValue(),  
     73            store.getSizeZ(null).intValue(), store.getSizeC(null).intValue(), 
     74            store.getSizeT(null).intValue(), 
    7575            numImages*numFiles, numImages*i + j); 
    7676          writer.saveImage( 
    77             data.getImage(new int[] {coords[0], coords[1], coords[2], j}),  
     77            data.getImage(new int[] {coords[0], coords[1], coords[2], j}), 
    7878            i == numFiles - 1 && j == numImages - 1); 
    7979        } 
  • trunk/loci/visbio/ome/OMEImage.java

    r2587 r2725  
    211211        try { 
    212212          OMEUtils.login(server, user, password); 
    213         
     213 
    214214          // TODO : find a better way of handling multiple IDs 
    215215          int[] results = OMEUtils.showTable(OMEUtils.getAllImages()); 
     
    379379      id += "?user=" + user + "&password=" + password + "&id=" + imageId; 
    380380    } 
    381     
     381 
    382382    try { 
    383       downloader.setId(id);  
     383      downloader.setId(id); 
    384384      sizeX = downloader.getSizeX(); 
    385385      sizeY = downloader.getSizeY(); 
     
    425425   * another object with a matching state. 
    426426   */ 
    427   public void discard() {  
     427  public void discard() { 
    428428    try { 
    429       downloader.close();  
     429      downloader.close(); 
    430430    } 
    431431    catch (Exception exc) { exc.printStackTrace(); } 
  • trunk/loci/visbio/overlays/BoxTool.java

    r2653 r2725  
    6262    if (box == null) return; 
    6363    box.setDrawing(false); 
    64     if (!box.hasData()) overlay.removeObject(box);  
     64    if (!box.hasData()) overlay.removeObject(box); 
    6565    box = null; 
    6666    overlay.notifyListeners(new TransformEvent(overlay)); 
  • trunk/loci/visbio/overlays/FreeformTool.java

    r2719 r2725  
    3232import visad.util.CursorUtil; 
    3333 
    34  
    35 //goals:  
     34//goals: 
    3635// eliminate errors in code 
    37 // make code readable  
     36// make code readable 
    3837// consolidate code where possible 
    3938 
     
    4948  protected static final double DRAW_THRESH = 2.0; 
    5049 
    51   /**  
     50  /** 
    5251   * How close a mouseDrag event must be to a node 
    5352   * in order to erase it 
     
    10099 
    101100  /** Chunks of curve tracked during EDIT */ 
    102   protected float[][] pre, post;  
     101  protected float[][] pre, post; 
    103102 
    104103  /** Point at which mouseDown occurs */ 
     
    128127 
    129128    // find closest freeform 
    130     double maxThresh = ERASE_THRESH;  
    131     Info info = getClosestFreeform(display, dpx, dpy,  
     129    double maxThresh = ERASE_THRESH; 
     130    Info info = getClosestFreeform(display, dpx, dpy, 
    132131        maxThresh); 
    133132    OverlayFreeform target = info.freeform; 
     
    137136      freeform = target; 
    138137 
    139       double dist = info.dist;  
    140       int seg = info.seg;  
    141       double weight = info.wt;  
    142        
     138      double dist = info.dist; 
     139      int seg = info.seg; 
     140      double weight = info.wt; 
     141 
    143142      if ((seg == 0 && weight == 0.0) || 
    144143          (seg == freeform.getNumNodes()-2 && weight == 1.0)) 
     
    166165          // project click onto curve and insert a new node there, 
    167166          // unless nearest point on curve is a node itself 
    168           //  
    169           // note: because of the way getDistSegWt() works, weight can  
     167          // 
     168          // note: because of the way getDistSegWt() works, weight can 
    170169          // never be 0.0 except if seg = 0. 
    171170          if (weight == 1.0) { // nearest point on seg is the end node 
     
    198197      } 
    199198    } 
    200      
     199 
    201200    overlay.notifyListeners(new TransformEvent(overlay)); 
    202201    ((OverlayWidget) overlay.getControls()).refreshListSelection(); 
     
    214213    double dpx = (double) px; 
    215214    double dpy = (double) py; 
    216      
     215 
    217216    if (mode == INIT) { 
    218217      freeform = new OverlayFreeform(overlay, downX, downY, downX, downY); 
     
    243242        int[] headPxl = CursorUtil.domainToPixel(display, headDbl); 
    244243        int[] tailPxl = CursorUtil.domainToPixel(display, tailDbl); 
    245         double[]  headPxlDbl = new double[] {(double) headPxl[0],  
     244        double[]  headPxlDbl = new double[] {(double) headPxl[0], 
    246245          (double) headPxl[1]}; 
    247246        double[] tailPxlDbl = new double[] {(double) tailPxl[0], 
     
    303302      if (freeform == null) { 
    304303        // DISTANCE COMPUTATION compare floats with floats 
    305         Info info = getClosestFreeform(display,  
     304        Info info = getClosestFreeform(display, 
    306305            dpx, dpy, ERASE_THRESH); 
    307306        OverlayFreeform target = info.freeform; 
     
    374373      int[] prvCrdsPxl = CursorUtil.domainToPixel(display, prvCrdsDbl); 
    375374      double[] prvCrdsPxlDbl = {(double) prvCrdsPxl[0], (double) prvCrdsPxl[1]}; 
    376        
     375 
    377376      // coords of this mouseDrag event 
    378377      double[] drag = {dpx, dpy}; 
     
    472471 
    473472  /** Instructs this tool to respond to a mouse release. */ 
    474   public void mouseUp(DisplayEvent e, int px, int py,  
     473  public void mouseUp(DisplayEvent e, int px, int py, 
    475474      float dx, float dy, int[] pos, int mods) { 
    476475    //print ("mouseUp", "mouseUp begun. mode = " + mode); 
     
    493492 
    494493  // -- Helper methods for mouse methods 
    495    
     494 
    496495  /** Calculates smoothed coordinates using "single exponential smoothing" 
    497496   *  as described in Littlewood and Inman, _Computer-assisted DNA length 
    498    *  measurements..._. Nucleic Acids Research, V 10 No. 5. (1982) p. 1694  
     497   *  measurements..._. Nucleic Acids Research, V 10 No. 5. (1982) p. 1694 
    499498   */ 
    500499  private float[] smooth (float[] un, float[] cn1) { 
     
    505504    return cn; 
    506505  } 
    507    
     506 
    508507  /** Slices a freeform in two. */ 
    509508  private void slice(OverlayFreeform freef, double dist, int seg, double weight) 
     
    723722   */ 
    724723  /* 
    725   private OverlayFreeform getClosestFreeform( float dx,  
     724  private OverlayFreeform getClosestFreeform( float dx, 
    726725      float dy, double thresh) { 
    727726    // returns only objects at the current dimensional position 
     
    742741            // distance to freeform (slower) 
    743742            double[] distSegWt = 
    744               // DISTANCE COMPUTATION  
     743              // DISTANCE COMPUTATION 
    745744              // compare float[][] with ints 
    746745              MathUtil.getDistSegWt(currentFreeform.getNodes(), dx, dy); 
     
    761760   *  the given point 
    762761   */ 
    763   protected Info getClosestFreeform(DisplayImpl display, double dpx,  
     762  protected Info getClosestFreeform(DisplayImpl display, double dpx, 
    764763      double dpy, double thresh) { 
    765764    // returns only objects at the current dimensional position 
     
    777776          // performance opportunity: 
    778777          // I removed the check on the bounding box 
    779           // Should the getDistance method return a distance in  
     778          // Should the getDistance method return a distance in 
    780779          // pixel coordinates? 
    781           double[][] nodesDbl = floatsToPixelDoubles(display,  
     780          double[][] nodesDbl = floatsToPixelDoubles(display, 
    782781              currentFreeform.getNodes()); 
    783782          double[] distSegWt = 
    784             // DISTANCE COMPUTATION  
     783            // DISTANCE COMPUTATION 
    785784            // compare float[][] with ints 
    786785            MathUtil.getDistSegWt(nodesDbl, dpx, dpy); 
  • trunk/loci/visbio/overlays/OverlayArrow.java

    r2702 r2725  
    9393    catch (VisADException exc) { exc.printStackTrace(); } 
    9494 
    95     Color col = selected ? GLOW_COLOR : color;  
     95    Color col = selected ? GLOW_COLOR : color; 
    9696    float r = col.getRed() / 255f; 
    9797    float g = col.getGreen() / 255f; 
    9898    float b = col.getBlue() / 255f; 
    99      
     99 
    100100    float[][] rangeSamples = new float[4][setSamples[0].length]; 
    101101    Arrays.fill(rangeSamples[0], r); 
     
    115115  } 
    116116 
    117   /** Returns whether this object is drawable, i.e., is of nonzero  
    118    *  size, area, length, etc.  
     117  /** Returns whether this object is drawable, i.e., is of nonzero 
     118   *  size, area, length, etc. 
    119119   */ 
    120120  public boolean hasData() { return (x1 != x2 || y1 != y2); } 
     
    130130    if (name.equals("Tip coordinates")) { 
    131131      return "(" + x1 + ", " + y1 + ")"; 
    132     }  
     132    } 
    133133    else if (name.equals("Angle")) { 
    134134      return "" + getAngle(); 
    135     }  
     135    } 
    136136    else if (name.equals("Length")) { 
    137137      return "" + getLength(); 
     
    154154    if (angle < 0) angle += 360; 
    155155    float length = (float) Math.sqrt(xx * xx + yy * yy); 
    156      
     156 
    157157    String coords = "(" + x1 + ", " + y1 + ")"; 
    158158    OverlayStat[] stats = { 
     
    175175 
    176176  // -- Helper methods -- 
    177    
     177 
    178178  /** Computes the angle of this arrow */ 
    179179  protected float getAngle() { 
     
    187187 
    188188  /** Computes the length of this arrow */ 
    189   protected float getLength() {  
     189  protected float getLength() { 
    190190    float xx = x2 - x1; 
    191191    float yy = y2 - y1; 
  • trunk/loci/visbio/overlays/OverlayBox.java

    r2667 r2725  
    3333 
    3434  // -- Static Fields -- 
    35    
     35 
    3636  /** The names of the statistics this object reports */ 
    37   protected static String[] statTypes =  {"Coordinates", "Center", "Width",  
     37  protected static String[] statTypes =  {"Coordinates", "Center", "Width", 
    3838    "Height", "Area", "Perimeter"}; 
    3939 
     
    6363  /** Gets VisAD data object representing this overlay. */ 
    6464  public DataImpl getData() { 
    65     if (!hasData()) return null;  
     65    if (!hasData()) return null; 
    6666    // don't try to render a zero-area box 
    6767    RealTupleType domain = overlay.getDomainType(); 
     
    113113  } 
    114114 
    115   /** Returns whether this object is drawable, i.e., is of nonzero  
    116    *  size, area, length, etc.  
     115  /** Returns whether this object is drawable, i.e., is of nonzero 
     116   *  size, area, length, etc. 
    117117   */ 
    118118  public boolean hasData() { return (x1 != x2 && y1 != y2); } 
     
    142142    if (name.equals("Coordinates")) { 
    143143      return "(" + x1 + ", " + y1 + ")-(" + x2 + ", " + y2 + ")"; 
    144     }  
     144    } 
    145145    else if (name.equals("Center")) { 
    146       return "(" + centerX + ", " + centerY + ")";  
    147     }  
     146      return "(" + centerX + ", " + centerY + ")"; 
     147    } 
    148148    else if (name.equals("Width")) { 
    149149      return "" + width; 
     
    160160    else return "No such statistic for this overlay type"; 
    161161  } 
    162    
     162 
    163163  /** Retrieves useful statistics about this overlay. */ 
    164164  public String getStatistics() { 
  • trunk/loci/visbio/overlays/OverlayFreeform.java

    r2524 r2725  
    5555  /** Gets a short string representation of this freeform. */ 
    5656  public String toString() { return "Freeform"; } 
    57   
     57 
    5858} 
  • trunk/loci/visbio/overlays/OverlayIO.java

    r2716 r2725  
    194194          int tok = 0; 
    195195 
    196           if (count != lengths.length + 10) {  
     196          if (count != lengths.length + 10) { 
    197197            // 10 == number of non-dim. fields in the overlay description 
    198198            String s = "line in data table has an insufficient number of " + 
     
    206206            try { 
    207207              int p = Integer.parseInt(st.nextToken()); 
    208               if (p > 0 && p <= lengths[i]) {  
     208              if (p > 0 && p <= lengths[i]) { 
    209209                // Is coordinate within range? 
    210210                // Remember, in the overlay.txt files dimensional position 
    211                 // coordinates are indexed from 1; inside visbio,  
     211                // coordinates are indexed from 1; inside visbio, 
    212212                // they're indexed from 0. 
    213                 pos[i] = p-1; // shift from external to internal indexing  
     213                pos[i] = p-1; // shift from external to internal indexing 
    214214                tok++; 
    215215              } else { 
     
    225225 
    226226          if (pos == null) { 
    227             displayErrorMsg(owner, lineNum,  
     227            displayErrorMsg(owner, lineNum, 
    228228                "line has an invalid dimensional position"); 
    229229            return null; 
     
    247247 
    248248          catch (NumberFormatException exc) { 
    249             displayErrorMsg(owner, lineNum,  
     249            displayErrorMsg(owner, lineNum, 
    250250                "line has invalid coordinate values"); 
    251251            return null; 
     
    330330          if (numNodes == nodes[0].length) { 
    331331            float[][] temp = new float[2][numNodes*2]; 
    332             for (int i=0; i<2; i++)  
     332            for (int i=0; i<2; i++) 
    333333              System.arraycopy(nodes[i], 0, temp[i], 0, numNodes); 
    334334            nodes = temp; 
     
    342342      displayErrorMsg(owner, lineNum, "no overlays found"); 
    343343      return null; 
    344     }  
     344    } 
    345345    else if (loadedNodedObjects.size() > 0) { 
    346346      if (numNodedObjectsRestored + 1 < loadedNodedObjects.size()) { 
    347         displayErrorMsg(owner, lineNum,  
     347        displayErrorMsg(owner, lineNum, 
    348348            "missing node lists for one or more Freeforms"); 
    349349        return null; 
    350       }  
     350      } 
    351351      else { 
    352352        // store last freeform read 
     
    402402      for (int j=0; j<overlays[i].size(); j++) { 
    403403        OverlayObject obj = (OverlayObject) overlays[i].elementAt(j); 
    404          
     404 
    405405        if (obj instanceof OverlayLine) lines.add(obj); 
    406406        if (obj instanceof OverlayFreeform) freeforms.add(obj); 
     
    436436 
    437437    // print stats by object type 
    438     Vector[] vectors = {lines, freeforms, markers, texts, ovals, boxes,  
     438    Vector[] vectors = {lines, freeforms, markers, texts, ovals, boxes, 
    439439      arrows, polylines}; 
    440440    String[] titles = OverlayStat.getOverlayTypes(); 
     
    462462      } 
    463463    } 
    464     
     464 
    465465    // nodes of noded objects, one node per line 
    466466    for (int i=0; i<freeforms.size() + polylines.size(); i++) { 
     
    480480      xx2 = ono.getX2(); 
    481481      yy2 = ono.getY2(); 
    482        
     482 
    483483      // nodes header 
    484484      int k = 0; 
     
    504504    Vector[] overlays = overlay.overlays; 
    505505 
    506                 Vector lines = new Vector(); 
    507                 Vector markers = new Vector(); 
    508                 Vector freeforms = new Vector(); 
    509                 Vector texts = new Vector(); 
    510                 Vector ovals = new Vector(); 
    511                 Vector boxes = new Vector(); 
    512                 Vector arrows = new Vector(); 
    513                 Vector polylines = new Vector(); 
     506    Vector lines = new Vector(); 
     507    Vector markers = new Vector(); 
     508    Vector freeforms = new Vector(); 
     509    Vector texts = new Vector(); 
     510    Vector ovals = new Vector(); 
     511    Vector boxes = new Vector(); 
     512    Vector arrows = new Vector(); 
     513    Vector polylines = new Vector(); 
    514514 
    515515    // initialize worksheet 
     
    519519    HSSFCell c = null; 
    520520 
    521     // create cell styles  
     521    // create cell styles 
    522522    HSSFCellStyle text = wb.createCellStyle(); 
    523     text.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));  
     523    text.setDataFormat(HSSFDataFormat.getBuiltinFormat("text")); 
    524524 
    525525    HSSFCellStyle integer = wb.createCellStyle(); 
     
    528528    HSSFCellStyle flt = wb.createCellStyle(); 
    529529    flt.setDataFormat((short) 0); // "general" format 
    530      
     530 
    531531    HSSFCellStyle hex = wb.createCellStyle(); 
    532532    hex.setDataFormat((short) 0); // "general" format 
     
    543543    // short numColsToMerge = (short) Math.ceil((float) numChars/(float) 
    544544    // (width)); 
    545      
     545 
    546546    short numColsToMerge = 12; // number of columns in overlay table header 
    547547 
     
    556556 
    557557    // write table header 
    558    
     558 
    559559    short cellnum = 0; 
    560560    r = s.createRow(++rownum); 
     
    582582    for (int i=0; i<overlays.length; i++) { 
    583583      int[] pos = FormatTools.rasterToPosition(lengths, i); 
    584        
     584 
    585585      for (int j=0; j<overlays[i].size(); j++) { 
    586586        cellnum = 0; 
    587587        // make new row 
    588588        r = s.createRow(++rownum); 
    589          
     589 
    590590        OverlayObject obj = (OverlayObject) overlays[i].elementAt(j); 
    591591 
     
    614614        // x1 
    615615        c = r.createCell(cellnum++); 
    616         if (obj.hasEndpoint()) {  
     616        if (obj.hasEndpoint()) { 
    617617          c.setCellStyle(flt); 
    618618          c.setCellValue(obj.x1); 
     
    622622          c.setCellValue(new HSSFRichTextString(NOT_APPLICABLE)); 
    623623        } 
    624          
    625         // y1  
    626         c = r.createCell(cellnum++); 
    627         if (obj.hasEndpoint()) {  
     624 
     625        // y1 
     626        c = r.createCell(cellnum++); 
     627        if (obj.hasEndpoint()) { 
    628628          c.setCellStyle(flt); 
    629629          c.setCellValue(obj.y1); 
     
    636636        // x2 
    637637        c = r.createCell(cellnum++); 
    638         if (obj.hasEndpoint2()) {  
     638        if (obj.hasEndpoint2()) { 
    639639          c.setCellStyle(flt); 
    640640          c.setCellValue(obj.x2); 
     
    645645        } 
    646646 
    647         // y2  
    648         c = r.createCell(cellnum++); 
    649         if (obj.hasEndpoint2()) {  
     647        // y2 
     648        c = r.createCell(cellnum++); 
     649        if (obj.hasEndpoint2()) { 
    650650          c.setCellStyle(flt); 
    651651          c.setCellValue(obj.y2); 
     
    671671        c.setCellStyle(text); 
    672672        c.setCellValue(new HSSFRichTextString( 
    673               obj.canBeFilled() ? "" +  
     673              obj.canBeFilled() ? "" + 
    674674              (obj.filled ? "true" : "false") : NOT_APPLICABLE)); 
    675          
     675 
    676676        // object group 
    677677        c = r.createCell(cellnum++); 
     
    685685      } 
    686686    } 
    687      
     687 
    688688    // write overlay statistics 
    689     Vector[] vectors = {lines, freeforms, markers, texts, ovals, boxes,  
     689    Vector[] vectors = {lines, freeforms, markers, texts, ovals, boxes, 
    690690      arrows, polylines}; 
    691     String[] titles = OverlayStat.getOverlayTypes();  
     691    String[] titles = OverlayStat.getOverlayTypes(); 
    692692    for (int v=0; v<vectors.length ; v++) { 
    693693      if (vectors[v].size() > 0) { 
     
    698698        c.setCellStyle(text); 
    699699        c.setCellValue(new HSSFRichTextString(titles[v] + " Statistics")); 
    700                    
     700 
    701701        for (int i=0; i<vectors[v].size(); i++) { 
    702702          OverlayObject obj = (OverlayObject) vectors[v].get(i); 
    703703          int index = i + 1; // index from 1 for readability 
    704            
     704 
    705705          cellnum = 0; 
    706706          r = s.createRow(++rownum); 
     
    708708          c.setCellStyle(text); 
    709709          c.setCellValue(new HSSFRichTextString(titles[v] + " " + index)); 
    710            
     710 
    711711          String[] statTypes = OverlayStat.getStatTypes(titles[v]); 
    712712          OptionManager om = (OptionManager) 
     
    723723              c.setCellStyle(text); 
    724724              c.setCellValue(new HSSFRichTextString(statTypes[j])); 
    725                
     725 
    726726              c = r.createCell(cellnum++); 
    727727              c.setCellStyle(text); 
    728728              c.setCellValue(new HSSFRichTextString(obj.getStat(statTypes[j]))); 
    729729            } 
    730           }  
    731         } 
    732       } 
    733     }  
     730          } 
     731        } 
     732      } 
     733    } 
    734734 
    735735    // write nodes of noded objects 
    736736    int freeformCount = 0; 
    737737    int polylineCount = 0; 
    738      
     738 
    739739    rownum += 2; // skip a row 
    740740    for (int i = 0; i<freeforms.size() + polylines.size(); i++) { 
     
    761761      xx2 = ono.getX2(); 
    762762      yy2 = ono.getY2(); 
    763              
     763 
    764764      String hdr = ono + " " + k; 
    765765      c.setCellValue(new HSSFRichTextString(hdr)); 
     
    864864    // Adding more states to the machine and/or more rigorous checking for 
    865865    // acceptable line formats in this machine would help reduce the number of 
    866     // exceptional cases not handled here.   
    867      
     866    // exceptional cases not handled here. 
     867 
    868868    int state = WAIT, event = BARF; 
    869869    if (current == WAIT) { 
     
    892892        state = TABLE; event = PARSE; 
    893893      } 
    894       else if (input.startsWith("#")) {state = TABLE; event = IGNORE;}  
     894      else if (input.startsWith("#")) {state = TABLE; event = IGNORE;} 
    895895      // must check for freeform header first 
    896896      else { 
     
    901901        state = NODES; event = IGNORE; 
    902902      } 
    903       else if (input.matches("# Freeform \\d+ nodes:") ||  
     903      else if (input.matches("# Freeform \\d+ nodes:") || 
    904904          input.matches("# Polyline \\d+ nodes:")) { 
    905905        state = NODES; event = INIT; 
  • trunk/loci/visbio/overlays/OverlayLine.java

    r2667 r2725  
    3333public class OverlayLine extends OverlayObject { 
    3434 
    35   // -- Static Fields --  
    36    
     35  // -- Static Fields -- 
     36 
    3737  /** The names of the statistics this object reports */ 
    3838  protected static String[] statTypes =  {"Coordinates", "Length"}; 
     
    6161  // -- OverlayObject API methods -- 
    6262 
    63   /** Returns whether this object is drawable, i.e., is of nonzero  
    64   *  size, area, length, etc.  
     63  /** Returns whether this object is drawable, i.e., is of nonzero 
     64  *  size, area, length, etc. 
    6565  */ 
    6666  public boolean hasData() { return (x1 != x2 || y1 != y2); } 
     
    7575    float[][] setSamples = {{x1, x2}, {y1, y2}}; 
    7676 
    77     Color col = selected ? GLOW_COLOR : color;  
     77    Color col = selected ? GLOW_COLOR : color; 
    7878    float r = col.getRed() / 255f; 
    7979    float g = col.getGreen() / 255f; 
     
    109109    if (name.equals("Coordinates")) { 
    110110      return "(" + x1 + ", " + y1 + ")-(" + x2 + ", " + y2 + ")"; 
    111     }  
     111    } 
    112112    else if (name.equals("Length")) { 
    113113      float xx = x2 - x1; 
     
    115115      float length = (float) Math.sqrt(xx * xx + yy * yy); 
    116116      return "" + length; 
    117     }  
     117    } 
    118118    else return "No such statistic for this overlay type"; 
    119119  } 
    120   
     120 
    121121  /** Retrieves useful statistics about this overlay. */ 
    122122  public String getStatistics() { 
  • trunk/loci/visbio/overlays/OverlayMarker.java

    r2667 r2725  
    3131/** OverlayMarker is a marker crosshairs overlay. */ 
    3232public class OverlayMarker extends OverlayObject { 
    33    
    34   // -- Static Fields --  
    35    
     33 
     34  // -- Static Fields -- 
     35 
    3636  /** The names of the statistics this object reports */ 
    3737  protected static String[] statTypes =  {"Coordinates"}; 
     
    9090  } 
    9191 
    92   /** Returns whether this object is drawable, i.e., is of nonzero  
    93    *  size, area, length, etc.  
     92  /** Returns whether this object is drawable, i.e., is of nonzero 
     93   *  size, area, length, etc. 
    9494   */ 
    9595  public boolean hasData() { return true; } 
     
    106106    if (name.equals("Coordinates")) { 
    107107      return "(" + x1 + ", " + y1 + ")"; 
    108     }  
     108    } 
    109109    else return "No such statistic for this overlay type"; 
    110110  } 
    111   
     111 
    112112  /** Retrieves useful statistics about this overlay. */ 
    113113  public String getStatistics() { 
    114114    return "Marker coordinates = (" + x1 + ", " + y1 + ")"; 
    115115  } 
    116   
     116 
    117117  /** True iff this overlay has an endpoint coordinate pair. */ 
    118118  public boolean hasEndpoint() { return true; } 
  • trunk/loci/visbio/overlays/OverlayNodedObject.java

    r2714 r2725  
    3838public abstract class OverlayNodedObject extends OverlayObject { 
    3939 
    40   // -- Static Fields --  
    41    
     40  // -- Static Fields -- 
     41 
    4242  /** The names of the statistics this object reports */ 
    4343  protected static String[] statTypes =  {"Bounds", "Nodes", 
     
    4545 
    4646  // -- Constants -- 
    47    
     47 
    4848  /** Computed (X, Y) pairs for top 1/2 of a unit circle. */ 
    4949  protected static final float[][] ARC = arc(); 
     
    8181  /** Radius in pixels of circle indicating a node is selected */ 
    8282  protected static final float RADIUS = 3.0f; 
    83    
     83 
    8484  // -- Fields -- 
    8585 
     
    108108 
    109109  /** Constructs an uninitialized noded object. */ 
    110   public OverlayNodedObject(OverlayTransform overlay) {  
    111     super(overlay);  
     110  public OverlayNodedObject(OverlayTransform overlay) { 
     111    super(overlay); 
    112112    turnOffHighlighting(); 
    113113  } 
     
    150150  // -- OverlayObject API methods -- 
    151151 
    152   /** Returns whether this object is drawable, i.e., is of nonzero  
    153   *  size, area, length, etc.  
     152  /** Returns whether this object is drawable, i.e., is of nonzero 
     153  *  size, area, length, etc. 
    154154  */ 
    155   public boolean hasData() {  
     155  public boolean hasData() { 
    156156    if (isDrawing()) return (numNodes > 0); 
    157157    else return (numNodes > 1); 
    158158    // NOTE: Not exactly consistent with the other overlay objects. 
    159     // You want to see 1-node objects while drawing, but  
     159    // You want to see 1-node objects while drawing, but 
    160160    // want to delete them if after drawing is done. 
    161161  } 
    162     
     162 
    163163  /** Gets VisAD data object representing this overlay. */ 
    164164  public DataImpl getData() { 
     
    167167    RealTupleType domain = overlay.getDomainType(); 
    168168    TupleType range = overlay.getRangeType(); 
    169        
     169 
    170170    // ****************************************************************** 
    171171    // build nodes set and assign nodes range samples 
     
    175175      fieldSet = new Gridded2DSet(domain, 
    176176        nodes, maxNodes, null, null, null, false); 
    177        
     177 
    178178      // I've written !isDrawing() to prevent a manifold dimension mismatch 
    179179      // that occurs when drawing filled polylines 
    180       if (filled && !isDrawing()) {   
     180      if (filled && !isDrawing()) { 
    181181        Irregular2DSet roiSet = 
    182182          DelaunayCustom.fillCheck((Gridded2DSet) fieldSet, false); 
     
    185185    } 
    186186    catch (VisADException exc) { exc.printStackTrace(); } 
    187      
     187 
    188188    // fill nodes range samples 
    189     Color col = selected ? GLOW_COLOR : color;  
     189    Color col = selected ? GLOW_COLOR : color; 
    190190    float r = col.getRed() / 255f; 
    191191    float g = col.getGreen() / 255f; 
     
    205205      field.setSamples(rangeSamples); 
    206206    } 
    207     catch (VisADException exc) {  
    208       exc.printStackTrace();  
     207    catch (VisADException exc) { 
     208      exc.printStackTrace(); 
    209209      System.out.println("isHighlightNode() = " + isHighlightNode()); 
    210210      System.out.println("filled  = " + filled); 
    211211      System.out.println("Thread.currentThread()" + Thread.currentThread()); 
    212       System.out.println("maxNodes = " + maxNodes);  
     212      System.out.println("maxNodes = " + maxNodes); 
    213213      System.out.println("numNodes = " + numNodes); 
    214214      try { 
    215         System.out.println("fieldSet.getLength = " + fieldSet.getLength());  
     215        System.out.println("fieldSet.getLength = " + fieldSet.getLength()); 
    216216      } 
    217217      catch (VisADException exc2) {exc2.printStackTrace();} 
     
    219219    catch (RemoteException exc) { exc.printStackTrace(); } 
    220220 
    221     return field;  
     221    return field; 
    222222  } 
    223223  /** 
     
    245245    if (name.equals("Bounds")) { 
    246246      return "(" + x1 + ", " + y1 + "), (" + x2 + ", " + y2 + ")"; 
    247     }  
     247    } 
    248248    else if (name.equals("Nodes")) { 
    249249      return "" + numNodes; 
     
    261261      "Curve Length = " + (float) curveLength + "\n"; 
    262262  } 
    263   
     263 
    264264  /** True iff this overlay has an endpoint coordinate pair. */ 
    265265  public boolean hasEndpoint() { return true; } 
     
    271271  public boolean isHighlightNode() { return highlightNode; } 
    272272 
    273   /** Returns index of highlighted node. */  
     273  /** Returns index of highlighted node. */ 
    274274  public int getHighlightedNodeIndex() { return highlightIndex; } 
    275275 
     
    284284  // -- Object API methods -- 
    285285 
    286   /** Highlight a node. */  
     286  /** Highlight a node. */ 
    287287  public void setHighlightNode(int i, Color c) { 
    288288    // if (Thread.currentThread().getName().indexOf("ComputeDataThread") < 0) 
     
    294294 
    295295  /** Turn off node highlighting */ 
    296   public void turnOffHighlighting() {  
     296  public void turnOffHighlighting() { 
    297297    highlightNode = false; 
    298     highlightIndex = -1;  
     298    highlightIndex = -1; 
    299299    highlightColor = null; 
    300300  } 
     
    314314 
    315315  /** Returns the node array */ 
    316   public float[][] getNodes() {  
     316  public float[][] getNodes() { 
    317317    float[][] copy = new float[2][numNodes]; 
    318318    for (int i=0; i<2; i++) 
    319       System.arraycopy(nodes[i], 0, copy[i], 0, numNodes);  
     319      System.arraycopy(nodes[i], 0, copy[i], 0, numNodes); 
    320320    return copy; 
    321321  } 
     
    336336    return nodes[1][numNodes-1]; 
    337337  } 
    338    
     338 
    339339  /** Changes coordinates of the overlay's first endpoint. */ 
    340340  public void setCoords(float x1, float y1) { 
     
    420420    } 
    421421  } 
    422      
     422 
    423423  /** Prints node array of current freeform; for debugging */ 
    424424  private void printNodes(float[][] nodes) { 
     
    552552    double[] oDom = CursorUtil.pixelToDomain(d, 0, 0); 
    553553    double[] pDom = CursorUtil.pixelToDomain(d, 1, 0); 
    554     double scl = MathUtil.getDistance(oDom, pDom);  
     554    double scl = MathUtil.getDistance(oDom, pDom); 
    555555    return (float) scl; 
    556556  } 
  • trunk/loci/visbio/overlays/OverlayObject.java

    r2667 r2725  
    3131 
    3232  // -- Constants -- 
    33    
     33 
    3434  protected static final float GLOW_WIDTH = 1.0f; 
    3535 
    36   protected static final float GLOW_ALPHA = 0.15f;  
     36  protected static final float GLOW_ALPHA = 0.15f; 
    3737 
    3838  protected static final Color GLOW_COLOR = Color.YELLOW; 
     
    8989    overlay.setTextDrawn(false); 
    9090  } 
    91    
     91 
    9292  // -- OverlayObject API methods -- 
    9393 
     
    9898  public abstract double getDistance(double x, double y); 
    9999 
    100   /** Returns whether this object is drawable, i.e., is of nonzero  
    101    *  size, area, length, etc.  
     100  /** Returns whether this object is drawable, i.e., is of nonzero 
     101   *  size, area, length, etc. 
    102102   */ 
    103103  public abstract boolean hasData(); 
     
    149149    this.y1 = y1; 
    150150  } 
    151    
     151 
    152152  /** Gets X coordinate of the overlay's first endpoint. */ 
    153153  public float getX() { return x1; } 
  • trunk/loci/visbio/overlays/OverlayOval.java

    r2667 r2725  
    3333 
    3434  // -- Static Fields -- 
    35    
     35 
    3636  /** The names of the statistics this object reports */ 
    37   protected static String[] statTypes =  {"Coordinates", "Center", "Radius",  
     37  protected static String[] statTypes =  {"Coordinates", "Center", "Radius", 
    3838    "Major Axis Length", "Minor Axis Length", "Area", "Eccentricity", 
    3939    "Circumference (approximate)"}; 
    40   
     40 
    4141  // -- Constants -- 
    4242 
     
    9494  // -- OverlayObject API methods -- 
    9595 
    96   /** Returns whether this object is drawable, i.e., is of nonzero  
    97    *  size, area, length, etc.  
     96  /** Returns whether this object is drawable, i.e., is of nonzero 
     97   *  size, area, length, etc. 
    9898   */ 
    9999  public boolean hasData() { return (x1 != x2 && y1 != y2); } 
     
    164164  } 
    165165 
    166    
    167166  /** Computes the shortest distance from this object to the given point. */ 
    168167  public double getDistance(double x, double y) { 
     
    174173    else if (y > y1 && y > y2) ydist = y - Math.max(y1, y2); 
    175174    return Math.sqrt(xdist * xdist + ydist * ydist); 
    176   }  
     175  } 
    177176 
    178177  /** Returns a specific statistic of this object */ 
     
    205204    if (name.equals("Coordinates")) { 
    206205      return "(" + x1 + ", " + y1 + ")-(" + x2 + ", " + y2 + ")"; 
    207     }  
     206    } 
    208207    else if (name.equals("Center")) { 
    209208      return "(" + centerX + ", " + centerY + ")"; 
    210     }  
     209    } 
    211210    else if (name.equals("Radius")) { 
    212211      return "(" + radiusX + ", " + radiusY + ")"; 
     
    294293 
    295294    String coords = "(" + x1 + ", " + y1 + ")"; 
    296     OverlayStat[] stats = {  
     295    OverlayStat[] stats = { 
    297296      new OverlayStat("Coordinates", coords), 
    298297      new OverlayStat("Center", "(" + centerX + ", " + centerY + ")"), 
     
    302301      new OverlayStat("Area", "" + area), 
    303302      new OverlayStat("Eccentricity", "" + eccen), 
    304       new OverlayStat("Circumference (approximate)", "" + circum)  
     303      new OverlayStat("Circumference (approximate)", "" + circum) 
    305304    }; 
    306305    return stats; 
  • trunk/loci/visbio/overlays/OverlayPolyline.java

    r2667 r2725  
    2929 
    3030public class OverlayPolyline extends OverlayNodedObject { 
    31    
     31 
    3232  // -- Fields -- 
    33    
     33 
    3434  // -- Constructors -- 
    3535 
     
    5252 
    5353  // -- Object API methods -- 
    54    
     54 
    5555  // -- OverlayObject API methods -- 
    5656  /** Gets a short string representation of this freeform. */ 
  • trunk/loci/visbio/overlays/OverlayStat.java

    r2653 r2725  
    2929  // -- Static Fields -- 
    3030  /** List of all OverlayObject subclasses */ 
    31   public static final String[] OVERLAY_TYPES =  
     31  public static final String[] OVERLAY_TYPES = 
    3232    {"Line", "Freeform", "Marker", "Text", 
    3333    "Oval", "Box", "Arrow", "Polyline"}; 
     
    5353  public static String[] getOverlayTypes() { return OVERLAY_TYPES; } 
    5454 
    55   /**  
     55  /** 
    5656   * Returns statistic names for a particular class 
    5757   */ 
     
    6262    else if (overlayType.equals("Box")) statTypes = 
    6363      OverlayBox.getStatTypes(); 
    64     else if (overlayType.equals("Freeform")) statTypes =  
     64    else if (overlayType.equals("Freeform")) statTypes = 
    6565      OverlayFreeform.getStatTypes(); 
    6666    else if (overlayType.equals("Line")) statTypes = 
    6767      OverlayLine.getStatTypes(); 
    68     else if (overlayType.equals("Marker")) statTypes =  
     68    else if (overlayType.equals("Marker")) statTypes = 
    6969      OverlayMarker.getStatTypes(); 
    7070    else if (overlayType.equals("Oval")) statTypes = 
    7171      OverlayOval.getStatTypes(); 
    72     else if (overlayType.equals("Polyline"))statTypes =  
     72    else if (overlayType.equals("Polyline"))statTypes = 
    7373      OverlayPolyline.getStatTypes(); 
    7474    else if (overlayType.equals("Text")) statTypes = 
     
    8484  /** Gets the value of this OverlayStat. */ 
    8585  public String getValue() { return value; } 
    86    
     86 
    8787  // -- Object API methods -- 
    8888 
  • trunk/loci/visbio/overlays/OverlayText.java

    r2697 r2725  
    3131/** OverlayText is a text string overlay. */ 
    3232public class OverlayText extends OverlayObject { 
    33   // -- Static Fields --  
    34    
     33  // -- Static Fields -- 
     34 
    3535  /** The names of the statistics this object reports */ 
    3636  protected static String[] statTypes =  {"Coordinates"}; 
     
    6363 
    6464  public void computeTextBounds() { 
    65     // Computing the grid for text overlays is difficult because the size of  
    66     // the overlay depends on the font metrics, which are obtained from an AWT  
    67     // component (in this case, window.getDisplay().getComponent() for a  
    68     // display window), but data transforms have no knowledge of which display  
    69     // windows are currently displaying them.  
     65    // Computing the grid for text overlays is difficult because the size of 
     66    // the overlay depends on the font metrics, which are obtained from an AWT 
     67    // component (in this case, window.getDisplay().getComponent() for a 
     68    // display window), but data transforms have no knowledge of which display 
     69    // windows are currently displaying them. 
    7070 
    71     // HACK - for now, use this harebrained scheme to estimate the bounds  
    72     int sx = overlay.getScalingValueX();  
    73     int sy = overlay.getScalingValueY();  
    74     float mw = sx / 318f, mh = sy / 640f; // obtained through experimentation  
    75     FontMetrics fm = overlay.getFontMetrics();  
    76     x2 = x1 + mw * fm.stringWidth(text);  
    77     y2 = y1 + mh * fm.getHeight();  
    78   }  
    79   
     71    // HACK - for now, use this harebrained scheme to estimate the bounds 
     72    int sx = overlay.getScalingValueX(); 
     73    int sy = overlay.getScalingValueY(); 
     74    float mw = sx / 318f, mh = sy / 640f; // obtained through experimentation 
     75    FontMetrics fm = overlay.getFontMetrics(); 
     76    x2 = x1 + mw * fm.stringWidth(text); 
     77    y2 = y1 + mh * fm.getHeight(); 
     78  } 
     79 
    8080  // -- OverlayObject API methods -- 
    8181 
     
    105105  } 
    106106 
    107   /** Returns whether this object is drawable, i.e., is of nonzero  
    108    *  size, area, length, etc.  
     107  /** Returns whether this object is drawable, i.e., is of nonzero 
     108   *  size, area, length, etc. 
    109109   */ 
    110110  public boolean hasData() { return true; } 
     
    125125    if (name.equals("Coordinates")) { 
    126126      return "(" + x1 + ", " + y1 + ")"; 
    127     }  
     127    } 
    128128    else return "No such statistic for this overlay type"; 
    129129  } 
  • trunk/loci/visbio/overlays/OverlayTransform.java

    r2714 r2725  
    257257        obj.drawing = false; 
    258258        obj.selected = true; 
    259         if (obj instanceof OverlayText)  
     259        if (obj instanceof OverlayText) 
    260260          ((OverlayText) obj).computeTextBounds(); 
    261261        overlays[ndx].add(obj); 
     
    378378        obj.drawing = false; 
    379379        obj.selected = false; 
    380         if (obj instanceof OverlayText)  
     380        if (obj instanceof OverlayText) 
    381381          ((OverlayText) obj).computeTextBounds(); 
    382382 
     
    534534 
    535535  // -- DataTransform API methods -- 
    536   
     536 
    537537  /** 
    538538   * Retrieves the data corresponding to the given dimensional position, 
     
    543543  public Data getData(TransformLink link, int[] pos, int dim, DataCache cache) { 
    544544    // note to ACS: do not assume TransformLink is null.  It may be null! 
    545     // If so, assume some reasonable defaults when computing your selection  
     545    // If so, assume some reasonable defaults when computing your selection 
    546546    // grids. 
    547547 
     
    620620            selectData = selectBox.getData(); 
    621621        } 
    622          
     622 
    623623        // display only non-null data objects 
    624624        Vector v = new Vector(); 
     
    705705      for (int i=0; i<overlays[j].size(); i++) { 
    706706        OverlayObject obj = (OverlayObject) overlays[j].get(i); 
    707         if (obj instanceof OverlayText)  
     707        if (obj instanceof OverlayText) 
    708708          ((OverlayText) obj).computeTextBounds(); 
    709709      } 
  • trunk/loci/visbio/overlays/OverlayUtil.java

    r2717 r2725  
    88 
    99This program is free software; you can redistribute it and/or modify 
    10 it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 
     10it under the terms of the GNU General Public License as published by 
     11the Free Software Foundation; either version 2 of the License, or 
     12(at your option) any later version. 
    1113 
    1214This program is distributed in the hope that it will be useful, 
     
    3335public final class OverlayUtil { 
    3436 
    35   // -- Constants --  
     37  // -- Constants -- 
    3638 
    3739  /** Width of the selection layer beyond the object's boundaries */ 
     
    3941 
    4042  /** Alpha of the selection layer */ 
    41   protected static final float GLOW_ALPHA = 0.15f;  
     43  protected static final float GLOW_ALPHA = 0.15f; 
    4244 
    4345  /** Color of the selection layer */ 
     
    4850 
    4951  /** Alpha of the highlight layer for noded object */ 
    50   protected static final float HLT_ALPHA = 0.5f;  
     52  protected static final float HLT_ALPHA = 0.5f; 
    5153 
    5254  /** Color of the outline layer */ 
     
    8890  // -- Selection Layer Utility Methods -- 
    8991 
    90   /** Computes a type-specific selection layer for the given OverlayObject */  
    91   public static DataImpl getSelectionLayer(OverlayObject obj,  
     92  /** Computes a type-specific selection layer for the given OverlayObject */ 
     93  public static DataImpl getSelectionLayer(OverlayObject obj, 
    9294      TransformLink link, boolean outline) { 
    9395    DataImpl layer = null; 
     
    158160      {c1y, c2y, c4y, c3y} 
    159161    }; 
    160      
     162 
    161163    // construct range samples 
    162164    float r = GLOW_COLOR.getRed() / 255f; 
    163165    float g = GLOW_COLOR.getGreen() / 255f; 
    164166    float bl = GLOW_COLOR.getBlue() / 255f; 
    165      
     167 
    166168    float[][] rangeSamples = new float[4][setSamples[0].length]; 
    167169    Arrays.fill(rangeSamples[0], r); 
     
    200202    // Determine orientation of (x1, y1) relative to (x2, y2) 
    201203    // and flip if need be. 
    202     // I've set up the code in this section based on the  
     204    // I've set up the code in this section based on the 
    203205    // supposition that the box is oriented like this: 
    204206    // 
     
    223225      {yy1 + delta, yy1 + delta, yy2 - delta, yy2 - delta} 
    224226    }; 
    225      
     227 
    226228    // construct range samples 
    227229    float[][] rangeSamples = new float[4][4]; 
     
    260262    float y1 = obj.getY(); 
    261263    float y2 = obj.getY2(); 
    262    
     264 
    263265    /* 
    264266    // method for doing math in pixel coordinates part 1 of 2 
     
    280282    float hyp = (float) Math.sqrt(x * x + y * y); 
    281283    float ratio = delta / hyp; 
    282     // offsets from endpoints of line segments  
    283     float dx1 = ratio * y;  
     284    // offsets from endpoints of line segments 
     285    float dx1 = ratio * y; 
    284286    float dy1 = ratio * x; 
    285287    float dx2 = ratio * x; 
     
    292294 
    293295    float[][] setSamples = {{c1[0], c2[0], c3[0], c4[0]}, 
    294                             {c1[1], c2[1], c3[1], c4[1]}};  
     296                            {c1[1], c2[1], c3[1], c4[1]}}; 
    295297 
    296298    /* 
     
    329331    return field; 
    330332  } 
    331    
     333 
    332334  /** Returns a selection layer for OverlayMarker objects */ 
    333335  public static DataImpl getMarkerLayer(OverlayObject obj, TransformLink link) { 
     
    376378      }; 
    377379 
    378       float[][] setSamples2 = {  
     380      float[][] setSamples2 = { 
    379381        {x1 - delta, x1 + delta, x1 - delta, x1 + delta}, 
    380382        {yy1, yy1, yy2, yy2} 
     
    389391 
    390392      samplesLength = 12; 
    391        
    392       Gridded2DSet[] sets = new Gridded2DSet[3];  
     393 
     394      Gridded2DSet[] sets = new Gridded2DSet[3]; 
    393395      try { 
    394396        for (int j=0; j<3; j++) { 
    395           sets[j] = new Gridded2DSet(domain, setSamples[j], 2, 2,  
     397          sets[j] = new Gridded2DSet(domain, setSamples[j], 2, 2, 
    396398              null, null, null, false); 
    397399        } 
     
    399401      } 
    400402      catch (VisADException ex) { ex.printStackTrace(); } 
    401        
     403 
    402404      /* 
    403405      setSamples = new float[][]{ 
     
    412414      /* 
    413415      setSamples = new float[][] { 
    414         {xx1, x1 - delta,  
     416        {xx1, x1 - delta, 
    415417          xx1, x1 - delta,}, 
    416         {y1 + delta, y1 + delta,  
     418        {y1 + delta, y1 + delta, 
    417419          y1 - delta, y1 - delta,} 
    418420      }; 
     
    424426        {xx1, x1 - delta, x1 - delta + dx, 
    425427          xx1, x1 - delta, x1 -delta + dx}, 
    426         {y1 + delta, y1 + delta, y1 + size + delta,  
     428        {y1 + delta, y1 + delta, y1 + size + delta, 
    427429          y1 - delta, y1 - delta, y1 - size - delta} 
    428430      }; 
    429431      */ 
    430       // I would expect the second one to look like a sideways 'T', but  
     432      // I would expect the second one to look like a sideways 'T', but 
    431433      // it looks like a triangle instead 
    432434    } 
     
    470472      delta = GLOW_WIDTH * getMultiplier(link); 
    471473      nodes = ono.getNodes(); 
    472       numNodes = ono.getNumNodes();  
     474      numNodes = ono.getNumNodes(); 
    473475      hlt = ono.isHighlightNode(); 
    474476      if (hlt) hltIndex = ono.getHighlightedNodeIndex(); 
     
    500502          nodes[1][i]}; 
    501503 
    502       if (v[0] == 0 && v[1] == 0) continue;  
     504      if (v[0] == 0 && v[1] == 0) continue; 
    503505        // nodes are colocational 
    504506      // angle of vector perpendicular to line 
    505       double theta =  Math.PI / 2 + Math.atan2(v[1], v[0]);  
     507      double theta =  Math.PI / 2 + Math.atan2(v[1], v[0]); 
    506508 
    507509      float dx = (float) (delta * Math.cos(theta)); 
     
    527529    if (goodSets == 0 ) { 
    528530      return null; 
    529     }  
     531    } 
    530532    else { 
    531533      float[][] rangeSamples = new float[4][hlen + 4 * goodSets]; 
     
    544546      // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
    545547      // Build circle and circle samples 
    546       // ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  
     548      // ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    547549 
    548550      /* 
     
    565567        // bottom half of circle 
    566568        for (int i=0; i<arcLen; i++) { 
    567           int ndx = arcLen + i;  
     569          int ndx = arcLen + i; 
    568570          highlightSetSamples[0][ndx] = c[0] + rad * ARC[0][i]; 
    569571          highlightSetSamples[1][ndx] = c[1] - rad * ARC[1][i]; 
     
    571573 
    572574        try { 
    573           // build highlight set  
     575          // build highlight set 
    574576          hltSet = new Gridded2DSet(domain, highlightSetSamples, 
    575577            arcLen, 2, null, null, null, false); 
     
    598600        /* 
    599601        for (int i=0; i<sets.length; i++) { 
    600           if (sets[i] == null) {  
     602          if (sets[i] == null) { 
    601603            System.out.println("sets[" + i + "] is null."); 
    602604          } 
    603           else 
    604             System.out.println("sets[" + i + "].length = " + sets[i].getLength()); 
     605          else { 
     606            System.out.println("sets[" + i + "].length = " + 
     607              sets[i].getLength()); 
     608          } 
    605609        } 
    606610        */ 
    607  
    608611        fieldSet = new UnionSet (domain, trueSets); 
    609612        FunctionType fieldType = new FunctionType(domain, range); 
     
    628631        float[] v2 = {nodes[0][i+1] - nodes[0][i], nodes[1][i+1] - nodes[1][i]}; 
    629632 
    630  
    631633    }*/ 
    632634  } 
    633    
     635 
    634636  /** Computes a selection layer for OverlayOval objects */ 
    635637  public static DataImpl getOvalLayer(OverlayObject obj, TransformLink link) { 
     
    734736 
    735737  /** Computes a standard outline layer for an OverlayObject */ 
    736   public static DataImpl getOutlineLayer(OverlayObject obj, TransformLink link)   { 
     738  public static DataImpl getOutlineLayer(OverlayObject obj, TransformLink link) 
     739  { 
    737740    OverlayTransform overlay = (OverlayTransform) link.getTransform(); 
    738741    RealTupleType domain = overlay.getDomainType(); 
     
    758761    catch (VisADException exc) { exc.printStackTrace(); } 
    759762 
    760     Color col = OUTLINE_COLOR;  
     763    Color col = OUTLINE_COLOR; 
    761764    float r = col.getRed() / 255f; 
    762765    float g = col.getGreen() / 255f; 
     
    780783  } 
    781784 
    782   /**  
     785  /** 
    783786   * Returns a multiplier suitable for scaling distances to pixel coordinates. 
    784787   * Useful when the location of an event are unimportant, just the properties 
    785    * of the display.  
     788   * of the display. 
    786789   */ 
    787790  public static float getMultiplier(TransformLink link) { 
     
    790793  } 
    791794 
    792   /**  
     795  /** 
    793796   * Returns a multiplier suitable for scaling distances to pixel coordinates. 
    794797   * Useful when the location of an event are unimportant, just the properties 
    795    * of the display.  
     798   * of the display. 
    796799   */ 
    797800  public static float getMultiplier(DisplayImpl display) { 
     
    811814  // -- Helper Methods -- 
    812815 
    813   // Note: This method is basically the old  
     816  // Note: This method is basically the old 
    814817  // OverlayObject.computeGridParameters() 
    815818  // method from OverlayBox. 
    816819  /** Computes corners of an OverlayObject's outline */ 
    817820  private static float[][] computeOutline(OverlayObject obj, 
    818      TransformLink link) {  
     821     TransformLink link) { 
    819822    DisplayImpl display = link.getHandler().getWindow().getDisplay(); 
    820823    float x1 = obj.getX(); 
     
    845848    float y2 = obj.getY2(); 
    846849 
    847     int sx = overlay.getScalingValueX();  
    848     int sy = overlay.getScalingValueY();  
    849  
    850     float padx = 0.02f * sx;  
    851     float pady = 0.02f * sy;  
    852     float xx1 = x1 - padx;  
    853     float xx2 = x2 + padx;  
    854     float yy1 = y1 - pady;  
    855     float yy2 = y2 + pady;  
     850    int sx = overlay.getScalingValueX(); 
     851    int sy = overlay.getScalingValueY(); 
     852 
     853    float padx = 0.02f * sx; 
     854    float pady = 0.02f * sy; 
     855    float xx1 = x1 - padx; 
     856    float xx2 = x2 + padx; 
     857    float yy1 = y1 - pady; 
     858    float yy2 = y2 + pady; 
    856859 
    857860    return new float[][]{{xx1, yy1}, {xx2, yy2}}; 
  • trunk/loci/visbio/overlays/OverlayWidget.java

    r2653 r2725  
    522522      // if any selected overlay is not filled, clear filled checkbox 
    523523      if (!obj.isFilled()) fill = false; 
    524        
     524 
    525525      // if any selected overlay cannot be filled, disable filled checkbox 
    526526      if (!obj.canBeFilled()) enableFill = false; 
     
    579579    text.setEnabled(enableText); 
    580580    text.setEditable(enableText); 
    581      
     581 
    582582    if (sel.length > 0) { 
    583583      // leave GUI components alone if nothing is selected 
     
    843843  // -- Helper methods -- 
    844844 
    845  
    846845  /** Sets the font text field to reflect the currently chosen font. */ 
    847846  protected void refreshCurrentFont() { 
  • trunk/loci/visbio/overlays/PointerTool.java

    r2715 r2725  
    4040 
    4141  /** Vector of "grabbed" objects */ 
    42   protected Vector grabbed;  // the grabees  
     42  protected Vector grabbed;  // the grabees 
    4343 
    4444  /** The selection box which may be created by this tool */ 
     
    5656  /** Array of whether objects are selected at time of mouse press */ 
    5757  protected boolean[] selected; 
    58    
     58 
    5959  // -- Constructor -- 
    6060 
     
    7575 
    7676    DisplayImpl display = (DisplayImpl) e.getDisplay(); 
    77      
     77 
    7878    // pick nearest object 
    7979    objs = overlay.getObjects(pos); 
     
    9797    if (dist < threshold) { 
    9898      if (shift) objs[ndx].setSelected(true); 
    99       else if (ctrl) objs[ndx].setSelected(ctrl ? !objs[ndx].isSelected() : true); 
     99      else if (ctrl) { 
     100        objs[ndx].setSelected(ctrl ? !objs[ndx].isSelected() : true); 
     101      } 
    100102      else { 
    101103        if (objs[ndx].isSelected()) { 
     
    120122        for (int i=0; i<objs.length; i++) objs[i].setSelected(false); 
    121123      } 
    122      
    123       // assemble array of objects' bounding boxes  
     124 
     125      // assemble array of objects' bounding boxes 
    124126      for (int i=0; i<objs.length; i++) { 
    125127        float[] bound = new float[4]; 
     
    135137        bounds[i] = bound; 
    136138      } 
    137      
    138       // compile array tracking initial selection state of all objs here  
     139 
     140      // compile array tracking initial selection state of all objs here 
    139141      for (int i=0; i<objs.length; i++) { selected[i] = objs[i].isSelected(); } 
    140142 
     
    218220         * 3----2 
    219221         */ 
    220          
     222 
    221223        // express object corners in terms of TSB edge vectors 
    222224        // vector between corners 0 and 1 
     
    227229        // iterate through all 4 points of object bounding box 
    228230        // and check whether they're inside selection area 
    229         boolean inside = true;  
     231        boolean inside = true; 
    230232        for (int j = 0; j<bounds[0].length && inside; j++) { 
    231           int xndx = j < 2 ? 0 : 2;  
    232           int yndx = j % 2 == 0 ? 1 : 3;  
     233          int xndx = j < 2 ? 0 : 2; 
     234          int yndx = j % 2 == 0 ? 1 : 3; 
    233235          double[] p = {bounds[i][xndx], bounds[i][yndx]}; 
    234236          // the above three lines iterate through the pairs (0,1), 
    235           // (0,3), (2,1), (2, 3) of bounds[i] over the  
     237          // (0,3), (2,1), (2, 3) of bounds[i] over the 
    236238          // duration of the loop 
    237            
     239 
    238240          double[] vp = {p[0] - c[0][0], p[1] - c[0][1]}; // vector from c(0) 
    239241          // to p 
    240242 
    241243          // cos of angle btw. vectors v1 and vp 
    242           double cos1 = (vp[0] * v1[0] + vp[1] * v1[1]) /  
     244          double cos1 = (vp[0] * v1[0] + vp[1] * v1[1]) / 
    243245            (Math.sqrt(vp[0]*vp[0] + vp[1]*vp[1] + v1[0]*v1[0] + v1[1]*v1[1])); 
    244            
     246 
    245247          // cos of angle btw. v2 and vp 
    246           double cos2 = (vp[0] * v2[0] + vp[1] * v2[1]) /  
     248          double cos2 = (vp[0] * v2[0] + vp[1] * v2[1]) / 
    247249            (Math.sqrt(vp[0]*vp[0] + vp[1]*vp[1] + v2[0]*v2[0] + v2[1]*v2[1])); 
    248250 
     
    254256            double[] proj1 = MathUtil.getProjection(c[0], c[3], p, false); 
    255257            double[] proj2 = MathUtil.getProjection(c[0], c[1], p, false); 
    256               
     258 
    257259            double d1 = MathUtil.getDistance(proj1, c[0]); 
    258260            double d2 = MathUtil.getDistance(proj2, c[0]); 
     
    263265            if (d1 > dv1 || d2 > dv2) inside = false; 
    264266          } 
    265         } // end for  
     267        } // end for 
    266268 
    267269        // code for dynamic list refresh 
  • trunk/loci/visbio/overlays/PolylineTool.java

    r2714 r2725  
    115115          releaseLine(); 
    116116        } 
    117         else {  
     117        else { 
    118118          overlay.removeObject(line); 
    119119          unselect(); 
     
    186186        line.setNodeCoords(selectedNode, dx, dy); 
    187187        overlay.notifyListeners(new TransformEvent(overlay)); 
    188       }  
     188      } 
    189189      else if (mode == SELECTED_TAIL) { 
    190190        mode = ADJUST_TAIL; 
     
    196196        // determine if near head 
    197197        double dist = getDistanceToNode(0, px, py, display); 
    198          
    199         // if near, highlight head node  
     198 
     199        // if near, highlight head node 
    200200        if (dist < THRESH) { 
    201201          line.setHighlightNode(selectedNode, CON); 
     
    214214      } 
    215215    } // end synchronized (line) 
    216   }  
     216  } 
    217217 
    218218  /** Instructs this tool to respond to a mouse release. */ 
    219   public void mouseUp(DisplayEvent e, int px, int py,  
     219  public void mouseUp(DisplayEvent e, int px, int py, 
    220220      float dx, float dy, int[] pos, int mods) { 
    221221    //System.out.println("up mode = " + mode); 
    222222    DisplayImpl display = (DisplayImpl) e.getDisplay(); 
    223     //printMode("mouseUp"); // TEMP 
     223    //printMode("mouseUp");//TEMP 
    224224 
    225225    synchronized (overlay) {