public void centerVertical(FastVector nodes) {
		// update undo stack
		if (m_bNeedsUndoAction) {
			addUndoAction(new centerVerticalAction(nodes));
		}
		int nMinX = -1;
		int nMaxX = -1;
		for (int iNode = 0; iNode < nodes.size(); iNode++) {
			int nX = getPositionX((Integer) nodes.elementAt(iNode));
			if (nX < nMinX || iNode == 0) {
				nMinX = nX;
			}
			if (nX > nMaxX || iNode == 0) {
				nMaxX = nX;
			}
		}
		for (int iNode = 0; iNode < nodes.size(); iNode++) {
			int nNode = (Integer) nodes.elementAt(iNode);
			m_nPositionX.setElementAt((nMinX + nMaxX) / 2, nNode);
		}
	} // centerVertical