// Path: web-runner/src/main/java/org/jbehave/web/runner/context/FileContext.java
// @SuppressWarnings("serial")
// public class FileContext implements Serializable {
// 
//     private List<File> files = new ArrayList<File>();
//     private Map<String, List<File>> contentFiles = new HashMap<String, List<File>>();
//     private boolean contentVisible = false;
//     private List<String> errors = new ArrayList<String>();
// 
//     public FileContext() {
//     }
// 
//     public List<File> getFiles() {
//         return files;
//     }
// 
//     public void setFiles(List<File> files) {
//         this.files = toViewables(files);
//     }
//     
//     public List<File> getContentFilesAsList() {  
//         List<File> list = new ArrayList<File>();
//         for ( String directoryPath : contentFiles.keySet() ){
//             list.addAll(toViewables(contentFiles.get(directoryPath)));
//         }
//         return list;
//     }
// 
//     private List<File> toViewables(List<File> files) {
//         List<File> viewableFiles = new ArrayList<File>();
//         for (File file : files) {
//             ViewableFile viewableFile = new ViewableFile(file);
//             if ( viewableFile.isViewable() ){
//                 viewableFiles.add(viewableFile);
//             }
//         }
//         return viewableFiles;
//     }
// 
//     public boolean getContentVisible() {
//         return contentVisible;
//     }
// 
//     public void setContentVisible(boolean contentVisible) {
//         this.contentVisible = contentVisible;
//     }
//     
//     public Map<String, List<File>> getContentFiles() {
//         return contentFiles;
//     }
// 
//     public void setContentFiles(Map<String, List<File>> contentFiles) {
//         this.contentFiles = contentFiles;
//     }
// 
//     public List<String> getErrors() {
//         return errors;
//     }
//     
//     public void setErrors(List<String> errors){
//         this.errors = errors;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this);
//     }
// 
//     public static class ViewableFile extends File {
// 
//         public ViewableFile(File file) {
//             super(file.getPath());
//         }
//         
//         public String getPath(){
//             return unixPath(super.getPath());
//         }
//         
//         private String unixPath(String path) {
//             return path.replace("\\","/");
//         }
//         
//         public boolean isViewable() {
//             return getPath().matches(".*\\.[A-Za-z]+");
//         }
// 
//     }
// 
// 
// }


import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.markup.html.form.upload.MultiFileUploadField;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
import org.jbehave.web.io.FileManager;
import org.jbehave.web.runner.context.FileContext;
import com.google.inject.Inject;
package org.jbehave.web.runner.wicket.pages;




@SuppressWarnings("serial")
public class DataFiles extends Template {

    @Inject
    private FileManager manager;

// Path: web-runner/src/main/java/org/jbehave/web/runner/context/FileContext.java
// @SuppressWarnings("serial")
// public class FileContext implements Serializable {
// 
//     private List<File> files = new ArrayList<File>();
//     private Map<String, List<File>> contentFiles = new HashMap<String, List<File>>();
//     private boolean contentVisible = false;
//     private List<String> errors = new ArrayList<String>();
// 
//     public FileContext() {
//     }
// 
//     public List<File> getFiles() {
//         return files;
//     }
// 
//     public void setFiles(List<File> files) {
//         this.files = toViewables(files);
//     }
//     
//     public List<File> getContentFilesAsList() {  
//         List<File> list = new ArrayList<File>();
//         for ( String directoryPath : contentFiles.keySet() ){
//             list.addAll(toViewables(contentFiles.get(directoryPath)));
//         }
//         return list;
//     }
// 
//     private List<File> toViewables(List<File> files) {
//         List<File> viewableFiles = new ArrayList<File>();
//         for (File file : files) {
//             ViewableFile viewableFile = new ViewableFile(file);
//             if ( viewableFile.isViewable() ){
//                 viewableFiles.add(viewableFile);
//             }
//         }
//         return viewableFiles;
//     }
// 
//     public boolean getContentVisible() {
//         return contentVisible;
//     }
// 
//     public void setContentVisible(boolean contentVisible) {
//         this.contentVisible = contentVisible;
//     }
//     
//     public Map<String, List<File>> getContentFiles() {
//         return contentFiles;
//     }
// 
//     public void setContentFiles(Map<String, List<File>> contentFiles) {
//         this.contentFiles = contentFiles;
//     }
// 
//     public List<String> getErrors() {
//         return errors;
//     }
//     
//     public void setErrors(List<String> errors){
//         this.errors = errors;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this);
//     }
// 
//     public static class ViewableFile extends File {
// 
//         public ViewableFile(File file) {
//             super(file.getPath());
//         }
//         
//         public String getPath(){
//             return unixPath(super.getPath());
//         }
//         
//         private String unixPath(String path) {
//             return path.replace("\\","/");
//         }
//         
//         public boolean isViewable() {
//             return getPath().matches(".*\\.[A-Za-z]+");
//         }
// 
//     }
// 
// 
// }


// Path: web-runner/src/main/java/org/jbehave/web/runner/wicket/pages/DataFiles.java
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.markup.html.form.upload.MultiFileUploadField;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
import org.jbehave.web.io.FileManager;
import org.jbehave.web.runner.context.FileContext;
import com.google.inject.Inject;

package org.jbehave.web.runner.wicket.pages;




@SuppressWarnings("serial")
public class DataFiles extends Template {

    @Inject
    private FileManager manager;

    private final FileContext fileContext = new FileContext();