private boolean evaluateCursorClause(String s) {
		if (s == null)
			return false;
		if ("null".equalsIgnoreCase(s)) {
			view.setExternalCursor(null);
			return true;
		}
		if (s.endsWith("_CURSOR")) {
			fillCursorIDMap();
			int id = cursorIDMap.get(s);
			Cursor c = Cursor.getPredefinedCursor(id);
			if (c == null)
				return false;
			view.setExternalCursor(c);
			return true;
		}
		int lp = s.indexOf("(");
		int rp = s.indexOf(")");
		float[] hotspot = null;
		if (lp != -1 && rp != -1) {
			hotspot = parseArray(2, s.substring(lp, rp));
		} else {
			out(ScriptEvent.FAILED, "Cursor's hot spot coordinate error: " + s);
			return false;
		}
		s = s.substring(0, lp).trim();
		if (FileUtilities.isRelative(s)) {
			Object o = model.getProperty("url");
			if (o == null) {
				out(ScriptEvent.FAILED, "Codebase missing.");
				return false;
			}
			s = FileUtilities.getCodeBase((String) o) + s;
		}
		Cursor c = loadCursor(s, hotspot != null ? (int) hotspot[0] : 0, hotspot != null ? (int) hotspot[1] : 0);
		if (c == null) {
			out(ScriptEvent.FAILED, "Failed in loading cursor image: " + s);
			return false;
		}
		view.setExternalCursor(c);
		return true;
	}