src/main/java/org/pdf/forms/gui/properties/PropertyChanger.java
package org.pdf.forms.gui.properties;
import java.awt.*;
import java.util.Optional;
import java.util.Set;
import org.pdf.forms.model.des.FontCaption;
import org.pdf.forms.model.des.FontProperties;
import org.pdf.forms.model.des.FontValue;
import org.pdf.forms.model.des.SizeAndPosition;
import org.pdf.forms.widgets.IWidget;
public final class PropertyChanger {
public static void updateFont(
final Set<IWidget> widgets,
final String fontName,
final String fontSize,
final int fontStyle) {
for (final IWidget widget: widgets) {
final Optional<FontProperties> fontProperties = widget.getWidgetModel().getProperties().getFont();
if (fontProperties.isPresent()) {
final FontProperties properties = fontProperties.get();
final FontCaption fontCaption = properties.getFontCaption();
fontCaption.setFontName(fontName);
fontCaption.setFontSize(fontSize);
fontCaption.setFontStyle(String.valueOf(fontStyle));
if (widget.allowEditCaptionAndValue()) {
final FontValue fontValue = properties.getFontValue();
fontValue.setFontName(fontName);
fontValue.setFontSize(fontSize);
fontValue.setFontStyle(String.valueOf(fontStyle));
}
}
}
}
public static void updateSizeAndPosition(final Set<IWidget> widgets) {
for (final IWidget widget: widgets) {
final SizeAndPosition sizeAndPosition = widget.getWidgetModel().getProperties().getLayout()
.getSizeAndPosition();
sizeAndPosition.setX(widget.getX());
sizeAndPosition.setY(widget.getY());
sizeAndPosition.setWidth(widget.getWidth());
sizeAndPosition.setHeight(widget.getHeight());
}
}
public static void updateSizeAndPosition(
final Set<IWidget> widgets,
final Point point,
final Dimension dimension) {
widgets.stream()
.map(widget -> widget.getWidgetModel().getProperties().getLayout().getSizeAndPosition())
.forEach(sizeAndPosition -> {
updatePosition(point, sizeAndPosition);
updateSize(dimension, sizeAndPosition);
});
}
private static void updatePosition(
final Point point,
final SizeAndPosition sizeAndPosition) {
if (point == null) {
return;
}
if (point.x > -1) {
sizeAndPosition.setX(point.x);
}
if (point.y > -1) {
sizeAndPosition.setY(point.y);
}
}
private static void updateSize(
final Dimension dimension,
final SizeAndPosition sizeAndPosition) {
if (dimension == null) {
return;
}
if (dimension.width > -1) {
sizeAndPosition.setWidth(dimension.width);
}
if (dimension.height > -1) {
sizeAndPosition.setHeight(dimension.height);
}
}
private PropertyChanger() {
// do nothing
}
}