private ImageQuestion createImageQuestion() {
			ImageQuestion iq = new ImageQuestion();
			iq.setPage(page);
			iq.setIndex(indexOfComponent);
			if (uid != null) {
				iq.setUid(uid);
				uid = null;
			}
			if (width > 0 && height > 0) {
				iq.setPreferredSize(new Dimension((int) width, (int) height));
				width = height = 0;
			}
			boolean needCache = ConnectionManager.sharedInstance().isCachingAllowed() && page.isRemote();
			if (titleText != null) {
				if (needCache) {
					File cml = ConnectionManager.sharedInstance().getLocalCopy(page.getAddress());
					if (cml != null && cml.exists())
						iq.setBase(cml);
				}
				// do not restore the base, see createTextBox()
				iq.setQuestion(titleText);
				titleText = null;
				if (needCache) // FIXME: Do we want to check caching for all linked files?
					iq.cacheLinkedFiles(page.getPathBase());
			}
			iq.setChangable(page.isEditable());
			String key = page.getAddress() + "#" + ModelerUtilities.getSortableString(indexOfComponent, 3) + "%"
					+ iq.getClass().getName();
			QuestionAndAnswer qa = UserData.sharedInstance().getData(key);
			if (qa != null) {
				if (!QuestionAndAnswer.NO_ANSWER.equals(qa.getAnswer()))
					iq.setImage(qa.getAnswer());
			}
			else {
				qa = new QuestionAndAnswer(iq.getQuestion(), QuestionAndAnswer.NO_ANSWER);
				UserData.sharedInstance().putData(key, qa);
			}
			if (!opaque) {
				iq.setOpaque(false);
				opaque = true;
			}
			else {
				iq.setOpaque(true);
				if ((argb1 | ARGB_NOT_SET) != ARGB_NOT_SET) {
					iq.setBackground(new Color(argb1));
					argb1 = ARGB_NOT_SET;
				}
				else {
					iq.setBackground(page.getBackground());
				}
			}
			if (borderType != null) {
				iq.setBorderType(borderType);
				borderType = null;
			}
			if (ConnectionManager.sharedInstance().isCachingAllowed()) {
				if (page.isRemote())
					iq.cacheLinkedFiles(page.getPathBase());
			}
			htmlComponentConnector.enroll(iq.getQuestionTextBox());
			indexOfComponent++;
			return iq;
		}