diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java index d3e8c610..dcdfd941 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java @@ -27,6 +27,8 @@ import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; +import org.apache.cayenne.PersistenceState; + import leaf.ui.LeafButton; import leaf.ui.LeafDialog; import leaf.ui.LeafIconButton; diff --git a/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java b/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java index 7303bc5f..57b28d71 100644 --- a/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java +++ b/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java @@ -131,11 +131,6 @@ public class BaseObject extends CayenneDataObject implements Comparable boolean isRelational( OBJ_CLASS object ) { boolean result = false; @@ -178,25 +173,32 @@ public class BaseObject extends CayenneDataObject implements Comparable List getReferringObjects( String arrayProperty ) { - List result = new LinkedList(); + List result = (List) super.readProperty(arrayProperty); + List toDelete = new LinkedList(); Boolean isRel = null; - for( OBJ_CLASS o : (List) super.readProperty(arrayProperty) ) + for( OBJ_CLASS o : result ) { if( isRel == null ) { isRel = isRelational( o ); } - if( null == o.readProperty( "deletedDate" ) ) + if( null != o.readProperty( "deletedDate" ) || isRel && isRelDeleted(o) ) { - if( !isRel || !isRelDeleted( o ) ) - { - result.add(o); - } + toDelete.add(o); } } + for( OBJ_CLASS o : toDelete ) + { + result.remove(o); + } return result; }