IngredientPanel.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package org.leumasjaffe.recipe.view;
  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.event.DocumentListener;
  10. import javax.swing.text.NumberFormatter;
  11. import javax.swing.JFormattedTextField;
  12. import java.awt.Font;
  13. import javax.swing.JLabel;
  14. @SuppressWarnings("serial")
  15. public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentListenable {
  16. private JTextField txtName;
  17. private JTextField txtUnit;
  18. public IngredientPanel() {
  19. GridBagLayout gridBagLayout = new GridBagLayout();
  20. gridBagLayout.columnWidths = new int[]{0, 100, 40, 40, 0};
  21. gridBagLayout.rowHeights = new int[]{0, 0};
  22. gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, 0.0, Double.MIN_VALUE};
  23. gridBagLayout.rowWeights = new double[]{0.0, Double.MIN_VALUE};
  24. setLayout(gridBagLayout);
  25. JLabel label = new JLabel("\u2022");
  26. GridBagConstraints gbc_label = new GridBagConstraints();
  27. gbc_label.insets = new Insets(0, 0, 0, 5);
  28. gbc_label.anchor = GridBagConstraints.EAST;
  29. gbc_label.gridx = 0;
  30. gbc_label.gridy = 0;
  31. add(label, gbc_label);
  32. txtName = new JTextField();
  33. txtName.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  34. GridBagConstraints gbc_txtName = new GridBagConstraints();
  35. gbc_txtName.fill = GridBagConstraints.HORIZONTAL;
  36. gbc_txtName.insets = new Insets(0, 0, 0, 5);
  37. gbc_txtName.gridx = 1;
  38. gbc_txtName.gridy = 0;
  39. add(txtName, gbc_txtName);
  40. txtName.setColumns(10);
  41. NumberFormatter fmtDone = new NumberFormatter(NumberFormat.getNumberInstance(Locale.getDefault()));
  42. fmtDone.setMinimum(0.0);
  43. fmtDone.setCommitsOnValidEdit(true);
  44. JFormattedTextField txtAmount = new JFormattedTextField(fmtDone);
  45. txtAmount.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  46. GridBagConstraints gbc_txtAmount = new GridBagConstraints();
  47. gbc_txtAmount.fill = GridBagConstraints.HORIZONTAL;
  48. gbc_txtAmount.insets = new Insets(0, 0, 0, 5);
  49. gbc_txtAmount.gridx = 2;
  50. gbc_txtAmount.gridy = 0;
  51. add(txtAmount, gbc_txtAmount);
  52. txtAmount.setColumns(4);
  53. txtUnit = new JTextField();
  54. txtUnit.setFont(new Font("Source Code Pro", Font.PLAIN, 10));
  55. GridBagConstraints gbc_txtUnit = new GridBagConstraints();
  56. gbc_txtUnit.anchor = GridBagConstraints.ABOVE_BASELINE;
  57. gbc_txtUnit.fill = GridBagConstraints.HORIZONTAL;
  58. gbc_txtUnit.gridx = 3;
  59. gbc_txtUnit.gridy = 0;
  60. add(txtUnit, gbc_txtUnit);
  61. txtUnit.setColumns(10);
  62. }
  63. @Override
  64. public void addDocumentListener(DocumentListener dl) {
  65. this.txtName.getDocument().addDocumentListener(dl);
  66. }
  67. @Override
  68. public void removeDocumentListener(DocumentListener dl) {
  69. this.txtName.getDocument().removeDocumentListener(dl);
  70. }
  71. }