private void pMoveAll(float x, float y) {
cReportAspect rptCtrlAspect = null;
CSReportPaint.cReportPaintObject paintObj = null;
m_dataHasChanged = true;
if (m_bNoMove) { return; }
int i = 0;
float offsetTop = 0;
float offsetLeft = 0;
float firstLeft = 0;
float firstTop = 0;
float firstOffSet = 0;
if (m_vSelectedKeys.Length == 0) { return; }
paintObj = m_paint.getPaintObject(m_keyMoving);
cReportAspect w_aspect = paintObj.getAspect();
firstLeft = w_aspect.getLeft();
firstTop = w_aspect.getTop();
firstOffSet = w_aspect.getOffset();
for (i = m_vSelectedKeys.Length; i <= 1; i--) {
paintObj = m_paint.getPaintObject(m_vSelectedKeys[i]);
offsetLeft = pGetOffsetLeftFromControls(firstLeft,
paintObj.getAspect().getLeft());
offsetTop = pGetOffsetTopFromControls(firstTop - firstOffSet,
paintObj.getAspect().getTop()
- paintObj.getAspect().getOffset());
w_aspect = paintObj.getAspect();
if (x != C_NOMOVE) {
w_aspect.setLeft(x - m_offX + offsetLeft);
}
if (y != C_NOMOVE) {
w_aspect.setTop(y - m_offY + offsetTop);
}
else {
// we get rid off the offset because the primitive
// add it to the top but we don't allow vertical
// moves so Y must to remain constant
//
w_aspect.setTop(w_aspect.getTop() - paintObj.getAspect().getOffset());
}
// only controls move in all directions
//
if (paintObj.getRptType() == csRptTypeSection.CONTROL) {
rptCtrlAspect = m_report.getControls().item(paintObj.getTag()).getLabel().getAspect();
rptCtrlAspect.setLeft(w_aspect.getLeft());
rptCtrlAspect.setTop(w_aspect.getTop());
rptCtrlAspect.setWidth(w_aspect.getWidth());
rptCtrlAspect.setHeight(w_aspect.getHeight());
}
moveControl(m_vSelectedKeys[i]);
}
}