Changeset 3852


Ignore:
Timestamp:
Oct 17, 2007, 9:58:57 AM (14 years ago)
Author:
Nicklas Nordborg
Message:

References #721: Auto-detect function is now aware of FileStoreEnabled? items and automatically
selects a default file for import.

Location:
trunk/www/common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/common/import/select_file.jsp

    r3679 r3852  
    3939  import="net.sf.basedb.core.Job"
    4040  import="net.sf.basedb.core.Location"
     41  import="net.sf.basedb.core.FileStoreEnabled"
     42  import="net.sf.basedb.core.FileSetMember"
     43  import="net.sf.basedb.core.DataFileType"
    4144  import="net.sf.basedb.core.query.Hql"
    4245  import="net.sf.basedb.core.query.Expressions"
     
    5356<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
    5457<%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
    55 
    5658<%
    5759final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
     
    6466final String title = request.getParameter("title");
    6567final DbControl dc = sc.newDbControl();
     68
    6669try
    6770{
     71  // Try to get data files attached to FileStoreEnabled items
     72  File currentFile = null;
     73  List<FileSetMember> dataFiles = null;
     74  if (FileStoreEnabled.class.isAssignableFrom(itemType.getItemClass()))
     75  {
     76    FileStoreEnabled fileStoreItem = null;
     77    try
     78    {
     79      fileStoreItem = (FileStoreEnabled)itemType.getById(dc, currentContext.getId());
     80    }
     81    catch (Throwable t)
     82    {}
     83    if (fileStoreItem != null && fileStoreItem.hasFileSet())
     84    {
     85      dataFiles = fileStoreItem.getFileSet().getMembers().list(dc);
     86      if (dataFiles.size() > 0)
     87      {
     88        // The first file will be selected by default
     89        try
     90        {
     91          currentFile = dataFiles.get(0).getFile();
     92        }
     93        catch (Throwable t)
     94        {}
     95      }
     96    }
     97  }
    6898  List<File> recentFiles = (List<File>)currentContext.getRecent(dc, Item.FILE);
    6999  %>
    70   <base:page type="popup" title="<%=title%>">
     100  <%@page import="net.sf.basedb.core.RawBioAssay"%>
     101<%@page import="net.sf.basedb.core.FileStoreUtil"%>
     102<%@page import="net.sf.basedb.core.FileType"%>
     103<%@page import="net.sf.basedb.core.FileStoreEnabled"%>
     104<base:page type="popup" title="<%=title%>">
    71105  <base:head>
    72106    <script language="JavaScript">
     
    103137      setFileCallback(selected.value, selected.text);
    104138      frm.recentFile.selectedIndex = 0;
     139    }
     140    function dataFileOnChange()
     141    {
     142      var frm = document.forms['import'];
     143      var selected = frm.dataFile[frm.dataFile.selectedIndex];
     144      setFileCallback(selected.value, selected.text.replace(/\[.*\]\s/, ''));
     145      frm.dataFile.selectedIndex = 0;
    105146    }
    106147    </script>
     
    130171          <table border="0" cellspacing="0" cellpadding="0">
    131172          <tr>
    132           <td><input type="text" class="text required" name="path" size="60" value="">&nbsp;</td>
     173          <td><input type="text" class="text required" name="path" size="60"
     174            value="<%=currentFile != null ? HTML.encodeTags(currentFile.getPath().toString()) : "" %>">&nbsp;</td>
    133175          <td><base:button
    134176              title="Browse&hellip;"
     
    140182        </td>
    141183      </tr>
     184      <%
     185      if (dataFiles != null && dataFiles.size() > 0)
     186      {
     187        %>
     188        <tr>
     189          <td class="prompt">Data files</td>
     190          <td>
     191            <select name="dataFile" onchange="dataFileOnChange()">
     192            <option value="">
     193            <%
     194            for (FileSetMember member : dataFiles)
     195            {
     196              File file = null;
     197              DataFileType dft = null;
     198              try
     199              {
     200                dft = member.getDataFileType();
     201              }
     202              catch (Throwable t)
     203              {}
     204              try
     205              {
     206                file = member.getFile();
     207              }
     208              catch (Throwable t)
     209              {}
     210              if (file != null)
     211              {
     212                String path = HTML.encodeTags(file.getPath().toString());
     213                String type = dft != null ? "[" + HTML.encodeTags(dft.getName()) + "] " : "";
     214                %>
     215                <option value="<%=file.getId()%>"><%=type%><%=path%>
     216                <%
     217              }
     218            }
     219            %>
     220            </select>
     221          </td>
     222        </tr>
     223        <%
     224      }
     225      %>
    142226      <%
    143227      if (recentFiles.size() > 0)
  • trunk/www/common/plugin/configure.jsp

    r3679 r3852  
    217217                else if (value instanceof File && pType instanceof FileParameterType)
    218218                {
    219                   value = ((File)value).getPath().toString();
     219                  File file = File.getById(dc, ((File)value).getId());
     220                  value = file.getPath().toString();
    220221                }
    221222                else if (value instanceof BasicItem)
Note: See TracChangeset for help on using the changeset viewer.