/** * Constructor. * * @param translations Translation service. * @param processControl Console process control. * @param sampleModel Console sample model. * @param logger Logger. */ public TextUI( final Translations translations, final ProcessControl processControl, final SampleModel sampleModel, final Logger logger) { m_logger = logger; m_logger.info(GrinderBuild.getName()); m_shutdownHook = new Thread(new ShutdownHook(translations)); Runtime.getRuntime().addShutdownHook(m_shutdownHook); m_errorHandler = new ErrorHandlerImplementation(); processControl.addProcessStatusListener(new ProcessListener(translations)); m_sampleModel = sampleModel; m_sampleModel.addModelListener( new SampleModel.AbstractListener() { @Override public void stateChanged() { m_logger.info(m_sampleModel.getState().getDescription()); } }); }