We are trying to figure out the best way to make our URLs portable. Currently, we mount a QueryStringUrlEncodingStrategy in our application class. Then, in the beginning of the page's constructor, page parameters are mapped to instance variables. Then, when the form button is clicked, a map of parameters is created to pass to setResponsePage(Class, PageParameters). It seems like mapping the parameters to variables and creating a map of parameters to setResponsePage() can be avoided by using setResponsePage(this.getPage ()), but the URL produced is not portable. Having to map parameters to instance variables and maintain a map to pass in is high maintenance. Is there a better way to do this? Thanks for the help.

Ryan

public Search(PageParameters params) {
        //TODO:
        //it would be nice if this could be done automatically...
        //if there are parameters, map them to instance variables
        if (params.size() > 0) {
            setSourceSelection(params.getString("source"));
            setPosition(params.getString("position"));
            setSizeStart(params.getString("sizeStart"));
            setSizeEnd(params.getString("sizeEnd"));
            setSnpStart(params.getString("snpStart"));
            setSnpEnd(params.getString("snpEnd"));
            setSortorderSelection(params.getString("sortorder"));
setVariationTypeSelection(params.getString ("variationType"));

            if (params.getInt("pagesize", -1) != -1) {
                setPagesize(params.getInt("pagesize"));
            }

            //populate the result list now that the instance
            //variables have been set
            try {
resultlist = annotatedQuery.getAnnotations (getSourceSelection(), getPosition(), getSizeStart(), getSizeEnd(), getSnpStart(), getSnpEnd(), getSortorderSelection(), getVariationTypeSelection());
            } catch (CnvException e) {
                e.printStackTrace();
                error(e.getMessage());
            }
        }

//submit button
        Button asl = new Button("submit") {
            public void onSubmit() {
                try {
                    //TODO:
                    //it would be nice if we could make the url of
                    //setresponsepage(this.getPage()) to look nice
//as it would handle all of the parameter business.. ugh
                    HashMap params = new HashMap<String, String>();
                    params.put("source", getSourceSelection());
                    params.put("position", getPosition());
                    params.put("sortorder", getSortorderSelection());
params.put("variationType", getVariationTypeSelection());
                    if (getSizeStart() != null) {
                        params.put("sizeStart", getSizeStart());
                    }
                    if (getSizeEnd() != null) {
                        params.put("sizeEnd", getSizeEnd());
                    }
                    if (getSnpStart() != null) {
                        params.put("snpStart", getSnpStart());
                    }
                    if (getSnpEnd() != null) {
                        params.put("snpEnd", getSnpEnd());
                    }
setPagesize((Integer) results_page.getModelObject ());
                    params.put("pagesize", getPagesize().toString());

                    System.out.println(getSortorderSelection());
setResponsePage(Search.class, new PageParameters (params));
                } catch (Exception e) {
                    error(e.getMessage());
                }
            }
        };

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

Reply via email to