private boolean loadMDModel(final String uri) {
		if (uri == null)
			return false;
		final ModelCanvas mc = insertModel(uri.toLowerCase().endsWith("gbl") ? GBContainer.getCompatibleName() : ChemContainer.getCompatibleName());
		if (mc == null)
			return false;
		final boolean b = isEditable();
		if (!b)
			setEditable(true);
		notifyPageListeners(new PageEvent(this, PageEvent.PAGE_READ_BEGIN));
		new SwingWorker("Page:loadMDModel()", LOADER_THREAD_PRIORITY, new DisasterHandler(DisasterHandler.LOAD_ERROR, null, null, Page.this)) {
			public Object construct() {
				Model model = mc.getMdContainer().getModel();
				mc.setResourceAddress(uri);
				mc.getMdContainer().setLoading(true);
				if (!FileUtilities.isRemote(uri)) {
					model.input(new File(uri));
				} else {
					URL u = null;
					try {
						u = new URL(FileUtilities.httpEncode(uri));
					} catch (MalformedURLException mue) {
						mue.printStackTrace();
					}
					if (u != null)
						model.input(u);
				}
				return model;
			}

			public void finished() {
				mc.getMdContainer().setLoading(false);
				if (!b)
					setEditable(false);
				setTitle(uri);
				notifyPageListeners(new PageEvent(Page.this, PageEvent.PAGE_READ_END));
			}
		}.start();
		return true;
	}