Finally broke down and changed createPlaceView() to eliminate the annoying
potential fuckola of being called before the controller gets around to initializing the casted context it almost certainly needs to create its place view. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3440 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -57,7 +57,7 @@ public abstract class PlaceController extends Controller
|
||||
_config = config;
|
||||
|
||||
// create our user interface
|
||||
_view = createPlaceView();
|
||||
_view = createPlaceView(_ctx);
|
||||
|
||||
// initialize our delegates
|
||||
applyToDelegates(new DelegateOp() {
|
||||
@@ -101,8 +101,25 @@ public abstract class PlaceController extends Controller
|
||||
* Creates the user interface that will be used to display this place.
|
||||
* The view instance returned will later be configured with the place
|
||||
* object, once it becomes available.
|
||||
*
|
||||
* @param ctx a reference to the {@link CrowdContext} associated with
|
||||
* this controller.
|
||||
*/
|
||||
protected abstract PlaceView createPlaceView ();
|
||||
protected PlaceView createPlaceView (CrowdContext ctx)
|
||||
{
|
||||
return createPlaceView();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obsolete but retained for runtime compatibility with the old and
|
||||
* busted.
|
||||
*
|
||||
* @deprecated Use {@link #createPlaceView(CrowdContext)}.
|
||||
*/
|
||||
protected PlaceView createPlaceView ()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called by the location director once the place object has
|
||||
|
||||
@@ -50,7 +50,7 @@ public class LobbyController extends PlaceController
|
||||
_ctx.getParlorDirector().setInvitationHandler(this);
|
||||
}
|
||||
|
||||
protected PlaceView createPlaceView ()
|
||||
protected PlaceView createPlaceView (CrowdContext ctx)
|
||||
{
|
||||
return new LobbyPanel(_ctx, _config);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package com.threerings.stage.client;
|
||||
|
||||
import com.threerings.crowd.client.PlaceView;
|
||||
import com.threerings.crowd.util.CrowdContext;
|
||||
|
||||
import com.threerings.whirled.data.SceneUpdate;
|
||||
import com.threerings.whirled.spot.client.SpotSceneController;
|
||||
@@ -17,9 +18,9 @@ import com.threerings.stage.util.StageContext;
|
||||
public class StageSceneController extends SpotSceneController
|
||||
{
|
||||
// documentation inherited
|
||||
protected PlaceView createPlaceView ()
|
||||
protected PlaceView createPlaceView (CrowdContext ctx)
|
||||
{
|
||||
return new StageScenePanel((StageContext)_ctx, this);
|
||||
return new StageScenePanel((StageContext)ctx, this);
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
|
||||
Reference in New Issue
Block a user