void setLabel(String str) throws ScriptException {
		viewer.loadShape(JmolConstants.SHAPE_LABELS);
		if (str.equals("offset")) {
			checkLength4();
			int xOffset = intParameter(2);
			int yOffset = intParameter(3);
			if (xOffset > 100 || yOffset > 100 || xOffset < -100 || yOffset < -100)
				numberOutOfRange(-100, 100);
			int offset = ((xOffset & 0xFF) << 8) | (yOffset & 0xFF);
			viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "offset", new Integer(offset));
			return;
		}
		if (str.equals("alignment")) {
			checkLength3();
			switch (statement[2].tok) {
			case Token.left:
			case Token.right:
			case Token.center:
				viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "align", statement[2].value);
				return;
			}
			invalidArgument();
		}
		if (str.equals("pointer")) {
			checkLength3();
			int flags = Text.POINTER_NONE;
			switch (statement[2].tok) {
			case Token.off:
			case Token.none:
				break;
			case Token.background:
				flags |= Text.POINTER_BACKGROUND;
			case Token.on:
				flags |= Text.POINTER_ON;
				break;
			default:
				invalidArgument();
			}
			viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "pointer", new Integer(flags));
			return;
		}
		checkLength2();
		if (str.equals("atom")) {
			viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "front", Boolean.FALSE);
			return;
		}
		if (str.equals("front")) {
			viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "front", Boolean.TRUE);
			return;
		}
		if (str.equals("group")) {
			viewer.setShapeProperty(JmolConstants.SHAPE_LABELS, "group", Boolean.TRUE);
			return;
		}
		invalidArgument();
	}