package marubinotto.piggydb.ui.page; import java.io.UnsupportedEncodingException; import marubinotto.piggydb.model.Fragment; import marubinotto.piggydb.model.query.FragmentsOfUser; import marubinotto.piggydb.ui.page.common.AbstractFragmentsPage; import marubinotto.piggydb.ui.page.common.PageUrl; import org.apache.commons.codec.net.URLCodec; import org.apache.commons.lang.UnhandledException; public class UserPage extends AbstractFragmentsPage { @Override protected PageUrl createThisPageUrl() { PageUrl pageUrl = super.createThisPageUrl(); if (this.name != null) pageUrl.parameters.put(PN_NAME, this.name); return pageUrl; } @Override protected String getAtomUrl() { if (this.name == null) return null; try { return getDefaultAtomUrl() + "?name=" + new URLCodec().encode(this.name, CHAR_ENCODING); } catch (UnsupportedEncodingException e) { throw new UnhandledException(e); } } // // Input // public static final String PN_NAME = "name"; public String name; @Override public void onInit() { super.onInit(); if (this.name != null) this.name = modifyIfGarbledByTomcat(this.name); } // // Model // public Fragment userFragment; @Override protected void setModels() throws Exception { super.setModels(); if (this.name != null) this.htmlTitle = this.htmlTitle + HTML_TITLE_SEP + this.name; setUserFragment(); setCommonSidebarModels(); } private void setUserFragment() throws Exception { if (this.name == null) return; FragmentsOfUser query = (FragmentsOfUser) getDomain().getFragmentRepository().getQuery(FragmentsOfUser.class); query.setUserName(this.name); Fragment lightFragment = query.getUserFragment(); if (lightFragment != null) { this.userFragment = getDomain().getFragmentRepository().get(lightFragment.getId()); } } @Override public void onRender() { super.onRender(); embedCurrentStateInParameters(); } private void embedCurrentStateInParameters() { if (this.name != null) addParameterToCommonForms(PN_NAME, this.name); } }