changeset 98:9b02c9af49b0

add file upload to import merge.
author casties
date Fri, 28 Oct 2016 19:06:21 +0200
parents 13b313ae1af8
children d0fb989bf53a
files src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java src/main/webapp/merge/importMerge.xhtml
diffstat 2 files changed, 30 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java	Fri Oct 28 18:21:07 2016 +0200
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java	Fri Oct 28 19:06:21 2016 +0200
@@ -20,6 +20,8 @@
 import org.mpi.openmind.repository.bo.Node;
 import org.mpi.openmind.repository.bo.Relation;
 import org.mpi.openmind.repository.utils.CsvNodeListReader;
+import org.richfaces.event.FileUploadEvent;
+import org.richfaces.model.UploadedFile;
 
 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
 
@@ -75,6 +77,26 @@
     public ImportMerge() {
     }
 
+    public void uploadListener(FileUploadEvent event) throws Exception {
+        UploadedFile item = event.getUploadedFile();
+        importFilename = item.getName();
+        reset();
+        try {
+            Reader importReader = new InputStreamReader(item.getInputStream(), "UTF-8");
+            importNodeList = CsvNodeListReader.readCsv(importReader);
+            
+            this.importNodeListLength = importNodeList.size();
+            this.importFileMsg = "File "+ importFilename + " contains " + importNodeListLength + " Nodes";
+            this.importNodeIdx = 0;
+            loadImportNode();
+            
+        } catch (Exception e) {
+            addErrorMsg("The import file could no be loaded.");
+            addErrorMsg("Error: "+e);
+        }
+   }
+    
+    
     /**
      * Action that loads the import file and parses it into the Nodes list.
      * 
--- a/src/main/webapp/merge/importMerge.xhtml	Fri Oct 28 18:21:07 2016 +0200
+++ b/src/main/webapp/merge/importMerge.xhtml	Fri Oct 28 19:06:21 2016 +0200
@@ -24,15 +24,15 @@
                 <h:panelGrid columns="2" styleClass="createPanel"
                     columnClasses="createPanelFirstColumn" id="loadListPanel">
                     
-                    <h:outputText value="Import File" />
+                    <h:outputText value="Load File" />
 
-                    <h:panelGrid columns="3">
-                        <h:outputText value="#{Session.importMerge.importFilename}" />
-                    
-                        <a4j:commandButton value="Load"
-                            actionListener="#{Session.importMerge.loadImportFile}"
-                            render="mainPanel,loadListPanel,loadingPanel,mergingPanel" />
-                            
+                    <h:panelGrid columns="1">
+                        <rich:fileUpload fileUploadListener="#{Session.importMerge.uploadListener}" id="upload" acceptedTypes=".csv"
+                            ontyperejected="alert('Only CSV files are accepted');" maxFilesQuantity="1"
+                            listHeight="60px" addLabel="Select file to upload...">
+                            <a4j:ajax event="uploadcomplete" execute="@none" render="mainPanel" />
+                        </rich:fileUpload>
+                        
                         <h:outputText
                                 value="#{Session.importMerge.importFileMsg}"
                                 rendered="#{!empty Session.importMerge.importFileMsg}"