package devopsdistilled.operp.client.commons.panes; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import net.miginfocom.swing.MigLayout; import devopsdistilled.operp.client.abstracts.EntityOperation; import devopsdistilled.operp.client.abstracts.EntityPane; import devopsdistilled.operp.client.commons.controllers.AddressController; import devopsdistilled.operp.client.commons.panes.controllers.AddressPaneController; import devopsdistilled.operp.client.commons.panes.models.observers.AddressPaneModelObserver; import devopsdistilled.operp.server.data.entity.commons.Address; public class AddressPane extends EntityPane<Address, AddressController, AddressPaneController> implements AddressPaneModelObserver { private final JPanel pane; private final JTextField countryField; private final JTextField zoneField; private final JTextField districtField; private final JTextField cityField; private final JTextField streetField; public AddressPane() { pane = new JPanel(); pane.setLayout(new MigLayout("", "[][grow]", "[][][][][]")); JLabel lblCountry = new JLabel("Country"); pane.add(lblCountry, "cell 0 0,alignx trailing"); countryField = new JTextField(); countryField.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { getController().getModel().getEntity() .setCountry(countryField.getText().trim()); } }); pane.add(countryField, "cell 1 0,growx"); countryField.setColumns(10); JLabel lblZone = new JLabel("Zone"); pane.add(lblZone, "cell 0 1,alignx trailing"); zoneField = new JTextField(); zoneField.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { getController().getModel().getEntity() .setZone(zoneField.getText().trim()); } }); pane.add(zoneField, "cell 1 1,growx"); zoneField.setColumns(10); JLabel lblDistrict = new JLabel("District"); pane.add(lblDistrict, "cell 0 2,alignx trailing"); districtField = new JTextField(); districtField.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { getController().getModel().getEntity() .setDistrict(districtField.getText().trim()); } }); pane.add(districtField, "cell 1 2,growx"); districtField.setColumns(10); JLabel lblCity = new JLabel("City"); pane.add(lblCity, "cell 0 3,alignx trailing"); cityField = new JTextField(); cityField.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { getController().getModel().getEntity() .setCity(cityField.getText().trim()); } }); pane.add(cityField, "cell 1 3,growx"); cityField.setColumns(10); JLabel lblStreet = new JLabel("Street"); pane.add(lblStreet, "cell 0 4,alignx trailing"); streetField = new JTextField(); streetField.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { getController().getModel().getEntity() .setStreet(streetField.getText().trim()); } }); pane.add(streetField, "cell 1 4,growx"); streetField.setColumns(10); } @Override public JComponent getPane() { return pane; } @Override public void updateEntity(Address address, EntityOperation entityOperation) { countryField.setText(address.getCountry()); zoneField.setText(address.getZone()); districtField.setText(address.getDistrict()); cityField.setText(address.getCity()); streetField.setText(address.getStreet()); if (EntityOperation.Details == entityOperation) { countryField.setEditable(false); zoneField.setEditable(false); districtField.setEditable(false); cityField.setEditable(false); streetField.setEditable(false); } } @Override public void resetComponents() { countryField.setEditable(true); zoneField.setEditable(true); districtField.setEditable(true); cityField.setEditable(true); streetField.setEditable(true); } @Override public AddressController getEntityController() { // TODO Auto-generated method stub return null; } }