528 |
528 |
|
529 |
529 |
@Override
|
530 |
530 |
@Transactional
|
531 |
|
public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID targetNodeUuid, boolean isParent){
|
|
531 |
public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID targetNodeUuid, int movingType){
|
532 |
532 |
TaxonNode taxonNode = HibernateProxyHelper.deproxy(dao.load(taxonNodeUuid), TaxonNode.class);
|
533 |
533 |
TaxonNode targetNode = HibernateProxyHelper.deproxy(dao.load(targetNodeUuid), TaxonNode.class);
|
534 |
|
return moveTaxonNode(taxonNode, targetNode, isParent);
|
|
534 |
return moveTaxonNode(taxonNode, targetNode, movingType);
|
535 |
535 |
}
|
536 |
536 |
|
537 |
537 |
@Override
|
538 |
538 |
@Transactional
|
539 |
|
public UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, boolean isParent){
|
|
539 |
public UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, int movingType){
|
540 |
540 |
UpdateResult result = new UpdateResult();
|
541 |
541 |
|
542 |
542 |
TaxonNode parentParent = HibernateProxyHelper.deproxy(newParent.getParent(), TaxonNode.class);
|
543 |
543 |
|
544 |
|
Integer sortIndex;
|
545 |
|
if (isParent){
|
546 |
|
|
547 |
|
sortIndex = newParent.getChildNodes().size();
|
548 |
|
}else{
|
|
544 |
Integer sortIndex = -1;
|
|
545 |
if (movingType == 0){
|
|
546 |
sortIndex = 0;
|
|
547 |
}else if (movingType == 1){
|
|
548 |
sortIndex = newParent.getSortIndex();
|
|
549 |
newParent = parentParent;
|
|
550 |
} else if (movingType == 2){
|
549 |
551 |
sortIndex = newParent.getSortIndex() +1;
|
550 |
552 |
newParent = parentParent;
|
|
553 |
} else{
|
|
554 |
result.setAbort();
|
|
555 |
result.addException(new Exception("The moving type "+ movingType +" is not supported."));
|
551 |
556 |
}
|
552 |
557 |
result.addUpdatedObject(newParent);
|
553 |
558 |
result.addUpdatedObject(taxonNode.getParent());
|
... | ... | |
564 |
569 |
|
565 |
570 |
@Override
|
566 |
571 |
@Transactional
|
567 |
|
public UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, boolean isParent){
|
|
572 |
public UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, int movingType){
|
568 |
573 |
UpdateResult result = new UpdateResult();
|
569 |
574 |
TaxonNode targetNode = dao.load(newParentNodeUuid);
|
570 |
575 |
for (UUID taxonNodeUuid: taxonNodeUuids){
|
571 |
576 |
TaxonNode taxonNode = dao.load(taxonNodeUuid);
|
572 |
|
result.includeResult(moveTaxonNode(taxonNode,targetNode, isParent));
|
|
577 |
result.includeResult(moveTaxonNode(taxonNode,targetNode, movingType));
|
573 |
578 |
}
|
574 |
579 |
return result;
|
575 |
580 |
}
|
small changes for moving taxonnodes