Update of /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv31255/src/edu/iastate/ato/gui/packageview Modified Files: PackageTreeEditorBasis.java PackageTree.java PackageView2Db.java PackageTreeDargDropListener.java PackageTreeEditor.java Log Message: Index: PackageTreeEditor.java =================================================================== RCS file: /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview/PackageTreeEditor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PackageTreeEditor.java 29 Jun 2006 22:15:53 -0000 1.3 --- PackageTreeEditor.java 15 Jul 2006 22:10:53 -0000 1.4 *************** *** 366,369 **** --- 366,370 ---- tree.delete(theNode) ; } + theNode.getHomePackageNode().status = PackageNode.MODIFIED; ((PackageTree)tree).modified = true; } *************** *** 457,460 **** --- 458,462 ---- newNode.status = ATOTreeNode.MODIFIED ; + newNode.getHomePackageNode().status = PackageNode.MODIFIED; ((PackageTree)tree).modified = true; } *************** *** 546,557 **** public void quitEditing(PackageNode thePackageNode) { ! UserManager.cancelEditing(db, thePackageNode.getOid(), ! MOEditor.user.name) ; ! thePackageNode.setReadOnly(true) ; ! ! // diseable the property editor if the node is under editing ! MOEditor.theInstance.paneDetails.switchPropertyEditor( ! thePackageNode) ; } --- 548,570 ---- public void quitEditing(PackageNode thePackageNode) { ! int answer = -1; ! if(thePackageNode.status == PackageNode.MODIFIED){ ! //ask to save ! answer = JOptionPane.showConfirmDialog(this.fatherPanel, "Save Changes to "+thePackageNode.getLocalName()+"? "); ! if(answer == JOptionPane.YES_OPTION) ! { ! this.thisTree.savePackage(thePackageNode); ! } ! } ! if(answer != JOptionPane.CANCEL_OPTION || answer == -1){ ! thePackageNode.expanded = false; ! UserManager.cancelEditing(db, thePackageNode.getOid(), ! MOEditor.user.name) ; ! thePackageNode.setReadOnly(true) ; + // diseable the property editor if the node is under editing + MOEditor.theInstance.paneDetails.switchPropertyEditor( + thePackageNode) ; + } } *************** *** 597,601 **** if(node.expanded == false) { ! expandPackage(node) ; } } --- 610,619 ---- if(node.expanded == false) { ! if( node.wasEdited == true){ ! expandPackage(node, false) ; ! }else{ ! expandPackage(node, true) ; ! } ! node.wasEdited = true; } } *************** *** 620,623 **** --- 638,642 ---- { theNode.markDeleted() ; + theNode.getHomePackageNode().status = PackageNode.MODIFIED; tree.getModel().reload(theNode) ; ((PackageTree)tree).modified = true; *************** *** 635,641 **** --- 654,664 ---- } + /* (non-Javadoc) + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ public void actionPerformed(ActionEvent e) { theNode.status = ATOTreeNode.DELETED_UPEDGE ; + theNode.getHomePackageNode().status = PackageNode.MODIFIED; tree.getModel().reload(theNode) ; ((PackageTree)tree).modified = true; *************** *** 668,671 **** --- 691,695 ---- { theNode.markDeleted() ; + ((PackageNode)theNode.getParent()).status = PackageNode.MODIFIED; tree.getModel().reload(theNode.getParent()) ; ((PackageTree)tree).modified = true; *************** *** 676,687 **** class CreateSuperPackageAction extends DefaultInsertParentAction { ! public CreateSuperPackageAction(PackageNode theNode) { super(theNode) ; } protected TypedNode getNewNode() { ! return makeNewPackageNode((PackageNode)theNode, null) ; } } --- 700,719 ---- class CreateSuperPackageAction extends DefaultInsertParentAction { ! public PackageNode newPackageNode = null; ! ! public CreateSuperPackageAction(PackageNode theNode) { super(theNode) ; } + + public void actionPerformed(ActionEvent e){ + super.actionPerformed(e); + editPackage(newPackageNode); + } + protected TypedNode getNewNode() { ! return (newPackageNode = makeNewPackageNode((PackageNode)theNode, null) ); } } *************** *** 689,692 **** --- 721,726 ---- class CreateSubPackageAction extends DeafultCreateSubValueAction { + public PackageNode newPackageNode = null; + public CreateSubPackageAction(PackageNode parent) { *************** *** 694,700 **** } protected TypedNode getNewNode() { ! return makeNewPackageNode((PackageNode)parent, null) ; } } --- 728,739 ---- } + public void actionPerformed(ActionEvent e){ + super.actionPerformed(e); + editPackage(newPackageNode); + } + protected TypedNode getNewNode() { ! return (newPackageNode = makeNewPackageNode((PackageNode)parent, null) ); } } *************** *** 813,816 **** --- 852,860 ---- { theNode.rename(newName.toString()) ; + if( theNode instanceof PackageNode ){ + + }else if(theNode instanceof PackageNode ){ + + } tree.getModel().reload(theNode) ; //TreeNodeRenameEditing action = new TreeNodeRenameEditing( Index: PackageView2Db.java =================================================================== RCS file: /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview/PackageView2Db.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PackageView2Db.java 29 Jun 2006 22:15:53 -0000 1.4 --- PackageView2Db.java 15 Jul 2006 22:10:53 -0000 1.5 *************** *** 47,55 **** if(atoNode instanceof PackageNode) { ! savePackage((PackageNode)node) ; } else if(node instanceof DbTermNode) { // save a term ! saveTerm((DbTermNode)node) ; } } --- 47,55 ---- if(atoNode instanceof PackageNode) { ! writePackage((PackageNode)node) ; } else if(node instanceof DbTermNode) { // save a term ! writeTerm((DbTermNode)node) ; } } *************** *** 82,90 **** if(atoNode instanceof PackageNode) { ! savePackageEdge((PackageNode)node) ; } else if(node instanceof DbTermNode || node instanceof DBTermCloneNode) { // save a term ! saveTermEdge((DbTermNode)node) ; } //tree.getModel().reload(atoNode); --- 82,90 ---- if(atoNode instanceof PackageNode) { ! writePackageEdge((PackageNode)node) ; } else if(node instanceof DbTermNode || node instanceof DBTermCloneNode) { // save a term ! writeTermEdge((DbTermNode)node) ; } //tree.getModel().reload(atoNode); *************** *** 200,204 **** } ! private void saveTerm(DbTermNode node) { // save node information only if it is not a clone --- 200,204 ---- } ! private void writeTerm(DbTermNode node) { // save node information only if it is not a clone *************** *** 214,218 **** } ! private void saveTermEdge(DbTermNode node) { // save the tree edge --- 214,218 ---- } ! private void writeTermEdge(DbTermNode node) { // save the tree edge *************** *** 229,233 **** } ! private void savePackage(PackageNode node) { // save the package information --- 229,233 ---- } ! private void writePackage(PackageNode node) { // save the package information *************** *** 235,239 **** } ! private void savePackageEdge(PackageNode node) { // save the tree edge, delete the old edge --- 235,239 ---- } ! private void writePackageEdge(PackageNode node) { // save the tree edge, delete the old edge *************** *** 247,250 **** --- 247,314 ---- } + + private void savePackageNode(PackageNode pkg) + { + saveNode(pkg) ; + Vector<DbTermNode> terms = tree.getTermsInPackage(pkg) ; + for(DbTermNode term : terms) + { + saveNode(term) ; + } + } + + private void savePackageEdge(PackageNode pkg){ + saveEdge(pkg) ; + Vector<DbTermNode> terms = PackageTree.getTermsInPackage(pkg) ; + for(DbTermNode term : terms) + { + saveEdge(term) ; + if(!term.isMerged() && term.isChanged()) + { + term.status = ATOTreeNode.UNMODIFIED ; + tree.getModel().reload(term) ; + } + } + pkg.status = ATOTreeNode.UNMODIFIED ; + } + + /** + * Saves an individual package + * @author Peter Wong + * @param pkg + */ + public void savePackage(PackageNode pkg){ + savePackageNode(pkg); + savePackageEdge(pkg); + + // save edge change + Vector<DbTermNode> allMerged = new Vector<DbTermNode>() ; + Vector<DbTermNode> terms = PackageTree.getTermsInPackage(pkg) ; + for(DbTermNode term : terms) + { + if(term.isMerged()) + { + allMerged.add(term) ; + } + } + + for(int i=0; i<pkg.getChildCount();++i){ + if(pkg.getChildAt(i) instanceof PackageNode){ + PackageNode child = (PackageNode) pkg.getChildAt(i); + if(child.status == PackageNode.DELETED_NODE){ + savePackage(child); + } + } + } + + // do merging + for(DbTermNode mergedNode : allMerged) + { + mergedNode.merge(db) ; + mergedNode.status = ATOTreeNode.UNMODIFIED ; + tree.getModel().reload(mergedNode.mergedWith) ; + } + } + public void saveTree() { *************** *** 255,264 **** for(PackageNode pkg : allPackages) { ! saveNode(pkg) ; ! Vector<DbTermNode> terms = tree.getTermsInPackage(pkg) ; ! for(DbTermNode term : terms) ! { ! saveNode(term) ; ! } } // save edge change --- 319,323 ---- for(PackageNode pkg : allPackages) { ! savePackageNode(pkg); } // save edge change *************** *** 266,270 **** for(PackageNode pkg : allPackages) { ! saveEdge(pkg) ; Vector<DbTermNode> terms = PackageTree.getTermsInPackage(pkg) ; for(DbTermNode term : terms) --- 325,330 ---- for(PackageNode pkg : allPackages) { ! savePackageEdge(pkg); ! Vector<DbTermNode> terms = PackageTree.getTermsInPackage(pkg) ; for(DbTermNode term : terms) *************** *** 274,283 **** allMerged.add(term) ; } - saveEdge(term) ; - if(!term.isMerged() && term.isChanged()) - { - term.status = ATOTreeNode.UNMODIFIED ; - tree.getModel().reload(term) ; - } } pkg.status = ATOTreeNode.UNMODIFIED ; --- 334,337 ---- Index: PackageTreeEditorBasis.java =================================================================== RCS file: /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview/PackageTreeEditorBasis.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PackageTreeEditorBasis.java 29 Jun 2006 22:15:53 -0000 1.3 --- PackageTreeEditorBasis.java 15 Jul 2006 22:10:53 -0000 1.4 *************** *** 87,91 **** --- 87,96 ---- PackageNode newNode = new PackageNode(newPkg) ; newNode.status = ATOTreeNode.MODIFIED ; + + // Peter: Makes sure the parent package asks whether to save or not, when editing is done. + // ((PackageNode)selected.getParent()).status = PackageNode.MODIFIED; + newNode.setViewMode(selected.getViewMode()) ; + newNode.status = PackageNode.MODIFIED; // submit the new package to the database (because we want the oid) *************** *** 100,103 **** --- 105,109 ---- } ((PackageTree)tree).modified = true; + selected.status = PackageNode.MODIFIED; return newNode ; } *************** *** 124,129 **** } // 2005-08-22 load with progress bar ! public void expandPackage(final PackageNode thePackage) { final JStatusBar statusBar = MOEditor.theInstance.statusBar ; --- 130,139 ---- } + public void expandPackage(final PackageNode thePackage){ + expandPackage(thePackage, true); + } + // 2005-08-22 load with progress bar ! public void expandPackage(final PackageNode thePackage, final boolean reload) { final JStatusBar statusBar = MOEditor.theInstance.statusBar ; *************** *** 140,144 **** { // do something here ! thePackage.expand(db, statusBar.getProgressBar(pb)) ; tree.getModel().reload(thePackage) ; } --- 150,154 ---- { // do something here ! thePackage.expand(db, statusBar.getProgressBar(pb), reload) ; tree.getModel().reload(thePackage) ; } *************** *** 235,239 **** --- 245,252 ---- "false") ; DbTermNode newNode = new DbTermNode(t, home) ; + newNode.status = ATOTreeNode.MODIFIED ; + home.status = PackageNode.MODIFIED; + ((PackageTree)tree).modified = true; Index: PackageTree.java =================================================================== RCS file: /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview/PackageTree.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PackageTree.java 29 Jun 2006 22:15:53 -0000 1.3 --- PackageTree.java 15 Jul 2006 22:10:53 -0000 1.4 *************** *** 137,140 **** --- 137,141 ---- newPackage = ((DbTermNode)dropTarget).getHomePackageNode() ; } + newPackage.status = PackageNode.MODIFIED; Enumeration<DbTermNode> en = selected.breadthFirstEnumeration() ; *************** *** 161,165 **** } ! getModel().reload(selected) ; return newPackage ; --- 162,167 ---- } ! getModel().reload(selected); ! getModel().reload(dropTarget); return newPackage ; *************** *** 198,202 **** newNode.showPackageInformation = true ; newNode.setHomePackageNode(dropTarget.getHomePackageNode()) ; ! getModel().insertNodeInto(newNode, dropTarget, 0) ; newNode.status = ATOTreeNode.MODIFIED ; getModel().reload(newNode) ; --- 200,205 ---- newNode.showPackageInformation = true ; newNode.setHomePackageNode(dropTarget.getHomePackageNode()) ; ! ! getModel().insertNodeInto(newNode, dropTarget, 0); newNode.status = ATOTreeNode.MODIFIED ; getModel().reload(newNode) ; *************** *** 283,285 **** --- 286,297 ---- } } + + public void savePackage(PackageNode pkg){ + if(pkg.status == PackageNode.MODIFIED) + { + PackageView2Db tree2db = new PackageView2Db(db, this) ; + tree2db.savePackage(pkg) ; + pkg.status = PackageNode.UNMODIFIED; + } + } } Index: PackageTreeDargDropListener.java =================================================================== RCS file: /cvsroot/cob/COBEditor/src/edu/iastate/ato/gui/packageview/PackageTreeDargDropListener.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PackageTreeDargDropListener.java 29 Jun 2006 20:17:22 -0000 1.3 --- PackageTreeDargDropListener.java 15 Jul 2006 22:10:53 -0000 1.4 *************** *** 122,125 **** --- 122,126 ---- { tree.movePackage(sourcePkg, targetPkg) ; + } else if(answer == JOptionPane.NO_OPTION) *************** *** 133,136 **** --- 134,138 ---- tree.getModel().removeNodeFromParent(n) ; tree.getModel().insertNodeInto(n, targetPkg, 0) ; + --i; n.status = ATOTreeNode.MODIFIED ; } *************** *** 138,146 **** --- 140,156 ---- { tree.moveBranch((DbTermNode)n, targetPkg) ; + --i; } } + + tree.getModel().reload(targetPkg); + tree.getModel().reload(sourcePkg); + targetPkg.status = PackageNode.MODIFIED; + //sourcePkg.status = PackageNode.MODIFIED; + // mark the old package as deleted sourcePkg.status = ATOTreeNode.DELETED_NODE ; + ((PackageNode)sourcePkg.getParent()).status = PackageNode.MODIFIED; } |