/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.framework.components.taggenerator; import org.mifos.customers.personnel.business.PersonnelBO; import org.mifos.framework.business.AbstractBusinessObject; import org.mifos.framework.struts.tags.MifosTagUtils; public class PersonnelTagGenerator extends TagGenerator { public PersonnelTagGenerator() { setAssociatedGenerator(new OfficeTagGenerator()); } @Override protected StringBuilder build(AbstractBusinessObject obj, Object randomNum) { return build(obj, true, randomNum); } @Override protected StringBuilder build(AbstractBusinessObject obj, boolean selfLinkRequired, Object randomNum) { PersonnelBO personnel = (PersonnelBO) obj; StringBuilder strBuilder = getAssociatedGenerator().build(personnel.getOffice(), randomNum); if (strBuilder == null) { strBuilder = new StringBuilder(); } buildLink(strBuilder, personnel, selfLinkRequired, randomNum); return strBuilder; } private void buildLink(StringBuilder strBuilder, PersonnelBO personnel, boolean selfLinkRequired, Object randomNum) { if (personnel == null) { return; } strBuilder.append(" / "); if (selfLinkRequired) { createPersonnelLink(strBuilder, personnel, randomNum); } else { strBuilder.append("<b>" + MifosTagUtils.xmlEscape(getPersonnelName(personnel)) + "</b>"); } } private void createPersonnelLink(StringBuilder strBuilder, PersonnelBO personnel, Object randomNum) { strBuilder.append("<a href=\""); strBuilder.append(getAction(personnel)); strBuilder.append(personnel.getGlobalPersonnelNum()); strBuilder.append("&randomNum="); strBuilder.append(randomNum); strBuilder.append("\">"); strBuilder.append(MifosTagUtils.xmlEscape(getPersonnelName(personnel))); strBuilder.append("</a>"); } private String getPersonnelName(PersonnelBO personnel) { return personnel.getDisplayName(); } private String getAction(PersonnelBO personnel) { return "PersonAction.do?method=get&globalPersonnelNum="; } }