Fix für Order in RelatedLink und anderen Collections. Fehlerhafte Order-Angaben werden jetzt automatisch korrigiert.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1341 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-12-14 06:25:19 +00:00
parent 9f4864a5be
commit d269b11f5e
4 changed files with 73 additions and 9 deletions

View File

@ -229,6 +229,7 @@ public class RelatedLink extends Link {
"com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem", "com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem",
"com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup", "com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup",
this.getLinkListName()); this.getLinkListName());
normalizeOrder();
} }
/** /**
@ -241,6 +242,7 @@ public class RelatedLink extends Link {
"com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem", "com.arsdigita.cms.contentassets.allRelatedLinkOrderForItem",
"com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup", "com.arsdigita.cms.contentassets.swapRelatedLinkWithNextInGroup",
this.getLinkListName()); this.getLinkListName());
normalizeOrder();
} }
/** /**
@ -298,7 +300,22 @@ public class RelatedLink extends Link {
link.setOrder(sortKey); link.setOrder(sortKey);
link.save(); 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++;
}
} }
/** /**

View File

@ -87,6 +87,8 @@ public class GenericOrganizationalUnitSubordinateCollection extends DomainCollec
next(); next();
setSubordinateOrder(currentIndex); setSubordinateOrder(currentIndex);
rewind(); rewind();
normalizeOrder();
} }
public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) { public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) {
@ -128,6 +130,19 @@ public class GenericOrganizationalUnitSubordinateCollection extends DomainCollec
next(); next();
setSubordinateOrder(previousIndex); setSubordinateOrder(previousIndex);
rewind(); rewind();
normalizeOrder();
}
private void normalizeOrder() {
this.rewind();
int i = 1;
while (this.next()) {
setSubordinateOrder(i);
i++;
}
this.rewind();
} }
public GenericOrganizationalUnit getGenericOrganizationalUnit() { public GenericOrganizationalUnit getGenericOrganizationalUnit() {

View File

@ -83,6 +83,8 @@ public class GenericOrganizationalUnitSuperiorCollection extends DomainCollectio
next(); next();
setSuperiorOrder(currentIndex); setSuperiorOrder(currentIndex);
rewind(); rewind();
normalizeOrder();
} }
public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) { public void swapWithPrevious(final GenericOrganizationalUnit orgaunit) {
@ -124,6 +126,19 @@ public class GenericOrganizationalUnitSuperiorCollection extends DomainCollectio
next(); next();
setSuperiorOrder(previousIndex); setSuperiorOrder(previousIndex);
rewind(); rewind();
normalizeOrder();
}
private void normalizeOrder() {
this.rewind();
int i = 1;
while (this.next()) {
setSuperiorOrder(i);
i++;
}
this.rewind();
} }
public GenericOrganizationalUnit getGenericOrganizationalUnit() { public GenericOrganizationalUnit getGenericOrganizationalUnit() {

View File

@ -107,6 +107,8 @@ public class AuthorshipCollection extends DomainCollection {
this.next(); this.next();
this.setAuthorshipOrder(currentIndex); this.setAuthorshipOrder(currentIndex);
this.rewind(); this.rewind();
normalizeOrder();
} }
public void swapWithPrevious(GenericPerson author) { public void swapWithPrevious(GenericPerson author) {
@ -155,14 +157,29 @@ public class AuthorshipCollection extends DomainCollection {
this.next(); this.next();
this.setAuthorshipOrder(previousIndex); this.setAuthorshipOrder(previousIndex);
this.rewind(); this.rewind();
normalizeOrder();
}
private void normalizeOrder() {
this.rewind();
int i = 1;
while (this.next()) {
setAuthorshipOrder(i);
i++;
}
this.rewind();
} }
public String getSurname() { public String getSurname() {
return (String) m_dataCollection.getDataObject().get(GenericPerson.SURNAME); return (String) m_dataCollection.getDataObject().get(
GenericPerson.SURNAME);
} }
public String getGivenName() { public String getGivenName() {
return (String) m_dataCollection.getDataObject().get(GenericPerson.GIVENNAME); return (String) m_dataCollection.getDataObject().get(
GenericPerson.GIVENNAME);
} }
public GenericPerson getAuthor() { public GenericPerson getAuthor() {