diff --git a/.DS_Store b/.DS_Store index 550d037..00246a0 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/MedicineDialog/MedicineDialog.java b/src/main/java/BsK/client/ui/component/CheckUpPage/MedicineDialog/MedicineDialog.java index 0e70b29..6f1a0aa 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/MedicineDialog/MedicineDialog.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/MedicineDialog/MedicineDialog.java @@ -45,6 +45,7 @@ public class MedicineDialog extends JDialog { private HashMap selectedMedicine = new HashMap<>(); private JTable medicineTable; private JTable selectedTable; + private boolean isProgrammaticallySettingMedicineNameField = false; private String[][] medicinePrescription; private static final Logger logger = LoggerFactory.getLogger(MedicineDialog.class); @@ -344,9 +345,21 @@ public class MedicineDialog extends JDialog { add(bottomButtonPanel, BorderLayout.SOUTH); medicineNameField.getDocument().addDocumentListener(new DocumentListener() { - public void changedUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterMedicineTable()); } - public void removeUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterMedicineTable()); } - public void insertUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterMedicineTable()); } + public void changedUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingMedicineNameField) { + SwingUtilities.invokeLater(() -> filterMedicineTable()); + } + } + public void removeUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingMedicineNameField) { + SwingUtilities.invokeLater(() -> filterMedicineTable()); + } + } + public void insertUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingMedicineNameField) { + SwingUtilities.invokeLater(() -> filterMedicineTable()); + } + } }); medicineTable.addMouseListener(new MouseAdapter() { @@ -359,13 +372,6 @@ public class MedicineDialog extends JDialog { handleMedicineTableRowSelection(selectedRow); } }); - } else if (e.getClickCount() == 2) { - SwingUtilities.invokeLater(() -> { - int selectedRow = medicineTable.getSelectedRow(); - if (selectedRow != -1) { - addSelectedMedicine(); - } - }); } } }); @@ -462,12 +468,17 @@ public class MedicineDialog extends JDialog { return; } int modelRow = medicineTable.convertRowIndexToModel(viewRow); + + isProgrammaticallySettingMedicineNameField = true; + medicineNameField.setText(tableModel.getValueAt(modelRow, 1).toString()); + isProgrammaticallySettingMedicineNameField = false; + medicineCompanyField.setText(tableModel.getValueAt(modelRow, 2).toString()); medicineDescriptionField.setText(tableModel.getValueAt(modelRow, 3).toString()); quantityLeftField.setText(tableModel.getValueAt(modelRow, 4).toString()); UnitComboBox.setSelectedItem(tableModel.getValueAt(modelRow, 5).toString()); priceField.setText(tableModel.getValueAt(modelRow, 6).toString()); - medicineNameField.setText(tableModel.getValueAt(modelRow, 1).toString()); + quantitySpinner.setValue(1); morningSpinner.setValue(0); noonSpinner.setValue(0); diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/ServiceDialog/ServiceDialog.java b/src/main/java/BsK/client/ui/component/CheckUpPage/ServiceDialog/ServiceDialog.java index 6721114..85217dd 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/ServiceDialog/ServiceDialog.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/ServiceDialog/ServiceDialog.java @@ -39,6 +39,7 @@ public class ServiceDialog extends JDialog { private TableColumnModel columnModel; private JTable serviceTable; private JTable selectedTable; + private boolean isProgrammaticallySettingNameField = false; private String[][] servicePrescription; private static final Logger logger = LoggerFactory.getLogger(ServiceDialog.class); @@ -236,9 +237,21 @@ public class ServiceDialog extends JDialog { add(bottomButtonPanel, BorderLayout.SOUTH); serviceNameField.getDocument().addDocumentListener(new DocumentListener() { - public void changedUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterServiceTable()); } - public void removeUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterServiceTable()); } - public void insertUpdate(DocumentEvent e) { SwingUtilities.invokeLater(() -> filterServiceTable()); } + public void changedUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingNameField) { + SwingUtilities.invokeLater(() -> filterServiceTable()); + } + } + public void removeUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingNameField) { + SwingUtilities.invokeLater(() -> filterServiceTable()); + } + } + public void insertUpdate(DocumentEvent e) { + if (!isProgrammaticallySettingNameField) { + SwingUtilities.invokeLater(() -> filterServiceTable()); + } + } }); serviceTable.addMouseListener(new MouseAdapter() { @@ -251,13 +264,6 @@ public class ServiceDialog extends JDialog { handleServiceTableRowSelection(selectedRow); } }); - } else if (e.getClickCount() == 2) { - SwingUtilities.invokeLater(() -> { - int selectedRow = serviceTable.getSelectedRow(); - if (selectedRow != -1) { - addSelectedService(); - } - }); } } }); @@ -363,7 +369,11 @@ public class ServiceDialog extends JDialog { return; } int modelRow = serviceTable.convertRowIndexToModel(viewRow); + + isProgrammaticallySettingNameField = true; serviceNameField.setText(tableModel.getValueAt(modelRow, 1).toString()); + isProgrammaticallySettingNameField = false; + priceField.setText(tableModel.getValueAt(modelRow, 2).toString()); quantitySpinner.setValue(1); noteField.setText("");