package qls.gui.widget;
import java.awt.Dimension;
import javax.swing.JComponent;
import qls.ast.statement.widget.styling.StyleProperties;
import qls.ast.statement.widget.styling.property.Color;
import qls.ast.statement.widget.styling.property.Font;
import qls.ast.statement.widget.styling.property.FontSize;
import qls.ast.statement.widget.styling.property.Height;
import qls.ast.statement.widget.styling.property.Width;
public class WidgetStylizer {
public void setStyle(JComponent component, StyleProperties properties) {
setWidth(component, properties.getWidth());
setHeight(component, properties.getHeight());
setFont(component, properties.getFont());
setFontSize(component, properties.getFontSize());
setColor(component, properties.getColor());
}
private void setWidth(JComponent component, Width width) {
if(width == null) {
return;
}
Dimension currentDimensions = component.getPreferredSize();
currentDimensions.setSize(width.getWidth(), currentDimensions.getHeight());
component.setPreferredSize(currentDimensions);
}
private void setHeight(JComponent component, Height height) {
if(height == null) {
return;
}
Dimension currentDimensions = component.getPreferredSize();
currentDimensions.setSize(currentDimensions.getWidth(), height.getHeight());
component.setPreferredSize(currentDimensions);
}
private void setFont(JComponent component, Font font) {
if(font == null) {
return;
}
component.setFont(new java.awt.Font(font.getFontName(), java.awt.Font.PLAIN, 13));
}
private void setFontSize(JComponent component, FontSize fontSize) {
if(fontSize == null) {
return;
}
java.awt.Font currentFont = component.getFont();
component.setFont(new java.awt.Font(currentFont.getFontName(), java.awt.Font.PLAIN, fontSize.getFontSize()));
}
private void setColor(JComponent component, Color color) {
if(color == null) {
return;
}
component.setBackground(new java.awt.Color(color.getColor()));
}
}