gt: 		contextMenus = new ContextMenus();
context: // This code was generated by Barbara Worwood using IMS Development Environment (version 1.80 build 5007.25751)
  // Copyright (C) 1995-2014 IMS MAXIMS. All rights reserved.
  // WARNING: DO NOT MODIFY the content of this file
  
  package ims.RefMan.forms.callattempts;
  
  import ims.framework.*;
  import ims.framework.controls.*;
  import ims.framework.enumerations.*;
  import ims.framework.utils.RuntimeAnchoring;
  
  public class GenForm extends FormBridge
  {
  	private static final long serialVersionUID = 1L;
  
  	public boolean canProvideData(IReportSeed[] reportSeeds)
  	{
  		return new ReportDataProvider(reportSeeds, this.getFormReportFields()).canProvideData();
  	}
  	public boolean hasData(IReportSeed[] reportSeeds)
  	{
  		return new ReportDataProvider(reportSeeds, this.getFormReportFields()).hasData();
  	}
  	public IReportField[] getData(IReportSeed[] reportSeeds)
  	{
  		return getData(reportSeeds, false);
  	}
  	public IReportField[] getData(IReportSeed[] reportSeeds, boolean excludeNulls)
  	{
  		return new ReportDataProvider(reportSeeds, this.getFormReportFields(), excludeNulls).getData();
  	}
  	public static class cmbCallerComboBox extends ComboBoxBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		public void newRow(ims.core.vo.MemberOfStaffLiteVo value, String text)
  		{
  			super.control.newRow(value, text);
  		}
  		public void newRow(ims.core.vo.MemberOfStaffLiteVo value, String text, ims.framework.utils.Image image)
  		{
  			super.control.newRow(value, text, image);
  		}
  		public void newRow(ims.core.vo.MemberOfStaffLiteVo value, String text, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, textColor);
  		}
  		public void newRow(ims.core.vo.MemberOfStaffLiteVo value, String text, ims.framework.utils.Image image, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, image, textColor);
  		}
  		public boolean removeRow(ims.core.vo.MemberOfStaffLiteVo value)
  		{
  			return super.control.removeRow(value);
  		}
  		public ims.core.vo.MemberOfStaffLiteVo getValue()
  		{
  			return (ims.core.vo.MemberOfStaffLiteVo)super.control.getValue();
  		}
  		public void setValue(ims.core.vo.MemberOfStaffLiteVo value)
  		{
  			super.control.setValue(value);
  		}
  	}
  	public static class cmbReasonComboBox extends ComboBoxBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		public void newRow(ims.RefMan.vo.lookups.CallPurpose value, String text)
  		{
  			super.control.newRow(value, text);
  		}
  		public void newRow(ims.RefMan.vo.lookups.CallPurpose value, String text, ims.framework.utils.Image image)
  		{
  			super.control.newRow(value, text, image);
  		}
  		public void newRow(ims.RefMan.vo.lookups.CallPurpose value, String text, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, textColor);
  		}
  		public void newRow(ims.RefMan.vo.lookups.CallPurpose value, String text, ims.framework.utils.Image image, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, image, textColor);
  		}
  		public boolean removeRow(ims.RefMan.vo.lookups.CallPurpose value)
  		{
  			return super.control.removeRow(value);
  		}
  		public ims.RefMan.vo.lookups.CallPurpose getValue()
  		{
  			return (ims.RefMan.vo.lookups.CallPurpose)super.control.getValue();
  		}
  		public void setValue(ims.RefMan.vo.lookups.CallPurpose value)
  		{
  			super.control.setValue(value);
  		}
  	}
  	public static class cmbServiceComboBox extends ComboBoxBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		public void newRow(ims.core.vo.ServiceLiteVo value, String text)
  		{
  			super.control.newRow(value, text);
  		}
  		public void newRow(ims.core.vo.ServiceLiteVo value, String text, ims.framework.utils.Image image)
  		{
  			super.control.newRow(value, text, image);
  		}
  		public void newRow(ims.core.vo.ServiceLiteVo value, String text, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, textColor);
  		}
  		public void newRow(ims.core.vo.ServiceLiteVo value, String text, ims.framework.utils.Image image, ims.framework.utils.Color textColor)
  		{
  			super.control.newRow(value, text, image, textColor);
  		}
  		public boolean removeRow(ims.core.vo.ServiceLiteVo value)
  		{
  			return super.control.removeRow(value);
  		}
  		public ims.core.vo.ServiceLiteVo getValue()
  		{
  			return (ims.core.vo.ServiceLiteVo)super.control.getValue();
  		}
  		public void setValue(ims.core.vo.ServiceLiteVo value)
  		{
  			super.control.setValue(value);
  		}
  	}
  	public static class grdCallsRow extends GridRowBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		protected grdCallsRow(GridRow row)
  		{
  			super(row);
  		}
  		public void showOpened(int column)
  		{
  			super.row.showOpened(column);
  		}
  		public void setColDateTimeReadOnly(boolean value)
  		{
  			super.row.setReadOnly(0, value);
  		}
  		public boolean isColDateTimeReadOnly()
  		{
  			return super.row.isReadOnly(0);
  		}
  		public void showColDateTimeOpened()
  		{
  			super.row.showOpened(0);
  		}
  		public String getColDateTime()
  		{
  			return (String)super.row.get(0);
  		}
  		public void setColDateTime(String value)
  		{
  			super.row.set(0, value);
  		}
  		public void setCellColDateTimeTooltip(String value)
  		{
  			super.row.setTooltip(0, value);
  		}
  		public void setColServiceReadOnly(boolean value)
  		{
  			super.row.setReadOnly(1, value);
  		}
  		public boolean isColServiceReadOnly()
  		{
  			return super.row.isReadOnly(1);
  		}
  		public void showColServiceOpened()
  		{
  			super.row.showOpened(1);
  		}
  		public String getColService()
  		{
  			return (String)super.row.get(1);
  		}
  		public void setColService(String value)
  		{
  			super.row.set(1, value);
  		}
  		public void setCellColServiceTooltip(String value)
  		{
  			super.row.setTooltip(1, value);
  		}
  		public void setColReasonReadOnly(boolean value)
  		{
  			super.row.setReadOnly(2, value);
  		}
  		public boolean isColReasonReadOnly()
  		{
  			return super.row.isReadOnly(2);
  		}
  		public void showColReasonOpened()
  		{
  			super.row.showOpened(2);
  		}
  		public String getColReason()
  		{
  			return (String)super.row.get(2);
  		}
  		public void setColReason(String value)
  		{
  			super.row.set(2, value);
  		}
  		public void setCellColReasonTooltip(String value)
  		{
  			super.row.setTooltip(2, value);
  		}
  		public ims.RefMan.vo.AppointmentCallAttemptsVo getValue()
  		{
  			return (ims.RefMan.vo.AppointmentCallAttemptsVo)super.row.getValue();
  		}
  		public void setValue(ims.RefMan.vo.AppointmentCallAttemptsVo value)
  		{
  			super.row.setValue(value);
  		}
  	}
  	public static class grdCallsRowCollection extends GridRowCollectionBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		private grdCallsRowCollection(GridRowCollection collection)
  		{
  			super(collection);
  		}
  		public grdCallsRow get(int index)
  		{
  			return new grdCallsRow(super.collection.get(index));
  		}
  		public grdCallsRow newRow()
  		{
  			return new grdCallsRow(super.collection.newRow());
  		}
  		public grdCallsRow newRow(boolean autoSelect)
  		{
  			return new grdCallsRow(super.collection.newRow(autoSelect));
  		}
  		public grdCallsRow newRowAt(int index)
  		{
  			return new grdCallsRow(super.collection.newRowAt(index));
  		}
  		public grdCallsRow newRowAt(int index, boolean autoSelect)
  		{
  			return new grdCallsRow(super.collection.newRowAt(index, autoSelect));
  		}
  	}
  	public static class grdCallsGrid extends GridBridge
  	{
  		private static final long serialVersionUID = 1L;
  		
  		private void addStringColumn(String caption, int captionAlignment, int alignment, int width, boolean readOnly, boolean bold, int sortOrder, int maxLength, boolean canGrow, ims.framework.enumerations.CharacterCasing casing)
  		{
  			super.grid.addStringColumn(caption, captionAlignment, alignment, width, readOnly, bold, sortOrder, maxLength, canGrow, casing);
  		}
  		public ims.RefMan.vo.AppointmentCallAttemptsVoCollection getValues()
  		{
  			ims.RefMan.vo.AppointmentCallAttemptsVoCollection listOfValues = new ims.RefMan.vo.AppointmentCallAttemptsVoCollection();
  			for(int x = 0; x < this.getRows().size(); x++)
  			{
  				listOfValues.add(this.getRows().get(x).getValue());
  			}
  			return listOfValues;
  		}
  		public ims.RefMan.vo.AppointmentCallAttemptsVo getValue()
  		{
  			return (ims.RefMan.vo.AppointmentCallAttemptsVo)super.grid.getValue();
  		}
  		public void setValue(ims.RefMan.vo.AppointmentCallAttemptsVo value)
  		{
  			super.grid.setValue(value);
  		}
  		public grdCallsRow getSelectedRow()
  		{
  			return super.grid.getSelectedRow() == null ? null : new grdCallsRow(super.grid.getSelectedRow());
  		}
  		public int getSelectedRowIndex()
  		{
  			return super.grid.getSelectedRowIndex();
  		}
  		public grdCallsRowCollection getRows()
  		{
  			return new grdCallsRowCollection(super.grid.getRows());
  		}
  		public grdCallsRow getRowByValue(ims.RefMan.vo.AppointmentCallAttemptsVo value)
  		{
  			GridRow row = super.grid.getRowByValue(value);
  			return row == null?null:new grdCallsRow(row);
  		}
  		public void setColDateTimeHeaderTooltip(String value)
  		{
  			super.grid.setColumnHeaderTooltip(0, value);
  		}
  		public String getColDateTimeHeaderTooltip()
  		{
  			return super.grid.getColumnHeaderTooltip(0);
  		}
  		public void setColServiceHeaderTooltip(String value)
  		{
  			super.grid.setColumnHeaderTooltip(1, value);
  		}
  		public String getColServiceHeaderTooltip()
  		{
  			return super.grid.getColumnHeaderTooltip(1);
  		}
  		public void setColReasonHeaderTooltip(String value)
  		{
  			super.grid.setColumnHeaderTooltip(2, value);
  		}
  		public String getColReasonHeaderTooltip()
  		{
  			return super.grid.getColumnHeaderTooltip(2);
  		}
  	}
  	private void validateContext(ims.framework.Context context)
  	{
  		if(context == null)
  			return;
  		if(!context.isValidContextType(ims.RefMan.vo.CatsReferralRefVo.class))
  			throw new ims.framework.exceptions.CodingRuntimeException("The type 'ims.RefMan.vo.CatsReferralRefVo' of the global context variable 'RefMan.CatsReferral' is not supported.");
  		if(!context.isValidContextType(Boolean.class))
  			throw new ims.framework.exceptions.CodingRuntimeException("The type 'Boolean' of the global context variable 'RefMan.IsProviderCancellation' is not supported.");
  	}
  	private void validateMandatoryContext(Context context)
  	{
  		if(new ims.framework.ContextVariable("RefMan.CatsReferral", "_cvp_RefMan.CatsReferral").getValueIsNull(context))
  			throw new ims.framework.exceptions.FormMandatoryContextMissingException("The required context data 'RefMan.CatsReferral' is not available.");
  	}
  	public boolean supportsRecordedInError()
  	{
  		return true;
  	}
  	public ims.vo.ValueObject getRecordedInErrorVo()
  	{
  		return this.getLocalContext().getSelectedRecord();
  	}
  	protected void setContext(FormLoader loader, Form form, ims.framework.interfaces.IAppForm appForm, UIFactory factory, Context context) throws Exception
  	{
  		setContext(loader, form, appForm, factory, context, Boolean.FALSE, new Integer(0), null, null, new Integer(0));
  	}
  	protected void setContext(FormLoader loader, Form form, ims.framework.interfaces.IAppForm appForm, UIFactory factory, Context context, Boolean skipContextValidation) throws Exception
  	{
  		setContext(loader, form, appForm, factory, context, skipContextValidation, new Integer(0), null, null, new Integer(0));
  	}
  	protected void setContext(FormLoader loader, Form form, ims.framework.interfaces.IAppForm appForm, UIFactory factory, ims.framework.Context context, Boolean skipContextValidation, Integer startControlID, ims.framework.utils.SizeInfo runtimeSize, ims.framework.Control control, Integer startTabIndex) throws Exception
  	{
  		if(loader == null); // this is to avoid eclipse warning only.
  		if(factory == null); // this is to avoid eclipse warning only.
  		if(runtimeSize == null); // this is to avoid eclipse warning only.
  		if(appForm == null)
  			throw new RuntimeException("Invalid application form");
  		if(startControlID == null)
  			throw new RuntimeException("Invalid startControlID");
  		if(control == null); // this is to avoid eclipse warning only.
  		if(startTabIndex == null)
  			throw new RuntimeException("Invalid startTabIndex");
  		this.context = context;
  		this.componentIdentifier = startControlID.toString();
  		this.formInfo = form.getFormInfo();
  		this.globalContext = new GlobalContext(context);
  	
  		if(skipContextValidation == null || !skipContextValidation.booleanValue())
  		{
  			validateContext(context);
  			validateMandatoryContext(context);
  		}
  	
  		super.setContext(form);
  
  		ims.framework.utils.SizeInfo designSize = new ims.framework.utils.SizeInfo(648, 536);
  		if(runtimeSize == null)
  			runtimeSize = designSize;
  		form.setWidth(runtimeSize.getWidth());
  		form.setHeight(runtimeSize.getHeight());
  		super.setGlobalContext(ContextBridgeFlyweightFactory.getInstance().create(GlobalContextBridge.class, context, false));
  		super.setLocalContext(new LocalContext(context, form.getFormInfo(), componentIdentifier));
  
  		// Context Menus
  