3
* $Date: 2007-01-04 18:26:00 +0100 (Thu, 04 Jan 2007) $
6
* Copyright (C) 2005-2007 The Chemistry Development Kit (CDK) project
8
* Contact: cdk-devel@lists.sourceforge.net
10
* This program is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU Lesser General Public License
12
* as published by the Free Software Foundation; either version 2.1
13
* of the License, or (at your option) any later version.
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU Lesser General Public License for more details.
20
* You should have received a copy of the GNU Lesser General Public License
21
* along with this program; if not, write to the Free Software
22
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24
package org.openscience.cdk.applications.undoredo;
26
import java.util.HashMap;
27
import java.util.Iterator;
30
import javax.swing.undo.AbstractUndoableEdit;
31
import javax.swing.undo.CannotRedoException;
32
import javax.swing.undo.CannotUndoException;
34
import org.openscience.cdk.interfaces.IBond;
37
* Undo/Redo Edit class for the AdjustBondOrdesAction, containing the methods
38
* for undoing and redoing the regarding changes
43
public class AdjustBondOrdersEdit extends AbstractUndoableEdit {
45
private static final long serialVersionUID = 1513012471000333600L;
47
private HashMap changedBondOrders;
51
* A HashMap containing the changed atoms as key and an Array
52
* with the former and the changed bondOrder
54
public AdjustBondOrdersEdit(HashMap changedBonds) {
55
this.changedBondOrders = changedBonds;
61
* @see javax.swing.undo.UndoableEdit#redo()
63
public void redo() throws CannotRedoException {
64
Set keys = changedBondOrders.keySet();
65
Iterator it = keys.iterator();
66
while (it.hasNext()) {
67
IBond bond = (IBond) it.next();
68
double[] bondOrders = (double[]) changedBondOrders.get(bond);
69
bond.setOrder(bondOrders[0]);
76
* @see javax.swing.undo.UndoableEdit#undo()
78
public void undo() throws CannotUndoException {
79
Set keys = changedBondOrders.keySet();
80
Iterator it = keys.iterator();
81
while (it.hasNext()) {
82
IBond bond = (IBond) it.next();
83
double[] bondOrders = (double[]) changedBondOrders.get(bond);
84
bond.setOrder(bondOrders[1]);
91
* @see javax.swing.undo.UndoableEdit#canRedo()
93
public boolean canRedo() {
100
* @see javax.swing.undo.UndoableEdit#canUndo()
102
public boolean canUndo() {
109
* @see javax.swing.undo.UndoableEdit#getPresentationName()
111
public String getPresentationName() {
112
return "AdjustBondOrders";