private ModelCanvas createModelCanvas(String className) {
			ModelCanvas mc = page.getComponentPool().request(className);
			if (mc != null) {
				mw2dConnector.enroll(mc);
				mc.setUsed(true);
				mc.setResourceAddress(resourceURL);
				if (buttonGroup != null) {
					mc.setToolBarButtons(buttonGroup.isEmpty() ? null : buttonGroup.toArray());
					buttonGroup.clear();
				}
				else {
					mc.setToolBarButtons(null);
				}
				page.getProperties().put(mc, resourceURL);
				if (recorderDisabled) { // backward compatible
					mc.getMdContainer().getModel().setRecorderDisabled(recorderDisabled);
					recorderDisabled = false;
				}
				else {
					if (recorderless) {
						mc.getMdContainer().getModel().setRecorderDisabled(true);
						recorderless = false;
					}
					else {
						mc.getMdContainer().getModel().setRecorderDisabled(false);
					}
				}
				if (mc.getMdContainer() instanceof AtomContainer) {
					AtomContainer x = (AtomContainer) mc.getMdContainer();
					if ("null".equals(dnaString))
						dnaString = "";
					x.setDNAString(dnaString);
					x.setDNAContextEnabled(dnaContext);
					if (dnaString != null) {
						if (dna_dt1 != -1) {
							x.setTranscriptionTimeStep(dna_dt1);
							dna_dt1 = -1;
						}
						if (dna_dt2 != -1) {
							x.setTranslationMDStep(dna_dt2);
							dna_dt2 = -1;
						}
						x.getView().setClockPainted(false);
						x.createDNAPanel();
					}
				}
				mc.getMdContainer().setStatusBarShown(showStatusBar);
				if (!showStatusBar)
					showStatusBar = true;
				if (showMenuBar) {
					mc.addMenuBar();
				}
				else {
					mc.removeMenuBar();
					showMenuBar = true;
				}
				if (borderType != null) {
					mc.showBorder(false);
					borderType = null;
				}
				dnaString = null;
				dnaContext = true;
				width = height = 0;
			}
			className = null;
			resourceURL = null;
			return mc;
		}