Project

General

Profile

« Previous | Next » 

Revision 3d4335fe

Added by Katja Luther almost 8 years ago

small changes for moving taxonnodes

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java
112 112
     * @param newParentTaxonNodeUuid
113 113
     * @return
114 114
     */
115
    public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid, boolean parent);
115
    public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid, int movingType);
116 116

  
117 117

  
118 118

  
......
121 121
     * @param newParentNodeUuid
122 122
     * @return
123 123
     */
124
    UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, boolean parent);
124
    UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, int movingType);
125 125

  
126 126
    /**
127 127
     * @param taxonNode
......
129 129
     * @param parent
130 130
     * @return
131 131
     */
132
    UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, boolean parent);
132
    UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, int movingType);
133 133

  
134 134
    /**
135 135
     * deletes the given taxon nodes
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
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
    }

Also available in: Unified diff