WeaponPanel.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. package org.leumasjaffe.charsheet.view.inventory;
  2. import javax.swing.JPanel;
  3. import java.awt.GridBagLayout;
  4. import java.awt.GridBagConstraints;
  5. import java.awt.Insets;
  6. import javax.swing.JLabel;
  7. import javax.swing.JTextField;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.Color;
  11. import javax.swing.SwingConstants;
  12. import org.leumasjaffe.charsheet.model.equip.DDItem;
  13. import org.leumasjaffe.charsheet.model.equip.DDWeapon;
  14. import org.leumasjaffe.charsheet.view.StringHelper;
  15. import java.awt.Component;
  16. import javax.swing.Box;
  17. public class WeaponPanel extends JPanel {
  18. /**
  19. *
  20. */
  21. private static final long serialVersionUID = 1L;
  22. private JTextField nameField;
  23. private JTextField attackBonusField;
  24. private JTextField damageField;
  25. private JTextField criticalField;
  26. private JTextField rangeField;
  27. private JTextField propField;
  28. private JTextField typeField;
  29. public WeaponPanel(final DDItem item) {
  30. final DDWeapon weapon = item.getWeapon();
  31. setPreferredSize(new Dimension(280, 70));
  32. GridBagLayout gridBagLayout = new GridBagLayout();
  33. gridBagLayout.columnWidths = new int[]{0, 0};
  34. gridBagLayout.rowHeights = new int[]{0, 0, 0};
  35. gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  36. gridBagLayout.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
  37. setLayout(gridBagLayout);
  38. JPanel panel = new JPanel();
  39. GridBagConstraints gbc_panel = new GridBagConstraints();
  40. gbc_panel.insets = new Insets(0, 0, 0, 0);
  41. gbc_panel.fill = GridBagConstraints.BOTH;
  42. gbc_panel.gridx = 0;
  43. gbc_panel.gridy = 0;
  44. add(panel, gbc_panel);
  45. GridBagLayout gbl_panel = new GridBagLayout();
  46. gbl_panel.columnWidths = new int[]{100, 0, 0, 0, 0};
  47. gbl_panel.rowHeights = new int[]{0, 0, 0, 0};
  48. gbl_panel.columnWeights = new double[]{1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
  49. gbl_panel.rowWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
  50. panel.setLayout(gbl_panel);
  51. JLabel lblWeapon = new JLabel("WEAPON");
  52. lblWeapon.setHorizontalAlignment(SwingConstants.CENTER);
  53. lblWeapon.setForeground(Color.WHITE);
  54. lblWeapon.setOpaque(true);
  55. lblWeapon.setBackground(Color.BLACK);
  56. lblWeapon.setFont(new Font("Tahoma", Font.BOLD, 10));
  57. GridBagConstraints gbc_lblWeapon = new GridBagConstraints();
  58. gbc_lblWeapon.fill = GridBagConstraints.BOTH;
  59. gbc_lblWeapon.insets = new Insets(0, 0, 0, 1);
  60. gbc_lblWeapon.gridheight = 2;
  61. gbc_lblWeapon.gridx = 0;
  62. gbc_lblWeapon.gridy = 0;
  63. panel.add(lblWeapon, gbc_lblWeapon);
  64. Component verticalStrut = Box.createVerticalStrut(20);
  65. verticalStrut.setMinimumSize(new Dimension(0, 10));
  66. verticalStrut.setMaximumSize(new Dimension(32767, 10));
  67. verticalStrut.setPreferredSize(new Dimension(0, 10));
  68. GridBagConstraints gbc_verticalStrut = new GridBagConstraints();
  69. gbc_verticalStrut.insets = new Insets(0, 0, 0, 0);
  70. gbc_verticalStrut.gridx = 2;
  71. gbc_verticalStrut.gridy = 0;
  72. panel.add(verticalStrut, gbc_verticalStrut);
  73. JLabel lblAtkBonus = new JLabel("ATTACK BONUS");
  74. lblAtkBonus.setHorizontalAlignment(SwingConstants.CENTER);
  75. lblAtkBonus.setForeground(Color.WHITE);
  76. lblAtkBonus.setOpaque(true);
  77. lblAtkBonus.setBackground(Color.BLACK);
  78. lblAtkBonus.setFont(new Font("Tahoma", Font.BOLD, 8));
  79. GridBagConstraints gbc_lblAtkBonus = new GridBagConstraints();
  80. gbc_lblAtkBonus.fill = GridBagConstraints.HORIZONTAL;
  81. gbc_lblAtkBonus.insets = new Insets(0, 0, 0, 1);
  82. gbc_lblAtkBonus.gridx = 1;
  83. gbc_lblAtkBonus.gridy = 1;
  84. panel.add(lblAtkBonus, gbc_lblAtkBonus);
  85. JLabel lblDamage = new JLabel("DAMAGE");
  86. lblDamage.setHorizontalAlignment(SwingConstants.CENTER);
  87. lblDamage.setForeground(Color.WHITE);
  88. lblDamage.setOpaque(true);
  89. lblDamage.setBackground(Color.BLACK);
  90. lblDamage.setFont(new Font("Tahoma", Font.BOLD, 8));
  91. GridBagConstraints gbc_lblDamage = new GridBagConstraints();
  92. gbc_lblDamage.fill = GridBagConstraints.HORIZONTAL;
  93. gbc_lblDamage.insets = new Insets(0, 0, 0, 1);
  94. gbc_lblDamage.gridx = 2;
  95. gbc_lblDamage.gridy = 1;
  96. panel.add(lblDamage, gbc_lblDamage);
  97. JLabel lblCritical = new JLabel("CRITICAL");
  98. GridBagConstraints gbc_lblCritical = new GridBagConstraints();
  99. gbc_lblCritical.fill = GridBagConstraints.HORIZONTAL;
  100. gbc_lblCritical.insets = new Insets(0, 0, 0, 1);
  101. gbc_lblCritical.gridx = 3;
  102. gbc_lblCritical.gridy = 1;
  103. panel.add(lblCritical, gbc_lblCritical);
  104. lblCritical.setHorizontalAlignment(SwingConstants.CENTER);
  105. lblCritical.setForeground(Color.WHITE);
  106. lblCritical.setOpaque(true);
  107. lblCritical.setBackground(Color.BLACK);
  108. lblCritical.setFont(new Font("Tahoma", Font.BOLD, 8));
  109. nameField = new JTextField(item.getName());
  110. GridBagConstraints gbc_nameField = new GridBagConstraints();
  111. gbc_nameField.insets = new Insets(0, 0, 0, 0);
  112. gbc_nameField.fill = GridBagConstraints.HORIZONTAL;
  113. gbc_nameField.gridx = 0;
  114. gbc_nameField.gridy = 2;
  115. panel.add(nameField, gbc_nameField);
  116. nameField.setColumns(10);
  117. attackBonusField = new JTextField(StringHelper.toSignedString(weapon.getAttackBonus()));
  118. attackBonusField.setHorizontalAlignment(SwingConstants.CENTER);
  119. GridBagConstraints gbc_attackBonusField = new GridBagConstraints();
  120. gbc_attackBonusField.insets = new Insets(0, 0, 0, 0);
  121. gbc_attackBonusField.fill = GridBagConstraints.HORIZONTAL;
  122. gbc_attackBonusField.gridx = 1;
  123. gbc_attackBonusField.gridy = 2;
  124. panel.add(attackBonusField, gbc_attackBonusField);
  125. attackBonusField.setColumns(10);
  126. damageField = new JTextField(weapon.getDamage() + StringHelper.toSignedString(weapon.getDamageBonus(), 0));
  127. damageField.setHorizontalAlignment(SwingConstants.CENTER);
  128. GridBagConstraints gbc_damageField = new GridBagConstraints();
  129. gbc_damageField.insets = new Insets(0, 0, 0, 0);
  130. gbc_damageField.fill = GridBagConstraints.HORIZONTAL;
  131. gbc_damageField.gridx = 2;
  132. gbc_damageField.gridy = 2;
  133. panel.add(damageField, gbc_damageField);
  134. damageField.setColumns(10);
  135. final StringBuilder critStr = new StringBuilder();
  136. if (weapon.hasCriticalThreat()) { critStr.append(weapon.getCriticalThreat()).append("-20/"); }
  137. critStr.append('x').append(weapon.getCriticalDamage());
  138. criticalField = new JTextField(critStr.toString());
  139. criticalField.setHorizontalAlignment(SwingConstants.CENTER);
  140. GridBagConstraints gbc_criticalField = new GridBagConstraints();
  141. gbc_criticalField.fill = GridBagConstraints.HORIZONTAL;
  142. gbc_criticalField.gridx = 3;
  143. gbc_criticalField.gridy = 2;
  144. panel.add(criticalField, gbc_criticalField);
  145. criticalField.setColumns(10);
  146. JPanel panel_1 = new JPanel();
  147. GridBagConstraints gbc_panel_1 = new GridBagConstraints();
  148. gbc_panel_1.fill = GridBagConstraints.BOTH;
  149. gbc_panel_1.gridx = 0;
  150. gbc_panel_1.gridy = 1;
  151. add(panel_1, gbc_panel_1);
  152. GridBagLayout gbl_panel_1 = new GridBagLayout();
  153. gbl_panel_1.columnWidths = new int[]{0, 0, 0, 0};
  154. gbl_panel_1.rowHeights = new int[]{0, 0, 0};
  155. gbl_panel_1.columnWeights = new double[]{1.0, 1.0, 1.0, Double.MIN_VALUE};
  156. gbl_panel_1.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
  157. panel_1.setLayout(gbl_panel_1);
  158. JLabel lblRange = new JLabel("RANGE");
  159. lblRange.setHorizontalAlignment(SwingConstants.CENTER);
  160. lblRange.setForeground(Color.WHITE);
  161. lblRange.setOpaque(true);
  162. lblRange.setBackground(Color.BLACK);
  163. lblRange.setFont(new Font("Tahoma", Font.BOLD, 8));
  164. GridBagConstraints gbc_lblRange = new GridBagConstraints();
  165. gbc_lblRange.fill = GridBagConstraints.BOTH;
  166. gbc_lblRange.insets = new Insets(0, 0, 0, 1);
  167. gbc_lblRange.gridx = 0;
  168. gbc_lblRange.gridy = 0;
  169. panel_1.add(lblRange, gbc_lblRange);
  170. JLabel lblType = new JLabel("TYPE");
  171. lblType.setOpaque(true);
  172. lblType.setHorizontalAlignment(SwingConstants.CENTER);
  173. lblType.setForeground(Color.WHITE);
  174. lblType.setFont(new Font("Tahoma", Font.BOLD, 8));
  175. lblType.setBackground(Color.BLACK);
  176. GridBagConstraints gbc_lblType = new GridBagConstraints();
  177. gbc_lblType.fill = GridBagConstraints.HORIZONTAL;
  178. gbc_lblType.insets = new Insets(0, 0, 0, 1);
  179. gbc_lblType.gridx = 1;
  180. gbc_lblType.gridy = 0;
  181. panel_1.add(lblType, gbc_lblType);
  182. JLabel lblSpecialProperties = new JLabel("SPECIAL PROPERTIES");
  183. lblSpecialProperties.setHorizontalAlignment(SwingConstants.CENTER);
  184. lblSpecialProperties.setForeground(Color.WHITE);
  185. lblSpecialProperties.setOpaque(true);
  186. lblSpecialProperties.setBackground(Color.BLACK);
  187. lblSpecialProperties.setFont(new Font("Tahoma", Font.BOLD, 8));
  188. GridBagConstraints gbc_lblSpecialProperties = new GridBagConstraints();
  189. gbc_lblSpecialProperties.fill = GridBagConstraints.BOTH;
  190. gbc_lblSpecialProperties.insets = new Insets(0, 0, 0, 1);
  191. gbc_lblSpecialProperties.gridx = 2;
  192. gbc_lblSpecialProperties.gridy = 0;
  193. panel_1.add(lblSpecialProperties, gbc_lblSpecialProperties);
  194. rangeField = new JTextField(StringHelper.toString(weapon.getRange().toString()));
  195. rangeField.setHorizontalAlignment(SwingConstants.CENTER);
  196. GridBagConstraints gbc_rangeField = new GridBagConstraints();
  197. gbc_rangeField.insets = new Insets(0, 0, 0, 0);
  198. gbc_rangeField.fill = GridBagConstraints.HORIZONTAL;
  199. gbc_rangeField.gridx = 0;
  200. gbc_rangeField.gridy = 1;
  201. panel_1.add(rangeField, gbc_rangeField);
  202. rangeField.setColumns(10);
  203. typeField = new JTextField(item.getWeapon().getType().toString());
  204. typeField.setHorizontalAlignment(SwingConstants.CENTER);
  205. typeField.setColumns(10);
  206. GridBagConstraints gbc_typeField = new GridBagConstraints();
  207. gbc_typeField.insets = new Insets(0, 0, 0, 0);
  208. gbc_typeField.fill = GridBagConstraints.HORIZONTAL;
  209. gbc_typeField.gridx = 1;
  210. gbc_typeField.gridy = 1;
  211. panel_1.add(typeField, gbc_typeField);
  212. propField = new JTextField();
  213. GridBagConstraints gbc_propField = new GridBagConstraints();
  214. gbc_propField.fill = GridBagConstraints.HORIZONTAL;
  215. gbc_propField.gridx = 2;
  216. gbc_propField.gridy = 1;
  217. panel_1.add(propField, gbc_propField);
  218. propField.setColumns(10);
  219. // TODO Auto-generated constructor stub
  220. }
  221. }