void setEcho() throws ScriptException {
		String propertyName = "target";
		Object propertyValue = null;
		boolean echoShapeActive = true;
		if (statementLength < 3)
			badArgumentCount();
		// set echo xxx
		switch (statement[2].tok) {
		case Token.off:
			checkLength3();
			echoShapeActive = false;
			propertyName = "allOff";
			break;
		case Token.none:
			checkLength3();
			echoShapeActive = false;
		case Token.all:
			checkLength3();
		case Token.left:
		case Token.right:
		case Token.top:
		case Token.bottom:
		case Token.center:
		case Token.identifier:
			propertyValue = statement[2].value;
			break;
		default:
			keywordExpected();
		}
		viewer.setEchoStateActive(echoShapeActive);
		viewer.loadShape(JmolConstants.SHAPE_ECHO);
		viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, propertyName, propertyValue);
		if (statementLength == 3)
			return;
		propertyName = "align";
		// set echo name xxx
		if (statementLength == 4) {
			switch (statement[3].tok) {
			case Token.off:
				propertyName = "off";
				break;
			case Token.left:
			case Token.right:
			case Token.top:
			case Token.bottom:
			case Token.center:
			case Token.identifier: // middle
				propertyValue = statement[3].value;
				break;
			default:
				keywordExpected();
			}
			viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, propertyName, propertyValue);
			return;
		}
		// set echo name x-pos y-pos
		if (statementLength < 5)
			badArgumentCount();
		int i = 3;
		// set echo name {x y z}
		if (isAtomCenterOrCoordinateNext(i)) {
			viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, "xyz", atomCenterOrCoordinateParameter(i));
			return;
		}
		int pos = intParameter(i++);
		String type;
		propertyValue = new Integer(pos);
		if (i < statementLength && statement[i].tok == Token.percent) {
			type = "%xpos";
			i++;
		}
		else {
			type = "xpos";
		}
		viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, type, propertyValue);
		pos = intParameter(i++);
		propertyValue = new Integer(pos);
		if (i < statementLength && statement[i].tok == Token.percent) {
			type = "%ypos";
			i++;
		}
		else {
			type = "ypos";
		}
		viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, type, propertyValue);
	}