Changeset 48
- Timestamp:
- 02/21/10 15:53:06 (7 months ago)
- Files:
-
- kahina/trunk/src/org/kahina/data/tree/KahinaDbTree.java (modified) (8 diffs)
- kahina/trunk/src/org/kahina/data/tree/KahinaTree.java (modified) (2 diffs)
- kahina/trunk/src/org/kahina/data/tree/KahinaUnlayeredMemTree.java (modified) (3 diffs)
- kahina/trunk/src/org/kahina/gui/breakpoint/BreakpointTestWindow.java (modified) (3 diffs)
- kahina/trunk/src/org/kahina/test/KahinaTreeTest.java (modified) (2 diffs)
- kahina/trunk/src/org/kahina/visual/tree/KahinaTreeView.java (modified) (12 diffs)
- kahina/trunk/src/org/kahina/visual/tree/KahinaTreeViewListener.java (modified) (1 diff)
- kahina/trunk/src/org/kahina/visual/tree/KahinaTreeViewPanel.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
kahina/trunk/src/org/kahina/data/tree/KahinaDbTree.java
r46 r48 2 2 3 3 import java.util.List; 4 import java.util.Map;5 4 6 5 import org.kahina.io.database.DatabaseHandler; … … 56 55 public void addChild(int parent, int child) 57 56 { 58 // TODO Auto-generated method stub59 57 // add 58 // nach oben gehen und jedem 60 59 } 61 60 … … 110 109 111 110 @Override 112 public Map<Integer, String> getEdgeLabels()113 {114 // TODO Auto-generated method stub115 return null;116 }117 118 @Override119 111 public List<Integer> getLeaves() 120 112 { … … 125 117 @Override 126 118 public String getNodeCaption(int nodeID) 127 {128 // TODO Auto-generated method stub129 return null;130 }131 132 @Override133 public Map<Integer, String> getNodeCaptions()134 119 { 135 120 // TODO Auto-generated method stub … … 166 151 167 152 @Override 168 public Map<Integer, Integer> getStatus()169 {170 // TODO Auto-generated method stub171 return null;172 }173 174 @Override175 153 public boolean hasCollapsedAncestor(int nodeID) 176 154 { … … 184 162 // TODO Auto-generated method stub 185 163 return false; 186 }187 188 @Override189 public void setEdgeLabels(Map<Integer, String> edgeLabels)190 {191 // TODO Auto-generated method stub192 193 }194 195 @Override196 public void setNodeCaptions(Map<Integer, String> nodeCaptions)197 {198 // TODO Auto-generated method stub199 200 164 } 201 165 … … 215 179 216 180 @Override 217 public void setStatus(Map<Integer, Integer> status)181 public void toggleCollapse(int nodeID) 218 182 { 219 183 // TODO Auto-generated method stub … … 222 186 223 187 @Override 224 public void toggleCollapse(int nodeID)188 public int getSize() 225 189 { 226 190 // TODO Auto-generated method stub 227 191 return 0; 228 192 } 229 193 kahina/trunk/src/org/kahina/data/tree/KahinaTree.java
r46 r48 45 45 public abstract boolean isCollapsed(int nodeID); 46 46 47 public abstract void setStatus(Map<Integer, Integer> status);48 49 public abstract Map<Integer, Integer> getStatus();50 51 public abstract void setEdgeLabels(Map<Integer, String> edgeLabels);52 53 public abstract Map<Integer, String> getEdgeLabels();54 55 public abstract void setNodeCaptions(Map<Integer, String> nodeCaptions);56 57 public abstract Map<Integer, String> getNodeCaptions();58 59 47 public abstract List<Integer> getLeaves(); 60 48 … … 76 64 77 65 public abstract int getRootID(int layerID); 66 67 public abstract int getSize(); 78 68 79 69 public String exportXML() kahina/trunk/src/org/kahina/data/tree/KahinaUnlayeredMemTree.java
r46 r48 106 106 else 107 107 { 108 System.err.println("Caption: " + caption); // TODO 108 109 return caption; 109 110 } … … 180 181 } 181 182 } 182 }183 184 @Override185 public Map<Integer, String> getNodeCaptions()186 {187 return nodeCaptions;188 }189 190 @Override191 public void setNodeCaptions(Map<Integer, String> nodeCaptions)192 {193 this.nodeCaptions = nodeCaptions;194 }195 196 @Override197 public Map<Integer, String> getEdgeLabels()198 {199 return edgeLabels;200 }201 202 @Override203 public void setEdgeLabels(Map<Integer, String> edgeLabels)204 {205 this.edgeLabels = edgeLabels;206 }207 208 @Override209 public Map<Integer, Integer> getStatus()210 {211 return status;212 }213 214 @Override215 public void setStatus(Map<Integer, Integer> status)216 {217 this.status = status;218 183 } 219 184 … … 311 276 nextID = 0; 312 277 } 278 279 @Override 280 public int getSize() 281 { 282 return nodeCaptions.size(); 283 } 313 284 314 285 // TODO find a good way to make this implementation-independent kahina/trunk/src/org/kahina/gui/breakpoint/BreakpointTestWindow.java
r46 r48 12 12 import javax.swing.JScrollPane; 13 13 14 import org.kahina.breakpoint.KahinaBreakpoint;15 14 import org.kahina.breakpoint.TreeAutomaton; 16 15 import org.kahina.control.KahinaController; … … 122 121 else if (s.equals("addRandomNode")) 123 122 { 124 int parentNode = (int) (Math.random() * model.get NodeCaptions().size());123 int parentNode = (int) (Math.random() * model.getSize()); 125 124 String caption = generateRandomNodeCaption(); 126 125 view.setMarkedNode(addNode(parentNode, caption)); … … 286 285 287 286 } 288 int parentNode = (int) (Math.random() * model.get NodeCaptions().size());287 int parentNode = (int) (Math.random() * model.getSize()); 289 288 String caption = generateRandomNodeCaption(); 290 289 addNode(parentNode, caption); kahina/trunk/src/org/kahina/test/KahinaTreeTest.java
r46 r48 45 45 v0.display(m1,0,17); 46 46 v0.displaySecondaryTree(m2); 47 v0. swapSecondDimensionDisplay();47 v0.toggleSecondDimensionDisplay(); 48 48 49 49 v0.setStatusColorEncoding(0,new Color(0,255,0)); … … 60 60 v1.display(m1,1,17); 61 61 v1.displaySecondaryTree(m2); 62 v1. swapSecondDimensionDisplay();62 v1.toggleSecondDimensionDisplay(); 63 63 64 64 v1.setStatusColorEncoding(0,new Color(0,255,0)); kahina/trunk/src/org/kahina/visual/tree/KahinaTreeView.java
r46 r48 92 92 KahinaTree secondaryTreeModel; 93 93 94 private boolean dimensionsSwapped = false; 95 94 96 //display coordinates for nodes 95 97 private HashMap<Integer, Integer> nodeX; … … 229 231 } 230 232 231 public void swapSecondDimensionDisplay()233 public void toggleSecondDimensionDisplay() 232 234 { 233 235 displaySecondDimension = !displaySecondDimension; … … 464 466 public Font getNodeFont(int nodeID) 465 467 { 466 int status = treeModel.getNodeStatus(nodeID);468 int status = getContentfulTreeModel().getNodeStatus(nodeID); 467 469 Font fnt = statusFontEncoding.get(status); 468 470 if (fnt == null) … … 486 488 public Color getNodeColor(int nodeID) 487 489 { 488 int status = treeModel.getNodeStatus(nodeID);490 int status = getContentfulTreeModel().getNodeStatus(nodeID); 489 491 Color col = statusNodeColorEncoding.get(status); 490 492 if (col == null) … … 588 590 } 589 591 treeLayer = 0; 590 this.treeModel = (Kahina MemTree) treeModel;592 this.treeModel = (KahinaTree) treeModel; 591 593 nodeBorderColor = new HashMap<Integer, Color>(); 592 594 resetAllStructures(); … … 648 650 for (int node : nodeLevels.get(i)) 649 651 { 650 int nodeLabelWidth = fm.stringWidth( treeModel.getNodeCaption(node));652 int nodeLabelWidth = fm.stringWidth(getContentfulTreeModel().getNodeCaption(node)); 651 653 if (maxNodeWidth < nodeLabelWidth) maxNodeWidth = nodeLabelWidth; 652 654 ArrayList<Integer> children = getVisibleVirtualChildren(treeModel, node); … … 801 803 if (nodeDisplayPolicy == KahinaTreeView.NEVER) return false; 802 804 if (secondaryTreeModel != null && collapsePolicy == COLLAPSE_SECONDARY && secondaryTreeModel.hasCollapsedAncestor(nodeID)) return false; 803 int status = treeModel.getNodeStatus(nodeID);805 int status = getContentfulTreeModel().getNodeStatus(nodeID); 804 806 Boolean decision = statusVisibilityEncoding.get(status); 805 807 if (decision == null) … … 894 896 if (secondaryTreeModel != null) 895 897 { 898 dimensionsSwapped = !dimensionsSwapped; 896 899 KahinaTree firstModel = treeModel; 897 900 treeModel = secondaryTreeModel; 898 treeModel.setNodeCaptions(firstModel.getNodeCaptions());899 treeModel.setEdgeLabels(firstModel.getEdgeLabels());900 treeModel.setStatus(firstModel.getStatus());901 901 secondaryTreeModel = firstModel; 902 902 resetAllStructures(); … … 956 956 middleIndex = (lowerIndex + upperIndex)/2; 957 957 FontMetrics fm = getFontMetrics(new Font(Font.SANS_SERIF,Font.PLAIN, fontSize), new BasicStroke(1), fontSize); 958 int width = fm.stringWidth( treeModel.getNodeCaption(selectedLevel.get(middleIndex)));958 int width = fm.stringWidth(getContentfulTreeModel().getNodeCaption(selectedLevel.get(middleIndex))); 959 959 middleBound = nodeX.get(selectedLevel.get(middleIndex)) + width / 2 + 2; 960 960 if (nodePositionPolicy == KahinaTreeView.LEFT_ALIGNED_NODES) … … 978 978 } 979 979 middleIndex = (lowerIndex + upperIndex)/2; 980 width = fm.stringWidth( treeModel.getNodeCaption(selectedLevel.get(middleIndex)));980 width = fm.stringWidth(getContentfulTreeModel().getNodeCaption(selectedLevel.get(middleIndex))); 981 981 middleBound = nodeX.get(selectedLevel.get(middleIndex)) + width / 2 - 2; 982 982 if (nodePositionPolicy == KahinaTreeView.LEFT_ALIGNED_NODES) … … 997 997 //test coordinates against exact boundaries of candidate node 998 998 FontMetrics fm = getFontMetrics(new Font(Font.SANS_SERIF,Font.PLAIN, fontSize), new BasicStroke(1), fontSize); 999 int width = fm.stringWidth( treeModel.getNodeCaption(candidateNode));999 int width = fm.stringWidth(getContentfulTreeModel().getNodeCaption(candidateNode)); 1000 1000 int xLeft = getNodeX(candidateNode) - width / 2 - 2; 1001 1001 if (nodePositionPolicy == KahinaTreeView.LEFT_ALIGNED_NODES) … … 1037 1037 return treeModel; 1038 1038 } 1039 1040 public KahinaTree getContentfulTreeModel() 1041 { 1042 if (dimensionsSwapped) 1043 { 1044 return secondaryTreeModel; 1045 } else 1046 { 1047 return treeModel; 1048 } 1049 } 1039 1050 } kahina/trunk/src/org/kahina/visual/tree/KahinaTreeViewListener.java
r46 r48 252 252 else if (command.equals("Display second dimension")) 253 253 { 254 view.v. swapSecondDimensionDisplay();254 view.v.toggleSecondDimensionDisplay(); 255 255 } 256 256 else if (command.equals("Swap dimensions")) kahina/trunk/src/org/kahina/visual/tree/KahinaTreeViewPanel.java
r34 r48 1 1 package org.kahina.visual.tree; 2 2 3 import java.awt.*; 3 import java.awt.BasicStroke; 4 import java.awt.Color; 5 import java.awt.Dimension; 6 import java.awt.Font; 7 import java.awt.FontMetrics; 8 import java.awt.Graphics; 9 import java.awt.Graphics2D; 10 import java.awt.RenderingHints; 4 11 import java.awt.image.BufferedImage; 5 12 import java.util.List; 6 7 import javax.swing.*;8 13 9 14 import org.kahina.visual.KahinaViewPanel; … … 137 142 canvas.setFont(v.getNodeFont(nodeID)); 138 143 FontMetrics fm = canvas.getFontMetrics(); 139 int width = fm.stringWidth(v. treeModel.getNodeCaption(nodeID));144 int width = fm.stringWidth(v.getContentfulTreeModel().getNodeCaption(nodeID)); 140 145 int x = v.getNodeX(nodeID) - width / 2; 141 146 int y = v.getNodeY(nodeID) - v.getNodeHeight(nodeID) + 2; … … 174 179 canvas.setFont(v.getNodeFont(nodeID)); 175 180 FontMetrics fm = canvas.getFontMetrics(); 176 int width = fm.stringWidth(v. treeModel.getNodeCaption(nodeID));181 int width = fm.stringWidth(v.getContentfulTreeModel().getNodeCaption(nodeID)); 177 182 int x = v.getNodeX(nodeID) - width / 2; 178 183 int y = v.getNodeY(nodeID) - v.getNodeHeight(nodeID) + 2; … … 206 211 canvas.setFont(v.getNodeFont(nodeID)); 207 212 FontMetrics fm = canvas.getFontMetrics(); 208 String tag = v. treeModel.getNodeCaption(nodeID);213 String tag = v.getContentfulTreeModel().getNodeCaption(nodeID); 209 214 int width = fm.stringWidth(tag); 210 215 canvas.setColor(Color.BLACK); … … 318 323 else if (v.getNodePositionPolicy() == KahinaTreeView.CENTERED_NODES) 319 324 { 320 int parentWidth = canvas.getFontMetrics().stringWidth(v. treeModel.getNodeCaption(parent));321 int nodeWidth = canvas.getFontMetrics().stringWidth(v. treeModel.getNodeCaption(node));325 int parentWidth = canvas.getFontMetrics().stringWidth(v.getContentfulTreeModel().getNodeCaption(parent)); 326 int nodeWidth = canvas.getFontMetrics().stringWidth(v.getContentfulTreeModel().getNodeCaption(node)); 322 327 x1 -= parentWidth / 2; 323 328 x2 -= nodeWidth / 2;
