<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-lazy-init="true">
	<import resource="com.apldbio.sds.aztec.jide.actions.xml"/>
	<import resource="com.apldbio.sds.aztec.diagactions.bean-config.xml" />

	<!-- global actions      -->
	
	<bean id="root-frame" class="com.apldbio.sds.aztec.jide.mainframe.MainFrame" singleton="true">
	</bean>
	
	<bean id="blocker" class="com.apldbio.sds.aztec.jide.Blocker" singleton="true">
	</bean>
	
	<!-- TODO: stack overflow if placed in the actions.xml -->
	<bean id="blankExperimentAction"
		class="com.apldbio.sds.platform.actions.BlankExperimentAction"
		singleton="true">
		<property name="name">
			<value>New Blank Experiment...
			</value>
		</property>
		<property name="accelerator">
			<value>control B
			</value>
		</property>
		<property name="mnemonic">
			<value>B
			</value>
		</property>
	</bean>
	
	<bean id="wizardExperimentAction"
		class="com.apldbio.sds.platform.actions.WizardExperimentAction"
		singleton="true">
		<property name="name">
			<value>New Experiment Wizard...
			</value>
		</property>
		<property name="accelerator">
			<value>control W
			</value>
		</property>
		<property name="mnemonic">
			<value>W
			</value>
		</property>
	</bean>
	
	<!-- status -->
	<bean id="progressStatus" class="com.jidesoft.status.ProgressStatusBarItem"
		singleton="true">
	</bean>
	<bean id="connectionStatus" class="com.jidesoft.status.LabelStatusBarItem"
		singleton="true">
		<constructor-arg type="java.lang.String">
			<value>connectionStatus
			</value>
		</constructor-arg>
	</bean>
	
	<!-- others -->
	<bean id="environment" class="com.apldbio.sds.platform.framework.impl.EclipseEnvironment"
		singleton="true">
	</bean>
	<bean id="statusBar" class="com.apldbio.sds.platform.framework.impl.JideStatusBar"
		singleton="true">
	</bean>
	
	<bean id="postShowCommands" class="com.apldbio.sds.platform.chain.SpringChain"
		singleton="true">
		<property name="commands">
			<list>
				<bean class="com.apldbio.sds.platform.application.startup.AutoConnectTask"
					singleton="true">
				</bean>
				<bean class="com.apldbio.sds.platform.application.startup.AutoRunRnasePExperimentTask"
					singleton="true">
				</bean>
			</list>
		</property>
	</bean>

	<bean id="pre-startup-update" class="com.apldbio.sds.platform.application.startup.UpdateController"
		singleton="true">
	</bean>

	<bean id="startup-controller" class="com.apldbio.sds.platform.application.startup.StartupController"
		singleton="true">
		<property name="startupUI">
			<ref bean="startup-ui"/>
		</property>
	</bean>
	
	<bean id="post-startup-controller" class="com.apldbio.sds.platform.application.startup.PostStartupController"
		singleton="true">
		<property name="calibFactoryManager">
			<ref bean="calibFactoryManager" />
		</property>
	</bean>

	<!-- Original Startup UI now becomes obsolete
	<bean id="startup-ui" class="com.apldbio.sds.platform.application.startup.StartupGUI"
		singleton="true">
	</bean>
	-->
	
	<!-- New Startup UI from AB Branding Team! -->
	<bean id="startup-ui" class="com.apldbio.sds.platform.application.startup.BrandedStartupGUI"
		singleton="true">
	</bean>

	<bean id="connect-task" class="com.apldbio.sds.platform.application.startup.AutoConnectTask"
		singleton="true">
	</bean>
	
	<bean id="run-rnasep-task" class="com.apldbio.sds.platform.application.startup.AutoRunRnasePExperimentTask"
		singleton="true">
	</bean>
	
	<bean id="run-thetaCalibration-task" class="com.apldbio.sds.platform.application.startup.CheckCalibrationTask"
		singleton="true">
		<property name="calibrationController">
			<ref bean="StepOneThetaCalibrationController"/>
		</property>
	</bean>

	<bean id="run-backgroundCalibration-task" class="com.apldbio.sds.platform.application.startup.CheckCalibrationTask"
		singleton="true">
		<property name="calibrationController">
			<ref bean="StepOneBackgroundCalibrationController"/>
		</property>
	</bean>	
	
	<bean id="run-pureDyeCalibration-task" class="com.apldbio.sds.platform.application.startup.CheckCalibrationTask"
		singleton="true">
		<property name="calibrationController">
			<ref bean="StepOnePureDyeCalibrationController"/>
		</property>
	</bean>	

	<bean id="calibrationInterval" class="com.apldbio.sds.platform.calibration.CalibrationIntervalController">
	<!-- The properties are loaded statically in CalibrationIntervalController by the class from file calibration.properties,
		they should be loaded here -->
		<property name="properties">
			<map/>
		</property>
	</bean>
	
	<!-- Replaced with AutoRunRnasePExperimentTask
	<bean id="run-rnasep-task" class="com.apldbio.sds.platform.application.startup.CheckCalibrationTask"
		singleton="true">
		<property name="calibrationController">
			<ref bean="RNasePCalibrationController"/>
		</property>
	</bean>		
	-->
</beans>