private void setWrappedIcon(Style style, Icon icon, String text) {
		if (Page.wrapIconWithComponent(icon)) {
			IconWrapper wrap = new IconWrapper(icon, page);
			wrap.setIndex(indexOfComponent++);
			if (text != null) {
				boolean needCache = ConnectionManager.sharedInstance().isCachingAllowed() && page.isRemote();
				if (needCache) {
					File cml = ConnectionManager.sharedInstance().getLocalCopy(page.getAddress());
					if (cml != null && cml.exists()) {
						wrap.setBase(cml);
					}
				}
				wrap.decodeText(text);
				// if (needCache) wrap.setBase(page.getURL()); // set createTextBox()
				if (needCache) { // FIXME: do we want to check caching for all linked files?
					wrap.cacheLinkedFiles(page.getPathBase());
				}
			}
			StyleConstants.setComponent(style, wrap);
			htmlComponentConnector.enroll(wrap);
			if (icon instanceof LineIcon) {
				LineIcon li = (LineIcon) icon;
				if (li.getWidth() < 1.05f) {
					wrap.setWidthRatio(li.getWidth());
					wrap.setWidthRelative(true);
				}
			}
		}
		else {
			StyleConstants.setIcon(style, icon);
		}
	}