Changeset 61a149d


Ignore:
Timestamp:
Jul 15, 2010, 5:52:25 PM (8 years ago)
Author:
Michael Seifert <mseifert@…>
Branches:
master
Children:
f851f4a
Parents:
f6a2d3c
Message:

The user has to confirm the removal of replays from the replay table;

Fixed a bug that caused an error, when removing a node from the IndexHierarchy?

Location:
src/main/java/de/erichseifert/warp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/erichseifert/warp/gui/ReplayParserGUI.java

    rf6a2d3c r61a149d  
    4646import javax.swing.Action;
    4747import javax.swing.DefaultComboBoxModel;
     48import javax.swing.JCheckBox;
    4849import javax.swing.JComboBox;
    4950import javax.swing.JFileChooser;
     
    222223                        @Override
    223224                        public void actionPerformed(ActionEvent e) {
    224                                 // TODO open confirm dialog
    225                                 int row = replayTable.getSelectedRow();
    226                                 ReplayDescriptor descriptor = (ReplayDescriptor) replayTable.getValueAt(row, 0);
    227                                 ReplayParserGUI.this.warp.remove(descriptor.getId());
     225                                JCheckBox removeReplayFromFS = new JCheckBox("Also remove the replay from the file system (cannot be undone)");
     226                                JCheckBox rememberDecision = new JCheckBox("Remember my decision");
     227                                rememberDecision.setEnabled(false);
     228                                // Open confirm dialog
     229                                Object[] message = new Object[3];
     230                                message[0] = "Do you really want to remove this replay?";
     231                                message[1] = removeReplayFromFS;
     232                                message[2] = rememberDecision;
     233                                int userOption = JOptionPane.showConfirmDialog(
     234                                        ReplayParserGUI.this,
     235                                        message,
     236                                        "Remove replay",
     237                                        JOptionPane.YES_NO_OPTION,
     238                                        JOptionPane.QUESTION_MESSAGE);
     239
     240                                if (userOption == JOptionPane.YES_OPTION) {
     241                                        // Delete replay
     242                                        int row = replayTable.getSelectedRow();
     243                                        ReplayDescriptor descriptor = (ReplayDescriptor) replayTable.getValueAt(row, 0);
     244                                        ReplayParserGUI.this.warp.remove(descriptor.getId());
     245                                        if (removeReplayFromFS.isSelected()) {
     246                                                descriptor.getFile().delete();
     247                                        }
     248                                        // TODO Handle preferences
     249                                }
    228250                        }
    229251                };
  • src/main/java/de/erichseifert/warp/io/search/IndexHierarchy.java

    rf6a2d3c r61a149d  
    8585                public Node remove(String propertyGetterName, long id) {
    8686                        Node nodeRemoved = null;
    87                         for (Node node : childNodes) {
     87                        Iterator<Node> childNodeIter = childNodes.iterator();
     88                        while (childNodeIter.hasNext()) {
     89                                Node node = childNodeIter.next();
    8890                                if (node.getId() == id && node.getPropertyGetterName().equals(propertyGetterName)) {
    89                                         childNodes.remove(node);
     91                                        childNodeIter.remove();
    9092                                        nodeRemoved = node;
    9193                                }
     
    141143        public Node remove(String propertyGetterName, long id) {
    142144                Node nodeRemoved = null;
    143                 for (Node node : rootNodes) {
     145                Iterator<Node> rootNodeIter = rootNodes.iterator();
     146                while (rootNodeIter.hasNext()) {
     147                        Node node = rootNodeIter.next();
    144148                        if (node.getId() == id && node.getPropertyGetterName().equals(propertyGetterName)) {
    145                                 rootNodes.remove(node);
     149                                rootNodeIter.remove();
    146150                                nodeRemoved = node;
    147151                        }
Note: See TracChangeset for help on using the changeset viewer.