private void moveControl(String sKeyPaintObj) {
cReportSectionLine rptSecLine = null;
cReportControl rptCtrl = null;
cReportAspect rptSecLineAspect = null;
cReportAspect objPaintAspect = null;
m_paint.alingToGrid(sKeyPaintObj);
rptCtrl = m_report.getControls().item(m_paint.getPaintObject(sKeyPaintObj).getTag());
objPaintAspect = m_paint.getPaintObject(sKeyPaintObj).getAspect();
if (rptCtrl == null) { return; }
cReportAspect w_aspect = rptCtrl.getLabel().getAspect();
w_aspect.setTop(objPaintAspect.getTop() + objPaintAspect.getOffset());
w_aspect.setHeight(objPaintAspect.getHeight());
w_aspect.setWidth(objPaintAspect.getWidth());
w_aspect.setLeft(objPaintAspect.getLeft());
if (getLineRegionForControl(sKeyPaintObj, out rptSecLine, rptCtrl.getIsFreeCtrl())) {
if (!(rptSecLine == rptCtrl.getSectionLine())) {
rptCtrl.getSectionLine().getControls().remove(rptCtrl.getKey());
rptSecLine.getControls().add(rptCtrl, rptCtrl.getKey());
}
// we need to check the control is between the limits of the section
// in which it is contained
//
rptSecLineAspect = rptCtrl.getSectionLine().getAspect();
w_aspect = rptCtrl.getLabel().getAspect();
w_aspect.setTop(objPaintAspect.getTop() + objPaintAspect.getOffset());
if (!rptCtrl.getIsFreeCtrl()) {
if (w_aspect.getTop() + w_aspect.getHeight()
> rptSecLineAspect.getTop() + rptSecLineAspect.getHeight()) {
w_aspect.setTop(rptSecLineAspect.getTop()
+ rptSecLineAspect.getHeight()
- w_aspect.getHeight());
}
}
if (w_aspect.getTop() < rptSecLineAspect.getTop()) {
w_aspect.setTop(rptSecLineAspect.getTop());
}
objPaintAspect.setTop(w_aspect.getTop());
}
}