TableAsHtml Class Reference

List of all members.


Public Member Functions

String forms (Double value)
String forms (Double value, int width)
String forms (Double value, int width, int position)

Package Functions

void renderMessage (MarkupWriter writer)

Detailed Description

Definition at line 10 of file TableAsHtml.java.


Member Function Documentation

void renderMessage ( MarkupWriter  writer  )  [package]

Definition at line 13 of file TableAsHtml.java.

References TableAsHtml.forms().

00013                                             {
00014 
00015         if (_dataset == null && _yaxis != null) {
00016            _dataset = _yaxis.getDataset(); 
00017         }
00018 
00019         if (_dataset == null && _reaction != null) {
00020            _yaxis = _reaction.getYAxis();
00021            _dataset = _yaxis.getDataset(); 
00022         }
00023 
00024         if (_dataset != null) {
00025            
00026 //          int ya = _yaxis;
00027 //          writer.write("This is yaxis " + ya);
00028 //            YAxis y = _dataset.getYAxis(ya);
00029             int nx = _dataset.getXAxes().size();
00030             int npoints = 0;
00031             int npointsy = 0;
00032             for (XAxis x : _dataset.getXAxes()){npoints = x.getBins().size();}
00033             for (YAxis y : _dataset.getYAxes()){npointsy = y.getPoints().size();}
00034             if(npointsy > npoints) { npoints = npointsy; }
00035 
00036             writer.element("table border=1");
00037 
00038                 int nspan = nx+1;
00039 //              writer.element("tr");
00040 //                  writer.element("th colspan=" + nspan); 
00041 //                     writer.write("Dataset " + _dataset.getId() + " yaxis " + _yaxis.getId());
00042 //                  writer.end();
00043 //              writer.end();
00044 
00045 // Put in the dataset comments
00046 //                for ( String comment : _dataset.getComments() ){
00047 //                  writer.element("tr");
00048 //                     writer.element("th colspan=" + nspan);
00049 //                        writer.write(comment);
00050 //                     writer.end();
00051 //                  writer.end();
00052 //              }
00053 
00054 // first the reactions for this yaxis
00055 //                for ( Reaction reac : _yaxis.getReactions() ){
00056 //                    writer.element("tr");
00057 //                      writer.element("th colspan=" + nspan);
00058 //                            for ( Particle part : reac.getInitialState() ){
00059 //                              writer.write(part.getName() + " ");
00060 //                            }
00061 //                          writer.write("-->");
00062 //                            for ( Particle part : reac.getFinalState() ){
00063 //                              if (part.getMultRelation() != Relation.EQUALS) {writer.write( part.getMultRelation().toString() );}
00064 //                              if (part.getMultiplicity() > 1) {writer.write( part.getMultiplicity().toString() );}
00065 //                              writer.write(part.getName() + " ");
00066 //                          }
00067 //                              writer.end();
00068 //                  writer.end();
00069 //                }
00070 // next the observable
00071 //                writer.element("tr");
00072 //                  writer.element("th colspan=" + nspan); 
00073 //                      writer.write(_yaxis.getObservable());
00074 //                          writer.end();
00075 //              writer.end();
00076 
00077 // next the yaxis comments (non-numerical properties!)
00078                 for (String comment : _yaxis.getComments()){
00079                     writer.element("tr");
00080                         writer.element("th colspan=" + nspan); 
00081                             writer.write(comment);
00082                         writer.end();
00083                     writer.end();
00084                 }
00085 
00086 // next the properties
00087                 for ( Property prop: _yaxis.getProperties() ){
00088                     writer.element("tr");
00089                         writer.element("th colspan=" + nspan);
00090                             writer.write( prop.getName() + " : ");
00091                             if (prop.getLowValue() != null && prop.getHighValue() != null &&
00092                             prop.getLowValue().equals(prop.getHighValue())) {
00093                                 writer.write(prop.getLowValue().toString());
00094                             }
00095                             else{writer.write(prop.getLowValue().toString() + " TO " + prop.getHighValue().toString());}
00096                             if (!prop.getUnit().toString().equals("num")){
00097                                 writer.write(" " + prop.getUnit().toString());
00098                             }
00099                         writer.end();
00100                     writer.end();
00101                 }             
00102 // here for the headers
00103                 writer.element("tr");
00104                     for (XAxis x : _dataset.getXAxes()){
00105                         writer.element("th");
00106                             writer.write(x.getHeader());
00107                         writer.end();
00108                     }
00109                     writer.element("th");
00110                         writer.write(_yaxis.getHeader());
00111                     writer.end();
00112                 writer.end();
00113 
00114 // finally the numbers themselves
00115 // first the xaxes
00116                 Double f = null;
00117                 Double high = null;
00118                 Double low = null;
00119                 writer.element("tr");
00120                     for (int ix=1 ; ix<=nx; ix++){
00121                         XAxis xaxis = _dataset.getXAxis(ix);
00122                         writer.element("th");
00123                         writer.element("pre");
00124                         for (int ip=1 ; ip<=npoints; ip++){
00125                             for (Bin b : xaxis.getBins()){
00126                                 if(b.getId() == ip) {
00127                                     low = b.getLowValue();
00128                                     high = b.getHighValue();
00129                                     f = b.getFocus();
00130                                     if(low != null){
00131 //                                       writer.write(forms(low,8) + " TO " + forms(high,8)); 
00132                                          writer.write(low + " TO " + high); 
00133                                     }
00134                                     else{
00135                                        writer.write(forms(f,8)); 
00136                                     }
00137                                 }              
00138                             }          
00139                             writer.element("br");
00140                             writer.end();
00141                         }              
00142                         writer.end();
00143                         writer.end();
00144                     }    
00145 // next the yaxis
00146         
00147                     writer.element("th align='left'");
00148                     writer.element("pre");
00149                     for (int ip=1 ; ip<=npoints; ip++){
00150                         try {
00151                             Point pt2 = _yaxis.getPoint(ip);
00152 //                          writer.write(forms(pt2.getValue(),10)); 
00153                             writer.write( Double.toString(pt2.getValue()));
00154                             int nume = 0; 
00155                             for ( Uncertainty e : pt2.getErrors() ){
00156                                 nume += 1;
00157                                 if(nume > 1) writer.write(" (");
00158                                 if( e.getPlus().equals(e.getMinus()) ) {
00159 //                                  writer.write(" +- " + forms(e.getPlus(),10) );
00160                                     writer.write(" +- " + e.getPlus() );
00161                                 }
00162                                 else{
00163 //                                  writer.write(" +" + forms(e.getPlus(),10) + ",-" + forms(e.getMinus(),10) );
00164                                     writer.write(" +" + e.getPlus() + ",-" + e.getMinus() );
00165                                 }
00166                                 if ( e.getNormType() == ErrorNorm.PCT ) {
00167                                     writer.write(" (" + e.getNormType().toString() + ")");
00168                                 }
00169                                 if(nume > 1) writer.write(" )");
00170                             }
00171                             writer.element("br");
00172                             writer.end();
00173                         } 
00174                         catch (Exception e) {
00175                             writer.write("  -   ");
00176                             writer.element("br");
00177                             writer.end();
00178                         }
00179                     }
00180                     writer.end();
00181                     writer.end();
00182                 writer.end();
00183 //  end of the table
00184             writer.end();
00185         }
00186 
00187     }

String forms ( Double  value  ) 

Definition at line 205 of file TableAsHtml.java.

Referenced by TableAsHtml.renderMessage().

00205                                      {
00206         int width = 20;
00207         return this.forms(value,width);
00208         
00209     }

String forms ( Double  value,
int  width 
)

Definition at line 211 of file TableAsHtml.java.

00211                                                 {
00212         int position = width/2;
00213         return this.forms(value,width,position);
00214     }

String forms ( Double  value,
int  width,
int  position 
)

Definition at line 216 of file TableAsHtml.java.

00216                                                              {
00217         String form = "##############.###############################";
00218         DecimalFormat myFormatter = new DecimalFormat(form);
00219         String sval = "cannot format this!!";
00220         if( value instanceof Double ){
00221            sval = myFormatter.format(value);
00222         }
00223         String sout = " ";
00224         for (int i=1 ; i<width; i++){
00225             sout = sout.concat(" ");
00226         }
00227         int lenval = sval.length(); 
00228         int dotpos = sval.indexOf(".");
00229         String before = sval;
00230         String after  = "";
00231         if(dotpos >= 0){
00232             before = sval.substring(0,dotpos);
00233             after  = sval.substring(dotpos+1,lenval);
00234         }
00235         int lenbefore = before.length();
00236         int lenafter = after.length();
00237         int lenout = sout.length();
00238         StringBuffer bout = new StringBuffer(sout);
00239         int lstart = 1;
00240         int l1 = lstart+lenbefore;
00241         int l2 = l1;
00242         int l3 = l2+1;
00243         int l4 = l3+lenafter;
00244         
00245         bout.replace(lstart,l1,before);
00246         bout.replace(l2,l2,".");
00247         bout.replace(l3,l4,after);
00248         sout = bout.toString();
00249         
00250         return sout;
00251     } 


The documentation for this class was generated from the following file:


Generated on Tue Apr 21 15:55:02 2009 for HepData Web servlets by  doxygen 1.5.5