if (popupJButton != null) remove(popupJButton);
    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);	addComponentListener(componentListener);	trainDetailsRenderer.trainDetailsJPanel.setup(modelRoot);	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);    }