DescriptionPanel.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. package org.leumasjaffe.charsheet.view.summary;
  2. import javax.swing.JPanel;
  3. import java.awt.GridBagLayout;
  4. import java.awt.GridBagConstraints;
  5. import java.awt.Insets;
  6. import javax.swing.JTextField;
  7. import javax.swing.border.TitledBorder;
  8. import org.leumasjaffe.charsheet.entity.DDCharacter;
  9. import org.leumasjaffe.charsheet.view.StringHelper;
  10. import javax.swing.border.Border;
  11. import javax.swing.border.MatteBorder;
  12. import java.awt.Color;
  13. import java.awt.Font;
  14. import java.awt.Dimension;
  15. public class DescriptionPanel extends JPanel {
  16. /**
  17. *
  18. */
  19. private static final long serialVersionUID = 1L;
  20. private JTextField name;
  21. private JTextField level;
  22. private JTextField height;
  23. private JTextField gender;
  24. private JTextField age;
  25. private JTextField size;
  26. private JTextField player;
  27. private JTextField deity;
  28. private JTextField alignment;
  29. private JTextField race;
  30. private JTextField skin;
  31. private JTextField hair;
  32. private JTextField eyes;
  33. private JTextField weight;
  34. private DDCharacter model;
  35. public DescriptionPanel() {
  36. setMinimumSize(new Dimension(600, 120));
  37. setMaximumSize(new Dimension(600, 120));
  38. setPreferredSize(new Dimension(600, 120));
  39. setOpaque(false);
  40. GridBagLayout gridBagLayout = new GridBagLayout();
  41. gridBagLayout.columnWidths = new int[]{0, 0, 0};
  42. gridBagLayout.rowHeights = new int[]{0, 0};
  43. gridBagLayout.columnWeights = new double[]{1.0, 1.0, Double.MIN_VALUE};
  44. gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  45. setLayout(gridBagLayout);
  46. JPanel panel = new JPanel();
  47. panel.setOpaque(false);
  48. GridBagConstraints gbc_panel = new GridBagConstraints();
  49. gbc_panel.insets = new Insets(0, 0, 0, 5);
  50. gbc_panel.fill = GridBagConstraints.BOTH;
  51. gbc_panel.gridx = 0;
  52. gbc_panel.gridy = 0;
  53. add(panel, gbc_panel);
  54. GridBagLayout gbl_panel = new GridBagLayout();
  55. gbl_panel.columnWidths = new int[]{0, 0};
  56. gbl_panel.rowHeights = new int[]{0, 0, 0, 0};
  57. gbl_panel.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  58. gbl_panel.rowWeights = new double[]{1.0, 1.0, 1.0, Double.MIN_VALUE};
  59. panel.setLayout(gbl_panel);
  60. JPanel panel_4 = new JPanel();
  61. panel_4.setPreferredSize(new Dimension(10, 30));
  62. panel_4.setMinimumSize(new Dimension(10, 30));
  63. panel_4.setOpaque(false);
  64. GridBagConstraints gbc_panel_4 = new GridBagConstraints();
  65. gbc_panel_4.insets = new Insets(0, 0, 5, 0);
  66. gbc_panel_4.fill = GridBagConstraints.BOTH;
  67. gbc_panel_4.gridx = 0;
  68. gbc_panel_4.gridy = 0;
  69. panel.add(panel_4, gbc_panel_4);
  70. GridBagLayout gbl_panel_4 = new GridBagLayout();
  71. gbl_panel_4.columnWidths = new int[]{0, 0};
  72. gbl_panel_4.rowHeights = new int[]{0, 0};
  73. gbl_panel_4.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  74. gbl_panel_4.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  75. panel_4.setLayout(gbl_panel_4);
  76. final Border lineBorder = new MatteBorder(0, 0, 1, 0, Color.BLACK);
  77. final int borderAlign = TitledBorder.LEADING;
  78. final int titlePos = TitledBorder.BELOW_BOTTOM;
  79. final Font titleFont = new Font("Tahoma", Font.PLAIN, 8);
  80. final Color titleColor = Color.BLACK;
  81. name = new JTextField();
  82. name.setMaximumSize(new Dimension(2147483647, 30));
  83. name.setMinimumSize(new Dimension(6, 30));
  84. name.setPreferredSize(new Dimension(6, 30));
  85. name.setBorder(new TitledBorder(lineBorder, "CHARACTER NAME", borderAlign, titlePos, titleFont, titleColor));
  86. GridBagConstraints gbc_name = new GridBagConstraints();
  87. gbc_name.fill = GridBagConstraints.HORIZONTAL;
  88. gbc_name.gridx = 0;
  89. gbc_name.gridy = 0;
  90. panel_4.add(name, gbc_name);
  91. name.setColumns(10);
  92. JPanel panel_3 = new JPanel();
  93. panel_3.setPreferredSize(new Dimension(10, 30));
  94. panel_3.setMinimumSize(new Dimension(10, 30));
  95. panel_3.setOpaque(false);
  96. GridBagConstraints gbc_panel_3 = new GridBagConstraints();
  97. gbc_panel_3.insets = new Insets(0, 0, 5, 0);
  98. gbc_panel_3.fill = GridBagConstraints.BOTH;
  99. gbc_panel_3.gridx = 0;
  100. gbc_panel_3.gridy = 1;
  101. panel.add(panel_3, gbc_panel_3);
  102. GridBagLayout gbl_panel_3 = new GridBagLayout();
  103. gbl_panel_3.columnWidths = new int[]{0, 0};
  104. gbl_panel_3.rowHeights = new int[]{0, 0};
  105. gbl_panel_3.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  106. gbl_panel_3.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  107. panel_3.setLayout(gbl_panel_3);
  108. level = new JTextField();
  109. level.setEditable(false);
  110. level.setMaximumSize(new Dimension(2147483647, 30));
  111. level.setMinimumSize(new Dimension(6, 30));
  112. level.setPreferredSize(new Dimension(6, 30));
  113. level.setColumns(10);
  114. level.setBorder(new TitledBorder(lineBorder, "CLASS AND LEVEL", borderAlign, titlePos, titleFont, titleColor));
  115. GridBagConstraints gbc_level = new GridBagConstraints();
  116. gbc_level.fill = GridBagConstraints.HORIZONTAL;
  117. gbc_level.gridx = 0;
  118. gbc_level.gridy = 0;
  119. panel_3.add(level, gbc_level);
  120. JPanel panel_2 = new JPanel();
  121. panel_2.setPreferredSize(new Dimension(10, 30));
  122. panel_2.setMinimumSize(new Dimension(10, 30));
  123. panel_2.setOpaque(false);
  124. GridBagConstraints gbc_panel_2 = new GridBagConstraints();
  125. gbc_panel_2.fill = GridBagConstraints.BOTH;
  126. gbc_panel_2.gridx = 0;
  127. gbc_panel_2.gridy = 2;
  128. panel.add(panel_2, gbc_panel_2);
  129. GridBagLayout gbl_panel_2 = new GridBagLayout();
  130. gbl_panel_2.columnWidths = new int[]{0, 0, 0, 0, 0};
  131. gbl_panel_2.rowHeights = new int[]{0, 0};
  132. gbl_panel_2.columnWeights = new double[]{1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
  133. gbl_panel_2.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  134. panel_2.setLayout(gbl_panel_2);
  135. size = new JTextField();
  136. size.setMaximumSize(new Dimension(2147483647, 30));
  137. size.setMinimumSize(new Dimension(6, 30));
  138. size.setPreferredSize(new Dimension(6, 30));
  139. size.setColumns(10);
  140. size.setBorder(new TitledBorder(lineBorder, "SIZE", borderAlign, titlePos, titleFont, titleColor));
  141. GridBagConstraints gbc_size = new GridBagConstraints();
  142. gbc_size.insets = new Insets(0, 0, 0, 5);
  143. gbc_size.fill = GridBagConstraints.HORIZONTAL;
  144. gbc_size.gridx = 0;
  145. gbc_size.gridy = 0;
  146. panel_2.add(size, gbc_size);
  147. age = new JTextField();
  148. age.setMaximumSize(new Dimension(2147483647, 30));
  149. age.setMinimumSize(new Dimension(6, 30));
  150. age.setPreferredSize(new Dimension(6, 30));
  151. age.setColumns(10);
  152. age.setBorder(new TitledBorder(lineBorder, "AGE", borderAlign, titlePos, titleFont, titleColor));
  153. GridBagConstraints gbc_age = new GridBagConstraints();
  154. gbc_age.insets = new Insets(0, 0, 0, 5);
  155. gbc_age.fill = GridBagConstraints.HORIZONTAL;
  156. gbc_age.gridx = 1;
  157. gbc_age.gridy = 0;
  158. panel_2.add(age, gbc_age);
  159. gender = new JTextField();
  160. gender.setMaximumSize(new Dimension(2147483647, 30));
  161. gender.setMinimumSize(new Dimension(6, 30));
  162. gender.setPreferredSize(new Dimension(6, 30));
  163. gender.setColumns(10);
  164. gender.setBorder(new TitledBorder(lineBorder, "GENDER", borderAlign, titlePos, titleFont, titleColor));
  165. GridBagConstraints gbc_gender = new GridBagConstraints();
  166. gbc_gender.insets = new Insets(0, 0, 0, 5);
  167. gbc_gender.fill = GridBagConstraints.HORIZONTAL;
  168. gbc_gender.gridx = 2;
  169. gbc_gender.gridy = 0;
  170. panel_2.add(gender, gbc_gender);
  171. height = new JTextField();
  172. height.setMaximumSize(new Dimension(2147483647, 30));
  173. height.setMinimumSize(new Dimension(6, 30));
  174. height.setPreferredSize(new Dimension(6, 30));
  175. height.setColumns(10);
  176. height.setBorder(new TitledBorder(lineBorder, "HEIGHT", borderAlign, titlePos, titleFont, titleColor));
  177. GridBagConstraints gbc_height = new GridBagConstraints();
  178. gbc_height.fill = GridBagConstraints.HORIZONTAL;
  179. gbc_height.gridx = 3;
  180. gbc_height.gridy = 0;
  181. panel_2.add(height, gbc_height);
  182. JPanel panel_1 = new JPanel();
  183. panel_1.setOpaque(false);
  184. GridBagConstraints gbc_panel_1 = new GridBagConstraints();
  185. gbc_panel_1.fill = GridBagConstraints.BOTH;
  186. gbc_panel_1.gridx = 1;
  187. gbc_panel_1.gridy = 0;
  188. add(panel_1, gbc_panel_1);
  189. GridBagLayout gbl_panel_1 = new GridBagLayout();
  190. gbl_panel_1.columnWidths = new int[]{0, 0};
  191. gbl_panel_1.rowHeights = new int[]{0, 0, 0, 0};
  192. gbl_panel_1.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  193. gbl_panel_1.rowWeights = new double[]{1.0, 1.0, 1.0, Double.MIN_VALUE};
  194. panel_1.setLayout(gbl_panel_1);
  195. JPanel panel_7 = new JPanel();
  196. panel_7.setPreferredSize(new Dimension(10, 30));
  197. panel_7.setMinimumSize(new Dimension(10, 30));
  198. panel_7.setOpaque(false);
  199. GridBagConstraints gbc_panel_7 = new GridBagConstraints();
  200. gbc_panel_7.insets = new Insets(0, 0, 5, 0);
  201. gbc_panel_7.fill = GridBagConstraints.BOTH;
  202. gbc_panel_7.gridx = 0;
  203. gbc_panel_7.gridy = 0;
  204. panel_1.add(panel_7, gbc_panel_7);
  205. GridBagLayout gbl_panel_7 = new GridBagLayout();
  206. gbl_panel_7.columnWidths = new int[]{0, 0};
  207. gbl_panel_7.rowHeights = new int[]{0, 0};
  208. gbl_panel_7.columnWeights = new double[]{1.0, Double.MIN_VALUE};
  209. gbl_panel_7.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  210. panel_7.setLayout(gbl_panel_7);
  211. player = new JTextField();
  212. player.setMaximumSize(new Dimension(2147483647, 30));
  213. player.setMinimumSize(new Dimension(6, 30));
  214. player.setPreferredSize(new Dimension(6, 30));
  215. player.setColumns(10);
  216. player.setBorder(new TitledBorder(lineBorder, "PLAYER", borderAlign, titlePos, titleFont, titleColor));
  217. GridBagConstraints gbc_player = new GridBagConstraints();
  218. gbc_player.fill = GridBagConstraints.HORIZONTAL;
  219. gbc_player.gridx = 0;
  220. gbc_player.gridy = 0;
  221. panel_7.add(player, gbc_player);
  222. JPanel panel_6 = new JPanel();
  223. panel_6.setPreferredSize(new Dimension(10, 30));
  224. panel_6.setMinimumSize(new Dimension(10, 30));
  225. panel_6.setOpaque(false);
  226. GridBagConstraints gbc_panel_6 = new GridBagConstraints();
  227. gbc_panel_6.insets = new Insets(0, 0, 5, 0);
  228. gbc_panel_6.fill = GridBagConstraints.BOTH;
  229. gbc_panel_6.gridx = 0;
  230. gbc_panel_6.gridy = 1;
  231. panel_1.add(panel_6, gbc_panel_6);
  232. GridBagLayout gbl_panel_6 = new GridBagLayout();
  233. gbl_panel_6.columnWidths = new int[]{0, 0, 0, 0};
  234. gbl_panel_6.rowHeights = new int[]{0, 0};
  235. gbl_panel_6.columnWeights = new double[]{1.0, 1.0, 1.0, Double.MIN_VALUE};
  236. gbl_panel_6.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  237. panel_6.setLayout(gbl_panel_6);
  238. race = new JTextField();
  239. race.setMaximumSize(new Dimension(2147483647, 30));
  240. race.setMinimumSize(new Dimension(6, 30));
  241. race.setPreferredSize(new Dimension(6, 30));
  242. race.setColumns(10);
  243. race.setBorder(new TitledBorder(lineBorder, "RACE", borderAlign, titlePos, titleFont, titleColor));
  244. GridBagConstraints gbc_race = new GridBagConstraints();
  245. gbc_race.insets = new Insets(0, 0, 0, 5);
  246. gbc_race.fill = GridBagConstraints.HORIZONTAL;
  247. gbc_race.gridx = 0;
  248. gbc_race.gridy = 0;
  249. panel_6.add(race, gbc_race);
  250. alignment = new JTextField();
  251. alignment.setMaximumSize(new Dimension(2147483647, 30));
  252. alignment.setMinimumSize(new Dimension(6, 30));
  253. alignment.setPreferredSize(new Dimension(6, 30));
  254. alignment.setColumns(10);
  255. alignment.setBorder(new TitledBorder(lineBorder, "ALIGNMENT", borderAlign, titlePos, titleFont, titleColor));
  256. GridBagConstraints gbc_alignment = new GridBagConstraints();
  257. gbc_alignment.insets = new Insets(0, 0, 0, 5);
  258. gbc_alignment.fill = GridBagConstraints.HORIZONTAL;
  259. gbc_alignment.gridx = 1;
  260. gbc_alignment.gridy = 0;
  261. panel_6.add(alignment, gbc_alignment);
  262. deity = new JTextField();
  263. deity.setMaximumSize(new Dimension(2147483647, 30));
  264. deity.setMinimumSize(new Dimension(6, 30));
  265. deity.setPreferredSize(new Dimension(6, 30));
  266. deity.setColumns(10);
  267. deity.setBorder(new TitledBorder(lineBorder, "DEITY", borderAlign, titlePos, titleFont, titleColor));
  268. GridBagConstraints gbc_deity = new GridBagConstraints();
  269. gbc_deity.fill = GridBagConstraints.HORIZONTAL;
  270. gbc_deity.gridx = 2;
  271. gbc_deity.gridy = 0;
  272. panel_6.add(deity, gbc_deity);
  273. JPanel panel_5 = new JPanel();
  274. panel_5.setPreferredSize(new Dimension(10, 30));
  275. panel_5.setMinimumSize(new Dimension(10, 30));
  276. panel_5.setOpaque(false);
  277. GridBagConstraints gbc_panel_5 = new GridBagConstraints();
  278. gbc_panel_5.fill = GridBagConstraints.BOTH;
  279. gbc_panel_5.gridx = 0;
  280. gbc_panel_5.gridy = 2;
  281. panel_1.add(panel_5, gbc_panel_5);
  282. GridBagLayout gbl_panel_5 = new GridBagLayout();
  283. gbl_panel_5.columnWidths = new int[]{0, 0, 0, 0, 0};
  284. gbl_panel_5.rowHeights = new int[]{0, 0};
  285. gbl_panel_5.columnWeights = new double[]{1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
  286. gbl_panel_5.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  287. panel_5.setLayout(gbl_panel_5);
  288. weight = new JTextField();
  289. weight.setMaximumSize(new Dimension(2147483647, 30));
  290. weight.setMinimumSize(new Dimension(6, 30));
  291. weight.setPreferredSize(new Dimension(6, 30));
  292. weight.setColumns(10);
  293. weight.setBorder(new TitledBorder(lineBorder, "WEIGHT", borderAlign, titlePos, titleFont, titleColor));
  294. GridBagConstraints gbc_weight = new GridBagConstraints();
  295. gbc_weight.insets = new Insets(0, 0, 0, 5);
  296. gbc_weight.fill = GridBagConstraints.HORIZONTAL;
  297. gbc_weight.gridx = 0;
  298. gbc_weight.gridy = 0;
  299. panel_5.add(weight, gbc_weight);
  300. eyes = new JTextField();
  301. eyes.setMaximumSize(new Dimension(2147483647, 30));
  302. eyes.setMinimumSize(new Dimension(6, 30));
  303. eyes.setPreferredSize(new Dimension(6, 30));
  304. eyes.setColumns(10);
  305. eyes.setBorder(new TitledBorder(lineBorder, "EYES", borderAlign, titlePos, titleFont, titleColor));
  306. GridBagConstraints gbc_eyes = new GridBagConstraints();
  307. gbc_eyes.insets = new Insets(0, 0, 0, 5);
  308. gbc_eyes.fill = GridBagConstraints.HORIZONTAL;
  309. gbc_eyes.gridx = 1;
  310. gbc_eyes.gridy = 0;
  311. panel_5.add(eyes, gbc_eyes);
  312. hair = new JTextField();
  313. hair.setMaximumSize(new Dimension(2147483647, 30));
  314. hair.setMinimumSize(new Dimension(6, 30));
  315. hair.setPreferredSize(new Dimension(6, 30));
  316. hair.setColumns(10);
  317. hair.setBorder(new TitledBorder(lineBorder, "HAIR", borderAlign, titlePos, titleFont, titleColor));
  318. GridBagConstraints gbc_hair = new GridBagConstraints();
  319. gbc_hair.insets = new Insets(0, 0, 0, 5);
  320. gbc_hair.fill = GridBagConstraints.HORIZONTAL;
  321. gbc_hair.gridx = 2;
  322. gbc_hair.gridy = 0;
  323. panel_5.add(hair, gbc_hair);
  324. skin = new JTextField();
  325. skin.setMaximumSize(new Dimension(2147483647, 30));
  326. skin.setMinimumSize(new Dimension(6, 30));
  327. skin.setPreferredSize(new Dimension(6, 30));
  328. skin.setColumns(10);
  329. skin.setBorder(new TitledBorder(lineBorder, "SKIN", borderAlign, titlePos, titleFont, titleColor));
  330. GridBagConstraints gbc_skin = new GridBagConstraints();
  331. gbc_skin.fill = GridBagConstraints.HORIZONTAL;
  332. gbc_skin.gridx = 3;
  333. gbc_skin.gridy = 0;
  334. panel_5.add(skin, gbc_skin);
  335. }
  336. public void setModel(DDCharacter model) {
  337. this.model = model;
  338. }
  339. public void updateModel() {
  340. this.name.setText(this.model.getName());
  341. this.player.setText(this.model.getPlayer());
  342. this.level.setText(this.model.getClassAndLevelString());
  343. this.race.setText(this.model.getRace());
  344. this.alignment.setText(StringHelper.toString(this.model.getAlignment()));
  345. this.deity.setText(this.model.getDeity());
  346. this.size.setText(StringHelper.toString(this.model.getSize()));
  347. this.age.setText(StringHelper.toString(this.model.getAge(), -1));
  348. this.gender.setText(StringHelper.toString(this.model.getGender()));
  349. this.height.setText(this.model.getHeight());
  350. this.weight.setText(StringHelper.toString(this.model.getWeight(), -1));
  351. this.eyes.setText(this.model.getEyes());
  352. this.hair.setText(this.model.getHair());
  353. this.skin.setText(this.model.getSkin());
  354. }
  355. }