IngredientPanel.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package org.leumasjaffe.recipe.view.summary;
  2. import javax.swing.JPanel;
  3. import java.awt.GridBagLayout;
  4. import javax.swing.JTextField;
  5. import java.awt.GridBagConstraints;
  6. import java.awt.Insets;
  7. import java.text.NumberFormat;
  8. import java.util.Locale;
  9. import javax.swing.text.NumberFormatter;
  10. import org.leumasjaffe.recipe.model.Ingredient;
  11. import lombok.AccessLevel;
  12. import lombok.Getter;
  13. import lombok.experimental.FieldDefaults;
  14. import javax.swing.JFormattedTextField;
  15. import java.awt.Font;
  16. import javax.swing.JLabel;
  17. @SuppressWarnings("serial")
  18. @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
  19. public class IngredientPanel extends JPanel {
  20. @Getter(AccessLevel.PACKAGE) JTextField txtName;
  21. @Getter(AccessLevel.PACKAGE) JFormattedTextField txtAmount;
  22. @Getter(AccessLevel.PACKAGE) JTextField txtUnit;
  23. public IngredientPanel(final Ingredient ingredient) {
  24. GridBagLayout gridBagLayout = new GridBagLayout();
  25. gridBagLayout.columnWidths = new int[]{0, 0, 0, 0, 0};
  26. gridBagLayout.rowHeights = new int[]{0, 0};
  27. gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, 0.0, Double.MIN_VALUE};
  28. gridBagLayout.rowWeights = new double[]{0.0, Double.MIN_VALUE};
  29. setLayout(gridBagLayout);
  30. JLabel label = new JLabel("\u2022");
  31. GridBagConstraints gbc_label = new GridBagConstraints();
  32. gbc_label.insets = new Insets(0, 0, 0, 5);
  33. gbc_label.anchor = GridBagConstraints.EAST;
  34. gbc_label.gridx = 0;
  35. gbc_label.gridy = 0;
  36. add(label, gbc_label);
  37. txtName = new JTextField(ingredient.getName());
  38. txtName.setEditable(false);
  39. txtName.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  40. GridBagConstraints gbc_txtName = new GridBagConstraints();
  41. gbc_txtName.fill = GridBagConstraints.HORIZONTAL;
  42. gbc_txtName.insets = new Insets(0, 0, 0, 5);
  43. gbc_txtName.gridx = 1;
  44. gbc_txtName.gridy = 0;
  45. add(txtName, gbc_txtName);
  46. txtName.setColumns(10);
  47. NumberFormatter fmtDone = new NumberFormatter(NumberFormat.getNumberInstance(Locale.getDefault()));
  48. fmtDone.setMinimum(0.0);
  49. fmtDone.setCommitsOnValidEdit(true);
  50. txtAmount = new JFormattedTextField(fmtDone);
  51. txtAmount.setEditable(false);
  52. txtAmount.setValue(ingredient.getAmount().getValue());
  53. txtAmount.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  54. GridBagConstraints gbc_txtAmount = new GridBagConstraints();
  55. gbc_txtAmount.fill = GridBagConstraints.HORIZONTAL;
  56. gbc_txtAmount.insets = new Insets(0, 0, 0, 5);
  57. gbc_txtAmount.gridx = 2;
  58. gbc_txtAmount.gridy = 0;
  59. add(txtAmount, gbc_txtAmount);
  60. txtAmount.setColumns(4);
  61. txtUnit = new JTextField(ingredient.getAmount().unitName());
  62. txtUnit.setEditable(false);
  63. txtUnit.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  64. GridBagConstraints gbc_txtUnit = new GridBagConstraints();
  65. gbc_txtUnit.anchor = GridBagConstraints.ABOVE_BASELINE;
  66. gbc_txtUnit.fill = GridBagConstraints.HORIZONTAL;
  67. gbc_txtUnit.gridx = 3;
  68. gbc_txtUnit.gridy = 0;
  69. add(txtUnit, gbc_txtUnit);
  70. txtUnit.setColumns(6);
  71. }
  72. }