CVS: TapestryBook/examples/src/java/examples/resume Experience.java,NONE,1.1 Resume.java,NONE,1.1 Language.java,NONE,1.1 ResumeBuilder.java,NONE,1.1 ResumeSummary.java,NONE,1.1 LanguageStrings.properties,NONE,1.1 ExperienceStrings.properties,NONE,1.1
Howard Lewis Ship <[email protected]> Fri, 11 Jul 2003 21:16:47 -0700
| Newsgroups | gmane.comp.java.tapestry.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tapestry/TapestryBook/examples/src/java/examples/resume
In directory sc8-pr-cvs1:/tmp/cvs-serv6871/examples/src/java/examples/resume
Added Files:
Experience.java Resume.java Language.java ResumeBuilder.java
ResumeSummary.java LanguageStrings.properties
ExperienceStrings.properties
Log Message:
Reorganize examples application to reflect standard organization
--- NEW FILE: Experience.java ---
package examples.resume;
import org.apache.commons.lang.enum.Enum;
public class Experience extends Enum
{
public static final Experience NEWBIE = new Experience("NEWBIE");
public static final Experience JUNIOR = new Experience("JUNIOR");
public static final Experience ASSOCIATE = new Experience("ASSOCIATE");
public static final Experience SENIOR = new Experience("SENIOR");
public static final Experience[] ALL_VALUES = { NEWBIE, JUNIOR, ASSOCIATE, SENIOR };
private Experience(String name)
{
super(name);
}
}
--- NEW FILE: Resume.java ---
package examples.resume;
import java.util.List;
public class Resume
{
private Experience _experience;
private List _languages;
public Experience getExperience()
{
return _experience;
}
public List getLanguages()
{
return _languages;
}
public void setExperience(Experience experience)
{
_experience = experience;
}
public void setLanguages(List languages)
{
_languages = languages;
}
}
--- NEW FILE: Language.java ---
package examples.resume;
import org.apache.commons.lang.enum.Enum;
public class Language extends Enum
{
public static final Language JAVA = new Language("JAVA");
public static final Language C = new Language("C");
public static final Language CSHARP = new Language("CSHARP");
public static final Language CPLUSPLUS = new Language("CPLUSPLUS");
public static final Language PYTHON = new Language("PYTHON");
public static final Language PERL = new Language("PERL");
public static final Language RUBY = new Language("RUBY");
public static final Language VB = new Language("VB");
public static final Language EIFFEL = new Language("EIFFEL");
public static final Language[] ALL_VALUES =
{ C, CPLUSPLUS, CSHARP, EIFFEL, JAVA, PERL, PYTHON, RUBY, VB };
protected Language(String name)
{
super(name);
}
}
--- NEW FILE: ResumeBuilder.java ---
package examples.resume;
import java.util.List;
import java.util.ResourceBundle;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
import org.apache.tapestry.form.EnumPropertySelectionModel;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.IPropertySelectionModel;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.valid.IValidationDelegate;
import org.apache.tapestry.valid.ValidationConstraint;
public abstract class ResumeBuilder extends BasePage
{
private IPropertySelectionModel _experienceModel;
private IPropertySelectionModel _languageModel;
public IPropertySelectionModel getExperienceModel()
{
if (_experienceModel == null)
_experienceModel =
new EnumPropertySelectionModel(
Experience.ALL_VALUES,
getBundle("ExperienceStrings"));
return _experienceModel;
}
public IPropertySelectionModel getLanguageModel()
{
if (_languageModel == null)
_languageModel =
new EnumPropertySelectionModel(Language.ALL_VALUES, getBundle("LanguageStrings"));
return _languageModel;
}
public ResourceBundle getBundle(String name)
{
return ResourceBundle.getBundle(
getClass().getPackage().getName() + "." + name,
getLocale());
}
public void formSubmit(IRequestCycle cycle)
{
List languages = getLanguages();
if (Tapestry.size(languages) == 0)
{
IFormComponent inputLanguages = (IFormComponent) getComponent("inputLanguages");
IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");
delegate.setFormComponent(inputLanguages);
delegate.record(
"You must supply at least one language proficiency.",
ValidationConstraint.REQUIRED);
return;
}
Resume resume = new Resume();
resume.setLanguages(languages);
resume.setExperience(getExperience());
ResumeSummary next = (ResumeSummary)cycle.getPage("ResumeSummary");
next.setResume(resume);
cycle.activate(next);
}
public abstract List getLanguages();
public abstract Experience getExperience();
}
--- NEW FILE: ResumeSummary.java ---
package examples.resume;
import java.util.*;
import org.apache.tapestry.html.BasePage;
public abstract class ResumeSummary extends BasePage
{
public abstract void setResume(Resume resume);
public abstract Resume getResume();
private ResourceBundle _experienceBundle;
private ResourceBundle _languageBundle;
public void finishLoad()
{
_experienceBundle = getBundle("ExperienceStrings");
_languageBundle = getBundle("LanguageStrings");
}
public ResourceBundle getBundle(String name)
{
return ResourceBundle.getBundle(
getClass().getPackage().getName() + "." + name,
getLocale());
}
public String getExperience()
{
Experience experience = getResume().getExperience();
return _experienceBundle.getString(experience.getName());
}
public String getLanguages()
{
StringBuffer buffer = new StringBuffer();
List languages = getResume().getLanguages();
int count = languages.size();
for (int i = 0; i < count; i++)
{
if (i + 1 == count)
buffer.append(" and ");
else
if (i > 0)
buffer.append(", ");
Language language = (Language) languages.get(i);
buffer.append(_languageBundle.getString(language.getName()));
}
return buffer.toString();
}
}
--- NEW FILE: LanguageStrings.properties ---
JAVA=Java
C=C
CSHARP=C#
CPLUSPLUS=C++
PYTHON=Python
PERL=Perl
RUBY=Ruby
VB=Visual Basic
EIFFEL=Eiffel
--- NEW FILE: ExperienceStrings.properties ---
NEWBIE=1-3
JUNIOR=3-5
ASSOCIATE=5-7
SENIOR=7+
-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1