/*
Milenia Grafter Server
Copyright (c) 2007-2008 by Milan Toth. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package application;
/**
Application class
@mail milgra@milgra.com
@author Milan Toth
@version 20080316
Tasks of Admincontroller
- listen for invokes
- dispatch server state to client
**/
import com.milgra.server.api.Client;
import com.milgra.server.api.WrapperList;
import com.milgra.server.api.InvokeEvent;
import com.milgra.server.api.EventListener;
public class AdminController
{
public Client client;
public Application parent;
public EventListener invokeListener;
/**
* Creates a new AdminController instance
* @param clientX client
* @param parentX parent
*/
public AdminController ( Client clientX , Application parentX )
{
// System.out.println( System.currentTimeMillis() + " " + clientX.id + " AdminController.construct" );
invokeListener = new EventListener ( ) { public void onEvent ( InvokeEvent eventX ) { onInvoke ( eventX ); } };
parent = parentX;
client = clientX;
client.addInvokeEventListener( invokeListener );
}
/**
* Invoke from client
* @param eventX invoke event
*/
public void onInvoke ( InvokeEvent eventX )
{
// System.out.println( System.currentTimeMillis() + " " + client.getId( ) + " AdminController.onInvoke " + eventX.id );
if ( eventX.id.equals( "load" ) ) parent.loadApplication( eventX.arguments.getString( 0 ) ); else
if ( eventX.id.equals( "unload" ) ) parent.loadApplication( eventX.arguments.getString( 0 ) ); else
if ( eventX.id.equals( "refresh" ) ) parent.refreshApplications( );
}
/**
* Updates exchange data
* @param classX
* @param dataX
*/
public void updateData ( WrapperList dataX )
{
// System.out.println( System.currentTimeMillis() + " " + client.getId( ) + " AdminController.updateData" );
client.call( "updateData" , dataX );
}
}