Hello people!
Have question about rewind
I trying to write simple app with two pages
        Home page - for entering directory path
        List page - for list files of directory

for loop i use ListEdit and ListEditMap, which i init in pageBeginRender

in List template i show list of files, each file has delete button

task is very simple - on press delete button remove file from directory.

but after pressing delete button i receive NullPointerException

problem is in rewind - in rewind form invoke pageBeginRender for init ListEditMap but in that time variable path is not defined yet and list cann't initialized

So how to solve such problem without saving directory path in session?


Full app without tapestry 3.0 libs as attachment.
_____________________
|Source of List page |
--------------------------------------
public abstract class ListPage extends BasePage implements PageRenderListener{

        /* (non-Javadoc)
* @see org.apache.tapestry.event.PageRenderListener#pageBeginRender(org.apache.tapestry.event.PageEvent)
         */
        public void pageBeginRender(PageEvent event) {
                if(!event.getRequestCycle().isRewinding()) {
                        File dir=new File(getPath());
                        String[] files=dir.list();
                        System.out.println(files);
                        ListEditMap editMap=new ListEditMap();
                        for (int i = 0; i < files.length; i++) {
                                editMap.add(files[i], files[i]);
                        }
                        setListEditMap(editMap);
                }
        }

        public void formSubmit(IRequestCycle cycle) {
                File fileName=new 
File(getFile()+File.pathSeparator+getDelete());
                if(fileName.isFile())
                        fileName.delete();
                System.out.println(getFile());
        }
        
        public void synchronize(IRequestCycle cycle)
    {
        ListEditMap map = getListEditMap();

        String fileName = (String) map.getValue();

        if (fileName == null)
        {
            throw new PageRedirectException(this);
        }

        setFile(fileName);
    }
        
        public abstract void setPath(String path);
        public abstract String getPath();
        
        public abstract void setFile(String file);
        public abstract String getFile();
        
        public abstract void setDelete(String file);
        public abstract String getDelete();
        
        public abstract void setListEditMap(ListEditMap editMap);
        public abstract ListEditMap getListEditMap();

Attachment: test_app.tar.bz2
Description: application/bzip

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to