private JPanel createCheckersPane() { checkBoxes = new JCheckBox[allProducts.length]; final JPanel checkersPane = GridBagUtils.createPanel(); final GridBagConstraints gbc = GridBagUtils.createConstraints("insets.left=4,anchor=WEST,fill=HORIZONTAL"); final StringBuffer description = new StringBuffer(); addProductCheckers(description, checkersPane, gbc); return checkersPane; }
public ProductChooser(Window parent, String title, String helpID, Product[] allProducts, Product[] selectedProducts) { super(parent, title, ModalDialog.ID_OK_CANCEL, helpID); Guardian.assertNotNull("allProducts", allProducts); this.allProducts = allProducts; this.selectedProducts = selectedProducts; selectAtLeastOneProduct = true; if (this.selectedProducts == null) { this.selectedProducts = new Product[0]; } multipleProducts = allProducts.length > 1; initUI(); }
@Override protected boolean verifyUserInput() { final List<Product> products = new ArrayList<>(); for (int i = 0; i < checkBoxes.length; i++) { JCheckBox checkBox = checkBoxes[i]; if (checkBox.isSelected()) { products.add(allProducts[i]); } } selectedProducts = products.toArray(new Product[products.size()]); if (selectAtLeastOneProduct) { boolean result = selectedProducts.length > 0; if (!result) { showInformationDialog("No products selected.\n" + "Please select at least one product."); /*I18N*/ } return result; } return true; }
ProductChooser productChooser = new ProductChooser( snapApp.getMainFrame(), getTitle(), allOtherProducts, null); int buttonID = productChooser.show(); System.out.println("buttonID = " + buttonID); if (buttonID == AbstractDialog.ID_OK) { Product[] selectedProducts = productChooser.getSelectedProducts(); boolean notAlreadyAsked = true; boolean updateExistingPins = true;
private void addProductCheckers(final StringBuffer description, final JPanel checkersPane, final GridBagConstraints gbc) { final ActionListener checkListener = createActionListener(); for (int i = 0; i < allProducts.length; i++) { Product product = allProducts[i]; boolean checked = false; for (Product selectedProduct : selectedProducts) { if (product == selectedProduct) { checked = true; numSelected++; break; } } description.setLength(0); description.append(product.getDescription() == null ? "" : product.getDescription()); final JCheckBox check = new JCheckBox(getDisplayName(product), checked); check.setFont(SMALL_PLAIN_FONT); check.addActionListener(checkListener); final JLabel label = new JLabel(description.toString()); label.setFont(SMALL_ITALIC_FONT); gbc.gridy++; GridBagUtils.addToPanel(checkersPane, check, gbc, "weightx=0,gridx=0"); GridBagUtils.addToPanel(checkersPane, label, gbc, "weightx=1,gridx=1"); checkBoxes[i] = check; } }
private void initUI() { JPanel checkersPane = createCheckersPane(); gbc.gridy++; gbc.insets.top = 20; setContent(content);