private boolean evaluateMoveClause(String str) {
		float[] x = parseCoordinates(str);
		if (x == null)
			return false;
		int n = model.getNumberOfParticles();
		for (int k = 0; k < n; k++) {
			if (model.getParticle(k).isSelected())
				model.getParticle(k).translateBy(x[0], x[1]);
		}
		if (model.obstacles != null && !model.obstacles.isEmpty()) {
			RectangularObstacle obs;
			synchronized (model.obstacles.getSynchronizationLock()) {
				for (Iterator it = model.obstacles.iterator(); it.hasNext();) {
					obs = (RectangularObstacle) it.next();
					if (obs.isSelected())
						obs.translateBy(x[0], x[1]);
				}
			}
		}
		Layered[] lc = view.getLayeredComponents();
		for (int k = 0; k < lc.length; k++)
			if (((ModelComponent) lc[k]).isSelected())
				lc[k].translateBy(x[0], x[1]);
		if (view instanceof AtomisticView) {
			((AtomisticView) view).refreshJmol();
		}
		view.repaint();
		notifyChange();
		return true;
	}