001 package com.croftsoft.core.gui.controller; 002 003 import com.croftsoft.core.lang.NullArgumentException; 004 005 /********************************************************************* 006 * Relays user input events and updates to a delegate Controller. 007 * 008 * @version 009 * $Date: 2008/04/19 21:27:13 $ 010 * @since 011 * 2005-08-08 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 *********************************************************************/ 015 016 public class RelayController 017 extends NilController 018 ////////////////////////////////////////////////////////////////////// 019 ////////////////////////////////////////////////////////////////////// 020 { 021 022 private Controller delegateController; 023 024 ////////////////////////////////////////////////////////////////////// 025 ////////////////////////////////////////////////////////////////////// 026 027 public RelayController ( Controller delegateController ) 028 ////////////////////////////////////////////////////////////////////// 029 { 030 setDelegateController ( delegateController ); 031 } 032 033 public RelayController ( ) 034 ////////////////////////////////////////////////////////////////////// 035 { 036 this ( NilController.INSTANCE ); 037 } 038 039 ////////////////////////////////////////////////////////////////////// 040 ////////////////////////////////////////////////////////////////////// 041 042 public Controller getDelegateController ( ) 043 ////////////////////////////////////////////////////////////////////// 044 { 045 return delegateController; 046 } 047 048 /********************************************************************* 049 * @return 050 * 051 * The old delegate Controller. 052 *********************************************************************/ 053 public Controller setDelegateController ( 054 Controller delegateController ) 055 ////////////////////////////////////////////////////////////////////// 056 { 057 final Controller oldDelegateController = this.delegateController; 058 059 NullArgumentException.check ( 060 this.delegateController = delegateController ); 061 062 return oldDelegateController; 063 } 064 065 ////////////////////////////////////////////////////////////////////// 066 ////////////////////////////////////////////////////////////////////// 067 068 public void update ( ) 069 ////////////////////////////////////////////////////////////////////// 070 { 071 delegateController.update ( ); 072 } 073 074 ////////////////////////////////////////////////////////////////////// 075 ////////////////////////////////////////////////////////////////////// 076 }