gt: 			if(emailIter==null || !emailIter.hasNext()) {
context: /*
   * Created on Apr 7, 2006
   */
  package is.idega.idegaweb.member.isi.block.groups.presentation;
  
  import is.idega.idegaweb.member.isi.block.groups.business.GroupInfoBusiness;
  import is.idega.idegaweb.member.isi.block.groups.business.GroupInfoBusinessBean;
  import java.rmi.RemoteException;
  import java.util.Collection;
  import java.util.Iterator;
  
  import com.idega.core.contact.data.Email;
  import com.idega.core.contact.data.Phone;
  import com.idega.core.contact.data.PhoneType;
  import com.idega.core.location.data.Address;
  import com.idega.idegaweb.IWResourceBundle;
  import com.idega.presentation.Block;
  import com.idega.presentation.IWContext;
  import com.idega.presentation.PresentationObject;
  import com.idega.presentation.PresentationObjectContainer;
  import com.idega.presentation.Table;
  import com.idega.presentation.text.Link;
  import com.idega.presentation.text.Text;
  import com.idega.user.data.Group;
  
  /**
   * Displays info on a group, such as name, address, home page, etc.
   */
  public class GroupInfo extends Block {
  	
  	public static final String IW_BUNDLE_IDENTIFIER = "is.idega.idegaweb.member.isi";
  	public static final String PARAM_NAME_GROUP_ID = "group_id";
  	private IWResourceBundle _iwrb = null;
  	private GroupInfoBusiness _biz = null;
  	
  	private boolean _showName = true;
  	private boolean _showHomePage = false;
  	private boolean _showDescription = false;
  	private boolean _showExtraInfo = false;
  	private boolean _showShortName = false;
  	private boolean _showPhone = false;
  	private boolean _showFax = false;
  	private boolean _showEmails = false;
  	private boolean _showAddress = false;
  	private boolean _showEmptyFields = true;
  	private String _textInfoStyle = "font-family: Arial, Helvetica,sans-serif;font-size: 8pt;color: #000000;";
  	private String _textLabelStyle = "font-family: Arial, Helvetica,sans-serif;font-weight:bold;font-size: 8pt;color: #000000;";
  
  	
  	public void main(IWContext iwc) {
  		this._iwrb = getResourceBundle(iwc);
  		this._biz = GroupInfoBusinessBean.getGroupInfoBusiness(iwc);
  		
  		String groupId = iwc.getParameter(PARAM_NAME_GROUP_ID);
  		Group group = null;
  		if(groupId!=null && groupId.length()>0) {
  			try {
  				group = this._biz.getGroup(iwc, groupId);
  			} catch (RemoteException e) {
  				e.printStackTrace();
  			}
  		}
  		if(group == null) {
  			System.out.println("No group found to display info on");
  		} else {
  			add(getGroupInfo(iwc, group));
  		}
  	}
  	
  	private PresentationObject getGroupInfo(IWContext iwc, Group group) {
  		String phone = "";
  		String fax = "";
  		if(this._showPhone || this._showFax) {
  			Collection phones = group.getPhones();
  			if(phones!=null) {
  				Iterator phoneIter = phones.iterator();
  				while(phoneIter.hasNext()) {
  					Phone phoneObj = (Phone) phoneIter.next();
  					if(phoneObj.getPhoneTypeId() == PhoneType.WORK_PHONE_ID) {
  						phone = emptyIfNull(phoneObj.getNumber());
  					} else if(phoneObj.getPhoneTypeId() == PhoneType.FAX_NUMBER_ID) {
  						fax = emptyIfNull(phoneObj.getNumber());
  					}
  				}
  			}
  		}
  		
  		Table table = new Table();
  		int row = 1;
  		
  		if(this._showName) {
  			String name = group.getName();
  			String nameLabel = this._iwrb.getLocalizedString("name", "Name: ");
  			table.add(nameLabel, 2, row);
  			table.add(name, 3, row++);
  		}
  		if(this._showShortName) {
  			String shortName = emptyIfNull(group.getShortName());
  			if(this._showEmptyFields || (shortName!=null && shortName.length()>0)) {
  				String shortNameLabel = this._iwrb.getLocalizedString("shor_name", "Short name: ");
  				addTextToTable(table, row++, shortNameLabel, shortName);
  			}
  		}
  		if(this._showAddress) {
  			String address = "";
  			try {
  				Address addr = this._biz.getGroupAddress(iwc, group);
  				if(addr!=null) {
  					address = addr.getStreetAddress() + ", " + addr.getPostalCode().getPostalCode() + " " + addr.getCity();
  				}
  			} catch (Exception e) {
  				e.printStackTrace();
  			}
  			
  			if(this._showEmptyFields || (address!=null && address.length()>0)) {
  				String addressLabel = this._iwrb.getLocalizedString("address", "Address: ");
  				addTextToTable(table, row++, addressLabel, address);
  			}
  		}
  		if(this._showPhone) {
  			if(this._showEmptyFields || (phone!=null && phone.length()>0)) {
  				String phoneLabel = this._iwrb.getLocalizedString("phone", "Phone: ");
  				addTextToTable(table, row++, phoneLabel, phone);
  			}
  		}
  		if(this._showFax) {
  			if(this._showEmptyFields || (fax!=null && fax.length()>0)) {
  				String faxLabel = this._iwrb.getLocalizedString("fax", "Fax: ");
  				addTextToTable(table, row++, faxLabel, fax);
  			}
  		}
  		if(this._showHomePage) {
  			String homePageURL = emptyIfNull(group.getHomePageURL());
  			if(this._showEmptyFields || (homePageURL!=null && homePageURL.length()>0)) {
  				String homePageLabel = this._iwrb.getLocalizedString("homepage", "Homepage: ");
  				Link link = new Link();
  				link.setText(homePageURL);
  				link.setURL(homePageURL);
  				addPOToTable(table, row++, homePageLabel, link);
  			}
  		}
  		if(this._showEmails) {
  			PresentationObject emails = getEmailLinkList(group);
  			if(this._showEmptyFields || (emails!=null)) {
  				Text emailsLabel = new Text(this._iwrb.getLocalizedString("email", "Email: "));
  				emailsLabel.setStyle(this._textLabelStyle);
  				table.add(emailsLabel, 2, row);
  				if(emails!=null) {
  					table.add(emails, 3, row++);
  				}
  			}
  		}
  		if(this._showDescription) {
  			String description = emptyIfNull(group.getDescription());
  			if(this._showEmptyFields || (description!=null && description.length()>0)) {
  				String descriptionLabel = this._iwrb.getLocalizedString("description", "Description: ");
  				addTextToTable(table, row++, descriptionLabel, description);
  			}
  		}
  		if(this._showExtraInfo) {
  			String extraInfo = emptyIfNull(group.getExtraInfo());
  			if(this._showEmptyFields || (extraInfo!=null && extraInfo.length()>0)) {
  				String extraInfoLabel = this._iwrb.getLocalizedString("extra_info", "Info: ");
  				addTextToTable(table, row++, extraInfoLabel, extraInfo);
  			}
  		}
  		
  		return table;
  	}
  	
  	/**
  	 * Utility method for adding text to a table
  	 * @param table
  	 * @param row
  	 * @param strLabel
  	 * @param strText
  	 */
  	private void addTextToTable(Table table, int row, String strLabel, String strText) {
  		Text text = new Text(strText);
  		text.setStyle(this._textInfoStyle);
  		Text label = new Text(strLabel);
  		label.setStyle(this._textLabelStyle);
  		table.add(label, 2, row);
  		table.add(text, 3, row);
  	}
  	
  	/**
  	 * Utility method for adding a PresentationObject to a table
  	 * @param table
  	 * @param row
  	 * @param strLabel
  	 * @param po
  	 */
  	private void addPOToTable(Table table, int row, String strLabel, PresentationObject po) {
  		Text label = new Text(strLabel);
  		label.setStyle(this._textLabelStyle);
  		table.add(label, 2, row);
  		table.add(po, 3, row);
  	}
  	
  	private String emptyIfNull(String str) {
  		return str==null?"":str;
  	}
  	
  	/**
  	 * Gets a comma separate list of user's emails, as links
  	 * @param user The user
  	 * @return The user's emails in comma separated list of links
  	 */
  	private PresentationObject getEmailLinkList(Group group) {
  		PresentationObjectContainer container = new PresentationObjectContainer();
  		//int row = 1;
  		try {
  			// @TODO use email list from business bean
  			Iterator emailIter = group.getEmails().iterator();
  