Create our game configurator directly rather than returning a class and

forcing the caller to instantiate it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3248 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2004-11-27 21:24:33 +00:00
parent 421ed5126e
commit d492d541b3
3 changed files with 13 additions and 15 deletions
@@ -1,5 +1,5 @@
//
// $Id: TableListView.java,v 1.8 2004/08/27 02:12:51 mdb Exp $
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -93,18 +93,14 @@ public class TableListView extends JPanel
_matchList.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
panel.add(new JScrollPane(_matchList));
// create our configurator interface
// create and initialize the configurator interface
GameConfig gconfig = null;
try {
gconfig = config.getGameConfig();
Class cclass = gconfig.getConfiguratorClass();
if (cclass != null) {
// create and initialize the configurator interface
_figger = (GameConfigurator)cclass.newInstance();
_figger = gconfig.createConfigurator();
if (_figger != null) {
_figger.init(_ctx);
// give it the game config
_figger.setGameConfig(gconfig);
// and add the whole business to the main UI
panel.add(_figger, VGroupLayout.FIXED);
}
@@ -24,6 +24,8 @@ package com.threerings.parlor.game;
import com.threerings.crowd.data.PlaceConfig;
import com.threerings.util.Name;
import com.threerings.parlor.client.GameConfigurator;
/**
* The game config class encapsulates the configuration information for a
* particular type of game. The hierarchy of game config objects mimics
@@ -68,12 +70,11 @@ public abstract class GameConfig extends PlaceConfig implements Cloneable
public abstract String getBundleName ();
/**
* Returns the class that should be used to create a user interface
* that can be used to configure this instance prior to starting the
* game. The configurator class must derive from {@link
* GameConfigurator}.
* Creates a configurator that can be used to create a user interface
* for configuring this instance prior to starting the game. If no
* configuration is necessary, this method should return null.
*/
public abstract Class getConfiguratorClass ();
public abstract GameConfigurator createConfigurator ();
/**
* Returns an array of strings that describe the configuration of this
@@ -1,5 +1,5 @@
//
// $Id: TestConfig.java,v 1.6 2004/08/27 02:21:02 mdb Exp $
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -21,6 +21,7 @@
package com.threerings.parlor;
import com.threerings.parlor.client.GameConfigurator;
import com.threerings.parlor.game.GameConfig;
public class TestConfig extends GameConfig
@@ -28,7 +29,7 @@ public class TestConfig extends GameConfig
/** The foozle parameter. */
public int foozle;
public Class getConfiguratorClass ()
public GameConfigurator createConfigurator ()
{
return null;
}