1 31 32 package org.antlr.works.visualization.skin; 33 34 import org.antlr.works.visualization.graphics.GContext; 35 import org.antlr.works.visualization.graphics.GObject; 36 import org.antlr.works.visualization.graphics.shape.GLink; 37 import org.antlr.works.visualization.graphics.shape.GNode; 38 39 import java.awt.*; 40 import java.util.HashMap ; 41 import java.util.Map ; 42 43 public abstract class Skin { 44 45 protected float value_epsilon_width = 0; 46 protected float value_epsilon_up = 0; 47 protected float value_epsilon_down = 0; 48 49 protected float value_box_width = 0; 50 protected float value_box_up = 0; 51 protected float value_box_down = 0; 52 53 protected float value_node_width = 0; 54 protected float value_node_up = 0; 55 protected float value_node_down = 0; 56 57 protected float value_char_width = 0; 58 protected float value_line_space = 0; 59 60 protected Map <String ,Float > values = null; 61 62 public Skin() { 63 } 64 65 public Map <String ,Float > getValuesMap() { 66 if(values == null) { 67 values = new HashMap <String , Float >(); 68 69 values.put(GContext.EPSILON_WIDTH, value_epsilon_width); 70 values.put(GContext.EPSILON_UP, value_epsilon_up); 71 values.put(GContext.EPSILON_DOWN, value_epsilon_down); 72 73 values.put(GContext.BOX_WIDTH, value_box_width); 74 values.put(GContext.BOX_UP, value_box_up); 75 values.put(GContext.BOX_DOWN, value_box_down); 76 77 values.put(GContext.NODE_WIDTH, value_node_width); 78 values.put(GContext.NODE_UP, value_node_up); 79 values.put(GContext.NODE_DOWN, value_node_down); 80 81 values.put(GContext.CHAR_WIDTH, value_char_width); 82 values.put(GContext.LINE_SPACE, value_line_space); 83 } 84 return values; 85 } 86 87 public void resetValues() { 88 values = null; 89 } 90 91 public void setValueLineSpace(float value) { 92 value_line_space = value; 93 resetValues(); 94 } 95 96 public float getValueLineSpace() { 97 return value_line_space; 98 } 99 100 public void setValueEpsilonWidth(float value) { 101 value_epsilon_width = value; 102 resetValues(); 103 } 104 105 public float getValueEpsilonWidth() { 106 return value_epsilon_width; 107 } 108 109 public float getStartOffset(GContext context) { return 0; } 110 public float getEndOffset(GContext context) { return 0; } 111 112 public abstract void drawLink(GLink link); 113 public abstract void drawNode(GNode node); 114 115 public abstract boolean isLinkVisible(); 116 public abstract boolean isNodeVisible(); 117 118 public boolean objectContainsPoint(GObject object, Point point) { return false; } 119 } 120 | Popular Tags |