Changeset 3583
- Timestamp:
- Jul 20, 2007, 11:44:17 AM (16 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/core/net/sf/basedb/core/plugin/AbstractAnalysisPlugin.java
r3575 r3583 211 211 } 212 212 213 protected static final String SOURCE_BIOASSAYS = " source_subset";213 protected static final String SOURCE_BIOASSAYS = "bioAssays"; 214 214 215 215 /** -
trunk/src/plugins/core/net/sf/basedb/plugins/FormulaFilter.java
r3569 r3583 33 33 import net.sf.basedb.core.IntegerParameterType; 34 34 import net.sf.basedb.core.Item; 35 import net.sf.basedb.core.ItemParameterType;36 35 import net.sf.basedb.core.Job; 37 36 import net.sf.basedb.core.Permission; … … 142 141 // Get all parameters 143 142 BioAssaySet source = getSourceBioAssaySet(dc); 144 List<BioAssay> bioAssays = (List<BioAssay>)job.getValues("bioAssays");143 List<BioAssay> bioAssays = getSourceBioAssays(dc); 145 144 String expression = (String)job.getValue("expression"); 146 145 Integer includeLimit = (Integer)job.getValue("includeLimit"); … … 149 148 String childDescription = (String)job.getValue("childDescription"); 150 149 151 // Reattach bioassays 152 if (bioAssays != null) 153 { 154 for (BioAssay ba : bioAssays) 155 { 156 dc.reattachItem(ba); 157 } 158 } 159 160 // and, the current job 150 // get the current job 161 151 Job currentJob = getCurrentJob(dc); 162 152 … … 244 234 // Source bioassay set and bioassays 245 235 storeValue(job, request, ri.getParameter(SOURCE_BIOASSAYSET)); 246 storeValues(job, request, ri.getParameter( "bioAssays"));236 storeValues(job, request, ri.getParameter(SOURCE_BIOASSAYS)); 247 237 248 238 // Filter expression and options … … 283 273 // Source bioassay set and bioassay parameters 284 274 parameters.add(getSourceBioAssaySetParameter(null, null)); 285 PluginParameter<BioAssay> bioAssaysParameter = new PluginParameter<BioAssay>( 286 "bioAssays", "Source bioassays", "Select the bioassays that should be filtered. " + 287 "If no bioassay is selected all will be filtered.", 288 new ItemParameterType<BioAssay>(BioAssay.class, null, false, 0, 289 bas.getBioAssays().list(dc) 290 )); 291 parameters.add(bioAssaysParameter); 275 parameters.add(getSourceBioAssaysParameter(null, null)); 292 276 293 277 // Filter expression and options -
trunk/src/plugins/core/net/sf/basedb/plugins/JepExtraValueCalculator.java
r2993 r3583 33 33 34 34 import net.sf.basedb.core.BaseException; 35 import net.sf.basedb.core.BioAssay; 35 36 import net.sf.basedb.core.BioAssaySet; 36 37 import net.sf.basedb.core.DbControl; … … 58 59 import net.sf.basedb.core.query.Dynamic; 59 60 import net.sf.basedb.core.query.Expression; 61 import net.sf.basedb.core.query.Expressions; 60 62 import net.sf.basedb.core.query.Hql; 61 63 import net.sf.basedb.core.query.Orders; 64 import net.sf.basedb.core.query.Restrictions; 62 65 import net.sf.basedb.core.query.Selects; 63 66 import net.sf.basedb.util.BioAssaySetUtil; … … 145 148 // Get all parameters 146 149 BioAssaySet source = getSourceBioAssaySet(dc); 150 List<BioAssay> bioAssays = getSourceBioAssays(dc); 147 151 ExtraValueType extraValueType = (ExtraValueType)job.getValue("extraValueType"); 148 152 String expression = (String)job.getValue("expression"); … … 162 166 Expression extraExpression = BioAssaySetUtil.createJepExpression(dc, source, expression, false); 163 167 query.select(Selects.expression(extraExpression, "xtra")); 168 // If one or more bioassays are selected-restrict to them. 169 if (bioAssays != null && !bioAssays.isEmpty()) 170 { 171 Expression[] selectedColumns = new Expression[bioAssays.size()]; 172 for (int i=0; i<selectedColumns.length; i++) 173 { 174 BioAssay ba = bioAssays.get(i); 175 selectedColumns[i] = Expressions.integer(ba.getDataCubeColumnNo()); 176 } 177 query.restrict(Restrictions.in( 178 Dynamic.column(VirtualColumn.COLUMN), 179 selectedColumns)); 180 } 164 181 165 182 if (progress != null) progress.display(10, "Calculating extra value ("+source.getNumSpots()+" total)..."); … … 217 234 storeValue(job, request, getSourceBioAssaySetParameter(null, null)); 218 235 236 // Subset of bioassays 237 storeValue(job, request, this.getSourceBioAssaysParameter(null, null)); 238 219 239 // ExtraValueType 220 240 storeValue(job, request, extraValueTypeParameter); … … 247 267 // Source bioassay set 248 268 parameters.add(getSourceBioAssaySetParameter(null, null)); 269 270 // Sub set of bioassays 271 parameters.add(getSourceBioAssaysParameter(null, null)); 249 272 250 273 // Extra value types -
trunk/www/plugins/net/sf/basedb/plugins/jep_extra_value_calculator.jsp
r3518 r3583 28 28 import="net.sf.basedb.core.SessionControl" 29 29 import="net.sf.basedb.core.DbControl" 30 import="net.sf.basedb.core.BioAssay" 30 31 import="net.sf.basedb.core.Item" 31 32 import="net.sf.basedb.core.ItemContext" … … 38 39 import="net.sf.basedb.core.ItemResultList" 39 40 import="net.sf.basedb.core.Include" 41 import="net.sf.basedb.core.Type" 40 42 import="net.sf.basedb.core.query.Orders" 43 import="net.sf.basedb.core.query.Restrictions" 44 import="net.sf.basedb.core.query.Expressions" 41 45 import="net.sf.basedb.core.query.Hql" 42 46 import="net.sf.basedb.clients.web.Base" … … 81 85 RawDataType rdt = source.getRawDataType(); 82 86 87 //Find selected bioassays 88 List<BioAssay> bioAssays = null; 89 if (job != null) bioAssays = (List<BioAssay>)job.getParameterValues("bioAssays"); 90 if (bioAssays == null) 91 { 92 ItemContext bioAssayContext = sc.getCurrentContext(Item.BIOASSAY); 93 ItemQuery<BioAssay> bioAssayQuery = null; 94 if (bioAssayContext.getSelected().size() > 0) 95 { 96 bioAssayQuery = source.getBioAssays(); 97 bioAssayQuery.restrict( 98 Restrictions.in(Hql.property("id"), Expressions.parameter("selected")) 99 ); 100 bioAssayQuery.setParameter("selected", bioAssayContext.getSelected(), Type.INT); 101 bioAssays = bioAssayQuery.list(dc); 102 } 103 } 104 83 105 // Current parameter values 84 106 ExtraValueType currentExtraValueType = (ExtraValueType)job.getParameterValue("extraValueType"); … … 105 127 %> 106 128 <base:page type="popup" title="Calculate extra value"> 107 <base:head s tyles="parameters.css">129 <base:head scripts="linkitems.js" styles="parameters.css"> 108 130 <script language="JavaScript"> 109 131 function hideErrorList() … … 154 176 { 155 177 var frm = document.forms['extraValue']; 156 if (frm['parameter:extraValueType'].selectedIndex < 0) 178 if (!frm.allBioAssays.checked && frm.bioAssays.length == 0) 179 { 180 alert('You have not selected any bioassays'); 181 return false; 182 } 183 else if (frm['parameter:extraValueType'].selectedIndex < 0) 157 184 { 158 185 alert('You must select a type'); … … 185 212 { 186 213 var frm = document.forms['extraValue']; 214 if (!frm.allBioAssays.checked) 215 { 216 var ids = Link.getListIds(frm.bioAssays, 'R'); 217 for (var i = 0; i < ids.length; i++) 218 { 219 Forms.createHidden(frm, 'parameter:bioAssays', ids[i]); 220 } 221 } 187 222 frm.submit(); 188 223 } … … 192 227 location = 'index.jsp?ID=<%=ID%>&cmd=CancelWizard'; 193 228 } 229 function allBioAssaysOnClick() 230 { 231 var frm = document.forms['extraValue']; 232 frm.bioAssays.disabled = frm.allBioAssays.checked; 233 } 234 function addBioAssaysOnClick() 235 { 236 var frm = document.forms['extraValue']; 237 if (frm.allBioAssays.checked) 238 { 239 return; 240 } 241 var ids = Link.getListIds(frm.bioAssays, 'R'); 242 var excludes = ids.join(','); 243 var url = '../../views/experiments/bioassays/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectmultiple&callback=addBioAssayCallback&bioassayset_id=<%=source.getId()%>'; 244 url += "&exclude="+excludes; 245 Main.openPopup(url, 'AddBioAssays', 1000, 700); 246 } 247 function addBioAssayCallback(bioAssayId, name) 248 { 249 var item = Link.getItem('R', bioAssayId); 250 if (!item) item = new Item('R', bioAssayId, name); 251 Link.addItem(document.forms['extraValue'].bioAssays, item); 252 } 253 function removeBioAssaysOnClick() 254 { 255 var frm = document.forms['extraValue']; 256 if (frm.allBioAssays.checked) 257 { 258 return; 259 } 260 Link.removeSelected(frm.bioAssays); 261 } 262 function init() 263 { 264 initBioAssays(); 265 } 266 267 function initBioAssays() 268 { 269 var frm = document.forms['extraValue']; 270 <% 271 if (bioAssays != null) 272 { 273 for (BioAssay ba : bioAssays) 274 { 275 %> 276 Link.addNewItem(frm.bioAssays, new Item('R', <%=ba.getId()%>, '<%=HTML.javaScriptEncode(ba.getName())%>')); 277 <% 278 } 279 } 280 %> 281 frm.allBioAssays.checked = frm.bioAssays.length == 0; 282 allBioAssaysOnClick(); 283 } 194 284 </script> 195 285 </base:head> 196 <base:body >286 <base:body onload="init()"> 197 287 <form name="extraValue" action="index.jsp" method="get" onsubmit="return false;"> 198 288 <input type="hidden" name="ID" value="<%=ID%>"> … … 244 334 <td class="prompt">Source bioassay set</td> 245 335 <td><%=HTML.encodeTags(source.getName())%></td> 336 </tr> 337 <tr valign="top"> 338 <td class="prompt">Bioassays</td> 339 <td> 340 <input type="checkbox" name="allBioAssays" 341 onclick="allBioAssaysOnClick()"><a 342 href="javascript:document.forms['extraValue'].allBioAssays.click()">All bioassays</a><br> 343 <table border="0" cellspacing="0" cellpadding="0"> 344 <tr valign="top"> 345 <td> 346 <select name="bioAssays" size="5" multiple style="width: 20em;"> 347 </select> 348 </td> 349 <td> 350 <table border="0"> 351 <tr><td width="150"><base:button 352 onclick="addBioAssaysOnClick()" 353 title="Add bioassays…" 354 tooltip="Add bioassays" 355 /></td></tr> 356 <tr><td width="150"><base:button 357 onclick="removeBioAssaysOnClick()" 358 title="Remove" 359 tooltip="Remove the selected bioassays" 360 /></td></tr> 361 </table> 362 </td> 363 </tr> 364 </table> 365 </td> 246 366 </tr> 247 367 <tr>
Note: See TracChangeset
for help on using the changeset viewer.