Changeset 55

Show
Ignore:
Timestamp:
02/22/10 19:47:52 (7 months ago)
Author:
ke
Message:

Bugfix: The "virtual parent" relation is now defined as follows. The virtual parent of a node is its lowest ancestor that has the same layer, provided that there is no intervening ancestor that has a lower layer, in which case there is no virtual parent.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • kahina/trunk/src/org/kahina/data/tree/KahinaDbTree.java

    r54 r55  
    188188        private void computeAndStoreLayerInformation(int child) 
    189189        { 
    190                 int layer = decider.decideOnLayer(child, this); 
     190                int childLayer = decider.decideOnLayer(child, this); 
    191191                int virtualParent = getParent(child); 
    192                 while (getLayer(virtualParent) > layer) 
    193                 { 
    194                         virtualParent = getVirtualParent(virtualParent); 
    195                 } 
    196                 try 
    197                 { 
    198                         addLayerInformationStatement.setInt(1, layer); 
     192                int parentLayer = getLayer(virtualParent); 
     193                while (parentLayer > childLayer) 
     194                { 
     195                        virtualParent = getParent(virtualParent); 
     196                        parentLayer = getLayer(virtualParent); 
     197                } 
     198                if (parentLayer < childLayer) 
     199                { 
     200                        virtualParent = -1; 
     201                } 
     202                try 
     203                { 
     204                        addLayerInformationStatement.setInt(1, childLayer); 
    199205                        addLayerInformationStatement.setInt(2, virtualParent); 
    200206                        addLayerInformationStatement.setInt(3, child); 
     207                        System.err.println("adding " + child + "(" + childLayer + ") as VC of " 
     208                                        + virtualParent + "(" + getLayer(virtualParent) + ")"); 
    201209                        addLayerInformationStatement.execute(); 
    202210                } catch (SQLException e) 
     
    306314        { 
    307315                int nodeLayer = getLayer(nodeID); 
     316                System.err.println(nodeID + "(" + nodeLayer + "," 
     317                                + getNodeCaption(nodeID) + ") for " + layer); 
    308318                if (layer == nodeLayer) 
    309319                { 
     
    356366                        throw new KahinaException("SQL error.", e); 
    357367                } 
    358                 return db.queryIntList(getVirtualChildrenStatement); 
     368                List<Integer> result = db.queryIntList(getVirtualChildrenStatement); 
     369                System.err.println("LÀnge: " + result.size()); 
     370                return result; 
    359371        } 
    360372 
  • kahina/trunk/src/org/kahina/visual/tree/KahinaTreeView.java

    r54 r55  
    607607        nodeBorderColor = new HashMap<Integer, Color>(); 
    608608        resetAllStructures(); 
    609         System.err.println("F"); 
    610609        calculateCoordinates(); 
    611610    }