code: public void init (CrowdContext ctx, PlaceConfig config)
      {
          // keep these around
          _ctx = ctx;
          _config = config;
  
          // create our user interface
          _view = createPlaceView(_ctx);
  
          // initialize our delegates
          applyToDelegates(new DelegateOp(PlaceControllerDelegate.class) {
              @Override
              public void apply (PlaceControllerDelegate delegate) {
                  delegate.init(_ctx, _config);
              }
          });
  
          // let the derived classes do any initialization stuff
          didInit();
      }
docs: Initializes this place controller with a reference to the context that they can use to
  access client services and to the configuration record for this place. The controller
  should create as much of its user interface that it can without having access to the place
  object because this will be invoked in parallel with the fetching of the place object. When
  the place object is obtained, the controller will be notified and it can then finish the
  user interface configuration and put the user interface into operation.
  
  @param ctx the client context.
  @param config the place configuration for this place.