490 |
490 |
|
491 |
491 |
@Override
|
492 |
492 |
@Transactional
|
493 |
|
public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID targetNodeUuid){
|
494 |
|
UpdateResult result = new UpdateResult();
|
495 |
|
|
496 |
|
|
497 |
|
TaxonNode taxonNode = dao.load(taxonNodeUuid);
|
498 |
|
TaxonNode targetNode = dao.load(targetNodeUuid);
|
499 |
|
Integer sortIndex = targetNode.getSortIndex();
|
500 |
|
TaxonNode parent = targetNode.getParent();
|
501 |
|
result.addUpdatedObject(parent);
|
502 |
|
result.addUpdatedObject(taxonNode.getParent());
|
503 |
|
result.setCdmEntity(taxonNode);
|
504 |
|
parent.addChildNode(taxonNode, sortIndex+1, taxonNode.getReference(), taxonNode.getMicroReference());
|
505 |
|
dao.saveOrUpdate(parent);
|
506 |
|
|
507 |
|
return result;
|
|
493 |
public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID targetNodeUuid, boolean isParent){
|
|
494 |
TaxonNode taxonNode = dao.load(taxonNodeUuid);
|
|
495 |
TaxonNode targetNode = dao.load(targetNodeUuid);
|
|
496 |
return moveTaxonNode(taxonNode, targetNode, isParent);
|
508 |
497 |
}
|
509 |
498 |
|
510 |
499 |
@Override
|
511 |
500 |
@Transactional
|
512 |
|
public UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent){
|
|
501 |
public UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, boolean isParent){
|
513 |
502 |
UpdateResult result = new UpdateResult();
|
514 |
|
result.addUpdatedObject(taxonNode.getParent());
|
|
503 |
|
|
504 |
Integer sortIndex;
|
|
505 |
if (isParent){
|
|
506 |
|
|
507 |
sortIndex = newParent.getChildNodes().size();
|
|
508 |
}else{
|
|
509 |
sortIndex = newParent.getSortIndex() +1;
|
|
510 |
newParent = newParent.getParent();
|
|
511 |
}
|
515 |
512 |
result.addUpdatedObject(newParent);
|
|
513 |
result.addUpdatedObject(taxonNode.getParent());
|
516 |
514 |
result.setCdmEntity(taxonNode);
|
517 |
|
Reference<?> reference = taxonNode.getReference();
|
518 |
|
String microReference = taxonNode.getMicroReference();
|
519 |
|
newParent.addChildNode(taxonNode, reference, microReference);
|
520 |
|
dao.saveOrUpdate(taxonNode);
|
|
515 |
newParent.addChildNode(taxonNode, sortIndex, taxonNode.getReference(), taxonNode.getMicroReference());
|
|
516 |
dao.saveOrUpdate(newParent);
|
521 |
517 |
|
522 |
518 |
return result;
|
523 |
519 |
}
|
... | ... | |
526 |
522 |
|
527 |
523 |
@Override
|
528 |
524 |
@Transactional
|
529 |
|
public UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid){
|
|
525 |
public UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, boolean isParent){
|
530 |
526 |
UpdateResult result = new UpdateResult();
|
531 |
527 |
TaxonNode targetNode = dao.load(newParentNodeUuid);
|
532 |
528 |
for (UUID taxonNodeUuid: taxonNodeUuids){
|
533 |
529 |
TaxonNode taxonNode = dao.load(taxonNodeUuid);
|
534 |
|
result.includeResult(moveTaxonNode(taxonNode,targetNode));
|
|
530 |
result.includeResult(moveTaxonNode(taxonNode,targetNode, isParent));
|
535 |
531 |
}
|
536 |
532 |
return result;
|
537 |
533 |
}
|
fix move taxon node in natural order