Changeset 2559


Ignore:
Timestamp:
04/04/07 12:05:30 (13 years ago)
Author:
sorber
Message:

Export stats to Excel.

Location:
trunk/loci/visbio/overlays
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/visbio/overlays/OverlayIO.java

    r2555 r2559  
    440440      "Arrow", "Polyline"}; 
    441441    for (int v=0; v<vectors.length; v++) { 
    442       out.println("# " + titles[v] + " Statistics"); 
    443       for (int i=0; i<vectors[v].size(); i++) { 
    444         OverlayObject obj = (OverlayObject) vectors[v].get(i); 
    445         int index = i + 1; 
    446         out.println("# " + titles[v] + " " + index); 
    447         OverlayStat[] stats = obj.getStatisticsArray(); 
    448         for (int j=0; j<stats.length; j++) { 
    449           out.println("#\t" + stats[j].getName() + "\t" + stats[j].getValue()); 
    450         } 
    451       } 
    452       out.println(); 
     442                        if (vectors[v].size() > 0)  
     443                        { 
     444                                out.println("# " + titles[v] + " Statistics"); 
     445                                for (int i=0; i<vectors[v].size(); i++)  
     446                                { 
     447                                        OverlayObject obj = (OverlayObject) vectors[v].get(i); 
     448                                        int index = i + 1; 
     449                                        out.println("# " + titles[v] + " " + index); 
     450                                        OverlayStat[] stats = obj.getStatisticsArray(); 
     451                                        for (int j=0; j<stats.length; j++)  
     452                                        { 
     453                                                out.println("#\t" + stats[j].getName() + "\t" + stats[j].getValue()); 
     454                                        } 
     455                                } 
     456                                out.println(); 
     457                        } 
    453458    } 
    454459    
     
    491496    String[] dims = overlay.getDimTypes(); 
    492497    int[] lengths = overlay.getLengths(); 
     498 
    493499    Vector[] overlays = overlay.overlays; 
    494     Vector savedNodedObjects = new Vector(); 
     500 
     501                Vector lines = new Vector(); 
     502                Vector markers = new Vector(); 
     503                Vector freeforms = new Vector(); 
     504                Vector texts = new Vector(); 
     505                Vector ovals = new Vector(); 
     506                Vector boxes = new Vector(); 
     507                Vector arrows = new Vector(); 
     508                Vector polylines = new Vector(); 
    495509 
    496510    // initialize worksheet 
     
    516530    int rownum = 0; 
    517531 
    518     String header = "# " + VisBio.TITLE + " " + VisBio.VERSION + 
     532    String header = VisBio.TITLE + " " + VisBio.VERSION + 
    519533      " overlay file written " + new Date(); 
    520534 
     
    572586 
    573587        // a 'rider' to this loop: keep track of noded objects 
    574         if (obj instanceof OverlayNodedObject) savedNodedObjects.add(obj); 
     588                                if (obj instanceof OverlayLine) lines.add(obj); 
     589                                if (obj instanceof OverlayFreeform) freeforms.add(obj); 
     590                                if (obj instanceof OverlayMarker) markers.add(obj); 
     591                                if (obj instanceof OverlayText) texts.add(obj); 
     592                                if (obj instanceof OverlayOval) ovals.add(obj); 
     593                                if (obj instanceof OverlayBox) boxes.add(obj); 
     594                                if (obj instanceof OverlayArrow) arrows.add(obj); 
     595                                if (obj instanceof OverlayPolyline) polylines.add(obj); 
    575596 
    576597        // overlay object type 
     
    659680      } 
    660681    } 
     682     
     683    // write overlay statistics 
     684    Vector[] vectors = {lines, freeforms, markers, texts, ovals, boxes,  
     685                                arrows, polylines}; 
     686                String[] titles =  
     687                        {       "Line", "Freeform", "Marker", "Text", "Oval", "Box", 
     688                                "Arrow", "Polyline"}; 
     689                                 
     690                for (int v=0; v<vectors.length; v++)  
     691                { 
     692                        if (vectors[v].size() > 0)  
     693                        { 
     694                                rownum += 2; 
     695                                r = s.createRow(rownum); 
     696                                cellnum = 0; 
     697                          c = r.createCell(cellnum++); 
     698                          c.setCellStyle(text); 
     699                          c.setCellValue(new HSSFRichTextString(titles[v] + " Statistics")); 
     700                                                 
     701                                for (int i=0; i<vectors[v].size(); i++)  
     702                                { 
     703                                        OverlayObject obj = (OverlayObject) vectors[v].get(i); 
     704                                        int index = i + 1; 
     705                                         
     706                                        cellnum = 0; 
     707                                        r = s.createRow(++rownum); 
     708                                        c = r.createCell(cellnum++); 
     709                                        c.setCellStyle(text); 
     710                                        c.setCellValue(new HSSFRichTextString(titles[v] + " " + index)); 
     711                                         
     712                                        OverlayStat[] stats = obj.getStatisticsArray(); 
     713                                        for (int j=0; j<stats.length; j++)  
     714                                        { 
     715                                          r = s.createRow(++rownum); 
     716                                          cellnum = 1; // indent one column 
     717                                                c = r.createCell(cellnum++); 
     718                                                c.setCellStyle(text); 
     719                                                c.setCellValue(new HSSFRichTextString(stats[j].getName())); 
     720                                                 
     721                                                c = r.createCell(cellnum++); 
     722                                                c.setCellStyle(text); 
     723                                                c.setCellValue(new HSSFRichTextString(stats[j].getValue())); 
     724                                        }  
     725                                } 
     726                        }  
     727                }  
    661728 
    662729    // write nodes of noded objects 
     
    665732     
    666733    rownum += 2; // skip a row 
    667     for (int i = 0; i<savedNodedObjects.size(); i++) { 
    668       OverlayNodedObject ono = (OverlayNodedObject)  
    669         savedNodedObjects.elementAt(i); 
     734    for (int i = 0; i<freeforms.size() + polylines.size(); i++) { 
     735      OverlayNodedObject ono; 
     736      int k = 0; 
     737      if (i < freeforms.size()){ 
     738        ono = (OverlayNodedObject) freeforms.get(i); 
     739        k = ++freeformCount; 
     740      } 
     741      else { 
     742        ono = (OverlayNodedObject) polylines.get(i - freeforms.size()); 
     743        k = ++polylineCount; 
     744      } 
    670745 
    671746      // write nodes header 
     
    680755      xx2 = ono.getX2(); 
    681756      yy2 = ono.getY2(); 
    682        
    683       int k = 0; 
    684       if (ono instanceof OverlayFreeform) k = ++freeformCount; 
    685       else if (ono instanceof OverlayPolyline) k = ++polylineCount; 
    686  
    687       String hdr = ono + " " + k + " (" + xx1 + "," + yy1 + ")(" + xx2 + "," + 
    688         yy2 + ")"; 
     757             
     758      String hdr = ono + " " + k; 
    689759      c.setCellValue(new HSSFRichTextString(hdr)); 
    690760 
    691       // write nodes themselves 
     761      // write the nodes themselves 
    692762      for (int j = 0; j<numNodes; j++) { 
    693763        float[] node = ono.getNodeCoords(j); 
  • trunk/loci/visbio/overlays/OverlayNodedObject.java

    r2534 r2559  
    404404    OverlayStat[] stats = { 
    405405      new OverlayStat("Bounds", bounds), 
    406       new OverlayStat("Length (standard)", "" + curveLength), 
     406      new OverlayStat("Length (pixels, standard)", "" + curveLength), 
    407407    }; 
    408408 
Note: See TracChangeset for help on using the changeset viewer.