trainDetailsRenderer.trainDetailsJPanel.setup(modelRoot, null); disableAllComponents(trainDetailsRenderer.trainDetailsJPanel); trainDetailsRenderer.trainViewJPanel = new TrainViewJPanel(modelRoot);  popupJButton = new PopupJButton(new World2ListModelAdapter(w, KEY.TRAINS, modelRoot.getPlayerPrincipal(), modelRoot.getMoveChainFork()), trainDetailsRenderer);  GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); add(popupJButton, gridBagConstraints);  popupJButton.addActionListener(popupButtonListener);
    public void setup(ModelRoot mr, GUIRoot gr) {	modelRoot = mr;	guiRoot = gr;        w = modelRoot.getWorld();	wi = new NonNullElements(KEY.TRAINS, w, mr.getPlayerPrincipal());        newTrainScheduleJPanel1.setup(mr, gr);        trainDetailsJPanel1.setup(mr, null);	addComponentListener(componentListener);    }