1 /*** 2 * Redistribution and use in source and binary forms, with or without 3 * modification, are permitted provided that the following conditions are 4 * met : 5 * 6 * . Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * 9 * . Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * . The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 * 28 * $Id: OutputView.java,v 1.13 2005/09/10 14:06:21 mat007 Exp $ 29 */ 30 31 package jtge.sample.chat.server.ui; 32 33 import jtge.engine.io.IStatusObserver; 34 import jtge.engine.net.IServerView; 35 import jtge.engine.security.ILoginView; 36 import jtge.engine.user.IUser; 37 import jtge.sample.chat.common.core.IMessageView; 38 import jtge.sample.chat.common.ui.AbstractOutputView; 39 import jtge.sample.chat.server.core.IController; 40 41 /*** 42 * Implements a view for the server output panel. 43 * 44 * @author Mathieu Champlon 45 * @version $Revision: 1.13 $ $Date: 2005/09/10 14:06:21 $ 46 */ 47 public class OutputView extends AbstractOutputView implements IStatusObserver, IServerView, IMessageView, ILoginView 48 { 49 private static final long serialVersionUID = -1300240249876310135L; 50 51 /*** 52 * Create an output view. 53 * 54 * @param controller the controller 55 */ 56 public OutputView( final IController controller ) 57 { 58 if( controller == null ) 59 throw new IllegalArgumentException( "argument 'controller' is null" ); 60 controller.register( (ILoginView)this ); 61 controller.register( (IStatusObserver)this ); 62 controller.register( (IMessageView)this ); 63 controller.register( (IServerView)this ); 64 } 65 66 /*** 67 * {@inheritDoc} 68 */ 69 public final void opened() 70 { 71 log( "server started" ); 72 } 73 74 /*** 75 * {@inheritDoc} 76 */ 77 public final void closed() 78 { 79 log( "server closed" ); 80 } 81 82 /*** 83 * {@inheritDoc} 84 */ 85 public final void connected() 86 { 87 log( "client connected" ); 88 } 89 90 /*** 91 * {@inheritDoc} 92 */ 93 public final void disconnected() 94 { 95 log( "client disconnected" ); 96 } 97 98 /*** 99 * {@inheritDoc} 100 */ 101 public final void receive( final IUser user, final String message ) 102 { 103 log( user.getIdentifier() + " : " + message ); 104 } 105 106 /*** 107 * {@inheritDoc} 108 */ 109 public final void login( final IUser user ) 110 { 111 log( user.getIdentifier() + " logged in" ); 112 } 113 114 /*** 115 * {@inheritDoc} 116 */ 117 public final void logout( final IUser user ) 118 { 119 log( user.getIdentifier() + " logged out" ); 120 } 121 }