package devopsdistilled.operp.client.items.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.exceptions.EntityValidationException;
import devopsdistilled.operp.client.items.panes.controllers.EditManufacturerPaneController;
import devopsdistilled.operp.client.items.panes.details.ManufacturerDetailsPane;
import devopsdistilled.operp.client.items.panes.models.observers.EditManufacturerPaneModelObserver;
import devopsdistilled.operp.server.data.entity.items.Manufacturer;
public class EditManufacturerPane extends SubTaskPane implements
EditManufacturerPaneModelObserver {
@Inject
private EditManufacturerPaneController controller;
@Inject
private ManufacturerDetailsPane manufacturerDetailsPane;
private Manufacturer manufacturer;
private final JPanel pane;
private final JTextField manufacturerIdField;
private final JTextField manufacturerNameField;
public EditManufacturerPane() {
pane = new JPanel();
pane.setLayout(new MigLayout("", "[][grow]", "[][][][]"));
JLabel lblManufacturerId = new JLabel("Manufacturer ID");
pane.add(lblManufacturerId, "cell 0 0,alignx trailing");
manufacturerIdField = new JTextField();
manufacturerIdField.setEditable(false);
pane.add(manufacturerIdField, "cell 1 0,growx");
manufacturerIdField.setColumns(10);
JLabel lblManufacturerName = new JLabel("Manufacturer Name");
pane.add(lblManufacturerName, "cell 0 1,alignx trailing");
manufacturerNameField = new JTextField();
pane.add(manufacturerNameField, "cell 1 1,growx");
manufacturerNameField.setColumns(10);
JButton btnCancel = new JButton("Cancel");
btnCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getDialog().dispose();
}
});
pane.add(btnCancel, "flowx,cell 1 3");
JButton btnUpdate = new JButton("Update");
btnUpdate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Long manufacturerId = manufacturer.getManufacturerId();
Manufacturer manufacturer = new Manufacturer();
manufacturer.setManufacturerId(manufacturerId);
String manufacturerName = manufacturerNameField.getText()
.trim();
manufacturer.setManufacturerName(manufacturerName);
try {
controller.validate(manufacturer);
manufacturer = controller.save(manufacturer);
getDialog().dispose();
manufacturerDetailsPane.show(manufacturer, getPane());
} catch (EntityValidationException e1) {
JOptionPane.showMessageDialog(getPane(), e1.getMessage());
}
}
});
JButton btnReset = new JButton("Reset");
btnReset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateEntity(manufacturer);
}
});
pane.add(btnReset, "cell 1 3");
pane.add(btnUpdate, "cell 1 3");
}
@Override
public JComponent getPane() {
return pane;
}
@Override
public void updateEntity(Manufacturer manufacturer) {
this.manufacturer = manufacturer;
manufacturerIdField
.setText(manufacturer.getManufacturerId().toString());
manufacturerNameField.setText(manufacturer.getManufacturerName());
}
}