Do not allow zero for size and spacing properties that could lead to

crashes or unexpected behavior
This commit is contained in:
Branislav Stojkovic
2019-02-09 10:20:11 +01:00
parent 66e1227182
commit 59096d69ed
47 changed files with 687 additions and 632 deletions
@@ -40,7 +40,7 @@ public class PositiveMeasureValidator implements IPropertyValidator {
if (value instanceof AbstractMeasure) { if (value instanceof AbstractMeasure) {
AbstractMeasure<?> measure = (AbstractMeasure<?>) value; AbstractMeasure<?> measure = (AbstractMeasure<?>) value;
if (measure.getValue() < 0) { if (measure.getValue() < 0) {
throw new ValidationException("must be greater than zero."); throw new ValidationException("must be greater or equal to zero.");
} }
} else { } else {
throw new ValidationException("wrong data type, measure expected."); throw new ValidationException("wrong data type, measure expected.");
@@ -0,0 +1,49 @@
/*
DIY Layout Creator (DIYLC).
Copyright (c) 2009-2018 held jointly by the individual authors.
This file is part of DIYLC.
DIYLC is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
DIYLC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with DIYLC. If not, see <http://www.gnu.org/licenses/>.
*/
package org.diylc.core.annotations;
import org.diylc.core.IPropertyValidator;
import org.diylc.core.ValidationException;
import org.diylc.core.measures.AbstractMeasure;
/**
* Validates any generic {@link AbstractMeasure} descendants and makes sure that the value is
* positive.
*
* @author Branislav Stojkovic
*/
public class PositiveNonZeroMeasureValidator implements IPropertyValidator {
@Override
public void validate(Object value) throws ValidationException {
if (value == null)
return;
if (value instanceof AbstractMeasure) {
AbstractMeasure<?> measure = (AbstractMeasure<?>) value;
if (measure.getValue() <= 0) {
throw new ValidationException("must be greater than zero.");
}
} else {
throw new ValidationException("wrong data type, measure expected.");
}
}
}
Binary file not shown.
@@ -46,7 +46,7 @@ import org.diylc.core.Project;
import org.diylc.core.Theme; import org.diylc.core.Theme;
import org.diylc.core.VisibilityPolicy; import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -488,7 +488,7 @@ public abstract class AbstractLeadedComponent<T> extends AbstractTransparentComp
this.borderColor = borderColor; this.borderColor = borderColor;
} }
@EditableProperty(name = "Length", defaultable = true, validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Length", defaultable = true, validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getLength() { public Size getLength() {
return length; return length;
} }
@@ -497,7 +497,7 @@ public abstract class AbstractLeadedComponent<T> extends AbstractTransparentComp
this.length = length; this.length = length;
} }
@EditableProperty(name = "Width", defaultable = true, validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Width", defaultable = true, validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getWidth() { public Size getWidth() {
return width; return width;
} }
@@ -36,7 +36,7 @@ import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -96,7 +96,7 @@ public class MarshallPerfBoard extends AbstractBoard {
} }
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSpacing() { public Size getSpacing() {
return spacing; return spacing;
} }
@@ -36,7 +36,7 @@ import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -105,7 +105,7 @@ public class PerfBoard extends AbstractBoard {
this.padColor = padColor; this.padColor = padColor;
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSpacing() { public Size getSpacing() {
return spacing; return spacing;
} }
@@ -45,7 +45,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -116,7 +116,7 @@ public class TerminalStrip extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Terminal Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Terminal Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getTerminalSpacing() { public Size getTerminalSpacing() {
return terminalSpacing; return terminalSpacing;
} }
@@ -128,7 +128,7 @@ public class TerminalStrip extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Hole Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Hole Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getHoleSpacing() { public Size getHoleSpacing() {
return holeSpacing; return holeSpacing;
} }
@@ -152,7 +152,7 @@ public class TerminalStrip extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Board Width", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Board Width", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getBoardWidth() { public Size getBoardWidth() {
return boardWidth; return boardWidth;
} }
@@ -28,8 +28,8 @@ import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.common.OrientationHV; import org.diylc.common.OrientationHV;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
@@ -37,7 +37,7 @@ import org.diylc.core.Project;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -172,7 +172,7 @@ public class TriPadBoard extends AbstractBoard {
this.stripColor = padColor; this.stripColor = padColor;
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSpacing() { public Size getSpacing() {
return spacing; return spacing;
} }
@@ -28,8 +28,8 @@ import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.common.OrientationHV; import org.diylc.common.OrientationHV;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
@@ -38,7 +38,7 @@ import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -132,7 +132,7 @@ public class VeroBoard extends AbstractBoard {
this.stripColor = padColor; this.stripColor = padColor;
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSpacing() { public Size getSpacing() {
return spacing; return spacing;
} }
@@ -21,9 +21,9 @@ import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.common.ObjectCache; import org.diylc.common.ObjectCache;
import org.diylc.common.PCBLayer; import org.diylc.common.PCBLayer;
import org.diylc.common.SimpleComponentTransformer;
import org.diylc.components.AbstractLeadedComponent; import org.diylc.components.AbstractLeadedComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.CreationMethod; import org.diylc.core.CreationMethod;
@@ -35,7 +35,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
@@ -72,7 +72,7 @@ public class Dot extends AbstractComponent<Void> {
g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter);
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSize() { public Size getSize() {
return size; return size;
} }
@@ -38,6 +38,7 @@ import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveMeasureValidator;
import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -97,7 +98,7 @@ public class Eyelet extends AbstractComponent<String> {
g2d.drawOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, holeDiameter); g2d.drawOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, holeDiameter);
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSize() { public Size getSize() {
return size; return size;
} }
@@ -36,6 +36,7 @@ import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveMeasureValidator;
import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -96,7 +97,7 @@ public class SolderPad extends AbstractComponent<Void> {
g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, holeDiameter); g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, holeDiameter);
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSize() { public Size getSize() {
return size; return size;
} }
@@ -49,7 +49,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -135,7 +135,7 @@ public class DIPSwitch extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Pin Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Pin Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getPinSpacing() { public Size getPinSpacing() {
return pinSpacing; return pinSpacing;
} }
@@ -147,7 +147,7 @@ public class DIPSwitch extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Row Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Row Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getRowSpacing() { public Size getRowSpacing() {
return rowSpacing; return rowSpacing;
} }
@@ -490,7 +490,7 @@ public class DIPSwitch extends AbstractTransparentComponent<String> {
this.tickColor = tickColor; this.tickColor = tickColor;
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getWidth() { public Size getWidth() {
return width; return width;
} }
@@ -44,7 +44,7 @@ import org.diylc.core.Theme;
import org.diylc.core.VisibilityPolicy; import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -226,7 +226,7 @@ public class MiniToggleSwitch extends AbstractTransparentComponent<ToggleSwitchT
body = null; body = null;
} }
@EditableProperty(validatorClass = PositiveMeasureValidator.class) @EditableProperty(validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getSpacing() { public Size getSpacing() {
if (spacing == null) { if (spacing == null) {
spacing = SPACING; spacing = SPACING;
@@ -51,7 +51,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -120,7 +120,7 @@ public class AudioTransformer extends AbstractMultiPartComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Lead Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Lead Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getLeadSpacing() { public Size getLeadSpacing() {
return leadSpacing; return leadSpacing;
} }
@@ -132,7 +132,7 @@ public class AudioTransformer extends AbstractMultiPartComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Winding Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Winding Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getWindingSpacing() { public Size getWindingSpacing() {
return windingSpacing; return windingSpacing;
} }
@@ -29,11 +29,11 @@ import java.awt.Shape;
import java.awt.geom.GeneralPath; import java.awt.geom.GeneralPath;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import org.diylc.components.Abstract3LegSymbol;
import org.diylc.components.semiconductors.SymbolFlipping;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.components.Abstract3LegSymbol;
import org.diylc.components.semiconductors.SymbolFlipping;
@ComponentDescriptor(name = "Potentiometer", author = "MCbx", category = "Schematic Symbols", @ComponentDescriptor(name = "Potentiometer", author = "MCbx", category = "Schematic Symbols",
instanceNamePrefix = "VR", description = "Potentiometer symbol", stretchable = false, instanceNamePrefix = "VR", description = "Potentiometer symbol", stretchable = false,
@@ -41,7 +41,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -159,7 +159,7 @@ public class TransformerCoil extends AbstractComponent<org.diylc.core.measures.V
this.color = color; this.color = color;
} }
@EditableProperty(name = "Size", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Size", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getTapSpacing() { public Size getTapSpacing() {
return tapSpacing; return tapSpacing;
} }
@@ -50,7 +50,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -135,7 +135,7 @@ public class DIL_IC extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Pin Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Pin Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getPinSpacing() { public Size getPinSpacing() {
return pinSpacing; return pinSpacing;
} }
@@ -147,7 +147,7 @@ public class DIL_IC extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Row Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Row Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getRowSpacing() { public Size getRowSpacing() {
return rowSpacing; return rowSpacing;
} }
@@ -49,7 +49,7 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.KeywordPolicy;
import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.annotations.PositiveNonZeroMeasureValidator;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@@ -133,7 +133,7 @@ public class SIL_IC extends AbstractTransparentComponent<String> {
body = null; body = null;
} }
@EditableProperty(name = "Pin Spacing", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Pin Spacing", validatorClass = PositiveNonZeroMeasureValidator.class)
public Size getPinSpacing() { public Size getPinSpacing() {
return pinSpacing; return pinSpacing;
} }
@@ -68,7 +68,7 @@ public abstract class AbstractShape extends AbstractTransparentComponent<Void> {
this.borderColor = borderColor; this.borderColor = borderColor;
} }
@EditableProperty(name = "Border thickness", validatorClass = PositiveMeasureValidator.class) @EditableProperty(name = "Border Thickness", validatorClass = PositiveMeasureValidator.class)
public Size getBorderThickness() { public Size getBorderThickness() {
return borderThickness; return borderThickness;
} }
Binary file not shown.
Binary file not shown.
+4
View File
@@ -2450,6 +2450,10 @@
<changeType>BUG_FIX</changeType> <changeType>BUG_FIX</changeType>
<description>Components do not load if the installation directory name contains a special character, like '!'</description> <description>Components do not load if the installation directory name contains a special character, like '!'</description>
</org.diylc.appframework.update.Change> </org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>Do not allow zero for size and spacing properties that could lead to crashes or unexpected behavior</description>
</org.diylc.appframework.update.Change>
</changes> </changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url> <url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version> </org.diylc.appframework.update.Version>