package devopsdistilled.operp.client.items.panes.details; import java.util.Vector; import javax.inject.Inject; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import net.miginfocom.swing.MigLayout; import devopsdistilled.operp.client.abstracts.AbstractEntityDetailsPane; import devopsdistilled.operp.client.items.controllers.ProductController; import devopsdistilled.operp.server.data.entity.items.Category; import devopsdistilled.operp.server.data.entity.items.Product; public class ProductDetailsPane extends AbstractEntityDetailsPane<Product, ProductController> { @Inject private ProductController productController; private Product product; private final JPanel pane; private final JTextField productIdField; private final JTextField productNameField; private final JList<Category> productCategoryList; public ProductDetailsPane() { pane = new JPanel(); pane.setLayout(new MigLayout("", "[][grow]", "[][][][]")); JLabel lblProductId = new JLabel("Product ID"); pane.add(lblProductId, "cell 0 0,alignx trailing"); productIdField = new JTextField(); productIdField.setEditable(false); pane.add(productIdField, "cell 1 0,growx"); productIdField.setColumns(30); JLabel lblProductName = new JLabel("Product Name"); pane.add(lblProductName, "cell 0 1,alignx trailing"); productNameField = new JTextField(); productNameField.setEditable(false); pane.add(productNameField, "cell 1 1,growx"); productNameField.setColumns(30); JLabel lblProductCategory = new JLabel("Product Category"); pane.add(lblProductCategory, "cell 0 2"); productCategoryList = new JList<>(); pane.add(productCategoryList, "cell 1 2,grow"); } @Override public JPanel getPane() { return pane; } @Override public void show(Product product, JComponent owner) { this.product = product; if (product != null) { productIdField.setText(product.getProductId().toString()); productNameField.setText(product.getProductName()); productCategoryList.setListData(new Vector<Category>(product .getCategories())); showDetailsPane(getPane(), owner); } else { getDialog().dispose(); JOptionPane.showMessageDialog(getPane(), "Got Null Product"); } } @Override public String getTitle() { return "Product Details"; } @Override public ProductController getEntityController() { return productController; } @Override protected Product getEntity() { return product; } }