/* Name: - CompanyDataSheet_BaseDataView Description: - Requires: - Provides: - Part of: ProcessPuzzle Framework, Domain and Business Model Ready Architecture. Provides content, workflow and social networking functionality. http://www.processpuzzle.com ProcessPuzzle - Content and Workflow Management Integration Business Platform Author(s): - Zsolt Zsuffa Copyright: (C) 2011 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.processpuzzle.party.artifact; import java.util.Collection; import com.processpuzzle.address.artifact.SettlementDataSheet; import com.processpuzzle.address.artifact.SettlementDataSheetRepository; import com.processpuzzle.address.domain.Settlement; import com.processpuzzle.address.domain.ZipCode; import com.processpuzzle.address.domain.ZipCodeRepository; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.artifact.domain.CustomFormView; import com.processpuzzle.artifact_type.domain.ArtifactViewType; import com.processpuzzle.party.domain.AddressFactory; import com.processpuzzle.party.domain.GeographicAddress; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; public class CompanyDataSheet_BaseDataView extends CustomFormView<CompanyDataSheet> { private String settlementDataSheetId; private String zipCodeId; private String street = ""; private String buildingNumber = ""; private AddressFactory addressFactory; // Constructors protected CompanyDataSheet_BaseDataView() { super( null, null, null ); addressFactory = applicationContext.getEntityFactory( AddressFactory.class ); } public CompanyDataSheet_BaseDataView( CompanyDataSheet artifact, String name, ArtifactViewType type ) { super( artifact, name, type ); } public String getAdministrator() { return parentArtifact.getAdministrator(); } public String getAdminPhone() { return parentArtifact.getAdminPhone(); } public String getBuildingNumber() { return parentArtifact.getBuildingNumber(); } public String getCompanyName() { return parentArtifact.getCompanyName(); } public String getCompanyShortName() { return parentArtifact.getCompanyShortName(); } public String getCountry() { return parentArtifact.getCountry(); } public Collection<ZipCode> getDefaultSettlementsZipCodes() { return parentArtifact.getDefaultSettlementsZipCodes(); } public SettlementDataSheet getSettlementDataSheet() { return parentArtifact.getSettlementDataSheet(); } public String getStreet() { return parentArtifact.getStreet(); } public String getTelecomAddress() { return parentArtifact.getTelecomAddress(); } public String getTradeRegisterNumber() { return parentArtifact.getTradeRegisterNumber(); } public String getTaxNumber() { return parentArtifact.getTaxNumber(); } public String getWebPageAddress() { return parentArtifact.getWebPageAddress(); } public ZipCode getZipCode() { return parentArtifact.getZipCode(); } @Override public void initializeView() { // TODO Auto-generated method stub } public void performAction() { DefaultUnitOfWork work = new DefaultUnitOfWork( true ); if( ((CompanyDataSheet) parentArtifact).getCompany().getDefaultGeographicAddress() == null ){ SettlementDataSheetRepository settlementDataSheetRepository = applicationContext.getRepository( SettlementDataSheetRepository.class ); Settlement settlement = null; if( this.settlementDataSheetId != null ){ settlement = settlementDataSheetRepository.findById( work, new Integer( this.settlementDataSheetId ) ).getSettlement(); } ZipCode zipCode = null; if( this.zipCodeId != null ){ ZipCodeRepository zipCodeRepository = (ZipCodeRepository) ProcessPuzzleContext.getInstance().getRepository( ZipCodeRepository.class ); zipCode = zipCodeRepository.findZipCodeById( work, new Integer( this.zipCodeId ) ); } GeographicAddress geo = null; if( settlement != null && zipCode != null ){ geo = addressFactory.createGeographicAddress( this.street, this.buildingNumber, zipCode, settlement ); geo.setIsDefault( true ); ((CompanyDataSheet) parentArtifact).getCompany().addAddress( geo ); } } work.finish(); } public void setAdministrator( String administrator ) { parentArtifact.getCompany().setAdministrator( administrator ); } public void setAdminPhone( String adminPhone ) { parentArtifact.getCompany().setAdminPhone( adminPhone ); } public void setBuildingNumber( String buildingNumber ) { parentArtifact.setBuildingNumber( buildingNumber ); } public void setCompanyName( String name ) { parentArtifact.renameName( name ); } public void setCompanyShortName( String name ) { parentArtifact.getCompany().setShortName( name ); } public void setCountry( String country ) { parentArtifact.setCountry( country ); } public void setSettlementDataSheet( String settlementDataSheetId ) { parentArtifact.setSettlementDataSheet( settlementDataSheetId ); } public void setStreet( String street ) { parentArtifact.setStreet( street ); } public void setTelecomAddress( String telecomAddress ) { parentArtifact.setTelecomAddress( telecomAddress ); } public void setTradeRegisterNumber( String tradeRegisterNumber ) { parentArtifact.getCompany().setTradeRegisterNumber( tradeRegisterNumber ); } public void setTaxNumber( String taxNumber ) { parentArtifact.getCompany().setTaxNumber( taxNumber ); } public void setZipCode( String zipCodeId ) { parentArtifact.setZipCode( zipCodeId ); } public void setWebPageAddress( String webPageAddress ) { parentArtifact.setWebPageAddress( webPageAddress ); } }