Changeset 5940
- Timestamp:
- Jan 31, 2012, 1:29:11 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/ColumnDef.java
r5929 r5940 45 45 import javax.servlet.jsp.JspException; 46 46 import javax.servlet.jsp.JspTagException; 47 import javax.servlet.jsp.tagext.TagSupport;48 47 49 48 -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Form.java
r5892 r5940 27 27 import javax.servlet.jsp.JspException; 28 28 import javax.servlet.jsp.JspTagException; 29 import javax.servlet.jsp.tagext.TagSupport; 29 30 import net.sf.basedb.clients.web.taglib.StylableTag; 31 30 32 31 33 … … 77 79 */ 78 80 public class Form 79 extends TagSupport81 extends StylableTag 80 82 { 81 83 … … 85 87 86 88 private int width = 1; 89 90 public Form() 91 { 92 super(null); 93 } 87 94 88 95 public void setWidth(int width) … … 111 118 Map<String, String> contents = table.getColumnContent(); 112 119 StringBuilder sb = new StringBuilder(); 120 sb.append("<table "); 121 addIdAndStyles(sb); 122 sb.append(">\n"); 113 123 int colNum = 0; 114 124 for (String col : table.getVisibleColumns()) 115 125 { 116 126 String header = headers.get(col); 117 if (header == null) header = "<t d> </td>";127 if (header == null) header = "<th></th>"; 118 128 String content = contents.get(col); 119 if (content == null) content = "<td> </td>";129 if (content == null) content = "<td></td>"; 120 130 if (colNum % width == 0) sb.append("<tr>"); 121 131 sb.append(header); … … 124 134 if (colNum % width == 0) sb.append("</tr>"); 125 135 } 126 if (colNum % width != 0) sb.append("</tr>"); 136 while (colNum % width != 0) 137 { 138 sb.append("<th></th><td></td>"); 139 colNum++; 140 if (colNum % width == 0) sb.append("</tr>"); 141 } 127 142 contents.clear(); 143 144 sb.append("</table>"); 128 145 try 129 146 { -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Header.java
r4889 r5940 26 26 import javax.servlet.jsp.JspTagException; 27 27 import javax.servlet.jsp.tagext.Tag; 28 import javax.servlet.jsp.tagext.TagSupport; 28 29 import net.sf.basedb.clients.web.taglib.StylableTag; 29 30 30 31 /** … … 86 87 */ 87 88 public class Header 88 extends TagSupport89 extends StylableTag 89 90 { 90 91 … … 94 95 private static final long serialVersionUID = -7541520513764712983L; 95 96 97 public Header() 98 { 99 super(null); 100 } 101 96 102 /** 97 103 The parent <tbl:table> tag. 98 104 */ 99 105 private Table table; 100 101 /** 102 Optional <code>class</code> attribute 103 */ 104 private String clazz = "header"; 105 106 /** 107 Optional <code>style</code> attribute 108 */ 109 private String style = null; 110 106 111 107 /** 112 108 If the header should be visible or not. … … 117 113 Taglib initialization methods 118 114 */ 119 public void setClazz(String clazz)120 {121 this.clazz = clazz;122 }123 public String getClazz()124 {125 return clazz;126 }127 115 128 public void setStyle(String style)129 {130 this.style = style;131 }132 public String getStyle()133 {134 return style;135 }136 137 116 public void setVisible(boolean visible) 138 117 { … … 169 148 StringBuilder sb = new StringBuilder(); 170 149 sb.append("<th"); 171 if (getClazz() != null) sb.append(" class=\"").append(getClazz()).append("\""); 172 if (getStyle() != null) sb.append(" style=\"").append(getStyle()).append("\""); 150 addIdAndStyles(sb); 173 151 sb.append(">"); 174 152 try -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Label.java
r5918 r5940 23 23 24 24 import net.sf.basedb.clients.web.taglib.Page; 25 import net.sf.basedb.clients.web.taglib.StylableTag; 25 26 26 27 import javax.servlet.jsp.JspException; 27 28 import javax.servlet.jsp.JspTagException; 28 import javax.servlet.jsp.tagext.TagSupport;29 29 30 30 /** … … 131 131 */ 132 132 public class Label 133 extends TagSupport133 extends StylableTag 134 134 { 135 135 … … 139 139 private static final long serialVersionUID = 5326481772609709567L; 140 140 141 public Label() 142 { 143 super("label"); 144 } 145 146 141 147 /** 142 148 The parent <tbl:table> tag. … … 149 155 private Toolbar toolbar; 150 156 151 /**152 Optional <code>class</code> attribute153 */154 private String clazz = "label";155 156 /**157 Optional <code>style</code> attribute158 */159 private String style = null;160 161 157 /** 162 158 An optional image to show in the button. … … 182 178 Taglib initialization methods 183 179 */ 184 public void setClazz(String clazz)185 {186 this.clazz = clazz;187 }188 public String getClazz()189 {190 return clazz;191 }192 193 public void setStyle(String style)194 {195 this.style = style;196 }197 public String getStyle()198 {199 return style;200 }201 202 180 public void setImage(String image) 203 181 { … … 252 230 StringBuilder sb = new StringBuilder(); 253 231 sb.append("<td"); 254 if (getId() != null) sb.append(" id=\"").append(getId()).append("\""); 255 if (getClazz() != null) 256 { 257 sb.append(" class=\"").append(getClazz()).append("\""); 258 } 259 if (getStyle() != null) sb.append(" style=\"").append(getStyle()).append("\""); 232 addIdAndStyles(sb); 260 233 String tooltip = getTooltip(); 261 234 if (!displayText && tooltip == null) tooltip = getTitle(); … … 264 237 if (displayImage) 265 238 { 266 sb.append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>");239 sb.append("<table><tr><td>"); 267 240 sb.append("<img src=\"").append(page.getRoot()).append("images/").append(getImage()).append("\""); 268 sb.append(" border=\"0\"></td><td>"); 269 } 270 if (displayText && getTitle() != null) sb.append(" ").append(getTitle()).append(" "); 241 sb.append("></td><td>"); 242 } 243 if (displayText && getTitle() != null) 244 { 245 sb.append("<span style=\"padding: 0px 2px 0px 2px;\""); 246 if (getId() != null) sb.append(" id=\"").append(getId()).append(".text").append("\""); 247 sb.append(">").append(getTitle()); 248 } 249 try 250 { 251 pageContext.getOut().print(sb.toString()); 252 } 253 catch (Exception ex) 254 { 255 throw new JspTagException(ex.getMessage()); 256 } 257 return EVAL_BODY_INCLUDE; 258 } 259 260 public int doEndTag() 261 throws JspException 262 { 263 boolean displayImage = getImage() != null && toolbar.hasImages(); 264 boolean displayText = toolbar.hasText() || !displayImage; 265 266 StringBuilder sb = new StringBuilder(); 267 if (displayText && getTitle() != null) 268 { 269 sb.append("</span>"); 270 } 271 271 if (displayImage) 272 272 { … … 282 282 throw new JspTagException(ex.getMessage()); 283 283 } 284 return SKIP_BODY;284 return EVAL_BODY_INCLUDE; 285 285 } 286 286 -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Panel.java
r5384 r5940 25 25 import javax.servlet.jsp.JspException; 26 26 import javax.servlet.jsp.JspTagException; 27 import javax.servlet.jsp.tagext.TagSupport; 27 28 import net.sf.basedb.clients.web.taglib.StylableTag; 28 29 29 30 /** … … 101 102 */ 102 103 public class Panel 103 extends TagSupport104 extends StylableTag 104 105 { 105 106 … … 109 110 private static final long serialVersionUID = 8435173953529878997L; 110 111 111 /**112 Optional <code>class</code> attribute113 */114 private String clazz = "panel";112 public Panel() 113 { 114 super("panel"); 115 } 115 116 116 /**117 Optional <code>style</code> attribute118 */119 private String style = null;120 121 117 /** 122 118 If the panel should be visible or not. … … 127 123 Taglib initialization methods 128 124 */ 129 public void setClazz(String clazz)130 {131 this.clazz = clazz;132 }133 public String getClazz()134 {135 return clazz;136 }137 138 public void setStyle(String style)139 {140 this.style = style;141 }142 public String getStyle()143 {144 return style;145 }146 125 147 126 public void setVisible(boolean visible) … … 163 142 164 143 StringBuilder sb = new StringBuilder(); 165 sb.append("<tr><td"); 166 if (getId() != null) sb.append(" id=\"").append(getId()).append("\""); 167 if (getClazz() != null) sb.append(" class=\"").append(getClazz()).append("\""); 168 if (getStyle() != null) sb.append(" style=\"").append(getStyle()).append("\""); 144 sb.append("<div"); 145 addIdAndStyles(sb); 169 146 sb.append(">\n"); 170 147 try … … 184 161 if (!isVisible()) return EVAL_PAGE; 185 162 StringBuilder sb = new StringBuilder(); 186 sb.append("</ td></tr>\n");163 sb.append("</div>\n"); 187 164 try 188 165 { -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Row.java
r5929 r5940 25 25 import javax.servlet.jsp.JspException; 26 26 import javax.servlet.jsp.JspTagException; 27 import javax.servlet.jsp.tagext.TagSupport; 27 28 import net.sf.basedb.clients.web.taglib.StylableTag; 28 29 29 30 /** … … 111 112 */ 112 113 public class Row 113 extends TagSupport114 extends StylableTag 114 115 { 115 116 … … 119 120 private static final long serialVersionUID = 1975591924471893645L; 120 121 122 public Row() 123 { 124 super(null); 125 } 126 121 127 /** 122 128 The parent <tbl:table> tag. … … 129 135 private Data data; 130 136 131 /**132 Optional <code>class</code> attribute133 */134 private String clazz = null;135 136 /**137 Optional <code>style</code> attribute138 */139 private String style = null;140 141 137 /** 142 138 Optional <code>class</code> attribute that is applied when the mouse is over the current row. … … 152 148 Taglib initialization methods 153 149 */ 154 public void setClazz(String clazz)155 {156 this.clazz = clazz;157 }158 public String getClazz()159 {160 return clazz;161 }162 163 public void setStyle(String style)164 {165 this.style = style;166 }167 public String getStyle()168 {169 return style;170 }171 172 150 public void setHightligh(String highlight) 173 151 { … … 178 156 return highlight; 179 157 } 180 181 158 182 159 public void setVisible(boolean visible) … … 206 183 if (!isVisible()) return SKIP_BODY; 207 184 208 String clazz = getClazz() == null ? table.getNextRowClass() : getClazz();209 if (getHighlight() != null) clazz += " " + getHighlight();210 185 StringBuilder sb = new StringBuilder(); 211 186 sb.append("<tr"); 212 if (getId() != null) sb.append(" id=\"").append(getId()).append("\""); 213 sb.append(" class=\"").append(clazz).append("\""); 214 if (getStyle() != null) sb.append(" style=\"").append(getStyle()).append("\""); 187 addIdAndStyles(sb, table.getNextRowClass(), getHighlight()); 215 188 sb.append(">\n"); 216 217 189 try 218 190 { -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Table.java
r5929 r5940 43 43 import javax.servlet.jsp.JspException; 44 44 import javax.servlet.jsp.JspTagException; 45 import javax.servlet.jsp.tagext.TagSupport;46 45 import javax.servlet.http.HttpServletRequest; 47 46 -
trunk/www/WEB-INF/table.tld
r5929 r5940 123 123 </attribute> 124 124 <attribute> 125 <name>subclass</name> 126 <required>false</required> 127 <rtexprvalue>true</rtexprvalue> 128 </attribute> 129 <attribute> 125 130 <name>style</name> 126 131 <required>false</required> … … 429 434 </attribute> 430 435 <attribute> 436 <name>subclass</name> 437 <required>false</required> 438 <rtexprvalue>true</rtexprvalue> 439 </attribute> 440 <attribute> 431 441 <name>style</name> 432 442 <required>false</required> … … 514 524 </attribute> 515 525 <attribute> 526 <name>subclass</name> 527 <required>false</required> 528 <rtexprvalue>true</rtexprvalue> 529 </attribute> 530 <attribute> 516 531 <name>style</name> 517 532 <required>false</required> … … 553 568 </attribute> 554 569 <attribute> 570 <name>subclass</name> 571 <required>false</required> 572 <rtexprvalue>true</rtexprvalue> 573 </attribute> 574 <attribute> 555 575 <name>style</name> 556 576 <required>false</required> … … 568 588 <tagclass>net.sf.basedb.clients.web.taglib.table.Header</tagclass> 569 589 <attribute> 570 <name>clazz</name> 590 <name>id</name> 591 <required>false</required> 592 <rtexprvalue>true</rtexprvalue> 593 </attribute> 594 <attribute> 595 <name>clazz</name> 596 <required>false</required> 597 <rtexprvalue>true</rtexprvalue> 598 </attribute> 599 <attribute> 600 <name>subclass</name> 571 601 <required>false</required> 572 602 <rtexprvalue>true</rtexprvalue> … … 603 633 </attribute> 604 634 <attribute> 635 <name>subclass</name> 636 <required>false</required> 637 <rtexprvalue>true</rtexprvalue> 638 </attribute> 639 <attribute> 605 640 <name>style</name> 606 641 <required>false</required> … … 732 767 <tagclass>net.sf.basedb.clients.web.taglib.table.Form</tagclass> 733 768 <attribute> 769 <name>id</name> 770 <required>false</required> 771 <rtexprvalue>true</rtexprvalue> 772 </attribute> 773 <attribute> 774 <name>clazz</name> 775 <required>false</required> 776 <rtexprvalue>true</rtexprvalue> 777 </attribute> 778 <attribute> 779 <name>subclass</name> 780 <required>false</required> 781 <rtexprvalue>true</rtexprvalue> 782 </attribute> 783 <attribute> 784 <name>style</name> 785 <required>false</required> 786 <rtexprvalue>true</rtexprvalue> 787 </attribute> 788 <attribute> 734 789 <name>width</name> 735 790 <required>false</required> -
trunk/www/exception/exception.jsp
r5900 r5940 110 110 %> 111 111 <base:page type="default" menu="exception" title="Unexpected error"> 112 <base:head scripts="exception.js" />112 <base:head scripts="exception.js" styles="popup.css" /> 113 113 <base:body onload="Exception.fixWindow(true)"> 114 <base:note type="error" title="<%=exceptionClassName + " on page "+request.getAttribute("javax.servlet.error.request_uri")%>" 115 style="width:90%;" messagestyle="height: 450px;"> 116 <table border="0" cellpadding="0" cellspacing="0" class="form"> 117 <tr> 118 <td class="prompt">Version</td> 119 <td class="info"><%=Application.getVersionString()%></td> 120 </tr> 121 <tr> 122 <td class="prompt">Web server</td> 123 <td class="info"><%=application.getServerInfo()%></td> 124 </tr> 125 <tr> 126 <td class="prompt">Database Server</td> 127 <td class="info"><%=Application.getDatabaseVersionString()%></td> 128 </tr> 129 <tr> 130 <td class="prompt">Database Dialect</td> 131 <td class="info"><%=Config.getString("db.dialect")%></td> 132 </tr> 133 <tr> 134 <td class="prompt">JDBC Driver</td> 135 <td class="info"><%=jdbcDriver%> <%=driverVersion%></td> 136 </tr> 137 <tr> 138 <td class="prompt">Java runtime</td> 139 <td class="info"><%=properties.getProperty("java.runtime.name")%> 140 (<%=properties.getProperty("java.runtime.version")%>), 141 <a href="<%=properties.getProperty("java.vendor.url")%>" target="_new"><%=properties.getProperty("java.vendor")%></a></td> 142 </tr> 143 <tr> 144 <td class="prompt">Operating system</td> 145 <td class="info"><%=properties.getProperty("os.name")%> 114 <h1><%=exceptionClassName + " on page "+request.getAttribute("javax.servlet.error.request_uri")%></h1> 115 <div class="content bottomborder" style="bottom: 3em;"> 116 <table class="fullform outlined topborder"> 117 <tr> 118 <th>BASE Version</th> 119 <td><%=Application.getVersionString()%></td> 120 </tr> 121 <tr> 122 <th>Web server</th> 123 <td><%=application.getServerInfo()%></td> 124 </tr> 125 <tr> 126 <th>Database Server</th> 127 <td><%=Application.getDatabaseVersionString()%></td> 128 </tr> 129 <tr> 130 <th>Database Dialect</th> 131 <td><%=Config.getString("db.dialect")%></td> 132 </tr> 133 <tr> 134 <th>JDBC Driver</th> 135 <td><%=jdbcDriver%> <%=driverVersion%></td> 136 </tr> 137 <tr> 138 <th>Operating system</th> 139 <td><%=properties.getProperty("os.name")%> 146 140 <%=properties.getProperty("os.arch")%> 147 141 <%=properties.getProperty("os.version")%> … … 149 143 </tr> 150 144 <tr> 151 <td class="prompt">Memory</td> 152 <td class="info">Total: <%=Values.formatBytes(runtime.totalMemory())%><br> 145 <th>Java runtime</th> 146 <td><%=properties.getProperty("java.runtime.name")%> 147 (<%=properties.getProperty("java.runtime.version")%>), 148 <a href="<%=properties.getProperty("java.vendor.url")%>" target="_new"><%=properties.getProperty("java.vendor")%></a></td> 149 </tr> 150 <tr> 151 <th class="subprompt">Memory</th> 152 <td>Total: <%=Values.formatBytes(runtime.totalMemory())%><br> 153 153 Free: <%=Values.formatBytes(runtime.freeMemory()) %><br> 154 154 Max: <%=Values.formatBytes(runtime.maxMemory()) %></td> 155 155 </tr> 156 156 <tr> 157 <td class="prompt">Browser</td> 158 <td class="info"><%=HTML.encodeTags(request.getHeader("User-Agent"))%></td> 159 </tr> 160 <tr> 161 <td class="prompt">Error message</td> 162 <td class="info"><%=HTML.formatLineBreaks(HTML.encodeTags(ex.getMessage(), ""))%></td> 163 </tr> 164 <tr> 165 <td class="prompt">Stack trace</td> 166 <td class="info"></td> 167 </tr> 168 </table> 169 170 <% 171 StackTraceElement[] st = ex.getStackTrace(); 172 out.println("<pre>"); 173 out.println(exceptionClassName); 174 int i = 0; 175 for (i=0; i < st.length && i < 8; i++) 176 { 177 out.print("...at "); 178 out.println(HTML.encodeTags(st[i].toString().replaceAll("net.sf.basedb.core.", ""))); 179 } 180 out.println("</pre>"); 181 if ((i < st.length) || (ex.getCause() != null)) 182 { 183 out.println("<pre id=\"error_detail\" style=\"display:none;\">"); 184 while (ex != null) 185 { 186 for (int j=i; j < st.length; j++) 157 <th>Browser</th> 158 <td><%=HTML.encodeTags(request.getHeader("User-Agent"))%></td> 159 </tr> 160 <tr> 161 <th>Error message</th> 162 <td><%=HTML.formatLineBreaks(HTML.encodeTags(ex.getMessage(), ""))%></td> 163 </tr> 164 <tr class="dynamic"> 165 <th>Stacktrace</th> 166 <td> 167 <% 168 StackTraceElement[] st = ex.getStackTrace(); 169 out.println("<pre>"); 170 out.println(exceptionClassName); 171 int i = 0; 172 for (i=0; i < st.length && i < 8; i++) 187 173 { 188 174 out.print("...at "); 189 out.println(HTML.encodeTags(st[ j].toString().replaceAll("net.sf.basedb.core.", "")));175 out.println(HTML.encodeTags(st[i].toString().replaceAll("net.sf.basedb.core.", ""))); 190 176 } 191 ex = ex.getCause();192 if ( ex != null)177 out.println("</pre>"); 178 if ((i < st.length) || (ex.getCause() != null)) 193 179 { 194 st = ex.getStackTrace(); 195 i = 0; 196 out.print("\nCaused by: "+ex.getClass().getName()+": " + ex.getMessage() + "\n"); 180 out.println("<pre id=\"error_detail\" style=\"display:none;\">"); 181 while (ex != null) 182 { 183 for (int j=i; j < st.length; j++) 184 { 185 out.print("...at "); 186 out.println(HTML.encodeTags(st[j].toString().replaceAll("net.sf.basedb.core.", ""))); 187 } 188 ex = ex.getCause(); 189 if (ex != null) 190 { 191 st = ex.getStackTrace(); 192 i = 0; 193 out.print("\nCaused by: "+ex.getClass().getName()+": " + ex.getMessage() + "\n"); 194 } 195 } 196 out.println("</pre>"); 197 197 } 198 } 199 out.println("</pre>"); 200 } 201 %> 202 <span id="more_detail"> 203 <base:icon image="bullet.gif" clazz="" /> 204 <a href="javascript:Main.show('error_detail');Main.hide('more_detail');"><%=st.length-i%> more...</a> 205 </span> 206 </base:note> 207 <base:buttongroup> 198 %> 199 <span id="more_detail"> 200 <base:icon image="gonext.png" /> 201 <a href="javascript:Main.show('error_detail');Main.hide('more_detail');"><%=st.length-i%> more...</a> 202 </span> 203 204 </td> 205 </table> 206 </div> 207 208 <base:buttongroup subclass="dialogbuttons"> 208 209 <base:button id="goback" onclick="<%="history.go(-1)"%>" title="Back"/> 209 210 <base:button id="close" onclick="<%="window.top.close()"%>" title="Close"/> -
trunk/www/include/scripts/exception.js
r5747 r5940 49 49 // popup window --> Hide menubar 50 50 Main.hide('menubar'); 51 document.body.className = 'popup'; 51 52 if (resizeIfPopup) 52 53 { -
trunk/www/include/scripts/main.js
r5929 r5940 2683 2683 var imgRoot = getRoot() + 'images/'; 2684 2684 var text = '<div class="multioptioncontrol">'; 2685 text += '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>';2685 text += '<table><tr>'; 2686 2686 if (multiple) 2687 2687 { … … 2698 2698 text += '<td class="link" style="text-align: right;"'; 2699 2699 text += ' title="Perform search" onclick="MultiOptions.activeField.form.submit();">'; 2700 text += '<img src="' + imgRoot + 'ok. gif"></td>';2700 text += '<img src="' + imgRoot + 'ok.png"></td>'; 2701 2701 text += '</tr></table>'; 2702 2702 text += '</div>'; -
trunk/www/include/styles/explorer.css
r5426 r5940 27 27 */ 28 28 29 .annotationsummary { 30 border: 1px solid #999999; 29 .annotationsummary 30 { 31 border: 1px solid #A0A0A0; 31 32 margin-top: 5px; 32 33 } 33 34 34 .annotationsummary .summaryheader { 35 .annotationsummary td 36 { 37 padding: 1px 2px 1px 2px; 38 } 39 .annotationsummary .summaryheader 40 { 35 41 font-weight: bold; 36 background: #E0E0E0; 37 border-bottom: 1px solid #999999; 42 width: 10em; 43 background: #E8E8E8; 44 border-bottom: 1px solid #A0A0A0; 45 } 46 .annotationsummary .plotheader 47 { 48 background: #E8E8E8; 49 border-bottom: 1px solid #A0A0A0; 38 50 } 39 51 40 .annotationsummary .groupheader { 52 .annotationsummary .groupheader 53 { 41 54 font-weight: bold; 55 width: 10em; 42 56 text-align: right; 43 border-bottom: 1px solid # 999999;44 border-left: 1px solid # 999999;57 border-bottom: 1px solid #A0A0A0; 58 border-left: 1px solid #A0A0A0; 45 59 } 46 60 47 .annotationsummary .value { 61 .annotationsummary .value 62 { 48 63 text-align: right; 49 border-left: 1px solid # 999999;64 border-left: 1px solid #A0A0A0; 50 65 } 51 66 -
trunk/www/include/styles/main.css
r5939 r5940 972 972 } 973 973 974 .multioptioncontrol table 975 { 976 width: 100%; 977 } 978 974 979 .multioptionoptions { 975 980 height: 200px; -
trunk/www/include/styles/table.css
r5938 r5940 38 38 } 39 39 40 /* A panel is a full-width area above the table */ 41 .itemlist div.panel 42 { 43 width: 100%; 44 padding: 1px 4px 2px 6px; 45 height: 1.6em; 46 max-height: 1.75em; 47 } 48 40 49 /* The actual table containing data */ 41 50 .itemlist table.data … … 120 129 121 130 /* 122 .itemlist .panel {123 xborder-top: 1px solid #FFFFFF;124 xborder-left: 1px solid #FFFFFF;125 xborder-right: 1px solid #999999;126 border-bottom: 1px solid #A0A0A0;127 padding: 3px;128 }129 131 130 132 .itemlist .currentpage { -
trunk/www/include/styles/toolbar.css
r5938 r5940 48 48 } 49 49 50 .toolbar .button 50 .toolbar .button 51 51 { 52 padding: 3px;52 padding: 2px; 53 53 cursor: pointer; 54 54 white-space: nowrap; … … 58 58 { 59 59 border: 2px solid #2288AA; 60 padding: 1px;60 padding: 0px; 61 61 border-radius: 4px; 62 62 } … … 78 78 } 79 79 80 .toolbar .label { 80 .toolbar .label 81 { 81 82 font-weight: bold; 82 border-top: 1px solid #FFFFFF; 83 border-left: 1px solid #FFFFFF; 84 border-bottom: 0px solid #999999; 85 border-right: 2px solid #999999; 86 padding: 3px; 83 padding: 2px; 84 white-space: nowrap; 87 85 } 88 86 -
trunk/www/views/experiments/bioassays/view_bioassay.jsp
r5937 r5940 124 124 </base:head> 125 125 <base:body> 126 <p> 127 <p:path> 128 <p:pathelement title="Experiments" href="<%="../index.jsp?ID="+ID%>" /> 129 <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 130 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experiment.getId()%>" /> 131 <p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 132 href="<%="index.jsp?ID="+ID+"&bioassayset_id="+bioAssaySet.getId()%>" /> 133 <p:pathelement title="<%=HTML.encodeTags(bioAssay.getName())%>" /> 134 </p:path> 135 136 <t:tabcontrol id="main" active="<%=tabId%>" switch="switchTab"> 126 <p:path><p:pathelement 127 title="Experiments" href="<%="../index.jsp?ID="+ID%>" 128 /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 129 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experiment.getId()%>" 130 /><p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 131 href="<%="index.jsp?ID="+ID+"&bioassayset_id="+bioAssaySet.getId()%>" 132 /><p:pathelement title="<%=HTML.encodeTags(bioAssay.getName())%>" 133 /></p:path> 134 135 <t:tabcontrol 136 id="main" 137 subclass="content mastertabcontrol" 138 active="<%=tabId%>" switch="switchTab"> 137 139 <t:tab id="properties" title="Properties"> 138 <tbl:toolbar 139 > 140 <tbl:button 141 disabled="<%=writePermission ? false : true%>" 142 image="edit.gif" 143 onclick="editItem()" 144 title="Edit…" 145 tooltip="<%=writePermission ? "Edit this bioassay" : "You do not have permission to edit this bioassay"%>" 146 /> 147 <tbl:button 148 image="import.gif" 149 onclick="runPlugin('ImportItem')" 150 title="Import…" 151 tooltip="Import data" 152 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 153 /> 154 <tbl:button 155 image="export.gif" 156 onclick="runPlugin('ExportItem')" 157 title="Export…" 158 tooltip="Export data" 159 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 160 /> 161 <tbl:button 162 image="runplugin.gif" 163 onclick="runPlugin('RunPlugin')" 164 title="Run plugin…" 165 tooltip="Run a plugin" 166 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 167 /> 168 <tbl:button 169 image="plotter.gif" 170 onclick="openPlotTool()" 171 title="Plot tool…" 172 tooltip="A simple tool for generating plots" 173 visible="<%=hasDbSpots%>" 174 /> 175 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 176 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 177 <tbl:button 178 image="help.png" 179 onclick="<%="Main.openHelp('" + ID +"', 'bioassay.view.properties')"%>" 180 title="Help…" 181 tooltip="Get help about this page" 182 /> 183 </tbl:toolbar> 184 185 <div class="boxedbottom"> 186 <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(bioAssay)%></i></div> 187 <table class="form" cellspacing=0> 140 <div> 141 <table class="fullform bottomborder"> 188 142 <tr> 189 <td class="prompt">Name</td> 143 <th class="itemstatus"> 144 </th> 145 <td style="padding: 0px;"> 146 <tbl:toolbar subclass="bottomborder"> 147 <tbl:button 148 disabled="<%=writePermission ? false : true%>" 149 image="edit.gif" 150 onclick="editItem()" 151 title="Edit…" 152 tooltip="<%=writePermission ? "Edit this bioassay" : "You do not have permission to edit this bioassay"%>" 153 /> 154 <tbl:button 155 image="import.gif" 156 onclick="runPlugin('ImportItem')" 157 title="Import…" 158 tooltip="Import data" 159 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 160 /> 161 <tbl:button 162 image="export.gif" 163 onclick="runPlugin('ExportItem')" 164 title="Export…" 165 tooltip="Export data" 166 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 167 /> 168 <tbl:button 169 image="runplugin.gif" 170 onclick="runPlugin('RunPlugin')" 171 title="Run plugin…" 172 tooltip="Run a plugin" 173 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 174 /> 175 <tbl:button 176 image="plotter.gif" 177 onclick="openPlotTool()" 178 title="Plot tool…" 179 tooltip="A simple tool for generating plots" 180 visible="<%=hasDbSpots%>" 181 /> 182 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 183 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 184 <tbl:button 185 image="help.png" 186 onclick="<%="Main.openHelp('" + ID +"', 'bioassay.view.properties')"%>" 187 title="Help…" 188 tooltip="Get help about this page" 189 /> 190 </tbl:toolbar> 191 </td> 192 </tr> 193 <tr> 194 <th>Name</th> 190 195 <td><%=HTML.encodeTags(bioAssay.getName())%></td> 191 196 </tr> 192 197 <tr> 193 <t d class="prompt">Spots</td>198 <th>Spots</th> 194 199 <td>db: <%=bioAssay.getNumSpots()%>; file: <%=bioAssay.getNumFileSpots()%></td> 195 200 </tr> 196 201 <tr > 197 <t d class="prompt">Description</td>202 <th>Description</th> 198 203 <td><%=HTML.encodeTags(bioAssay.getDescription())%></td> 199 204 </tr> 200 205 </table> 206 </div> 201 207 202 208 <jsp:include page="../../../common/datafiles/list_files.jsp"> … … 211 217 rawQuery.order(Orders.asc(Hql.property("name"))); 212 218 ItemResultList<RawBioAssay> rawBioAssays = rawQuery.list(dc); 213 if (rawBioAssays.size() == 0)214 {215 %>216 <h4>Raw bioassays</h4>217 No raw bioassays are linked to this bioassay218 (or, you don't have permission to view them).219 %> 220 <base:section 221 id="rawBioAssaySection" 222 title="<%="Raw bioassays (" + rawBioAssays.size() + ")"%>" 223 context="<%=cc%>" 224 > 219 225 <% 220 } 221 else 222 { 223 %> 224 <base:section 225 id="rawBioAssaySection" 226 title="<%="Raw bioassays (" + rawBioAssays.size() + ")"%>" 227 context="<%=cc%>" 228 > 226 if (rawBioAssays.size() == 0) 227 { 228 %> 229 <div class="messagecontainer note"> 230 No raw bioassays are linked to this bioassay 231 (or, you don't have permission to view them). 232 </div> 233 <% 234 } 235 else 236 { 237 %> 229 238 <tbl:table 230 239 id="rawBioAssays" 231 232 240 columns="all" 233 241 > 234 <tbl:columndef 235 id="name" 236 title="Name" 237 /> 238 <tbl:columndef 239 id="spots" 240 title="Spots" 241 /> 242 <tbl:columndef 243 id="description" 244 title="Description" 245 /> 246 <% 247 ItemQuery<AnnotationType> efQuery = experiment.getExperimentalFactors(); 248 efQuery.include(Include.ALL); 249 efQuery.order(Orders.asc(Hql.property("name"))); 250 ItemResultList<AnnotationType> experimentalFactors = efQuery.list(dc); 251 for (AnnotationType at : experimentalFactors) 252 { 253 Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType()); 242 <tbl:columndef 243 id="name" 244 title="Name" 245 /> 246 <tbl:columndef 247 id="spots" 248 title="Spots" 249 /> 250 <tbl:columndef 251 id="description" 252 title="Description" 253 /> 254 <% 255 ItemQuery<AnnotationType> efQuery = experiment.getExperimentalFactors(); 256 efQuery.include(Include.ALL); 257 efQuery.order(Orders.asc(Hql.property("name"))); 258 ItemResultList<AnnotationType> experimentalFactors = efQuery.list(dc); 259 for (AnnotationType at : experimentalFactors) 260 { 261 Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType()); 262 %> 263 <tbl:columndef 264 id="<%="at"+at.getId()%>" 265 title="<%=HTML.encodeTags(at.getName())%>" 266 formatter="<%=formatter%>" 267 /> 268 <% 269 } 254 270 %> 255 <tbl:columndef 256 id="<%="at"+at.getId()%>" 257 title="<%=HTML.encodeTags(at.getName())%>" 258 formatter="<%=formatter%>" 259 /> 260 <% 261 } 262 %> 263 <tbl:data> 264 <tbl:columns> 265 </tbl:columns> 266 <tbl:rows> 267 <% 268 for (RawBioAssay item : rawBioAssays) 269 { 270 %> 271 <tbl:row> 272 <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell> 273 <tbl:cell column="spots"><%=item.getSpots()%></tbl:cell> 274 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell> 275 <% 276 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null; 277 for (AnnotationType at : experimentalFactors) 278 { 279 String value = "<i>- none -</i>"; 280 List<Annotation> all = as == null ? null : as.findAnnotations(dc, at, true); 281 Map<Annotatable, List> factorValues = new HashMap<Annotatable, List>(); 282 if (all != null && all.size() > 0) 271 <tbl:data> 272 <tbl:headers> 273 <tbl:headerrow> 274 <tbl:columnheaders /> 275 </tbl:headerrow> 276 </tbl:headers> 277 <tbl:rows> 278 <% 279 for (RawBioAssay item : rawBioAssays) 280 { 281 %> 282 <tbl:row> 283 <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell> 284 <tbl:cell column="spots"><%=item.getSpots()%></tbl:cell> 285 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell> 286 <% 287 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null; 288 for (AnnotationType at : experimentalFactors) 283 289 { 284 for (Annotation a : all) 290 String value = "<i>- none -</i>"; 291 List<Annotation> all = as == null ? null : as.findAnnotations(dc, at, true); 292 Map<Annotatable, List> factorValues = new HashMap<Annotatable, List>(); 293 if (all != null && all.size() > 0) 285 294 { 286 List values = a.getValues(); 287 Annotatable aItem = null; 288 try 295 for (Annotation a : all) 289 296 { 290 aItem = a.getAnnotationSet().getItem(); 291 } 292 catch (Throwable t) 293 {} 294 List toAdd = factorValues.get(aItem); 295 if (toAdd == null) 296 { 297 toAdd = new LinkedList(); 298 factorValues.put(aItem, toAdd); 299 } 300 toAdd.addAll(values); 301 } 302 } 303 %> 304 <tbl:cell column="<%="at"+at.getId()%>" 305 > 306 <% 307 for (Map.Entry<Annotatable, List> entry : factorValues.entrySet()) 308 { 309 Annotatable aItem = entry.getKey(); 310 List values = entry.getValue(); 311 %> 312 <tbl:cellvalue list="<%=values%>" /> 313 <% 314 if (aItem != null && aItem.hasPermission(Permission.WRITE)) 315 { 316 %>: <base:icon image="edit.gif" 317 onclick="<%="editInheritedAnnotation('"+aItem.getType().name()+"',"+aItem.getId()+","+at.getId()+")"%>" 318 tooltip="Modify the values of this experimental factor" /> 319 <% 297 List values = a.getValues(); 298 Annotatable aItem = null; 299 try 300 { 301 aItem = a.getAnnotationSet().getItem(); 302 } 303 catch (Throwable t) 304 {} 305 List toAdd = factorValues.get(aItem); 306 if (toAdd == null) 307 { 308 toAdd = new LinkedList(); 309 factorValues.put(aItem, toAdd); 310 } 311 toAdd.addAll(values); 320 312 } 321 313 } 322 314 %> 323 </tbl:cell> 324 <% 325 } 326 %> 327 </tbl:row> 328 <% 329 } 330 %> 331 </tbl:rows> 332 </tbl:data> 315 <tbl:cell column="<%="at"+at.getId()%>" 316 > 317 <% 318 for (Map.Entry<Annotatable, List> entry : factorValues.entrySet()) 319 { 320 Annotatable aItem = entry.getKey(); 321 List values = entry.getValue(); 322 %> 323 <tbl:cellvalue list="<%=values%>" /> 324 <% 325 if (aItem != null && aItem.hasPermission(Permission.WRITE)) 326 { 327 %>: <base:icon image="edit.gif" 328 onclick="<%="editInheritedAnnotation('"+aItem.getType().name()+"',"+aItem.getId()+","+at.getId()+")"%>" 329 tooltip="Modify the values of this experimental factor" /> 330 <% 331 } 332 } 333 %> 334 </tbl:cell> 335 <% 336 } 337 %> 338 </tbl:row> 339 <% 340 } 341 %> 342 </tbl:rows> 343 </tbl:data> 333 344 </tbl:table> 334 </base:section>335 <%336 }337 %>345 <% 346 } 347 %> 348 </base:section> 338 349 <jsp:include page="../../../common/anytoany/list_anytoany.jsp"> 339 350 <jsp:param name="ID" value="<%=ID%>" /> … … 342 353 <jsp:param name="title" value="Other items related to this bioassay" /> 343 354 </jsp:include> 344 </div>345 355 </t:tab> 346 356 347 357 <t:tab id="annotations" title="Annotations" 348 tooltip="View annotation values" cla ss="white">358 tooltip="View annotation values" clazz="white"> 349 359 <jsp:include page="../../../common/annotations/list_annotations.jsp"> 350 360 <jsp:param name="item_type" value="<%=itemType.name()%>" /> -
trunk/www/views/experiments/bioassaysets/view_bioassayset.jsp
r5939 r5940 282 282 /> 283 283 </th> 284 <td style="padding: 0px;" colspan="2">284 <td style="padding: 0px;"> 285 285 <tbl:toolbar subclass="bottomborder"> 286 286 <tbl:button … … 373 373 </tr> 374 374 </table> 375 <table style="width: 100%; height: 16em;" class="bottomborder">375 <table style="width: 100%; height: 22em;" class="bottomborder"> 376 376 <tr valign="top"> 377 377 <td style="width: 50%; height: 100%;"> … … 406 406 <td><%=HTML.niceFormat(bioAssaySet.getDescription())%></td> 407 407 </tr> 408 <tbody class="sectionheader">409 <tr>410 <th colspan="2">Transformation & job</th>411 </tr>412 </tbody>413 408 <tr> 414 409 <th>Transformation</th> … … 421 416 </tr> 422 417 <tr > 423 <th >Started</th>418 <th class="subprompt">- started</th> 424 419 <td> 425 420 <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%> … … 427 422 </tr> 428 423 <tr> 429 <th >Ended</th>424 <th class="subprompt">- ended</th> 430 425 <td> 431 426 <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%> … … 433 428 </tr> 434 429 <tr> 435 <th >Server</th>430 <th class="subprompt">- server</th> 436 431 <td> 437 432 <%=job == null ? "" : HTML.encodeTags(job.getServer())%> 438 433 </td> 439 434 </tr> 440 <tr >441 <th >Description</th>435 <tr class="dynamic"> 436 <th class="subprompt">- description</th> 442 437 <td><%=HTML.niceFormat(transformation.getDescription())%></td> 443 438 </tr> 444 439 </table> 445 440 </td> 446 <td style="width: 50%; " class="leftborder">441 <td style="width: 50%; height: 100%;" class="leftborder"> 447 442 <table class="fullform" > 448 <tbody class="sectionheader">449 <tr>450 <th colspan="2">Plugin & parameters</th>451 </tr>452 </tbody>453 443 <tr> 454 444 <th>Plugin</th> … … 461 451 configuration != null && configuration.hasPermission(Permission.WRITE))%></td> 462 452 </tr> 453 <tbody class="sectionheader"> 454 <tr> 455 <th colspan="2">Plugin parameters</th> 456 </tr> 457 </tbody> 463 458 <% 464 459 if (job != null) … … 519 514 %> 520 515 <tr> 521 <th ><span title="<%=description%>"><%=name%></span></th>516 <th class="subprompt"><span title="<%=description%>">- <%=name%></span></th> 522 517 <td> 523 518 <%=displayValue%> -
trunk/www/views/experiments/explorer/view/view.jsp
r5935 r5940 88 88 <%! 89 89 private static final Item itemType = Item.SPOTDATA; 90 private static final String defaultReporterColumns = " externalId,symbol";90 private static final String defaultReporterColumns = "filter,externalId,symbol"; 91 91 %> 92 92 <% … … 101 101 try 102 102 { 103 Formatter<Date> dateFormatter = FormatterFactory.getDateTimeFormatter(sc); 103 Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc); 104 Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc); 104 105 String title = null; 105 106 final BioAssaySet bioAssaySet = BioAssaySet.getById(dc, bioAssaySetId); … … 276 277 } 277 278 </script> 279 <style> 280 .special td.cell:first-of-type 281 { 282 border-right: 1px solid #A0A0A0; 283 } 284 </style> 278 285 </base:head> 279 286 <base:body> 280 <p> 281 <p:path> 282 <p:pathelement title="Experiments" href="<%="../../index.jsp?ID="+ID%>" /> 283 <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 284 href="<%="../../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experiment.getId()%>" /> 285 <p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 286 href="<%="../../bioassaysets/index.jsp?ID="+ID+"&cmd=ViewItem&item_id="+bioAssaySetId%>" /> 287 <p:pathelement title="Explorer" /> 288 </p:path> 287 <p:path><p:pathelement title="Experiments" href="<%="../../index.jsp?ID="+ID%>" 288 /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 289 href="<%="../../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experiment.getId()%>" 290 /><p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 291 href="<%="../../bioassaysets/index.jsp?ID="+ID+"&cmd=ViewItem&item_id="+bioAssaySetId%>" 292 /><p:pathelement title="Explorer" /></p:path> 289 293 290 <t:tabcontrol id="explorer" switch="switchTab" remember="false" active="view"> 294 <t:tabcontrol 295 id="explorer" 296 subclass="content mastertabcontrol" 297 switch="switchTab" 298 remember="false" active="view"> 291 299 <t:tab id="search" title="Reporter search" /> 292 300 293 301 <t:tab id="view" title="Reporter view"> 294 <div class="boxed">295 296 302 <% 297 303 Collection<PropertyFilter> filters = reporterContext.getPropertyFilters(); 298 304 String filter = filters != null && filters.size() > 0 ? 299 "(" + Values.getString(filters, ") AND (", true).replaceAll("@|�", "") + ")" : "- none -"; 300 %> 301 <table class="form"> 302 <tr> 303 <td class="prompt">Filter</td> 304 <td> 305 <%=HTML.encodeTags(filter)%> 306 </td> 307 </tr> 308 </table> 309 310 311 <% 312 if (reporter != null) 305 Values.getString(filters, " AND ", true).replaceAll("@|�", "") : "- none -"; 306 if (reporter == null) 307 { 308 %> 309 <table class="fullform bottomborder"> 310 <tr> 311 <th>Filter</th> 312 <td><%=HTML.encodeTags(filter)%></td> 313 </tr> 314 <tr> 315 <th class="subprompt"></th> 316 <td> 317 <div class="messagecontainer note"> 318 No reporters found. 319 </div> 320 </td> 321 </table> 322 <% 323 } 324 else 313 325 { 314 326 %> … … 317 329 <input type="hidden" name="bioassayset_id" value="<%=bioAssaySetId%>"> 318 330 <input type="hidden" name="cmd" value="SetReporterIndex"> 319 <h4 class="docked">Current reporter 331 332 <tbl:toolbar subclass="bottomborder"> 333 <tbl:label style="padding: 0px 2px 0px 6px;"> 334 Current reporter 320 335 <input name="newReporterIndex" type="text" class="text" value="<%=reporterIndex+1%>" 321 onkeypress="return Numbers.integerOnly(event, true, validateReporterIndex)" 322 size="6" maxlength="8" title="Enter a number between 1 and <%=matchingReporters%>"> 323 of <%=matchingReporters %> 324 <% 325 if (reporterIndex == 0 || matchingReporters == 0) 326 { 327 %> 328 <base:icon image="first_gray.gif" /> 329 <base:icon image="previous_gray.gif" /> 330 <% 331 } 332 else 333 { 334 %> 335 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=0" 336 title="Go the first reporter"><base:icon image="first.gif" /></a> 337 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=reporterIndex-1%>" 338 title="Go the previous reporter"><base:icon image="previous.gif" /></a> 339 <% 340 } 341 %> 342 343 <% 344 if (reporterIndex == matchingReporters - 1 || matchingReporters == 0) 345 { 346 %> 347 <base:icon image="next_gray.gif" /> 348 <base:icon image="last_gray.gif" /> 349 <% 350 } 351 else 352 { 353 %> 354 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=reporterIndex+1%>" 355 title="Go the next reporter"><base:icon image="next.gif" /></a> 356 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=matchingReporters-1%>" 357 title="Go the last reporter"><base:icon image="last.gif" /></a> 358 <% 359 } 360 %> 361 </h4> 362 </form> 363 364 <tbl:toolbar> 336 onkeypress="return Numbers.integerOnly(event, true, validateReporterIndex)" 337 size="6" maxlength="8" title="Enter a number between 1 and <%=matchingReporters%>"> 338 of <%=matchingReporters %> 339 <% 340 if (reporterIndex == 0 || matchingReporters == 0) 341 { 342 %> 343 <base:icon image="first_gray.gif" /> 344 <base:icon image="previous_gray.gif" /> 345 <% 346 } 347 else 348 { 349 %> 350 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=0" 351 title="Go the first reporter"><base:icon image="first.gif" /></a> 352 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=reporterIndex-1%>" 353 title="Go the previous reporter"><base:icon image="previous.gif" /></a> 354 <% 355 } 356 %> 357 358 <% 359 if (reporterIndex == matchingReporters - 1 || matchingReporters == 0) 360 { 361 %> 362 <base:icon image="next_gray.gif" /> 363 <base:icon image="last_gray.gif" /> 364 <% 365 } 366 else 367 { 368 %> 369 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=reporterIndex+1%>" 370 title="Go the next reporter"><base:icon image="next.gif" /></a> 371 <a href="index.jsp?ID=<%=ID%>&cmd=SetReporterIndex&bioassayset_id=<%=bioAssaySetId%>&reporterIndex=<%=matchingReporters-1%>" 372 title="Go the last reporter"><base:icon image="last.gif" /></a> 373 <% 374 } 375 %> 376 </tbl:label> 365 377 <tbl:button 366 378 image="columns.gif" … … 370 382 /> 371 383 </tbl:toolbar> 384 </form> 372 385 373 <div class="boxedbottom"> 374 <tbl:table 375 id="reporter" 376 clazz="form" 377 columns="<%=Values.getString(cc.getSetting("reporter-columns"), defaultReporterColumns)%>" 378 action="index.jsp" 379 sc="<%=sc%>" 380 item="<%=itemType%>" 381 subcontext="<%=subContext%>" 382 > 383 <tbl:hidden 384 name="bioassayset_id" 385 value="<%=String.valueOf(bioAssaySetId)%>" 386 /> 387 <% 388 for (TableColumn tc : reporterColumns) 389 { 390 %> 391 <tbl:columndef 392 id="<%=tc.getId()%>" 393 clazz="prompt" 394 title="<%=HTML.encodeTags(tc.getTitle())%>" 395 formatter="<%=tc.getFormatter()%>" 386 <tbl:table 387 id="reporter" 388 columns="<%="filter,"+Values.getString(cc.getSetting("reporter-columns"), defaultReporterColumns)%>" 389 action="index.jsp" 390 sc="<%=sc%>" 391 item="<%=itemType%>" 392 subcontext="<%=subContext%>" 393 subclass="bottomborder" 394 > 395 <tbl:hidden 396 name="bioassayset_id" 397 value="<%=String.valueOf(bioAssaySetId)%>" 398 /> 399 <tbl:columndef 400 id="filter" 401 title="Filter" 402 show="always" 403 subclass="leftborder" 396 404 /> 397 405 <% 398 } 399 List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData"); 400 %> 401 <tbl:form width="2"> 402 <tbl:cell column="id"><%=reporter.getId()%></tbl:cell> 403 <tbl:cell column="version"><%=reporter.getVersion()%></tbl:cell> 404 <tbl:cell column="name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell> 405 <tbl:cell column="externalId"><%=Base.getLink(ID, reporter.getExternalId(), Item.REPORTER, reporter.getId(), true)%></tbl:cell> 406 <tbl:cell column="symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell> 407 <tbl:cell column="lastUpdate"><%=dateFormatter.format(reporter.getLastUpdate())%></tbl:cell> 408 <tbl:cell column="type"><base:propertyvalue dbcontrol="<%=dc%>" item="<%=reporter%>" property="reporterType" /></tbl:cell> 409 <tbl:cell column="description"><%=HTML.niceFormat(reporter.getDescription())%></tbl:cell> 410 <% 411 if (reporterProperties != null) 406 for (TableColumn tc : reporterColumns) 412 407 { 413 for (ExtendedProperty ep : reporterProperties) 414 { 415 String name = ep.getName(); 416 %> 417 <tbl:cell column="<%=ep.getName()%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell> 418 <% 419 } 408 %> 409 <tbl:columndef 410 id="<%=tc.getId()%>" 411 title="<%=HTML.encodeTags(tc.getTitle())%>" 412 formatter="<%=tc.getFormatter()%>" 413 show="<%=reporter == null ? "never" : "auto" %>" 414 /> 415 <% 420 416 } 417 List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData"); 421 418 %> 422 </tbl:form> 423 </tbl:table> 424 </div> 425 <% 426 } 427 else 428 { 429 %> 430 No reporters found. 431 <% 432 } 433 %> 434 419 <tbl:form width="2" clazz="fullform special"> 420 <tbl:cell column="filter"><%=HTML.encodeTags(filter)%></tbl:cell> 421 <tbl:cell column="id"><%=reporter.getId()%></tbl:cell> 422 <tbl:cell column="version"><%=reporter.getVersion()%></tbl:cell> 423 <tbl:cell column="name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell> 424 <tbl:cell column="externalId"><%=Base.getLink(ID, reporter.getExternalId(), Item.REPORTER, reporter.getId(), true)%></tbl:cell> 425 <tbl:cell column="symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell> 426 <tbl:cell column="lastUpdate"><%=dateTimeFormatter.format(reporter.getLastUpdate())%></tbl:cell> 427 <tbl:cell column="lastSource"><%=HTML.encodeTags(reporter.getLastSource())%></tbl:cell> 428 <tbl:cell column="entryDate"><%=dateFormatter.format(reporter.getEntryDate()) %></tbl:cell> 429 <tbl:cell column="type"><base:propertyvalue dbcontrol="<%=dc%>" item="<%=reporter%>" property="reporterType" /></tbl:cell> 430 <tbl:cell column="description"><%=HTML.niceFormat(reporter.getDescription())%></tbl:cell> 431 <% 432 if (reporterProperties != null) 433 { 434 for (ExtendedProperty ep : reporterProperties) 435 { 436 String name = ep.getName(); 437 %> 438 <tbl:cell column="<%=ep.getName()%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell> 439 <% 440 } 441 } 442 %> 443 </tbl:form> 444 </tbl:table> 445 435 446 <base:section 436 447 id="annotation" 437 448 title="<%="Annotation summary (" + selectedAnnotationTypes.size() + " selected)"%>" 438 449 context="<%=cc%>" 450 style="border-bottom: 0px;" 439 451 > 440 452 <form name="annotationSummary" action="index.jsp" method="POST" onsubmit="return false;"> … … 450 462 <input type="hidden" name="annotationtype_id" value=""> 451 463 </td></tr></table> 452 <% 453 if (selectedAnnotationTypes.size() > 0) 454 { 464 <% 455 465 for (Map.Entry<AnnotationType, AnnotationSummary> entry : selectedAnnotationTypes.entrySet()) 456 466 { … … 458 468 AnnotationSummary summary = entry.getValue(); 459 469 %> 460 <table border="0" cellspacing="0" cellpadding="2"class="annotationsummary">470 <table class="annotationsummary"> 461 471 <tr> 462 472 <td class="summaryheader"><%=Base.getLinkedName(ID, at, false, true)%></td> 463 <td class=" summaryheader"><base:icon473 <td class="plotheader"><base:icon 464 474 image="plotter.gif" 465 475 onclick="<%="annotationPlot(" + at.getId() + ")"%>" … … 470 480 { 471 481 %> 472 <td class="groupheader" style="background: <%=ag.getColor()%>;" width="50px">482 <td class="groupheader" style="background: <%=ag.getColor()%>;"> 473 483 <%=ag.getTitle()%> 474 484 </td> … … 538 548 </tr> 539 549 </table> 540 <% 541 } 542 } 550 <% 551 } 543 552 %> 544 553 </form> 545 554 </base:section> 546 555 547 <form name="spotIndex" action="index.jsp" method="post">548 <input type="hidden" name="ID" value="<%=ID%>">549 <input type="hidden" name="bioassayset_id" value="<%=bioAssaySetId%>">550 <input type="hidden" name="cmd" value="SetSpotIndex">551 552 <h4 class="docked">Current spot553 <input name="newSpotIndex" type="text" class="text" value="<%=positionIndex == -1 ? "all" : positionIndex == -2 ? "avg" : String.valueOf(positionIndex+1)%>"554 onkeypress="return Numbers.integerOnly(event, true, validateSpotIndex)"555 size="6" maxlength="8" title="Enter a number between 1 and <%=matchingPositions%>">556 of <%=matchingPositions%>557 558 <%559 if (positionIndex == 0)560 {561 %>562 <base:icon image="first_gray.gif" />563 <%564 }565 else566 {567 %>568 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=0"569 title="Go the first position"><base:icon image="first.gif" /></a>570 <%571 }572 if (positionIndex <= 0)573 {574 %>575 <base:icon image="previous_gray.gif" />576 <%577 }578 else579 {580 %>581 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=positionIndex-1%>"582 title="Go the previous position"><base:icon image="previous.gif" /></a>583 <%584 }585 %>586 587 <%588 if (positionIndex == matchingPositions - 1 || positionIndex < 0)589 {590 %>591 <base:icon image="next_gray.gif" />592 <%593 }594 else595 {596 %>597 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=positionIndex+1%>"598 title="Go the next position"><base:icon image="next.gif" /></a>599 <%600 }601 if (positionIndex == matchingPositions - 1)602 {603 %>604 <base:icon image="last_gray.gif" />605 <%606 }607 else608 {609 %>610 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=matchingPositions-1%>"611 title="Go the last position"><base:icon image="last.gif" /></a>612 <%613 }614 %>615 [ <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=-1"616 title="Show all positions">all</a>617 | <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=-2"618 title="Calculate average values for each bioassay">avg</a>619 ]620 </h4>621 622 </form>623 556 <% 624 557 if (cc.getMessage() != null) 625 558 { 626 559 %> 627 <div class=" error"><%=cc.getMessage()%></div>560 <div class="messagecontainer error"><%=HTML.encodeTags(cc.getMessage())%></div> 628 561 <% 629 562 cc.setMessage(null); … … 636 569 Formatter<Number> numberFormatter = FormatterFactory.getNumberFormatter(sc); 637 570 %> 638 639 <tbl:table 640 id="spotdata" 641 642 columns="<%=cc.getSetting("columns")%>" 643 sortby="<%=cc.getSortProperty()%>" 644 direction="<%=cc.getSortDirection()%>" 645 title="<%=title%>" 646 action="index.jsp" 647 sc="<%=sc%>" 648 item="<%=itemType%>" 649 subcontext="<%=subContext%>" 650 > 651 <tbl:hidden 652 name="bioassayset_id" 653 value="<%=String.valueOf(bioAssaySetId)%>" 654 /> 655 <% 656 for (AnnotationType at : selectedAnnotationTypes.keySet()) 657 { 658 %> 659 <tbl:columndef 660 id="<%="annotation." + at.getId()%>" 661 title="<%=HTML.encodeTags(at.getName()) %>" 662 show="always" 663 /> 664 <% 665 } 666 %> 667 <tbl:columndef 668 id="bioassay" 669 property="COLUMN" 670 title="Bioassay" 671 show="always" 672 sortable="true" 673 /> 674 <tbl:columndef 675 id="position" 676 property="POSITION" 677 title="Position" 678 show="<%=isAveraging ? "never" : "always" %>" 679 sortable="true" 680 /> 681 <tbl:columndef 682 id="count" 683 title="Count" 684 show="<%=isAveraging ? "always" : "never" %>" 685 /> 686 <% 687 for (int ch = 1; ch <= channels; ++ch) 688 { 689 %> 690 <tbl:columndef 691 id="<%="ch"+ch%>" 692 property="<%="%"+ch%>" 693 datatype="float" 694 title="<%="Ch " + ch%>" 695 tooltip="<%=transform.isTransformed() ? transform.toString() : null %>" 696 sortable="true" 697 filterable="true" 698 exportable="true" 699 formatter="<%=numberFormatter%>" 700 /> 701 <% 702 } 703 %> 704 <% 705 for (TableColumn tc : spotColumns) 706 { 707 %> 708 <tbl:columndef 709 id="<%=tc.getId()%>" 710 property="<%=tc.getProperty()%>" 711 datatype="<%=tc.getDatatype().getStringValue()%>" 712 title="<%=HTML.encodeTags(tc.getTitle())%>" 713 sortable="<%=tc.getSortable()%>" 714 filterable="<%=tc.getFilterable()%>" 715 exportable="<%=tc.getExportable()%>" 716 show="<%=!isAveraging || tc.isAveragable() ? tc.getShow() : "never"%>" 717 formatter="<%=tc.getFormatter()%>" 718 /> 719 <% 720 } 721 %> 571 <form name="spotIndex" action="index.jsp" method="post"> 572 <input type="hidden" name="ID" value="<%=ID%>"> 573 <input type="hidden" name="bioassayset_id" value="<%=bioAssaySetId%>"> 574 <input type="hidden" name="cmd" value="SetSpotIndex"> 575 <tbl:toolbar subclass="topborder"> 576 <tbl:label style="padding: 0px 2px 0px 6px;"> 577 Current spot 578 <input name="newSpotIndex" type="text" class="text" value="<%=positionIndex == -1 ? "all" : positionIndex == -2 ? "avg" : String.valueOf(positionIndex+1)%>" 579 onkeypress="return Numbers.integerOnly(event, true, validateSpotIndex)" 580 size="6" maxlength="8" title="Enter a number between 1 and <%=matchingPositions%>"> 581 of <%=matchingPositions%> 722 582 723 <tbl:toolbar> 583 <% 584 if (positionIndex == 0) 585 { 586 %> 587 <base:icon image="first_gray.gif" /> 588 <% 589 } 590 else 591 { 592 %> 593 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=0" 594 title="Go the first position"><base:icon image="first.gif" /></a> 595 <% 596 } 597 if (positionIndex <= 0) 598 { 599 %> 600 <base:icon image="previous_gray.gif" /> 601 <% 602 } 603 else 604 { 605 %> 606 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=positionIndex-1%>" 607 title="Go the previous position"><base:icon image="previous.gif" /></a> 608 <% 609 } 610 %> 611 612 <% 613 if (positionIndex == matchingPositions - 1 || positionIndex < 0) 614 { 615 %> 616 <base:icon image="next_gray.gif" /> 617 <% 618 } 619 else 620 { 621 %> 622 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=positionIndex+1%>" 623 title="Go the next position"><base:icon image="next.gif" /></a> 624 <% 625 } 626 if (positionIndex == matchingPositions - 1) 627 { 628 %> 629 <base:icon image="last_gray.gif" /> 630 <% 631 } 632 else 633 { 634 %> 635 <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=<%=matchingPositions-1%>" 636 title="Go the last position"><base:icon image="last.gif" /></a> 637 <% 638 } 639 %> 640 [ <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=-1" 641 title="Show all positions">all</a> 642 | <a href="index.jsp?ID=<%=ID%>&cmd=SetSpotIndex&bioassayset_id=<%=bioAssaySetId%>&spotIndex=-2" 643 title="Calculate average values for each bioassay">avg</a> 644 ] 645 </tbl:label> 724 646 <tbl:button 725 647 image="columns.gif" … … 735 657 /> 736 658 </tbl:toolbar> 737 <tbl:data> 738 <tbl:columns /> 739 <tbl:rows> 659 </form> 660 661 <tbl:table 662 id="spotdata" 663 columns="<%=cc.getSetting("columns")%>" 664 sortby="<%=cc.getSortProperty()%>" 665 direction="<%=cc.getSortDirection()%>" 666 title="<%=title%>" 667 action="index.jsp" 668 sc="<%=sc%>" 669 item="<%=itemType%>" 670 subcontext="<%=subContext%>" 671 > 672 <tbl:hidden 673 name="bioassayset_id" 674 value="<%=String.valueOf(bioAssaySetId)%>" 675 /> 740 676 <% 741 int index = 0; 742 float[] intensity = new float[channels+1]; 743 while (spotData.hasNext()) 677 for (AnnotationType at : selectedAnnotationTypes.keySet()) 744 678 { 745 SqlResult item = spotData.next();746 index++;747 BioAssay bioAssay = explorer.getBioAssay(dc, item.getShort(1));748 for (int ch = 1; ch <= channels; ++ch)749 {750 intensity[ch] = item.getFloat(2+ch);751 }752 679 %> 753 <tbl:row> 754 <% 755 for (Map.Entry<AnnotationType, AnnotationSummary> entry : selectedAnnotationTypes.entrySet()) 680 <tbl:columndef 681 id="<%="annotation." + at.getId()%>" 682 title="<%=HTML.encodeTags(at.getName()) %>" 683 show="always" 684 /> 685 <% 686 } 687 %> 688 <tbl:columndef 689 id="bioassay" 690 property="COLUMN" 691 title="Bioassay" 692 show="always" 693 sortable="true" 694 /> 695 <tbl:columndef 696 id="position" 697 property="POSITION" 698 title="Position" 699 show="<%=isAveraging ? "never" : "always" %>" 700 sortable="true" 701 /> 702 <tbl:columndef 703 id="count" 704 title="Count" 705 show="<%=isAveraging ? "always" : "never" %>" 706 /> 707 <% 708 for (int ch = 1; ch <= channels; ++ch) 709 { 710 %> 711 <tbl:columndef 712 id="<%="ch"+ch%>" 713 property="<%="%"+ch%>" 714 datatype="float" 715 title="<%="Ch " + ch%>" 716 tooltip="<%=transform.isTransformed() ? transform.toString() : null %>" 717 sortable="true" 718 filterable="true" 719 exportable="true" 720 formatter="<%=numberFormatter%>" 721 /> 722 <% 723 } 724 %> 725 <% 726 for (TableColumn tc : spotColumns) 727 { 728 %> 729 <tbl:columndef 730 id="<%=tc.getId()%>" 731 property="<%=tc.getProperty()%>" 732 datatype="<%=tc.getDatatype().getStringValue()%>" 733 title="<%=HTML.encodeTags(tc.getTitle())%>" 734 sortable="<%=tc.getSortable()%>" 735 filterable="<%=tc.getFilterable()%>" 736 exportable="<%=tc.getExportable()%>" 737 show="<%=!isAveraging || tc.isAveragable() ? tc.getShow() : "never"%>" 738 formatter="<%=tc.getFormatter()%>" 739 /> 740 <% 741 } 742 %> 743 <tbl:data style="border-left: 0px; border-right: 0px;"> 744 <tbl:headers> 745 <tbl:headers> 746 <tbl:columnheaders /> 747 </tbl:headers> 748 </tbl:headers> 749 <tbl:rows> 750 <% 751 int index = 0; 752 float[] intensity = new float[channels+1]; 753 while (spotData.hasNext()) 754 { 755 SqlResult item = spotData.next(); 756 index++; 757 BioAssay bioAssay = explorer.getBioAssay(dc, item.getShort(1)); 758 for (int ch = 1; ch <= channels; ++ch) 756 759 { 757 AnnotationType at = entry.getKey(); 758 AnnotationGroup annotationGroup = entry.getValue().getAnnotationGroup(bioAssay.getDataCubeColumnNo()); 759 String allValues = annotationGroup.getTitle(); 760 if (hasRatio) 760 intensity[ch] = item.getFloat(2+ch); 761 } 762 %> 763 <tbl:row> 764 <% 765 for (Map.Entry<AnnotationType, AnnotationSummary> entry : selectedAnnotationTypes.entrySet()) 761 766 { 762 float logRatio = (float)(Math.log(transform.unTransform(intensity[1]) / transform.unTransform(intensity[2]))); 763 annotationGroup.addStatistics("logratio", logRatio); 764 annotationGroup.addStatistics("logratio2", logRatio * logRatio); 767 AnnotationType at = entry.getKey(); 768 AnnotationGroup annotationGroup = entry.getValue().getAnnotationGroup(bioAssay.getDataCubeColumnNo()); 769 String allValues = annotationGroup.getTitle(); 770 if (hasRatio) 771 { 772 float logRatio = (float)(Math.log(transform.unTransform(intensity[1]) / transform.unTransform(intensity[2]))); 773 annotationGroup.addStatistics("logratio", logRatio); 774 annotationGroup.addStatistics("logratio2", logRatio * logRatio); 775 } 776 for (int ch = 1; ch <= channels; ++ch) 777 { 778 annotationGroup.addValue(ch, (float)transform.unTransform(intensity[ch])); 779 } 780 %> 781 <tbl:cell column="<%="annotation."+at.getId()%>" style="<%="background: "+annotationGroup.getColor()+";"%>"> 782 <%=allValues%> 783 </tbl:cell> 784 <% 765 785 } 786 %> 787 <tbl:cell column="bioassay"><%=Base.getLinkedName(ID, bioAssay, false, true)%></tbl:cell> 788 <tbl:cell column="position"><%=item.getInt(2)%></tbl:cell> 789 <tbl:cell column="count"><%=item.getInt(2)%></tbl:cell> 790 <% 766 791 for (int ch = 1; ch <= channels; ++ch) 767 792 { 768 annotationGroup.addValue(ch, (float)transform.unTransform(intensity[ch])); 793 %> 794 <tbl:cell column="<%="ch" + ch%>" value="<%=intensity[ch]%>" /> 795 <% 769 796 } 770 797 %> 771 <tbl:cell column="<%="annotation."+at.getId()%>" style="<%="background: "+annotationGroup.getColor()+";"%>">772 <%=allValues%>773 </tbl:cell>774 798 <% 775 } 776 %> 777 <tbl:cell column="bioassay"><%=Base.getLinkedName(ID, bioAssay, false, true)%></tbl:cell> 778 <tbl:cell column="position"><%=item.getInt(2)%></tbl:cell> 779 <tbl:cell column="count"><%=item.getInt(2)%></tbl:cell> 780 <% 781 for (int ch = 1; ch <= channels; ++ch) 782 { 799 int colIndex = 3 + channels; 800 for (String columnId : selected.selectedIds) 801 { 802 %> 803 <tbl:cell column="<%=columnId%>" value="<%=item.getObject(colIndex++)%>" /> 804 <% 805 } 783 806 %> 784 <tbl:cell column="<%="ch" + ch%>" value="<%=intensity[ch]%>" /> 785 <% 786 } 787 %> 788 <% 789 int colIndex = 3 + channels; 790 for (String columnId : selected.selectedIds) 791 { 792 %> 793 <tbl:cell column="<%=columnId%>" value="<%=item.getObject(colIndex++)%>" /> 794 <% 795 } 796 %> 797 </tbl:row> 798 <% 799 } 800 %> 801 </tbl:rows> 802 </tbl:data> 807 </tbl:row> 808 <% 809 } 810 %> 811 </tbl:rows> 812 </tbl:data> 803 813 </tbl:table> 804 </div>805 814 <% 806 815 } … … 814 823 AnnotationType at = entry.getKey(); 815 824 AnnotationSummary summary = entry.getValue(); 816 %> 817 <% 818 for (AnnotationGroup ag : summary.getAnnotationGroups()) 819 { 820 for (int ch = 1; ch <= channels; ++ch) 825 if (summary != null) 826 { 827 for (AnnotationGroup ag : summary.getAnnotationGroups()) 821 828 { 829 for (int ch = 1; ch <= channels; ++ch) 830 { 831 %> 832 var div = document.getElementById('mean.<%=at.getId()%>.<%=ag.getId()%>.ch<%=ch%>'); 833 div.innerHTML = '<%=Values.formatNumber(ag.getMean(ch), 2)%>'; 834 <% 835 } 822 836 %> 823 var div = document.getElementById(' mean.<%=at.getId()%>.<%=ag.getId()%>.ch<%=ch%>');824 div.innerHTML = '<%= Values.formatNumber(ag.getMean(ch), 2)%>';837 var div = document.getElementById('count.<%=at.getId()%>.<%=ag.getId()%>'); 838 div.innerHTML = '<%=ag.getCount(1)%>'; 825 839 <% 826 } 827 %> 828 var div = document.getElementById('count.<%=at.getId()%>.<%=ag.getId()%>'); 829 div.innerHTML = '<%=ag.getCount(1)%>'; 830 <% 831 if (hasRatio) 832 { 833 float r = ag.getStatistics("logratio"); 834 int count = ag.getCount(1); 835 float gMean = count > 0 ? (float)Math.exp(r / count) : Float.NaN; 836 float sd = count > 1 ? 837 (float)Math.sqrt((ag.getStatistics("logratio2") - r * (r / count))/(count-1)) 838 : Float.NaN; 839 %> 840 var div = document.getElementById('gmean.<%=at.getId()%>.<%=ag.getId()%>'); 841 div.innerHTML = '<%=Values.formatNumber(gMean, 2)%>'; 842 var div = document.getElementById('sd.<%=at.getId()%>.<%=ag.getId()%>'); 843 div.innerHTML = '<%=Values.formatNumber(sd, 2)%>'; 844 <% 840 if (hasRatio) 841 { 842 float r = ag.getStatistics("logratio"); 843 int count = ag.getCount(1); 844 float gMean = count > 0 ? (float)Math.exp(r / count) : Float.NaN; 845 float sd = count > 1 ? 846 (float)Math.sqrt((ag.getStatistics("logratio2") - r * (r / count))/(count-1)) 847 : Float.NaN; 848 %> 849 var div = document.getElementById('gmean.<%=at.getId()%>.<%=ag.getId()%>'); 850 div.innerHTML = '<%=Values.formatNumber(gMean, 2)%>'; 851 var div = document.getElementById('sd.<%=at.getId()%>.<%=ag.getId()%>'); 852 div.innerHTML = '<%=Values.formatNumber(sd, 2)%>'; 853 <% 854 } 845 855 } 846 856 } … … 865 875 Main.onLoad(init); 866 876 </script> 867 868 </t:tab> 869 </t:tabcontrol> 877 <% 878 } 879 %> 880 </t:tab> 881 </t:tabcontrol> 870 882 871 883 </base:body> -
trunk/www/views/experiments/extravalues/view_extravalue.jsp
r5937 r5940 175 175 </base:head> 176 176 <base:body> 177 <p> 178 <p:path> 179 <p:pathelement title="Experiments" href="<%="../index.jsp?ID="+ID%>" /> 180 <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 181 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experimentId%>" /> 182 <p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 183 href="<%="../bioassaysets/index.jsp?ID="+ID+"&cmd=ViewItem&experiement_id="+experimentId+"&item_id="+bioAssaySet.getId()%>" /> 184 <p:pathelement title="<%=HTML.encodeTags(extraValueType == null ? extraValue.getValueType().toString() : extraValueType.getName()) %>" /> 185 </p:path> 177 <p:path><p:pathelement 178 title="Experiments" href="<%="../index.jsp?ID="+ID%>" 179 /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 180 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experimentId%>" 181 /><p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 182 href="<%="../bioassaysets/index.jsp?ID="+ID+"&cmd=ViewItem&experiement_id="+experimentId+"&item_id="+bioAssaySet.getId()%>" 183 /><p:pathelement title="<%=HTML.encodeTags(extraValueType == null ? extraValue.getValueType().toString() : extraValueType.getName()) %>" 184 /></p:path> 186 185 187 <t:tabcontrol id="view" remember="false"> 186 <t:tabcontrol 187 id="view" 188 subclass="content mastertabcontrol" 189 remember="false"> 188 190 <t:tab id="properties" title="Properties"> 189 190 <tbl:toolbar 191 > 192 <tbl:button 193 disabled="<%=deletePermission ? false : true%>" 194 image="delete.gif" 195 onclick="deleteItem()" 196 title="Delete" 197 tooltip="<%=deletePermission ? "Delete this extra value" : "You do not have permission to delete this extra value"%>" 198 /> 199 <tbl:button 200 disabled="<%=writePermission ? false : true%>" 201 image="<%=writePermission ? "copy.gif" : "copy_disabled.gif"%>" 202 onclick="<%=job == null ? "" : "copyJob('" + job.getId() + "')"%>" 203 title="Copy…" 204 visible="<%=job != null && plugin != null && plugin.isInteractive() %>" 205 tooltip="<%=writePermission ? "Copy this transformation" : "You do not have permission to copy this transformation"%>" 206 /> 207 <tbl:button 208 image="import.gif" 209 onclick="<%="runPlugin(" + itemId + ", 'ImportItem')"%>" 210 title="Import…" 211 tooltip="Import data" 212 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 213 /> 214 <tbl:button 215 image="export.gif" 216 onclick="<%="runPlugin(" + itemId + ", 'ExportItem')"%>" 217 title="Export…" 218 tooltip="Export data" 219 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 220 /> 221 <tbl:button 222 image="runplugin.gif" 223 onclick="<%="runPlugin(" + itemId + ", 'RunPlugin')"%>" 224 title="Run plugin…" 225 tooltip="Run a plugin" 226 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 227 /> 228 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 229 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 230 <tbl:button 231 image="help.png" 232 onclick="<%="Main.openHelp('" + ID +"', 'extravalue.view.properties')"%>" 233 title="Help…" 234 tooltip="Get help about this page" 235 /> 236 </tbl:toolbar> 237 238 <div class="boxedbottom"> 239 <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(extraValue)%></i></div> 240 241 <table width="100%"> 242 <tr > 243 <td width="50%"> 244 <h4>Extra value</h4> 245 <table class="form" cellspacing=0> 191 <div> 192 <table class="fullform"> 193 <tr> 194 <th class="itemstatus"> 195 </th> 196 <td style="padding: 0px;"> 197 <tbl:toolbar subclass="bottomborder"> 198 <tbl:button 199 disabled="<%=deletePermission ? false : true%>" 200 image="delete.gif" 201 onclick="deleteItem()" 202 title="Delete" 203 tooltip="<%=deletePermission ? "Delete this extra value" : "You do not have permission to delete this extra value"%>" 204 /> 205 <tbl:button 206 disabled="<%=writePermission ? false : true%>" 207 image="copy.gif" 208 onclick="<%=job == null ? "" : "copyJob('" + job.getId() + "')"%>" 209 title="Copy…" 210 visible="<%=job != null && plugin != null && plugin.isInteractive() %>" 211 tooltip="<%=writePermission ? "Copy this transformation" : "You do not have permission to copy this transformation"%>" 212 /> 213 <tbl:button 214 image="import.gif" 215 onclick="<%="runPlugin(" + itemId + ", 'ImportItem')"%>" 216 title="Import…" 217 tooltip="Import data" 218 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 219 /> 220 <tbl:button 221 image="export.gif" 222 onclick="<%="runPlugin(" + itemId + ", 'ExportItem')"%>" 223 title="Export…" 224 tooltip="Export data" 225 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 226 /> 227 <tbl:button 228 image="runplugin.gif" 229 onclick="<%="runPlugin(" + itemId + ", 'RunPlugin')"%>" 230 title="Run plugin…" 231 tooltip="Run a plugin" 232 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 233 /> 234 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 235 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 236 <tbl:button 237 image="help.png" 238 onclick="<%="Main.openHelp('" + ID +"', 'extravalue.view.properties')"%>" 239 title="Help…" 240 tooltip="Get help about this page" 241 /> 242 </tbl:toolbar> 243 </td> 244 </tr> 245 </table> 246 <table style="width: 100%; height: 16em;" class="bottomborder"> 247 <tr valign="top"> 248 <td style="width: 50%; height: 100%;"> 249 <table class="fullform" > 246 250 <% 247 251 if (extraValueType == null) … … 249 253 %> 250 254 <tr> 251 <t d class="prompt">Type</td>255 <th>Type</th> 252 256 <td><%=extraValue.getValueType()%></td> 253 257 </tr> … … 258 262 %> 259 263 <tr> 260 <t d class="prompt">Name</td>264 <th>Name</th> 261 265 <td><%=Base.getLinkedName(ID, extraValueType, !readExtraValueType, writePermission)%></td> 262 266 </tr> … … 265 269 %> 266 270 <tr> 267 <t d class="prompt">Bioassay set</td>271 <th>Bioassay set</th> 268 272 <td><%=Base.getLinkedName(ID, bioAssaySet, false, writePermission)%></td> 269 273 </tr> 270 274 <tr> 271 <t d class="prompt">Experiment</td>275 <th>Experiment</th> 272 276 <td><%=Base.getLinkedName(ID, experiment, false, writePermission)%> 273 277 (<%=experiment.getRawDataType()%>)</td> 274 278 </tr> 275 279 <tr> 276 <t d class="prompt">Values</td>280 <th>Values</th> 277 281 <td>db: <%=extraValue.getNumValues()%>; file: <%=extraValue.getNumFileValues()%></td> 278 282 </tr> 279 283 <tr> 280 <t d class="prompt">Description</td>284 <th>Description</th> 281 285 <td><%=HTML.niceFormat(extraValueType != null ? extraValueType.getDescription() : "")%></td> 282 286 </tr> 283 </table> 284 285 <h4>Job</h4> 286 <table class="form" cellspacing=0> 287 <tr> 288 <td class="prompt">Job</td> 287 <tr> 288 <th>Job</th> 289 289 <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td> 290 290 </tr> 291 291 <tr > 292 <t d class="prompt">Started</td>292 <th class="subprompt">- started</td> 293 293 <td> 294 294 <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%> … … 296 296 </tr> 297 297 <tr > 298 <t d class="prompt">Ended</td>298 <th class="subprompt">- ended</td> 299 299 <td> 300 300 <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%> 301 301 </td> 302 302 </tr> 303 <tr >304 <t d class="prompt">Server</td>303 <tr class="dynamic"> 304 <th class="subprompt">- server</td> 305 305 <td> 306 306 <%=job == null ? "" : HTML.encodeTags(job.getServer())%> … … 309 309 </table> 310 310 </td> 311 <td width="50%"> 312 <h4>Plugin & parameters</h4> 313 <table class="form" cellspacing=0> 314 <tr> 315 <td class="prompt">Plugin</td> 311 <td style="width: 50%; height: 100%;" class="leftborder"> 312 <table class="fullform" > 313 <tr> 314 <th>Plugin</th> 316 315 <td><%=Base.getLinkedName(ID, plugin, 317 316 !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td> 318 317 </tr> 319 318 <tr> 320 <t d class="prompt">Plugin configuration</td>319 <th>Plugin configuration</th> 321 320 <td><%=Base.getLinkedName(ID, configuration, !readConfiguration, 322 321 configuration != null && configuration.hasPermission(Permission.WRITE))%></td> 323 322 </tr> 323 <tbody class="sectionheader"> 324 <tr> 325 <th colspan="2">Plugin parameters</th> 326 </tr> 327 </tbody> 324 328 <% 325 329 if (job != null) … … 380 384 %> 381 385 <tr> 382 <td class="prompt"><span title="<%=description%>"><%=name%></span></td> 383 <td> 384 <%=displayValue%> 385 </td> 386 <th class="subprompt">- <span title="<%=description%>"><%=name%></span></td> 387 <td><%=displayValue%></td> 386 388 </tr> 387 389 <% … … 389 391 } 390 392 %> 393 <tr class="dynamic"> 394 <th></th> 395 <td></td> 396 </tr> 391 397 </table> 392 398 … … 394 400 </tr> 395 401 </table> 396 397 402 </div> 398 403 </t:tab> -
trunk/www/views/experiments/transformations/view_transformation.jsp
r5937 r5940 164 164 </base:head> 165 165 <base:body> 166 <p> 167 <p:path> 168 <p:pathelement title="Experiments" href="<%="../index.jsp?ID="+ID%>" /> 169 <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 170 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experimentId%>" /> 171 <p:pathelement title="<%=HTML.encodeTags(transformation.getName())%>" /> 172 </p:path> 166 <p:path><p:pathelement 167 title="Experiments" href="<%="../index.jsp?ID="+ID%>" 168 /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 169 href="<%="../bioassaysets/index.jsp?ID="+ID+"&experiment_id="+experimentId%>" 170 /><p:pathelement title="<%=HTML.encodeTags(transformation.getName())%>" 171 /></p:path> 173 172 174 <t:tabcontrol id="main" active="<%=tabId%>" switch="switchTab"> 173 <t:tabcontrol 174 id="main" 175 subclass="content mastertabcontrol" 176 active="<%=tabId%>" switch="switchTab"> 175 177 <t:tab id="properties" title="Properties"> 176 177 <tbl:toolbar 178 > 179 <tbl:button 180 disabled="<%=writePermission ? false : true%>" 181 image="edit.gif" 182 onclick="editItem()" 183 title="Edit…" 184 tooltip="<%=writePermission ? "Edit this transformation" : "You do not have permission to edit this transformation"%>" 185 /> 186 <tbl:button 187 disabled="<%=deletePermission ? false : true%>" 188 image="delete.gif" 189 onclick="deleteItem()" 190 title="Delete" 191 visible="<%=!transformation.isRemoved()%>" 192 tooltip="<%=deletePermission ? "Delete this transformation" : "You do not have permission to delete this transformation"%>" 193 /> 194 <tbl:button 195 disabled="<%=writePermission ? false : true%>" 196 image="restore.gif" 197 onclick="restoreItem()" 198 title="Restore" 199 visible="<%=transformation.isRemoved()%>" 200 tooltip="<%=writePermission ? "Restore this transformation" : "You do not have permission to restore this transformation"%>" 201 /> 202 <tbl:button 203 disabled="<%=writePermission ? false : true%>" 204 image="<%=writePermission ? "copy.gif" : "copy_disabled.gif"%>" 205 onclick="<%=job == null ? "" : "copyJob('" + job.getId() + "')"%>" 206 title="Copy…" 207 visible="<%=job != null && plugin != null && plugin.isInteractive() %>" 208 tooltip="<%=writePermission ? "Copy this transformation" : "You do not have permission to copy this transformation"%>" 209 /> 210 <tbl:button 211 image="import.gif" 212 onclick="runItemPlugin('ImportItem')" 213 title="Import…" 214 tooltip="Import data" 215 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 216 /> 217 <tbl:button 218 image="export.gif" 219 onclick="runItemPlugin('ExportItem')" 220 title="Export…" 221 tooltip="Export data" 222 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 223 /> 224 <tbl:button 225 image="runplugin.gif" 226 onclick="runItemPlugin('RunPlugin')" 227 title="Run plugin…" 228 tooltip="Run a plugin" 229 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 230 /> 231 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 232 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 233 <tbl:button 234 image="help.png" 235 onclick="<%="Main.openHelp('" + ID +"', 'transformation.view.properties')"%>" 236 title="Help…" 237 tooltip="Get help about this page" 238 /> 239 </tbl:toolbar> 240 <div class="boxedbottom"> 241 <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(transformation)%></i></div> 242 <% 243 if (transformation.isRemoved()) 244 { 245 %> 246 <div class="itemstatus"> 247 <base:icon image="deleted.gif" 248 visible="<%=transformation.isRemoved()%>"> This item has been flagged for deletion<br></base:icon> 249 </div> 250 <% 251 } 252 %> 253 254 <table width="100%"> 255 <tr > 256 <td width="50%"> 257 <h4>Transformation</h4> 258 <table class="form" cellspacing=0> 259 <tr> 260 <td class="prompt">Name</td> 178 <div> 179 <table class="fullform"> 180 <tr> 181 <th class="itemstatus"> 182 <base:icon 183 image="deleted.gif" 184 onclick="deleteItemPermanently()" 185 tooltip="This item has been flagged for deletion. Click to delete it now." 186 enabled="<%=deletePermission %>" 187 visible="<%=transformation.isRemoved()%>" 188 /> 189 </th> 190 <td style="padding: 0px;"> 191 <tbl:toolbar subclass="bottomborder"> 192 <tbl:button 193 disabled="<%=writePermission ? false : true%>" 194 image="edit.gif" 195 onclick="editItem()" 196 title="Edit…" 197 tooltip="<%=writePermission ? "Edit this transformation" : "You do not have permission to edit this transformation"%>" 198 /> 199 <tbl:button 200 disabled="<%=deletePermission ? false : true%>" 201 image="delete.gif" 202 onclick="deleteItem()" 203 title="Delete" 204 visible="<%=!transformation.isRemoved()%>" 205 tooltip="<%=deletePermission ? "Delete this transformation" : "You do not have permission to delete this transformation"%>" 206 /> 207 <tbl:button 208 disabled="<%=writePermission ? false : true%>" 209 image="restore.gif" 210 onclick="restoreItem()" 211 title="Restore" 212 visible="<%=transformation.isRemoved()%>" 213 tooltip="<%=writePermission ? "Restore this transformation" : "You do not have permission to restore this transformation"%>" 214 /> 215 <tbl:button 216 disabled="<%=writePermission ? false : true%>" 217 image="<%=writePermission ? "copy.gif" : "copy_disabled.gif"%>" 218 onclick="<%=job == null ? "" : "copyJob('" + job.getId() + "')"%>" 219 title="Copy…" 220 visible="<%=job != null && plugin != null && plugin.isInteractive() %>" 221 tooltip="<%=writePermission ? "Copy this transformation" : "You do not have permission to copy this transformation"%>" 222 /> 223 <tbl:button 224 image="import.gif" 225 onclick="runItemPlugin('ImportItem')" 226 title="Import…" 227 tooltip="Import data" 228 visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>" 229 /> 230 <tbl:button 231 image="export.gif" 232 onclick="runItemPlugin('ExportItem')" 233 title="Export…" 234 tooltip="Export data" 235 visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>" 236 /> 237 <tbl:button 238 image="runplugin.gif" 239 onclick="runItemPlugin('RunPlugin')" 240 title="Run plugin…" 241 tooltip="Run a plugin" 242 visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>" 243 /> 244 <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 245 wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/> 246 <tbl:button 247 image="help.png" 248 onclick="<%="Main.openHelp('" + ID +"', 'transformation.view.properties')"%>" 249 title="Help…" 250 tooltip="Get help about this page" 251 /> 252 </tbl:toolbar> 253 </td> 254 </tr> 255 </table> 256 <table style="width: 100%; height: 15em;" class="bottomborder"> 257 <tr valign="top"> 258 <td style="width: 50%; height: 100%;"> 259 <table class="fullform" > 260 <tr> 261 <th>Name</th> 261 262 <td><%=HTML.encodeTags(transformation.getName())%></td> 262 263 </tr> 263 264 <tr> 264 <t d class="prompt">Experiment</td>265 <th>Experiment</th> 265 266 <td><%=Base.getLinkedName(ID, experiment, false, writePermission)%></td> 266 267 </tr> 267 268 <tr> 268 <t d class="prompt">Description</td>269 <th>Description</th> 269 270 <td><%=HTML.niceFormat(transformation.getDescription())%></td> 270 271 </tr> 271 </table> 272 273 <h4>Job</h4> 274 <table class="form" cellspacing=0> 275 <tr> 276 <td class="prompt">Job</td> 272 <tr> 273 <th>Job</th> 277 274 <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td> 278 275 </tr> 279 <tr 280 <t d class="prompt">Started</td>276 <tr> 277 <th class="subprompt">- started</th> 281 278 <td> 282 279 <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%> … … 284 281 </tr> 285 282 <tr > 286 <t d class="prompt">Ended</td>283 <th class="subprompt">- ended</th> 287 284 <td> 288 285 <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%> 289 286 </td> 290 287 </tr> 291 <tr >292 <t d class="prompt">Server</td>288 <tr class="dynamic"> 289 <th class="subprompt">- server</th> 293 290 <td> 294 291 <%=job == null ? "" : HTML.encodeTags(job.getServer())%> … … 297 294 </table> 298 295 </td> 299 <td width="50%"> 300 <h4>Plugin & parameters</h4> 301 <table class="form" cellspacing=0> 302 <tr> 303 <td class="prompt">Plugin</td> 296 <td style="width: 50%; height: 100%;" class="leftborder"> 297 <table class="fullform" > 298 <tr> 299 <th>Plugin</th> 304 300 <td><%=Base.getLinkedName(ID, plugin, 305 301 !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td> 306 302 </tr> 307 303 <tr> 308 <t d class="prompt">Plugin configuration</td>304 <th>Plugin configuration</th> 309 305 <td><%=Base.getLinkedName(ID, configuration, !readConfiguration, 310 306 configuration != null && configuration.hasPermission(Permission.WRITE))%></td> 311 307 </tr> 308 <tbody class="sectionheader"> 309 <tr> 310 <th colspan="2">Plugin parameters</th> 311 </tr> 312 </tbody> 312 313 <% 313 314 if (job != null) … … 368 369 %> 369 370 <tr> 370 <t d class="prompt"><span title="<%=description%>"><%=name%></span></td>371 <th class="subprompt"><span title="<%=description%>">- <%=name%></span></th> 371 372 <td> 372 373 <%=displayValue%> … … 377 378 } 378 379 %> 380 <tr class="dynamic"> 381 <th></th> 382 <td></td> 383 </tr> 379 384 </table> 380 385 </td> … … 389 394 </jsp:include> 390 395 391 < h4 class="docked">Analysis subtree</h4>392 <jsp:include page="../bioassaysets/analysis_tree.jsp">393 <jsp:param name="ID" value="<%=ID%>" />394 <jsp:param name="experiment_id" value="<%=experimentId%>" />395 <jsp:param name="transformation_id" value="<%=itemId%>" />396 </jsp:include>397 </ div>396 <base:section id="anaysis" title="Analysis subtree" context="<%=cc%>"> 397 <jsp:include page="../bioassaysets/analysis_tree.jsp"> 398 <jsp:param name="ID" value="<%=ID%>" /> 399 <jsp:param name="experiment_id" value="<%=experimentId%>" /> 400 <jsp:param name="transformation_id" value="<%=itemId%>" /> 401 </jsp:include> 402 </base:section> 398 403 </t:tab> 399 404 </t:tabcontrol>
Note: See TracChangeset
for help on using the changeset viewer.