| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package org.leumasjaffe.charsheet.view.summary;
- import javax.swing.JPanel;
- import javax.swing.JLabel;
- import java.awt.Color;
- import java.awt.Font;
- import javax.swing.border.LineBorder;
- import org.leumasjaffe.charsheet.model.Ability;
- import org.leumasjaffe.charsheet.model.observable.IntValue;
- import lombok.AccessLevel;
- import lombok.experimental.FieldDefaults;
- import java.awt.GridBagLayout;
- import java.util.function.Function;
- import java.awt.GridBagConstraints;
- import java.awt.Dimension;
- import javax.swing.SwingConstants;
- @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
- public class AbilityLine extends JPanel {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- Function<Ability.Scores, IntValue> access;
- AbilityBox ability;
- AbilityBox temporary;
-
- public AbilityLine(final String name, Function<Ability.Scores, IntValue> func) {
- this.access = func;
-
- setMaximumSize(new Dimension(220, 26));
- setMinimumSize(new Dimension(220, 26));
- setPreferredSize(new Dimension(220, 26));
- GridBagLayout gridBagLayout = new GridBagLayout();
- gridBagLayout.columnWidths = new int[]{50, 70, 70, 0};
- gridBagLayout.rowHeights = new int[]{26, 0};
- gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
- gridBagLayout.rowWeights = new double[]{0.0, Double.MIN_VALUE};
- setLayout(gridBagLayout);
-
- JLabel title = new JLabel(name.toUpperCase());
- title.setHorizontalAlignment(SwingConstants.CENTER);
- title.setForeground(Color.WHITE);
- title.setOpaque(true);
- title.setMaximumSize(new Dimension(50, 25));
- title.setMinimumSize(new Dimension(50, 25));
- title.setPreferredSize(new Dimension(50, 25));
- title.setBorder(new LineBorder(Color.WHITE));
- title.setFont(new Font("Tahoma", Font.BOLD, 18));
- title.setBackground(Color.BLACK);
- GridBagConstraints gbc_title = new GridBagConstraints();
- gbc_title.fill = GridBagConstraints.HORIZONTAL;
- gbc_title.gridx = 0;
- gbc_title.gridy = 0;
- add(title, gbc_title);
-
- ability = new AbilityBox(name, "Ability");
- GridBagConstraints gbc_ability = new GridBagConstraints();
- gbc_ability.fill = GridBagConstraints.HORIZONTAL;
- gbc_ability.gridx = 1;
- gbc_ability.gridy = 0;
- add(ability, gbc_ability);
-
- temporary = new AbilityBox(name, "Temporary");
- temporary.setOpaque(true);
- temporary.setBackground(Color.LIGHT_GRAY);
- GridBagConstraints gbc_temporary = new GridBagConstraints();
- gbc_temporary.fill = GridBagConstraints.HORIZONTAL;
- gbc_temporary.gridx = 2;
- gbc_temporary.gridy = 0;
- add(temporary, gbc_temporary);
- }
- public void setModel(Ability model) {
- this.ability.setModel(access.apply(model.getBase()));
- this.temporary.setModel(access.apply(model.getTemp()));
- }
- }
|