Thanks for you advice, it feels like im getting closer to what I want to
achieve.
Below I posted the Java/Tml for my Page.
(Initially I wanted this to be under components instead, but for clarity I
converted to a Page)

It seems to render stuff, but I still get Javascript Errors when I try to
use it.
 ---- ERROR----
Failure reading parameter 'value' of component Index:ajaxupload: Property
'file' (within property expression 'file.file', of
com.fante.pages.Index@1c8a395d) is null.
Communication with the server failed: Failure reading parameter 'value' of
component Index:ajaxupload: Property 'file' (within property expression
'file.file', of com.fante.pages.Index@1c8a395d) is null.
----------

I must admit, that I am not very proficient with Javascript. 
Can you tell if Im on the right track here?





package com.fante.components;

public class Index {

    @Persist
    @Property
    private List<FileHolder> files;

    @Property
    private FileHolder file;
    
    @Persist
    private int nrFiles;
    
    public void beginRender() {
        files = new ArrayList<FileHolder>();
    }
    
    
    
    @SuppressWarnings("rawtypes")
    public ValueEncoder getEncoder() {
        return new ValueEncoder<FileHolder>() {

            public String toClient(FileHolder value) {
        
                return value.getKey();
            }

            public FileHolder toValue(String keyAsString) {
                Long key = new Long(keyAsString);
                for (FileHolder holder : files) {
                    if (keyAsString.equalsIgnoreCase("" + holder.getKey()))
{
                        return holder;
                    }
                }
                throw new IllegalArgumentException("Received key \"" + key
                        + "\" which has no counterpart in this collection: "
+ files);
            }
        };
    }
    
    FileHolder onAddRow() {
        // Create a skeleton Person and add it to the displayed list with a
unique key
        FileHolder newFileHolder = new FileHolder();
        files.add(newFileHolder);

        return newFileHolder;
    }

    public class FileHolder {
        private List<UploadedFile> file;
        private String key;

        public FileHolder() {
            file = new ArrayList<UploadedFile>();
            key = "" + nrFiles;
            nrFiles++;
        }
        public List<UploadedFile> getFile() {
            return file;
        }

        public void setFile(List<UploadedFile> file) {
            this.file = file;
        }
        public String getKey() {
            return key;
        }
        public void setKey(String key) {
            this.key = key;
        }
        
        
    }
}
In tml:

 <t:form>
      
                        <t:submitnotifier>
                            ${file.key} <input t:type='tawus/ajaxupload' 
t:maxfiles="1" class="file"  t:value="file.file" /> <br/>
                        </t:submitnotifier>
                    <p:addRow>
                            <br/>
                            <t:addrowlink>Add a row</t:addrowlink>
                    </p:addRow>
                
</t:form>


--
View this message in context: 
http://tapestry.1045711.n5.nabble.com/T5-Dynamically-add-section-of-upload-files-in-form-tp4623273p4624251.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to