| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package org.leumasjaffe.charsheet.view.summary;
- import javax.swing.JPanel;
- import java.awt.GridBagLayout;
- import java.awt.GridBagConstraints;
- import java.awt.Insets;
- import java.util.Arrays;
- import java.util.List;
- import java.util.function.Function;
- import java.awt.Dimension;
- import java.awt.Color;
- import org.leumasjaffe.charsheet.model.Ability;
- import org.leumasjaffe.charsheet.model.observable.IntValue;
- import lombok.AccessLevel;
- import lombok.experimental.FieldDefaults;
- @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
- public class AbilityPanel extends JPanel {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private static final String[] abils = new String[] { "STR", "DEX", "CON", "INT", "WIS", "CHA" };
- private static final List<Function<Ability.Scores, IntValue>> funcs = Arrays.asList(
- Ability.Scores::getStr, Ability.Scores::getDex, Ability.Scores::getCon,
- Ability.Scores::getInt, Ability.Scores::getWis, Ability.Scores::getCha
- );
- AbilityLine[] lines = new AbilityLine[6];
-
- public AbilityPanel() {
- setMaximumSize(new Dimension(210, 150));
- setMinimumSize(new Dimension(210, 150));
- setPreferredSize(new Dimension(210, 150));
- setBackground(Color.WHITE);
- GridBagLayout gridBagLayout = new GridBagLayout();
- gridBagLayout.columnWidths = new int[]{0, 0};
- gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0};
- gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
- gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
- setLayout(gridBagLayout);
-
- for (int i = 0; i < abils.length; ++i) {
- lines[i] = addAbility(i, abils[i], funcs.get(i));
- }
- }
- private AbilityLine addAbility(int y, String name, Function<Ability.Scores, IntValue> func) {
- AbilityLine abilityLine = new AbilityLine(name, func);
- abilityLine.setOpaque(false);
- GridBagConstraints gbc_abilityLine = new GridBagConstraints();
- gbc_abilityLine.insets = new Insets(0, 0, 0, 5);
- gbc_abilityLine.fill = GridBagConstraints.BOTH;
- gbc_abilityLine.gridx = 0;
- gbc_abilityLine.gridy = y;
- add(abilityLine, gbc_abilityLine);
- return abilityLine;
- }
- public void setModel(Ability model) {
- for (int i = 0; i < abils.length; ++i) {
- lines[i].setModel(model);
- }
- }
-
- public AbilityLine getLine(int i) {
- return lines[i];
- }
- }
|