package devopsdistilled.operp.client.stock.panes; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.inject.Inject; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import net.miginfocom.swing.MigLayout; import devopsdistilled.operp.client.abstracts.SubTaskPane; import devopsdistilled.operp.client.stock.panes.controllers.EditWarehousePaneController; import devopsdistilled.operp.client.stock.panes.details.WarehouseDetailsPane; import devopsdistilled.operp.client.stock.panes.models.observers.EditWarehousePaneModelObserver; import devopsdistilled.operp.server.data.entity.stock.Warehouse; public class EditWarehousePane extends SubTaskPane implements EditWarehousePaneModelObserver { @Inject private EditWarehousePaneController controller; @Inject private WarehouseDetailsPane warehouseDetailsPane; private final JPanel pane; private final JTextField warehouseIdField; private final JTextField warehouseNameField; private final JButton btnCancel; private final JButton btnUpdate; private JButton btnReset; private Warehouse warehouse; public EditWarehousePane() { pane = new JPanel(); pane.setLayout(new MigLayout("", "[][grow]", "[][][][]")); JLabel lblWarehouseId = new JLabel("Warehouse Id"); pane.add(lblWarehouseId, "cell 0 0,alignx trailing"); warehouseIdField = new JTextField(); warehouseIdField.setEditable(false); pane.add(warehouseIdField, "cell 1 0,growx"); warehouseIdField.setColumns(10); JLabel lblWarehouseName = new JLabel("Warehouse Name"); pane.add(lblWarehouseName, "cell 0 1,alignx trailing"); warehouseNameField = new JTextField(); pane.add(warehouseNameField, "cell 1 1,growx"); warehouseNameField.setColumns(10); btnCancel = new JButton("Cancel"); btnCancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { getDialog().dispose(); } }); pane.add(btnCancel, "flowx,cell 1 3"); btnUpdate = new JButton("Update"); btnUpdate.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Warehouse warehouse = new Warehouse(); Long warehouseId = Long.parseLong(warehouseIdField.getText() .trim()); warehouse.setWarehouseId(warehouseId); String warehouseName = warehouseNameField.getText().trim(); warehouse.setWarehouseName(warehouseName); try { controller.validate(warehouse); warehouse = controller.save(warehouse); getDialog().dispose(); warehouseDetailsPane.show(warehouse, getPane()); } catch (Exception e1) { JOptionPane.showMessageDialog(getPane(), e1.getMessage()); } } }); btnReset = new JButton("Reset"); btnReset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { updateEntity(warehouse); } }); pane.add(btnReset, "cell 1 3"); pane.add(btnUpdate, "cell 1 3"); } @Override public void updateEntity(Warehouse warehouse) { this.warehouse=warehouse; warehouseIdField.setText(warehouse.getWarehouseId().toString()); warehouseNameField.setText(warehouse.getWarehouseName()); } @Override public JComponent getPane() { return pane; } }