diff --git a/ccm-cms-assets-relatedlink/src/com/arsdigita/cms/contentassets/RelatedLink.java b/ccm-cms-assets-relatedlink/src/com/arsdigita/cms/contentassets/RelatedLink.java index 3c84423e0..0f5f2b138 100755 --- a/ccm-cms-assets-relatedlink/src/com/arsdigita/cms/contentassets/RelatedLink.java +++ b/ccm-cms-assets-relatedlink/src/com/arsdigita/cms/contentassets/RelatedLink.java @@ -229,6 +229,7 @@ public class RelatedLink extends Link { "com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem", "com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup", this.getLinkListName()); + normalizeOrder(); } /** @@ -241,6 +242,7 @@ public class RelatedLink extends Link { "com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem", "com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup", this.getLinkListName()); + normalizeOrder(); } /** @@ -298,7 +300,22 @@ public class RelatedLink extends Link { link.setOrder(sortKey); link.save(); } - + } + + /** + * This method normalizes the order column of the related links of this + * item. This means that the order column of the first related link will + * have the value 1 after calling this method, and so one. + */ + private void normalizeOrder() { + final DataCollection relatedLinks = getRelatedLinks(getLinkOwner(), + getLinkListName()); + int i = 1; + while(relatedLinks.next()) { + relatedLinks.getDataObject().set(ORDER, i); + relatedLinks.getDataObject().save(); + i++; + } } /** diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSubordinateCollection.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSubordinateCollection.java index 0497c9eb6..b1e1fbb54 100644 --- a/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSubordinateCollection.java +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSubordinateCollection.java @@ -49,8 +49,8 @@ public class GenericOrganizationalUnitSubordinateCollection extends DomainCollec } public void swapWithNext(final GenericOrganizationalUnit orgaunit) { - - + + if (orgaunit == null) { throw new IllegalArgumentException( "Parameter orgaunit is null. Can't swap position with null"); @@ -87,6 +87,8 @@ public class GenericOrganizationalUnitSubordinateCollection extends DomainCollec next(); setSubordinateOrder(currentIndex); rewind(); + + normalizeOrder(); } public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) { @@ -128,17 +130,30 @@ public class GenericOrganizationalUnitSubordinateCollection extends DomainCollec next(); setSubordinateOrder(previousIndex); rewind(); + + normalizeOrder(); + } + + private void normalizeOrder() { + this.rewind(); + + int i = 1; + while (this.next()) { + setSubordinateOrder(i); + i++; + } + this.rewind(); } public GenericOrganizationalUnit getGenericOrganizationalUnit() { return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(m_dataCollection. getDataObject()); } - + public BigDecimal getId() { return (BigDecimal) m_dataCollection.getDataObject().get(ACSObject.ID); } - + public OID getOID() { return m_dataCollection.getDataObject().getOID(); } diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSuperiorCollection.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSuperiorCollection.java index 722c13943..be2998412 100644 --- a/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSuperiorCollection.java +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitSuperiorCollection.java @@ -83,6 +83,8 @@ public class GenericOrganizationalUnitSuperiorCollection extends DomainCollectio next(); setSuperiorOrder(currentIndex); rewind(); + + normalizeOrder(); } public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) { @@ -124,6 +126,19 @@ public class GenericOrganizationalUnitSuperiorCollection extends DomainCollectio next(); setSuperiorOrder(previousIndex); rewind(); + + normalizeOrder(); + } + + private void normalizeOrder() { + this.rewind(); + + int i = 1; + while (this.next()) { + setSuperiorOrder(i); + i++; + } + this.rewind(); } public GenericOrganizationalUnit getGenericOrganizationalUnit() { diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java index f4aea3b82..fc3107194 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java @@ -107,6 +107,8 @@ public class AuthorshipCollection extends DomainCollection { this.next(); this.setAuthorshipOrder(currentIndex); this.rewind(); + + normalizeOrder(); } public void swapWithPrevious(GenericPerson author) { @@ -155,16 +157,31 @@ public class AuthorshipCollection extends DomainCollection { this.next(); this.setAuthorshipOrder(previousIndex); this.rewind(); + + normalizeOrder(); + } + + private void normalizeOrder() { + this.rewind(); + + int i = 1; + while (this.next()) { + setAuthorshipOrder(i); + i++; + } + this.rewind(); } public String getSurname() { - return (String) m_dataCollection.getDataObject().get(GenericPerson.SURNAME); + return (String) m_dataCollection.getDataObject().get( + GenericPerson.SURNAME); } - + public String getGivenName() { - return (String) m_dataCollection.getDataObject().get(GenericPerson.GIVENNAME); + return (String) m_dataCollection.getDataObject().get( + GenericPerson.GIVENNAME); } - + public GenericPerson getAuthor() { return new GenericPerson(m_dataCollection.getDataObject()); }