|
|
@@ -12,6 +12,11 @@ import org.leumasjaffe.charsheet.util.StringHelper;
|
|
|
|
|
|
import java.awt.GridBagConstraints;
|
|
|
import java.awt.Insets;
|
|
|
+import javax.swing.JLabel;
|
|
|
+import java.awt.Component;
|
|
|
+import javax.swing.Box;
|
|
|
+import java.awt.Font;
|
|
|
+import java.awt.Dimension;
|
|
|
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
public class ClassTab extends JPanel {
|
|
|
@@ -21,6 +26,7 @@ public class ClassTab extends JPanel {
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
String title;
|
|
|
+ private JTextField experienceField;
|
|
|
|
|
|
public ClassTab(DDCharacterClass model) {
|
|
|
this.title = model.getName();
|
|
|
@@ -32,9 +38,36 @@ public class ClassTab extends JPanel {
|
|
|
gridBagLayout.rowWeights = new double[]{0.0, Double.MIN_VALUE};
|
|
|
setLayout(gridBagLayout);
|
|
|
|
|
|
+ JPanel header = new JPanel();
|
|
|
+ header.setPreferredSize(new Dimension(400, 20));
|
|
|
+ GridBagConstraints gbc_header = new GridBagConstraints();
|
|
|
+ gbc_header.insets = new Insets(0, 0, 5, 0);
|
|
|
+ gbc_header.fill = GridBagConstraints.BOTH;
|
|
|
+ gbc_header.gridx = 0;
|
|
|
+ gbc_header.gridy = 0;
|
|
|
+ add(header, gbc_header);
|
|
|
+ GridBagLayout gbl_header = new GridBagLayout();
|
|
|
+ gbl_header.columnWidths = new int[]{0, 50, 0, 0, 50, 0, 0, 65, 0, 65, 0, 0};
|
|
|
+ gbl_header.rowHeights = new int[]{0, 0};
|
|
|
+ gbl_header.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
|
|
|
+ gbl_header.rowWeights = new double[]{0.0, Double.MIN_VALUE};
|
|
|
+ header.setLayout(gbl_header);
|
|
|
+
|
|
|
+ JLabel lblClass = new JLabel("Class:");
|
|
|
+ lblClass.setFont(new Font("Tahoma", Font.BOLD, 14));
|
|
|
+ GridBagConstraints gbc_lblClass = new GridBagConstraints();
|
|
|
+ gbc_lblClass.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_lblClass.anchor = GridBagConstraints.EAST;
|
|
|
+ gbc_lblClass.gridx = 0;
|
|
|
+ gbc_lblClass.gridy = 0;
|
|
|
+ header.add(lblClass, gbc_lblClass);
|
|
|
+
|
|
|
JTextField nameField = new JTextField();
|
|
|
- nameField.setEditable(false);
|
|
|
+ nameField.setPreferredSize(new Dimension(50, 20));
|
|
|
+ nameField.setMaximumSize(new Dimension(50, 20));
|
|
|
+ nameField.setMinimumSize(new Dimension(50, 20));
|
|
|
GridBagConstraints gbc_nameField = new GridBagConstraints();
|
|
|
+ gbc_nameField.fill = GridBagConstraints.HORIZONTAL;
|
|
|
gbc_nameField.insets = new Insets(0, 0, 0, 5);
|
|
|
gbc_nameField.fill = GridBagConstraints.HORIZONTAL;
|
|
|
gbc_nameField.gridx = 0;
|
|
|
@@ -42,17 +75,98 @@ public class ClassTab extends JPanel {
|
|
|
add(nameField, gbc_nameField);
|
|
|
nameField.setColumns(10);
|
|
|
|
|
|
+ nameField.setText(model.getName());
|
|
|
+
|
|
|
+ Component horizontalStrut = Box.createHorizontalStrut(20);
|
|
|
+ GridBagConstraints gbc_horizontalStrut = new GridBagConstraints();
|
|
|
+ gbc_horizontalStrut.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_horizontalStrut.gridx = 2;
|
|
|
+ gbc_horizontalStrut.gridy = 0;
|
|
|
+ header.add(horizontalStrut, gbc_horizontalStrut);
|
|
|
+
|
|
|
+ JLabel lblLevel = new JLabel("Level:");
|
|
|
+ lblLevel.setFont(new Font("Tahoma", Font.BOLD, 14));
|
|
|
+ GridBagConstraints gbc_lblLevel = new GridBagConstraints();
|
|
|
+ gbc_lblLevel.fill = GridBagConstraints.HORIZONTAL;
|
|
|
+ gbc_lblLevel.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_lblLevel.gridx = 3;
|
|
|
+ gbc_lblLevel.gridy = 0;
|
|
|
+ header.add(lblLevel, gbc_lblLevel);
|
|
|
+
|
|
|
JTextField levelField = new JTextField();
|
|
|
- levelField.setEditable(false);
|
|
|
+ levelField.setPreferredSize(new Dimension(50, 20));
|
|
|
+ levelField.setMaximumSize(new Dimension(50, 20));
|
|
|
+ levelField.setMinimumSize(new Dimension(50, 20));
|
|
|
GridBagConstraints gbc_levelField = new GridBagConstraints();
|
|
|
gbc_levelField.fill = GridBagConstraints.HORIZONTAL;
|
|
|
- gbc_levelField.gridx = 1;
|
|
|
+ gbc_levelField.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_levelField.gridx = 4;
|
|
|
gbc_levelField.gridy = 0;
|
|
|
add(levelField, gbc_levelField);
|
|
|
levelField.setColumns(10);
|
|
|
|
|
|
- nameField.setText(model.getName());
|
|
|
- levelField.setText(StringHelper.toString(model.getLevel()));
|
|
|
+ Component horizontalStrut_1 = Box.createHorizontalStrut(20);
|
|
|
+ GridBagConstraints gbc_horizontalStrut_1 = new GridBagConstraints();
|
|
|
+ gbc_horizontalStrut_1.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_horizontalStrut_1.gridx = 5;
|
|
|
+ gbc_horizontalStrut_1.gridy = 0;
|
|
|
+ header.add(horizontalStrut_1, gbc_horizontalStrut_1);
|
|
|
+
|
|
|
+ JLabel lblExperience = new JLabel("Experience:");
|
|
|
+ lblExperience.setFont(new Font("Tahoma", Font.BOLD, 14));
|
|
|
+ GridBagConstraints gbc_lblExperience = new GridBagConstraints();
|
|
|
+ gbc_lblExperience.anchor = GridBagConstraints.EAST;
|
|
|
+ gbc_lblExperience.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_lblExperience.gridx = 6;
|
|
|
+ gbc_lblExperience.gridy = 0;
|
|
|
+ header.add(lblExperience, gbc_lblExperience);
|
|
|
+
|
|
|
+ experienceField = new JTextField();
|
|
|
+ experienceField.setText(Integer.toString(chara.getExperience().value()));
|
|
|
+ experienceField.setEditable(false);
|
|
|
+ experienceField.setColumns(10);
|
|
|
+ GridBagConstraints gbc_experienceField = new GridBagConstraints();
|
|
|
+ gbc_experienceField.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_experienceField.fill = GridBagConstraints.HORIZONTAL;
|
|
|
+ gbc_experienceField.gridx = 7;
|
|
|
+ gbc_experienceField.gridy = 0;
|
|
|
+ header.add(experienceField, gbc_experienceField);
|
|
|
+
|
|
|
+ JLabel label = new JLabel("/");
|
|
|
+ GridBagConstraints gbc_label = new GridBagConstraints();
|
|
|
+ gbc_label.anchor = GridBagConstraints.EAST;
|
|
|
+ gbc_label.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_label.gridx = 8;
|
|
|
+ gbc_label.gridy = 0;
|
|
|
+ header.add(label, gbc_label);
|
|
|
+
|
|
|
+ JTextField nextLvlField = new JTextField();
|
|
|
+ nextLvlField.setText(Integer.toString(chara.getLevel() * (chara.getLevel() + 1) * 500));
|
|
|
+ nextLvlField.setEditable(false);
|
|
|
+ nextLvlField.setColumns(10);
|
|
|
+ GridBagConstraints gbc_nextLvlField = new GridBagConstraints();
|
|
|
+ gbc_nextLvlField.insets = new Insets(0, 0, 0, 5);
|
|
|
+ gbc_nextLvlField.fill = GridBagConstraints.HORIZONTAL;
|
|
|
+ gbc_nextLvlField.gridx = 9;
|
|
|
+ gbc_nextLvlField.gridy = 0;
|
|
|
+ header.add(nextLvlField, gbc_nextLvlField);
|
|
|
+
|
|
|
+ JPanel levelBenefits = new JPanel();
|
|
|
+ GridBagConstraints gbc_levelBenefits = new GridBagConstraints();
|
|
|
+ gbc_levelBenefits.insets = new Insets(0, 0, 5, 0);
|
|
|
+ gbc_levelBenefits.fill = GridBagConstraints.BOTH;
|
|
|
+ gbc_levelBenefits.gridx = 0;
|
|
|
+ gbc_levelBenefits.gridy = 1;
|
|
|
+ add(levelBenefits, gbc_levelBenefits);
|
|
|
+
|
|
|
+ if (model.getSpellBook().isPresent()) {
|
|
|
+ SpellPanel spells = new SpellPanel(chara, model);
|
|
|
+ GridBagConstraints gbc_spells = new GridBagConstraints();
|
|
|
+ gbc_spells.fill = GridBagConstraints.BOTH;
|
|
|
+ gbc_spells.gridx = 0;
|
|
|
+ gbc_spells.gridy = 2;
|
|
|
+ add(spells, gbc_spells);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|