/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.delegate.directory.complex;
import beans.directory.enterprise.DirectoryEnterpriseBeanRemote;
import beans.directory.enterprise.EnterpriseDetails;
import cli_fmw.delegate.client.Address;
import cli_fmw.delegate.directory.complex.DirectoryEnterpriseItemAbstract;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import clips.delegate.directory.ro.DirectoryCollaborator;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
/**
* Делегат, предоставляющий доступ к одной строке таблицы Enterprise
* @author ViP
*/
public class DirectoryEnterpriseItem
extends DirectoryEnterpriseItemAbstract<
DirectoryEnterpriseItem,
EnterpriseDetails> {
public DirectoryEnterpriseItem(EnterpriseDetails details) {
super(details);
}
public DirectoryCollaboratorItem getCollaborator() throws ClipsException {
if (getDetails().collaboratorID == 0) {
return null;
}
DirectoryCollaborator directory = DirectoryLocator.getDirectory(DirectoryCollaborator.class, false);
return directory.getItemFromID(getDetails().collaboratorID);
}
/**
* Устанаваливает цехового терапевта
* @param collaborator
* @throws ClipsException
*/
public void setCollaborator(DirectoryCollaboratorItem collaborator) throws ClipsException {
if(isInDirectory()) {
EnterpriseDetails newDetails = getDetailsCopy();
newDetails.collaboratorID = collaborator == null ? 0 : collaborator.getID();
saveDetails(newDetails);
} else {
getDetails().collaboratorID = collaborator.getID();
}
}
/**
* Название предприятия в рекурсивном виде. выдаст несколько строк - сначала
* головное предприятие, под ним подразделения в формате HTML только без
* начального и конечных тегов <HTML></HTML>.
* @param useHtml
* @return
* @throws ClipsException
*/
@Override
public String getFullTitle(boolean useHtml) throws ClipsException {
DirectoryEnterpriseItem superItem = getParent();
if (superItem != null) {
return superItem.getFullTitle(useHtml) + (useHtml ? "<p>" : ". \n") + getTitle() + (useHtml ? "</p>" : "");
} else {
if (getTitle() != null) {
return (useHtml ? "<p>" : "") + getTitle() + (useHtml ? "</p>" : "");
} else {
return "";
}
}
}
}