You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Dan Wells <da...@byu.edu> on 2003/08/19 21:37:17 UTC
MultiplePropertySelection component from Contrib library
Hi all,
I am having a problem with getting the MultiplePropertySelection to work
as I expect. I think I just am not able to see what I'm missing, and I
would appreciate another pair of eyes taking a look, if anyone has a
moment.
I have a wizard (multipage form) with a step that allows users to select
from a checkbox list. If a user has already selected these, and have
come back to this page, I want the values they already checked to appear
checked.
I've made sure my equals method is set up right. I've even hardcoded
the value I wanted to be checked in the getSectionList() method.
I have a PropertySelection component working for another page, but I
can't see why this one isn't working. Thanks in advance if anyone helps
out.
Here are the simplified, relevant parts of my code if anyone has a few
minutes to take a look:
.html
-------------------------------------------------------
<span
jwcid="sectionCheckList@contrib:MultiplePropertySelection"
selectedList="ognl:sectionList"
model="ognl:sectionsModel">
<input type="checkbox">Section 1</input>
<input type="checkbox">Section 2</input>
</span>
.java (of component - the wizard step)
-------------------------------------------------------
public class BbSections extends CmuComponent implements
PageRenderListener
{
private IPropertySelectionModel sectionsModel;
private List sectionList = new ArrayList();
public List getSectionList()
{
return this.sectionList;
}
public void setSectionList(List sections)
{
BbWebSite currentSite = getCmuVisit().getCurrentSite();
currentSite.setSectionList(sections);
getCmuVisit().setCurrentSite(currentSite);
this.sectionList = sections;
} //setSectionList
...
public IPropertySelectionModel getSectionsModel()
{
String yearTerm = getCmuVisit().getCurrentSite().getYearTerm();
List classSections = new ArrayList();
try
{
Person user = getCmuVisit().getEffectiveUser();
classSections = getController().getClassSections(user, yearTerm);
}
catch (Exception e)
{
getCmuPage().handleError(e);
}
IPropertySelectionModel model = new
ClassSectionSelectionModel(classSections);
return model;
}
public void pageBeginRender(PageEvent event)
{
List sections = getCmuVisit().getCurrentSite().getSectionList();
if (sections == null)
return;
setSectionList(sections);
}
} //class
ClassSection.equals() method
-------------------------------------------------------
public boolean equals(ClassSection section)
{
if
(section.getCreditInstitution().equals(this.getCreditInstitution())
&& section.getYearTerm().equals(this.getYearTerm())
&& section.getCurriculumId().equals(this.getCurriculumId())
&& section.getTitleCode().equals(this.getTitleCode())
&& section.getSectionNumber().equals(this.getSectionNumber()))
{
return true;
}
return false;
} //equals
ClassSectionSelectionModel.java
-------------------------------------------------------
public class ClassSectionSelectionModel implements
IPropertySelectionModel
{
private List sections;
public ClassSectionSelectionModel(List sections)
{
this.sections = sections;
}
public int getOptionCount()
{
return sections.size();
}
public Object getOption(int idx)
{
return sections.get(idx);
}
public String getLabel(int idx)
{
ClassSection section = (ClassSection) sections.get(idx);
String label =
section.getDeptName() + " " +
section.getCatalogNumber() +
section.getCatalogSuffix() + " Section " +
section.getSectionNumber();
return label;
}
public String getValue(int idx)
{
ClassSection section = (ClassSection) sections.get(idx);
String value =
section.getCreditInstitution() + ":" +
section.getYearTerm() + ":" +
section.getCurriculumId() + ":" +
section.getTitleCode() + ":" +
section.getSectionNumber();
return value;
}//getValue
public Object translateValue(String val)
{
String[] fields = val.split(":");
ClassSection section = new ClassSection();
section.setCreditInstitution(fields[0]);
section.setYearTerm(fields[1]);
section.setCurriculumId(fields[2]);
section.setTitleCode(fields[3]);
section.setSectionNumber(fields[4]);
return section;
}//translateValue
} //class
--
Dan Wells <da...@byu.edu>