Roster/src/java/org/thdl/roster/pages/forms/MemberData.java

265 lines
7.7 KiB
Java
Executable File

package org.thdl.roster.pages.forms;
import java.util.*;
import org.apache.tapestry.*;
import org.apache.tapestry.html.*;
import org.apache.tapestry.form.*;
import org.apache.tapestry.contrib.palette.SortMode;
import org.apache.torque.*;
import org.apache.torque.om.*;
import org.apache.torque.util.*;
import org.thdl.roster.*;
import org.thdl.roster.om.*;
import org.thdl.roster.pages.*;
public class MemberData extends MemberFormSeries
{
//attributes
// private List selectedMemberTypes;
private IPropertySelectionModel personTypeModel;
private IPropertySelectionModel projectTypeModel;
private IPropertySelectionModel organizationTypeModel;
//accessors
public void setPersonTypeModel(IPropertySelectionModel personTypeModel)
{
this.personTypeModel = personTypeModel;
}
public IPropertySelectionModel getPersonTypeModel()
{
if (personTypeModel == null)
{
setPersonTypeModel( buildPersonTypeModel() );
}
return personTypeModel;
}
public void setProjectTypeModel(IPropertySelectionModel projectTypeModel)
{
this.projectTypeModel = projectTypeModel;
}
public IPropertySelectionModel getProjectTypeModel()
{
if (projectTypeModel == null)
{
setProjectTypeModel( buildProjectTypeModel() );
}
return projectTypeModel;
}
public void setOrganizationTypeModel(IPropertySelectionModel organizationTypeModel)
{
this.organizationTypeModel = organizationTypeModel;
}
public IPropertySelectionModel getOrganizationTypeModel()
{
if (organizationTypeModel == null)
{
setOrganizationTypeModel( buildOrganizationTypeModel() );
}
return organizationTypeModel;
}
/* public List getSelectedMemberTypes()
{
return selectedMemberTypes;
}
public void setSelectedMemberTypes(List selectedMemberTypes)
{
this.selectedMemberTypes = selectedMemberTypes;
}
*/
//helpers
//tapestry listeners
public void processForm(IRequestCycle cycle)
{
Visit visit = (Visit) getVisit();
Member member = (Member) visit.getMember();
if ( member instanceof Person )
{
try
{
Person person = (Person) member;
//don't move this line!
List flatDataIds = person.getPersonData().getPersonTypeIdList();
Integer userId = visit.getThdlUser().getId() ;
person.getPersonData().setThdlUserId( userId );
person.getPersonData().save();
person.setPersonDataKey( member.getPersonData().getPrimaryKey() );
person.save();
Criteria crit = new Criteria();
crit.add( PersonPersonTypePeer.PERSON_DATA_ID, person.getPersonData().getId() );
List torqueObjects = PersonPersonTypePeer.doSelect( crit );
Integer memberDataId = person.getPersonData().getId();
PersonPersonType template = new PersonPersonType();
PaletteMergeTableProcessor.processPalette( flatDataIds, torqueObjects, memberDataId, template );
}
catch ( RosterMemberTypeException rmte )
{
throw new ApplicationRuntimeException( rmte );
}
catch (Exception e)
{
throw new ApplicationRuntimeException( e );
}
}
if ( member instanceof Organization )
{
try
{
Organization organization = (Organization) member;
//don't move this line!
List flatDataIds = organization.getOrganizationData().getOrganizationTypeIdList();
organization.getOrganizationData().save();
organization.setOrganizationDataKey( member.getOrganizationData().getPrimaryKey() );
organization.save();
Criteria crit = new Criteria();
crit.add( OrganizationOrganizationTypePeer.ORGANIZATION_DATA_ID, organization.getOrganizationData().getId() );
List torqueObjects = OrganizationOrganizationTypePeer.doSelect( crit );
Integer memberDataId = organization.getOrganizationData().getId();
OrganizationOrganizationType template = new OrganizationOrganizationType();
PaletteMergeTableProcessor.processPalette( flatDataIds, torqueObjects, memberDataId, template );
}
catch ( RosterMemberTypeException rmte )
{
throw new ApplicationRuntimeException( rmte );
}
catch (Exception e)
{
throw new ApplicationRuntimeException( e );
}
}
if ( member instanceof Project )
{
try
{
Project project = (Project) member;
//don't move this line!
List flatDataIds = project.getProjectData().getProjectTypeIdList();
project.getProjectData().save();
project.setProjectDataKey( member.getProjectData().getPrimaryKey() );
project.save();
Criteria crit = new Criteria();
crit.add( ProjectProjectTypePeer.PROJECT_DATA_ID, project.getProjectData().getId() );
List torqueObjects = ProjectProjectTypePeer.doSelect( crit );
Integer memberDataId = project.getProjectData().getId();
ProjectProjectType template = new ProjectProjectType();
PaletteMergeTableProcessor.processPalette( flatDataIds, torqueObjects, memberDataId, template );
}
catch ( RosterMemberTypeException rmte )
{
throw new ApplicationRuntimeException( rmte );
}
catch (Exception e)
{
throw new ApplicationRuntimeException( e );
}
}
}
public IPropertySelectionModel buildPersonTypeModel()
{
try
{
EntitySelectionModel personTypeModel = new EntitySelectionModel();
Criteria crit = new Criteria();
crit.addAscendingOrderByColumn( PersonTypePeer.PERSON_TYPE );
LinkedList list = new LinkedList( PersonTypePeer.doSelect( crit ) );
PersonType personType;
ListIterator looper = list.listIterator( 0 );
while ( looper.hasNext() )
{
personType = (PersonType) looper.next();
personTypeModel.add( personType.getId(), personType.getPersonType() );
}
return personTypeModel;
}
catch (TorqueException te) {
throw new ApplicationRuntimeException( "Torque Exception says: " + te.getMessage(), te );
}
}
public IPropertySelectionModel buildProjectTypeModel()
{
try
{
EntitySelectionModel projectTypeModel = new EntitySelectionModel();
Criteria crit = new Criteria();
crit.addAscendingOrderByColumn( ProjectTypePeer.PROJECT_TYPE );
LinkedList list = new LinkedList( ProjectTypePeer.doSelect( crit ) );
ProjectType projectType;
ListIterator looper = list.listIterator( 0 );
while ( looper.hasNext() )
{
projectType = (ProjectType) looper.next();
projectTypeModel.add( projectType.getId(), projectType.getProjectType() );
}
return projectTypeModel;
}
catch (TorqueException te) {
throw new ApplicationRuntimeException( "Torque Exception says: " + te.getMessage(), te );
}
}
public IPropertySelectionModel buildOrganizationTypeModel()
{
try
{
EntitySelectionModel organizationTypeModel = new EntitySelectionModel();
Criteria crit = new Criteria();
crit.addAscendingOrderByColumn( OrganizationTypePeer.ORGANIZATION_TYPE );
LinkedList list = new LinkedList( OrganizationTypePeer.doSelect( crit ) );
OrganizationType organizationType;
ListIterator looper = list.listIterator( 0 );
while ( looper.hasNext() )
{
organizationType = (OrganizationType) looper.next();
organizationTypeModel.add( organizationType.getId(), organizationType.getOrganizationType() );
}
return organizationTypeModel;
}
catch (TorqueException te) {
throw new ApplicationRuntimeException( "Torque Exception says: " + te.getMessage(), te );
}
}
public void detach()
{
setNextPage( "Activities" );
super.detach();
}
//constructors
public MemberData()
{
try
{
if ( !Torque.isInit() )
{
Global global = (Global) getGlobal();
Torque.init( global.getTorqueConfig() );
}
}
catch ( TorqueException te )
{
throw new ApplicationRuntimeException( "Torque Exception says: " + te.getMessage(), te );
}
setNextPage( "Activities" );
}
}