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]

Reply via email to