class RecordActionListener implements ActionListener {
private JournalGUI parent;
public RecordActionListener(JournalGUI parent) {
this.parent = parent;
}
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.equals("Add")) addAction();
if (actionCommand.equals("Modify")) editAction();
if (actionCommand.equals("Delete")) deleteAction();
assert(false);
}
public void addAction() {
parent.addRecordDialog.setVisible(true);
}
public void editAction() {
}
public void deleteAction() {
int[] indexes = parent.recordsList.getSelectedIndexes();
int index;
for (int i = indexes.length - 1; i >= 0; --i) {
index = indexes[i];
parent.journal.remove(index);
parent.recordsList.remove(index);
}
}
}
final RecordActionListener ral = new RecordActionListener(this);
final MenuItem miCopy = new MenuItem("Copy");
miCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
register.removeAll();
int[] indexes = recordsList.getSelectedIndexes();
int index;
for (int i = 0; i < indexes.length; ++i) {
index = indexes[i];
register.add(journal.getRecords().get(index));
}
}
});
final MenuItem miCut = new MenuItem("Cut");
miCut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
miCopy.dispatchEvent(new ActionEvent(miCut, 5, "Copy"));
ral.deleteAction();
}
});
mEdit.add(miCut);
mEdit.add(miCopy);
MenuItem miPaste = new MenuItem("Paste");
mEdit.add(miPaste);
MenuItem miAddRecord = new MenuItem("Add");
miAddRecord.addActionListener(ral);
mRecord.add(miAddRecord);
MenuItem miEditRecord = new MenuItem("Modify");
miEditRecord.addActionListener(ral);
mRecord.add(miEditRecord);
MenuItem miDeleteRecord = new MenuItem("Delete");
miDeleteRecord.addActionListener(ral);
mRecord.add(miDeleteRecord);