Exemplo n.º 1
0
    @Override
    public void actionPerformed(ActionEvent e) {
      EquipmentSetFacade equipSet = character.getEquipmentSetRef().getReference();
      int[] rows = equipmentSetTable.getSelectedRows();
      List<EquipNode> paths = new ArrayList<EquipNode>();
      for (int i = 0; i < rows.length; i++) {
        EquipNode path = (EquipNode) equipmentSetTable.getValueAt(rows[i], 0);
        if (path.getNodeType() == NodeType.EQUIPMENT) {
          paths.add(path);
        }
      }
      if (!paths.isEmpty()) {
        Object[][] data = new Object[paths.size()][3];
        for (int i = 0; i < paths.size(); i++) {
          EquipNode path = paths.get(i);
          data[i][0] = path.getEquipment();
          data[i][1] = 1;
        }
        Object[] columns =
            new Object[] {
              LanguageBundle.getString("in_equipItem"), // $NON-NLS-1$
              LanguageBundle.getString("in_equipQuantityAbbrev"), // $NON-NLS-1$
            };
        DefaultTableModel tableModel =
            new DefaultTableModel(data, columns) {

              @Override
              public Class<?> getColumnClass(int columnIndex) {
                if (columnIndex == 1) {
                  return Integer.class;
                }
                return Object.class;
              }

              @Override
              public boolean isCellEditable(int row, int column) {
                return column != 0;
              }
            };
        JTable table = new JTable(tableModel);
        table.setFocusable(false);
        table.setCellSelectionEnabled(false);
        table.setDefaultRenderer(Integer.class, new TableCellUtilities.SpinnerRenderer());
        table.setDefaultEditor(Integer.class, new SpinnerEditor(equipSet.getEquippedItems()));
        table.setRowHeight(22);
        table.getColumnModel().getColumn(0).setPreferredWidth(140);
        table.getColumnModel().getColumn(1).setPreferredWidth(50);
        table.setPreferredScrollableViewportSize(table.getPreferredSize());
        JTableHeader header = table.getTableHeader();
        header.setReorderingAllowed(false);
        JScrollPane pane = new JScrollPane(table);
        JPanel panel = new JPanel(new BorderLayout());
        JLabel help =
            new JLabel(LanguageBundle.getString("in_equipSelectUnequipQty")); // $NON-NLS-1$
        panel.add(help, BorderLayout.NORTH);
        panel.add(pane, BorderLayout.CENTER);
        int res =
            JOptionPane.showConfirmDialog(
                JOptionPane.getFrameForComponent(equipmentTable),
                panel,
                LanguageBundle.getString("in_equipUnequipSel"), // $NON-NLS-1$
                JOptionPane.OK_CANCEL_OPTION,
                JOptionPane.PLAIN_MESSAGE);

        if (res == JOptionPane.OK_OPTION) {
          for (int i = 0; i < paths.size(); i++) {
            equipSet.removeEquipment(paths.get(i), (Integer) tableModel.getValueAt(i, 1));
          }
        }
      }
    }