public void setStringProperty(String key, String value) {
		// Eval
		while (true) {
			if (key.equalsIgnoreCase("defaultDistanceLabel")) {
				setDefaultMeasurementLabel(2, value);
				break;
			}
			if (key.equalsIgnoreCase("defaultAngleLabel")) {
				setDefaultMeasurementLabel(3, value);
				break;
			}
			if (key.equalsIgnoreCase("defaultTorsionLabel")) {
				setDefaultMeasurementLabel(4, value);
				break;
			}
			if (key.equalsIgnoreCase("defaultLoadScript")) {
				setDefaultLoadScript(value);
				break;
			}
			if (key.equalsIgnoreCase("appletProxy")) {
				setAppletProxy(value);
				break;
			}
			if (key.equalsIgnoreCase("defaultDirectory")) {
				setDefaultDirectory(value);
				break;
			}
			if (key.equalsIgnoreCase("help")) {
				setHelpPath(value);
				break;
			}
			if (key.equalsIgnoreCase("backgroundColor")) {
				setColorBackground(value);
				break;
			}
			if (key.equalsIgnoreCase("defaults")) {
				setDefaults(value);
				break;
			}
			if (key.equalsIgnoreCase("defaultColorScheme")) {
				setDefaultColors(value);
				break;
			}
			if (key.equalsIgnoreCase("picking")) {
				setPickingMode(value);
				break;
			}
			if (key.equalsIgnoreCase("pickingStyle")) {
				setPickingStyle(value);
				break;
			}
			if (key.equalsIgnoreCase("dataSeparator")) {
				// just saving this
				break;
			}
			if (key.toLowerCase().indexOf("callback") >= 0) {
				setCallbackFunction(key, value);
				break;
			}
			// not found
			if (key.charAt(0) != '@') {
				if (!global.htParameterValues.containsKey(key)) {
					Logger.warn("viewer.setStringProperty(" + key + "," + value + ") - new SET option");
					return;
				}
			}
			break;
		}
		global.setParameterValue(key, value);
	}