package org.leumasjaffe.charsheet.view; import javax.swing.JPanel; import lombok.AccessLevel; import lombok.experimental.FieldDefaults; import java.awt.GridBagLayout; import javax.swing.JTextField; import org.leumasjaffe.charsheet.model.DDCharacter; import org.leumasjaffe.charsheet.model.DDCharacterClass; import org.leumasjaffe.charsheet.util.StringHelper; import org.leumasjaffe.charsheet.view.magic.SpellPanel; import java.awt.GridBagConstraints; import java.awt.Insets; import javax.swing.JLabel; import java.awt.Component; import javax.swing.Box; import java.awt.Font; @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true) public class ClassTab extends JPanel { /** * */ private static final long serialVersionUID = 1L; String title; public ClassTab(DDCharacter chara, DDCharacterClass model) { this.title = model.getName(); GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[]{0, 0}; gridBagLayout.rowHeights = new int[]{0, 0, 0, 0}; gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE}; gridBagLayout.rowWeights = new double[]{0.0, 1.0, 1.0, Double.MIN_VALUE}; setLayout(gridBagLayout); JPanel header = new JPanel(); 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, 0, 0, 0, 0, 0, 0}; gbl_header.rowHeights = new int[]{0, 0}; gbl_header.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 1.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(); GridBagConstraints gbc_nameField = new GridBagConstraints(); gbc_nameField.insets = new Insets(0, 0, 0, 5); gbc_nameField.gridx = 1; gbc_nameField.gridy = 0; header.add(nameField, gbc_nameField); nameField.setEditable(false); 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.insets = new Insets(0, 0, 0, 5); gbc_lblLevel.anchor = GridBagConstraints.EAST; gbc_lblLevel.gridx = 3; gbc_lblLevel.gridy = 0; header.add(lblLevel, gbc_lblLevel); JTextField levelField = new JTextField(); GridBagConstraints gbc_levelField = new GridBagConstraints(); gbc_levelField.insets = new Insets(0, 0, 0, 5); gbc_levelField.gridx = 4; gbc_levelField.gridy = 0; header.add(levelField, gbc_levelField); levelField.setEditable(false); levelField.setColumns(10); levelField.setText(StringHelper.toString(model.getLevel())); 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 public String getName() { return title; } }