wizards/com/sun/star/wizards/form/FormControlArranger.java | 88 ++++++------- 1 file changed, 47 insertions(+), 41 deletions(-)
New commits: commit 9fb950db44260b6a9f3946117a42a3d43be44415 Author: Lionel Elie Mamane <[email protected]> Date: Fri Dec 19 23:21:52 2014 +0100 protect against division by zero Change-Id: Ib91120e626f772bb52531c4a35fc70f04cc5c48f Reviewed-on: https://gerrit.libreoffice.org/13558 Reviewed-by: David Tardon <[email protected]> Tested-by: David Tardon <[email protected]> diff --git a/wizards/com/sun/star/wizards/form/FormControlArranger.java b/wizards/com/sun/star/wizards/form/FormControlArranger.java index 9d842d6..105bfde 100644 --- a/wizards/com/sun/star/wizards/form/FormControlArranger.java +++ b/wizards/com/sun/star/wizards/form/FormControlArranger.java @@ -227,7 +227,10 @@ public class FormControlArranger // shapes are made more narrow ShapeCount = iReduceWidth; } - return (nDist) / ShapeCount; + if(ShapeCount == 0) + return 0; + else + return (nDist) / ShapeCount; } /** @@ -237,51 +240,54 @@ public class FormControlArranger * @param nDist * @param WidthFactor is either '+1' or '-1' and determines whether the control shapes widths are to be made smaller or larger */ - private void adjustLineWidth(int StartIndex, int EndIndex, int nDist, int WidthFactor) + private void adjustLineWidth(final int StartIndex, final int EndIndex, final int nDist, final int WidthFactor) { - int CorrWidth = getCorrWidth(StartIndex, EndIndex, nDist, WidthFactor); - int iLocTCPosX = cXOffset; - for (int i = StartIndex; i <= EndIndex; i++) + if(StartIndex <= EndIndex) { - int nControlBaseWidth = 0; - DatabaseControl dbControl = DBControlList[i]; - Control curLabelControl = LabelControlList[i]; - if (i != StartIndex) - { - curLabelControl.setPosition(new Point(iLocTCPosX, curLabelControl.getPosition().Y)); - dbControl.setPosition(new Point(iLocTCPosX, curLabelControl.getPosition().Y + m_LabelHeight)); - } - final Size labelSize = curLabelControl.getSize(); - Size controlSize = dbControl.getSize(); - if (((labelSize.Width > controlSize.Width)) && (WidthFactor > 0)) - { - nControlBaseWidth = labelSize.Width; - } - else - { - nControlBaseWidth = controlSize.Width; - } - if (FieldColumns[i].getFieldType() == DataType.TIMESTAMP) - { - TimeStampControl oDBTimeStampControl = (TimeStampControl) dbControl; - nControlBaseWidth = oDBTimeStampControl.getSize().Width; - } - if (WidthFactor > 0 || isReducable(i, labelSize.Width, controlSize.Width)) + int CorrWidth = getCorrWidth(StartIndex, EndIndex, nDist, WidthFactor); + int iLocTCPosX = cXOffset; + for (int i = StartIndex; i <= EndIndex; i++) { - controlSize.Width = nControlBaseWidth + WidthFactor * CorrWidth; - dbControl.setSize(controlSize); - controlSize = dbControl.getSize(); - } + int nControlBaseWidth = 0; + DatabaseControl dbControl = DBControlList[i]; + Control curLabelControl = LabelControlList[i]; + if (i != StartIndex) + { + curLabelControl.setPosition(new Point(iLocTCPosX, curLabelControl.getPosition().Y)); + dbControl.setPosition(new Point(iLocTCPosX, curLabelControl.getPosition().Y + m_LabelHeight)); + } + final Size labelSize = curLabelControl.getSize(); + Size controlSize = dbControl.getSize(); + if (((labelSize.Width > controlSize.Width)) && (WidthFactor > 0)) + { + nControlBaseWidth = labelSize.Width; + } + else + { + nControlBaseWidth = controlSize.Width; + } + if (FieldColumns[i].getFieldType() == DataType.TIMESTAMP) + { + TimeStampControl oDBTimeStampControl = (TimeStampControl) dbControl; + nControlBaseWidth = oDBTimeStampControl.getSize().Width; + } + if (WidthFactor > 0 || isReducable(i, labelSize.Width, controlSize.Width)) + { + controlSize.Width = nControlBaseWidth + WidthFactor * CorrWidth; + dbControl.setSize(controlSize); + controlSize = dbControl.getSize(); + } - if (labelSize.Width > controlSize.Width) - { - iLocTCPosX += labelSize.Width; - } - else - { - iLocTCPosX += controlSize.Width; + if (labelSize.Width > controlSize.Width) + { + iLocTCPosX += labelSize.Width; + } + else + { + iLocTCPosX += controlSize.Width; + } + iLocTCPosX += cHoriDistance; } - iLocTCPosX += cHoriDistance; } if (WidthFactor > 0) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
