Restructured MiCasaClient such that it could be extended for games that
need a custom (extended) client context. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@876 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: MiCasaApp.java,v 1.4 2001/11/26 23:46:47 mdb Exp $
|
// $Id: MiCasaApp.java,v 1.5 2002/01/19 04:02:11 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.micasa.client;
|
package com.threerings.micasa.client;
|
||||||
|
|
||||||
@@ -27,7 +27,21 @@ public class MiCasaApp
|
|||||||
_frame = new MiCasaFrame();
|
_frame = new MiCasaFrame();
|
||||||
|
|
||||||
// create our client instance
|
// create our client instance
|
||||||
_client = new MiCasaClient(_frame);
|
String cclass = System.getProperty("client");
|
||||||
|
if (cclass == null) {
|
||||||
|
cclass = MiCasaClient.class.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
_client = (MiCasaClient)Class.forName(cclass).newInstance();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to instantiate client class " +
|
||||||
|
"[cclass=" + cclass + "].");
|
||||||
|
Log.logStackTrace(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// initialize our client instance
|
||||||
|
_client.init(_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run ()
|
public void run ()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: MiCasaClient.java,v 1.7 2001/12/20 01:10:51 shaper Exp $
|
// $Id: MiCasaClient.java,v 1.8 2002/01/19 04:02:11 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.micasa.client;
|
package com.threerings.micasa.client;
|
||||||
|
|
||||||
@@ -26,29 +26,24 @@ import com.threerings.micasa.util.MiCasaContext;
|
|||||||
/**
|
/**
|
||||||
* The MiCasa client takes care of instantiating all of the proper
|
* The MiCasa client takes care of instantiating all of the proper
|
||||||
* managers and loading up all of the necessary configuration and getting
|
* managers and loading up all of the necessary configuration and getting
|
||||||
* the client bootstrapped.
|
* the client bootstrapped. It can be extended by games that require an
|
||||||
|
* extended context implementation.
|
||||||
*/
|
*/
|
||||||
public class MiCasaClient
|
public class MiCasaClient
|
||||||
implements Client.Invoker
|
implements Client.Invoker
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Creates a new client and provides it with a frame in which to
|
* Initializes a new client and provides it with a frame in which to
|
||||||
* display everything.
|
* display everything.
|
||||||
*/
|
*/
|
||||||
public MiCasaClient (MiCasaFrame frame)
|
public void init (MiCasaFrame frame)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
// create our context
|
// create our context
|
||||||
_ctx = new MiCasaContextImpl();
|
_ctx = createContextImpl();
|
||||||
|
|
||||||
// create the handles on our various services
|
// create the directors/managers/etc. provided by the context
|
||||||
_config = new Config();
|
createContextServices();
|
||||||
_client = new Client(null, this);
|
|
||||||
|
|
||||||
// create our managers and directors
|
|
||||||
_locdir = new LocationDirector(_ctx);
|
|
||||||
_occmgr = new OccupantManager(_ctx);
|
|
||||||
_pardtr = new ParlorDirector(_ctx);
|
|
||||||
|
|
||||||
// for test purposes, hardcode the server info
|
// for test purposes, hardcode the server info
|
||||||
_client.setServer("bering", 4007);
|
_client.setServer("bering", 4007);
|
||||||
@@ -79,6 +74,36 @@ public class MiCasaClient
|
|||||||
return _ctx;
|
return _ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the {@link MiCasaContext} implementation that will be
|
||||||
|
* passed around to all of the client code. Derived classes may wish
|
||||||
|
* to override this and create some extended context implementation.
|
||||||
|
*/
|
||||||
|
protected MiCasaContext createContextImpl ()
|
||||||
|
{
|
||||||
|
return new MiCasaContextImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates and initializes the various services that are provided by
|
||||||
|
* the context. Derived classes that provide an extended context
|
||||||
|
* should override this method and create their own extended
|
||||||
|
* services. They should be sure to call
|
||||||
|
* <code>super.createContextServices</code>.
|
||||||
|
*/
|
||||||
|
protected void createContextServices ()
|
||||||
|
throws IOException
|
||||||
|
{
|
||||||
|
// create the handles on our various services
|
||||||
|
_config = new Config();
|
||||||
|
_client = new Client(null, this);
|
||||||
|
|
||||||
|
// create our managers and directors
|
||||||
|
_locdir = new LocationDirector(_ctx);
|
||||||
|
_occmgr = new OccupantManager(_ctx);
|
||||||
|
_pardtr = new ParlorDirector(_ctx);
|
||||||
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
public void invokeLater (Runnable run)
|
public void invokeLater (Runnable run)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user