Package com.projity.grouping.core.transform.sorting

Examples of com.projity.grouping.core.transform.sorting.NodeSorter


        NodeFilter hiddenFilter=transformer.getHiddenFilter();
        if (hiddenFilter instanceof BaseFilter && !((BaseFilter)hiddenFilter).isActive()) hiddenFilter=null; //to avoid useless filtering in case of BaseFilter
        NodeFilter userFilter=(transformer.isNoneFilter())?null:transformer.getUserFilter();
        boolean filtering=hiddenFilter!=null||userFilter!=null;

        NodeSorter sorter1=transformer.getHiddenSorter();
        NodeSorter sorter2=transformer.getUserSorter();
        boolean sorting=!(sorter1==null&&transformer.isNoneSorter());

        NodeGrouper grouper=transformer.getUserGrouper();
        boolean grouping=!transformer.isNoneGrouper();

        if (!filtering&&!sorting&&!grouping) return;

        if (transformer.isShowAssignments()&&preserveHierarchy&&!transformer.isTreatAssignmentsAsTasks()) assignmentsMap=extractAssignments(list);


        List localList=null;
        Stack parents=null;
        boolean alreadyExcluded;
        if (preserveHierarchy){
          localList=new ArrayList();
          parents=new Stack();
        }else localList=list;

        GraphicNode gnode,previous=null;
        Object current;
        for (Iterator i=list.iterator();i.hasNext();){
            gnode=(GraphicNode)i.next();
            gnode.setFiltered(false);
            if (!gnode.isVoid()){
              current=(composition==null)?gnode.getNode():composition.evaluate(gnode.getNode());
              alreadyExcluded=false;
               if (hiddenFilter!=null){
                   if(!hiddenFilter.evaluate(current)){
                      if (!gnode.isSummary() || !preserveHierarchy){
                        i.remove();
                        continue;
                      }
                      if (gnode.isSummary()&&preserveHierarchy) gnode.setFiltered(true);
                      alreadyExcluded=true;
                  }
              }
               if (userFilter!=null&&!alreadyExcluded){
                   if(!userFilter.evaluate(current)){
                     if (!gnode.isSummary() || !preserveHierarchy){
                       i.remove();
                       continue;
                     }
                      if (gnode.isSummary()&&preserveHierarchy) gnode.setFiltered(true);
                  }
               }
            }
             if (preserveHierarchy){
               //contruct a temporary tree for sorting and grouping
//               if (parents==null||previous==null){
//                 System.out.println("null");
//               }
               if (gnode.getLevel()==1){
                 localList.add(gnode);
                 parents.clear();
               }else{
                   if (previous.getLevel()<gnode.getLevel()){
                     parents.push(previous);
                   }else if (previous.getLevel()>=gnode.getLevel()){
                     while (parents.size()>=gnode.getLevel()) parents.pop();
                   }
                   ((GraphicNode)parents.peek()).getChildren().add(gnode);
               }
               previous=gnode;
             }
         }

        //remove parents without children
        if (preserveHierarchy){
          list.clear();
          if (transformer.isShowEmptySummaries()){
            if ("TaskUsage".equals(viewName)) filterBadBranches(localList);
          }else filterEmptySummaries(localList,false);
        }




        if (sorting){
          if (sorter1!=null)
              sorter1.sortList(localList,new GraphicNodeComparator(sorter1,composition),preserveHierarchy);
          if (!transformer.isNoneSorter())
              sorter2.sortList(localList,new GraphicNodeComparator(sorter2,composition),preserveHierarchy);
        }



        if (grouping){
View Full Code Here


      return createGroupWithName(level,group,sorter.getGroupName(node));
  }

    private void groupList(List list,List destList,ListIterator groupIterator,Node parentGroup,NodeTransformer composition, boolean preserveHierarchy){
      NodeGroup group=(NodeGroup)groupIterator.next();
      NodeSorter sorter=group.getSorter();
      GraphicNodeComparator gcomp=new GraphicNodeComparator(sorter,composition);
      sorter.sortList(list,gcomp,preserveHierarchy);
      GraphicNode last=null;
      List nodes=null;
      GraphicNode current;
      for (ListIterator i=list.listIterator();i.hasNext();){
        current=(GraphicNode)i.next();
View Full Code Here

  public NodeSorter getSorter(){
    if (sorter!=null) return sorter;
    if (sorterId==null) return null;
    Object transform=TransformList.getInstance("user_sorters").getTransform(sorterId);
    if (transform==null||!(transform instanceof NodeSorter)) return null;
    NodeSorter sorter=(NodeSorter)transform;
    return sorter;
  }
View Full Code Here

TOP

Related Classes of com.projity.grouping.core.transform.sorting.NodeSorter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.