Changeset 907


Ignore:
Timestamp:
04/22/14 11:25:40 (10 years ago)
Author:
davidb
Message:

Y-by-X Walker algorithm failed to follow nested boxes when an out-of-flow arrow used. This code change (with some additional trial code deliberately left in, but commented out) addresses this issue.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/io/flowlayout/XGroupItem.java

    r906 r907  
    404404        /**     
    405405          *     Look for any 'out-of-flow' XGroup boxes, signalled by the user drawing an arrow line to it
    406           *      => force an artificial change to such boxes so its dimensions become point becomes the starting point
     406          *      => force an artificial change to such boxes so its dimensions becomes the starting point
    407407          *         of the arrow line.  This will make it sort to the desired spot in the YOverlapping span
    408408          */
     
    802802
    803803                                        // merge with this item list, preserving x ordering
    804 
    805804                                        xitem_span.orderedMergeItem(xitem.getBoundingXLeft(),xitem);
    806805
     
    816815                }
    817816
     817                // Having checked all the y-location's ('yt' to 'yb') of this x-item, if all y-span entries were found to be null
     818                // => 'merged_item' is still false
     819               
    818820                if (!merged_item) {
    819821                        // xitem didn't intersect with any existing y-spans
     
    834836        }
    835837       
    836         public void mapInXGroupItemsRecursive(List<XGroupItem> xgroup_item_list)
     838        public void mapInXGroupItemsRecursive(List<XGroupItem> xgroup_item_list/*,boolean globally_faked_out_of_flow*/)
    837839        {
    838840               
     
    847849                for (XGroupItem xgroup_item: xgroup_item_list) {
    848850
    849                         if (!xgroup_item.isOriginalOutOfFlowItem()) {
     851                        //boolean xgroup_item_faked_out_of_flow = xgroup_item.isFakedOutOfFlowItem();
     852                        /*
     853                        if (globally_faked_out_of_flow || xgroup_item_faked_out_of_flow) {
     854                                // Process any children to a faked out-of-flow items
     855                                List<XGroupItem> nested_xgroup_item_list = xgroup_item.getGroupedItemList();
     856
     857                                if (nested_xgroup_item_list.size() >0) {
     858                                        xgroup_item.mapInXGroupItemsRecursive(nested_xgroup_item_list,true);
     859                                }
     860                        }
     861                        else*/
     862                        //if (!xgroup_item.isOriginalOutOfFlowItem()) {
     863                               
    850864                                List<XGroupItem> nested_xgroup_item_list = xgroup_item.getGroupedItemList();
    851865
     
    853867                                        xgroup_item.mapInXGroupItemsRecursive(nested_xgroup_item_list);
    854868                                }
    855                         }
     869                        //}
    856870                }       
    857871        }
Note: See TracChangeset for help on using the changeset viewer.