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