[elvystrac] r1810 - sorting/filtering on file table added

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Sun, 21 Feb 2010 19:26:56 +0100

Author: DavidK
Date: 2010-02-21 19:26:56 +0100 (Sun, 21 Feb 2010)
New Revision: 1810

Modified:
   
trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java
   
trunk/server/webServer2/WebContent/secured/components/file/fileListComponent.xhtml
   
trunk/server/webServer2/WebContent/secured/components/file/fileListModalComponent.xhtml
   trunk/server/webServer2/WebContent/secured/plug/planningModalDynamic.xhtml
   
trunk/server/webServer2/WebContent/styles/components/file/fileListComponent.css
   
trunk/server/webServer2/WebContent/styles/components/file/fileListModalComponent.css
Log:
sorting/filtering on file table added

Modified: 
trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java
===================================================================
--- 
trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java
      2010-02-21 17:31:06 UTC (rev 1809)
+++ 
trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java
      2010-02-21 18:26:56 UTC (rev 1810)
@@ -12,6 +12,7 @@
 
 import cz.elvys.commons.utils.CommonUtils;
 import cz.elvys.webServer.HIBgen.Document;
+import cz.elvys.webServer.HIBgen.File;
 import cz.elvys.webServer.HIBgen.FileType;
 import cz.elvys.webServer.beans.user.UserLoginBean;
 import cz.elvys.webServer.utils.faces.BeanManager;
@@ -50,6 +51,8 @@
        private List<SelectItem> fileTypesToSelect = null;
                // selected fileType field
        private String selectedFileType = null;
+               // filter value
+       private String filterValue;
        
        // other fields
        private FileManagerBL fileManagerBL = null;
@@ -130,10 +133,18 @@
                this.allowedFileTypes = allowedFileTypes;
        }
        
+       public String getFilterValue() {
+               return filterValue;
+       }
 
+       public void setFilterValue(String filterValue) {
+               this.filterValue = filterValue;
+       }
 
 
 
+
+
        // initialize
        {
                fileManagerBL = Fact.getFileManagerBL();
@@ -283,7 +294,35 @@
                invalidate();
        }
        
-
+       /**
+        * Method used in the table-filter on the view page
+        * @param value expects that value is of cz.elvys.webServer.HIBgen.File 
type
+        * @return true if object (row) meets filter rules, otherwise false
+        */
+       public boolean filterByValue(Object value) {
+               if (filterValue == null || filterValue.equals("")) {
+                       // filter empty
+                       return true;
+               }
+               if (!(value instanceof File)) {
+                       // bad type of data
+                       return false;
+               } 
+               File file = (File) value;
+               
+               String filt = filterValue.toLowerCase();
+               
+               if (file.getOrigName().toLowerCase().contains(filt) ||
+                               
file.getDescription().toLowerCase().contains(filt) ||
+                               
file.getUser().getRealname().toLowerCase().contains(filt) ||
+                               
file.getUser().getSurname().toLowerCase().contains(filt) ||
+                               
file.getUser().getUsername().toLowerCase().contains(filt)) {
+                       return true;
+               }
+               
+               
+               return false;
+       }
        
 
        /**

Modified: 
trunk/server/webServer2/WebContent/secured/components/file/fileListComponent.xhtml
===================================================================
--- 
trunk/server/webServer2/WebContent/secured/components/file/fileListComponent.xhtml
  2010-02-21 17:31:06 UTC (rev 1809)
+++ 
trunk/server/webServer2/WebContent/secured/components/file/fileListComponent.xhtml
  2010-02-21 18:26:56 UTC (rev 1810)
@@ -71,39 +71,74 @@
 
 <h:form id="FileListComponent" styleClass="file-list-component">
        <h:panelGroup id="fileListAreaAll" styleClass="file-list-area-all">
-               <h:panelGroup id="fileListButtons" 
styleClass="file-list-buttons">
-                       <h:selectOneRadio id="fileTypes"
-                               
value="#{fileListComponentBean.selectedFileType}">
-                               <f:selectItems 
value="#{fileListComponentBean.fileTypesToSelect}"/>
-                               <a4j:support 
-                                       event="onclick" 
-                                       reRender="fileListAreaAll" 
-                                       immediate="false"
-                                       
actionListener="#{fileListComponentBean.prepareDataNoRedirection}"/>
-                       </h:selectOneRadio>
-               </h:panelGroup>
                <rich:dataTable id="fileList" 
                        value="#{fileListComponentBean.files}"
                        rows="10" 
                        var="file" 
-                       width="700"
                        styleClass="file-table"
-                       columnClasses="fileList-table-column-class">
-
+                       sortMode="single"
+                       reRender="fileListButtons, searchPanel"
+                       columnClasses="fileList-table-column-class"
+                       columnsWidth="250,50,150,75,250,100">
+                       
+                       
+                       <f:facet name="header">
+                               <rich:columnGroup>
+                                       <rich:column colspan="6">
+                                               <div class="controlPanel">
+                                                       <h:panelGroup 
rendered="#{showUploadIcon}">
+                                                               
<h:commandButton id="UploadNew"
+                                                                               
image="/images/icons/create.png"
+                                                                               
immediate="true"
+                                                                               
action="#{fileUploadBean.prepareUploadComponent}">
+                                                               
</h:commandButton>
+                                                               <rich:toolTip 
for="UploadNew">
+                                                                       
<h:outputText value="#{lbl['file.list.component.uploadnew']}"/>
+                                                               </rich:toolTip>
+                                                       </h:panelGroup>
+                                               </div>
+                                               <h:panelGroup 
id="fileListButtons" styleClass="file-list-buttons">
+                                                       <h:selectOneRadio 
id="fileTypes"
+                                                               
value="#{fileListComponentBean.selectedFileType}">
+                                                               <f:selectItems 
value="#{fileListComponentBean.fileTypesToSelect}"/>
+                                                               <a4j:support 
+                                                                       
event="onclick" 
+                                                                       
reRender="fileListAreaAll" 
+                                                                       
immediate="false"
+                                                                       
actionListener="#{fileListComponentBean.prepareDataNoRedirection}"/>
+                                                       </h:selectOneRadio>
+                                               </h:panelGroup>
+                                               
+                                               
+                                               <div class="searchPanel">
+                                                       #{lbl['list.search']} :
+                                                       <h:inputText 
value="#{fileListComponentBean.filterValue}" id="input">
+                                                               <a4j:support 
event="onkeyup" reRender="fileList"
+                                                                       
ignoreDupResponses="true" requestDelay="700"
+                                                                       
oncomplete="setCaretToEnd(event);" />
+                                                       </h:inputText>
+                                               </div>
+                                       </rich:column>                          
                                
+                               </rich:columnGroup>
+                       </f:facet>
+                       
+                       
                <!--    
                        <h:column rendered="true">
                                <f:facet 
name="header">#{lbl['file.list.component.id']}</f:facet>
                                <h:outputText value="#{file.id}" />
                        </h:column>
                -->
-                       <h:column>
+                       <rich:column  
+                               
filterMethod="#{fileListComponentBean.filterByValue}"
+                               sortBy="#{file.origName}">
                                <f:facet 
name="header">#{lbl['file.list.component.name']}</f:facet>
                                <h:graphicImage id="document" 
url="/images/documents/pdf.png" 
                                        rendered="#{file.fileType.type == 
'document'}"/>
                                <h:graphicImage id="video" 
url="/images/documents/video.gif" 
                                        rendered="#{file.fileType.type == 
'video'}"/>
                                <h:outputText value=" #{file.origName}" />
-                       </h:column>
+                       </rich:column>
                        <h:column>
                                <f:facet 
name="header">#{lbl['file.list.component.length']}</f:facet>
                                <h:outputText value="#{file.pageCount} 
#{lbl['file.list.component.length.pages']}" rendered="#{file.fileType.type == 
'document'}"/>
@@ -112,14 +147,16 @@
                                </h:outputText>
                                <!--  -->
                        </h:column>
-                       <h:column>
+                       <rich:column 
+                               sortBy="#{file.user.surname}">
                                <f:facet 
name="header">#{lbl['file.list.component.user']}</f:facet>
                                <elvys:userLabel id="usrLbl" 
value="#{file.user}"/>
-                       </h:column>
-                       <h:column>
+                       </rich:column>
+                       <rich:column
+                               sortBy="#{file.uploaded}">
                                <f:facet 
name="header">#{lbl['file.list.component.time']}</f:facet>
                                <elvys:dateTimeLabel id="UploadDate" 
value="#{file.uploaded}"/>
-                       </h:column>
+                       </rich:column>
                        <h:column>
                   <f:facet name="header">
                       <h:outputText value="#{lbl['file.list.component.note']}" 
/>
@@ -189,21 +226,7 @@
                                </div>
                        </h:column>
                        
-                       <!-- UPLOAD NEW -->
-                       <h:column rendered="#{showUploadIcon}">
-                               <f:facet name="header">
-                                       <h:panelGroup>
-                                               <h:commandButton id="UploadNew"
-                                                               
image="/images/icons/create.png"
-                                                               immediate="true"
-                                                               
action="#{fileUploadBean.prepareUploadComponent}">
-                                               </h:commandButton>
-                                               <rich:toolTip for="UploadNew">
-                                                       <h:outputText 
value="#{lbl['file.list.component.uploadnew']}"/>
-                                               </rich:toolTip>
-                                       </h:panelGroup>
-                               </f:facet>
-                       </h:column>
+                       <!-- FOOTER -->
                        <f:facet name="footer">
                                <rich:datascroller renderIfSinglePage="false" 
immediate="true"/>
                        </f:facet>
@@ -212,6 +235,7 @@
                                <f:param value="#{file.origName}" 
name="origName" />
                                <f:param value="#{file.id}" name="id" />
                        </rich:componentControl>
+                       
                </rich:dataTable>
        </h:panelGroup>
        <br style="clear:both;"/>

Modified: 
trunk/server/webServer2/WebContent/secured/components/file/fileListModalComponent.xhtml
===================================================================
--- 
trunk/server/webServer2/WebContent/secured/components/file/fileListModalComponent.xhtml
     2010-02-21 17:31:06 UTC (rev 1809)
+++ 
trunk/server/webServer2/WebContent/secured/components/file/fileListModalComponent.xhtml
     2010-02-21 18:26:56 UTC (rev 1810)
@@ -54,7 +54,7 @@
        <!-- MODAL WINDOW -->
        <rich:modalPanel id="#{modalWinId}" autosized="true" 
                minHeight="200" 
-               minWidth="200" zindex="2000">
+               minWidth="950" zindex="2000">
                <f:facet name="header">
                <h:outputText value="#{modalWinHeader}" />
        </f:facet>

Modified: 
trunk/server/webServer2/WebContent/secured/plug/planningModalDynamic.xhtml
===================================================================
--- trunk/server/webServer2/WebContent/secured/plug/planningModalDynamic.xhtml  
2010-02-21 17:31:06 UTC (rev 1809)
+++ trunk/server/webServer2/WebContent/secured/plug/planningModalDynamic.xhtml  
2010-02-21 18:26:56 UTC (rev 1810)
@@ -12,7 +12,7 @@
                <br/>
                <h:inputTextarea id="DynamicPlanningTextField_input"
                        value="#{planningModalDynamicBean.formData.text}" 
-                       style="width: 100%;"
+                       style="width: 90%;"
                        rows="5"/>
                <a4j:outputPanel ajaxRendered="true">
                        <h:message id="DynamicPlanningTextField_error" 

Modified: 
trunk/server/webServer2/WebContent/styles/components/file/fileListComponent.css
===================================================================
--- 
trunk/server/webServer2/WebContent/styles/components/file/fileListComponent.css 
    2010-02-21 17:31:06 UTC (rev 1809)
+++ 
trunk/server/webServer2/WebContent/styles/components/file/fileListComponent.css 
    2010-02-21 18:26:56 UTC (rev 1810)
@@ -3,7 +3,12 @@
 
 }
 
+.file-list-buttons {
+       float: left;
+       padding-left: 10px;
+}
 
+
 .file-list-area-all {
        
 }

Modified: 
trunk/server/webServer2/WebContent/styles/components/file/fileListModalComponent.css
===================================================================
--- 
trunk/server/webServer2/WebContent/styles/components/file/fileListModalComponent.css
        2010-02-21 17:31:06 UTC (rev 1809)
+++ 
trunk/server/webServer2/WebContent/styles/components/file/fileListModalComponent.css
        2010-02-21 18:26:56 UTC (rev 1810)
@@ -19,6 +19,5 @@
 
 .modal-body-with-list {
        float: left;
-       width: 800px;
-       height: 600px;  
+       
 }
\ No newline at end of file


Other related posts:

  • » [elvystrac] r1810 - sorting/filtering on file table added - elvys