Author: lemovice
Date: Tue Dec 10 23:16:05 2013
New Revision: 4740
Log:
Implement Undo
Modified:
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/IndividualsListPanel.java
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/NotesListPanel.java
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.form
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.java
Modified:
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/IndividualsListPanel.java
==============================================================================
---
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/IndividualsListPanel.java
(original)
+++
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/IndividualsListPanel.java
Tue Dec 10 23:16:05 2013
@@ -126,7 +126,9 @@
if (individualEditorDialog.show() == DialogDescriptor.OK_OPTION) {
mIndividualsTableModel.add(individualEditorPanel.commit());
} else {
- gedcom.undoUnitOfWork(false);
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_addIndividualButtonActionPerformed
@@ -144,6 +146,11 @@
if (individualEditorDialog.show() == DialogDescriptor.OK_OPTION) {
individualEditorPanel.commit();
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_editIndividualButtonActionPerformed
@@ -164,6 +171,12 @@
individualEditorDialog.setDialogId(IndividualEditorPanel.class.getName());
if (individualEditorDialog.show() ==
DialogDescriptor.OK_OPTION) {
+ individualEditorPanel.commit();
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}
@@ -192,11 +205,10 @@
}
}
-
public void setToolBarVisible(boolean visible) {
individualsToolBar.setVisible(visible);
}
-
+
public void commit() {
}
}
Modified:
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/NotesListPanel.java
==============================================================================
---
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/NotesListPanel.java
(original)
+++
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/NotesListPanel.java
Tue Dec 10 23:16:05 2013
@@ -16,7 +16,7 @@
* @author dominique
*/
public class NotesListPanel extends javax.swing.JPanel {
-
+
private Property mRoot;
private NotesTableModel mNotesTableModel = new NotesTableModel();
private Note mNote;
@@ -128,7 +128,7 @@
Gedcom gedcom = mRoot.getGedcom();
try {
gedcom.doUnitOfWork(new UnitOfWork() {
-
+
@Override
public void perform(Gedcom gedcom) throws GedcomException {
mNote = (Note) gedcom.createEntity(Gedcom.NOTE);
@@ -148,33 +148,40 @@
mNotesTableModel.add(commitedNote);
mRoot.addNote(commitedNote);
} else {
- gedcom.undoUnitOfWork(false);
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_addNoteButtonActionPerformed
-
+
private void editNoteButtonActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_editNoteButtonActionPerformed
int selectedRow = notesTable.getSelectedRow();
if (selectedRow != -1) {
int rowIndex = notesTable.convertRowIndexToModel(selectedRow);
NoteEditorPanel noteEditorPanel = new NoteEditorPanel();
noteEditorPanel.set(mNotesTableModel.getValueAt(rowIndex));
-
+
ADialog noteEditorDialog = new ADialog(
NbBundle.getMessage(NoteEditorPanel.class,
"NoteEditorPanel.title"),
noteEditorPanel);
noteEditorDialog.setDialogId(NoteEditorPanel.class.getName());
-
+
if (noteEditorDialog.show() == DialogDescriptor.OK_OPTION) {
noteEditorPanel.commit();
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_editNoteButtonActionPerformed
-
+
private void deleteNoteButtonActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_deleteNoteButtonActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_deleteNoteButtonActionPerformed
-
+
private void notesTableMouseClicked(java.awt.event.MouseEvent evt)
{//GEN-FIRST:event_notesTableMouseClicked
if (evt.getClickCount() >= 2) {
int selectedRow = notesTable.getSelectedRow();
@@ -182,22 +189,27 @@
int rowIndex = notesTable.convertRowIndexToModel(selectedRow);
NoteEditorPanel noteEditorPanel = new NoteEditorPanel();
noteEditorPanel.set(mNotesTableModel.getValueAt(rowIndex));
-
+
ADialog noteEditorDialog = new ADialog(
NbBundle.getMessage(NoteEditorPanel.class,
"NoteEditorPanel.title"),
noteEditorPanel);
noteEditorDialog.setDialogId(NoteEditorPanel.class.getName());
-
+
if (noteEditorDialog.show() == DialogDescriptor.OK_OPTION) {
noteEditorPanel.commit();
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}
}//GEN-LAST:event_notesTableMouseClicked
-
+
private void linkToNoteButtonActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_linkToNoteButtonActionPerformed
List<Note> notesList = new ArrayList<Note>((Collection<Note>)
mRoot.getGedcom().getEntities(Gedcom.NOTE));
-
+
NotesListPanel notesListPanel = new NotesListPanel();
notesListPanel.setNotesList(mRoot, notesList);
notesListPanel.setToolBarVisible(false);
@@ -205,11 +217,16 @@
NbBundle.getMessage(NoteEditorPanel.class,
"NoteEditorPanel.title"),
notesListPanel);
individualsListDialog.setDialogId(NoteEditorPanel.class.getName());
-
+
if (individualsListDialog.show() == DialogDescriptor.OK_OPTION) {
Note selectedNote = notesListPanel.getSelectedNote();
mNotesTableModel.add(selectedNote);
mRoot.addNote(selectedNote);
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}//GEN-LAST:event_linkToNoteButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
@@ -226,14 +243,14 @@
this.mRoot = root;
mNotesTableModel.update(notesList);
}
-
+
public void setToolBarVisible(boolean visible) {
notesToolBar.setVisible(visible);
}
-
+
public void commit() {
}
-
+
private Note getSelectedNote() {
int selectedRow = notesTable.getSelectedRow();
if (selectedRow != -1) {
Modified:
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.form
==============================================================================
---
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.form
(original)
+++
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.form
Tue Dec 10 23:16:05 2013
@@ -105,6 +105,9 @@
<Property name="showHorizontalLines" type="boolean" value="false"/>
<Property name="showVerticalLines" type="boolean" value="false"/>
</Properties>
+ <Events>
+ <EventHandler event="mouseClicked"
listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent"
handler="sourcesTableMouseClicked"/>
+ </Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_InitCodePost"
type="java.lang.String"
value="sourcesTable.getColumnModel().getColumn(0).setMaxWidth(100);"/>
</AuxValues>
Modified:
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.java
==============================================================================
---
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.java
(original)
+++
trunk/AncestrisExtensions/editors.genealogyeditor/src/ancestris/modules/editors/genealogyeditor/panels/SourcesListPanel.java
Tue Dec 10 23:16:05 2013
@@ -84,6 +84,11 @@
sourcesTable.setShowHorizontalLines(false);
sourcesTable.setShowVerticalLines(false);
sourcesTable.getColumnModel().getColumn(0).setMaxWidth(100);
+ sourcesTable.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ sourcesTableMouseClicked(evt);
+ }
+ });
sourcesScrollPane.setViewportView(sourcesTable);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
@@ -127,7 +132,9 @@
if (sourceEditorDialog.show() == DialogDescriptor.OK_OPTION) {
sourcesTableModel.add(sourceEditorPanel.commit());
} else {
- gedcom.undoUnitOfWork(false);
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_addSourceButtonActionPerformed
@@ -144,6 +151,12 @@
sourceEditorDialog.setDialogId(SourceEditorPanel.class.getName());
if (sourceEditorDialog.show() == DialogDescriptor.OK_OPTION) {
+ sourcesTableModel.add(sourceEditorPanel.commit());
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
}
}
}//GEN-LAST:event_editSourceButtonActionPerformed
@@ -151,6 +164,30 @@
private void deleteSourceButtonActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_deleteSourceButtonActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_deleteSourceButtonActionPerformed
+
+ private void sourcesTableMouseClicked(java.awt.event.MouseEvent evt)
{//GEN-FIRST:event_sourcesTableMouseClicked
+ if (evt.getClickCount() >= 2) {
+ int selectedRow = sourcesTable.getSelectedRow();
+ if (selectedRow != -1) {
+ int rowIndex =
sourcesTable.convertRowIndexToModel(selectedRow);
+ SourceEditorPanel sourceEditorPanel = new SourceEditorPanel();
+
sourceEditorPanel.setSource(sourcesTableModel.getValueAt(rowIndex));
+ ADialog sourceEditorDialog = new ADialog(
+ NbBundle.getMessage(SourceEditorPanel.class,
"SourceEditorPanel.title"),
+ sourceEditorPanel);
+
sourceEditorDialog.setDialogId(SourceEditorPanel.class.getName());
+
+ if (sourceEditorDialog.show() == DialogDescriptor.OK_OPTION) {
+ sourcesTableModel.add(sourceEditorPanel.commit());
+ } else {
+ Gedcom gedcom = mRoot.getGedcom();
+ while (gedcom.canUndo()) {
+ gedcom.undoUnitOfWork(false);
+ }
+ }
+ }
+ }
+ }//GEN-LAST:event_sourcesTableMouseClicked
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addSourceButton;
private javax.swing.JButton deleteSourceButton;
---------------------------------------------------------------------
Site Web Ancestris : http://www.ancestris.org
<*> Pour vous desinscrire de cette liste, envoyez un mail a :
[email protected]
<*> Pour obtenir de l'aide sur les commandes de la liste :
[email protected]
Pour obtenir tous les messages lies a ce fil de discussion, cliquez sur le
lien ci-dessous, cela ouvrira votre logiciel de messagerie. Il vous suffira
d'envoyer le message :
[email protected]