1 package org.sapia.gumby.widgets; 2 3 import java.awt.Component ; 4 import java.awt.GridBagConstraints ; 5 import java.awt.Insets ; 6 7 import org.sapia.util.xml.confix.ConfigurationException; 8 import org.sapia.util.xml.confix.ObjectCreationCallback; 9 import org.sapia.util.xml.confix.ObjectHandlerIF; 10 11 26 public class Td implements ObjectCreationCallback, ObjectHandlerIF { 27 28 public static final String CENTER = "center"; 29 public static final String LEFT = "left"; 30 public static final String RIGHT = "right"; 31 32 private static final int CENTER_INT = 0; 33 private static final int LEFT_INT = 1; 34 private static final int RIGHT_INT = 2; 35 36 public static final String TOP = "top"; 37 public static final String MIDDLE = "middle"; 38 public static final String BOTTOM = "bottom"; 39 40 private static final int TOP_INT = 0; 41 private static final int MIDDLE_INT = 1; 42 private static final int BOTTOM_INT = 2; 43 44 private static int[][] ALIGN_MATRIX = new int[3][3]; 45 46 private int _valign = MIDDLE_INT; 47 private int _align = CENTER_INT; 48 49 private Component _comp; 50 51 static { 52 ALIGN_MATRIX[TOP_INT][LEFT_INT] = GridBagConstraints.NORTHWEST; 54 ALIGN_MATRIX[TOP_INT][CENTER_INT] = GridBagConstraints.NORTH; 55 ALIGN_MATRIX[TOP_INT][RIGHT_INT] = GridBagConstraints.NORTHEAST; 56 ALIGN_MATRIX[MIDDLE_INT][LEFT_INT] = GridBagConstraints.WEST; 58 ALIGN_MATRIX[MIDDLE_INT][CENTER_INT] = GridBagConstraints.CENTER; 59 ALIGN_MATRIX[MIDDLE_INT][RIGHT_INT] = GridBagConstraints.EAST; 60 ALIGN_MATRIX[BOTTOM_INT][LEFT_INT] = GridBagConstraints.SOUTHWEST; 62 ALIGN_MATRIX[BOTTOM_INT][CENTER_INT] = GridBagConstraints.SOUTH; 63 ALIGN_MATRIX[BOTTOM_INT][RIGHT_INT] = GridBagConstraints.SOUTHEAST; 64 } 65 66 private GridBagConstraints _cons = new GridBagConstraints (); 67 68 public Td() { 69 } 70 71 public void setColspan(int colspan) { 72 _cons.gridwidth = colspan; 73 } 74 75 public void setCellpadding(int padding) { 76 setPad(padding); 77 } 78 79 public void setPad(int padding) { 80 _cons.ipadx = padding; 81 _cons.ipady = padding; 82 } 83 84 public void setPadx(int padding) { 85 _cons.ipadx = padding; 86 } 87 88 public void setPady(int padding) { 89 _cons.ipady = padding; 90 } 91 92 public void setWeight(double weight) { 93 _cons.weightx = weight; 94 } 95 96 public void setAlign(String align) { 97 if(align.equals(LEFT)) { 98 _align = LEFT_INT; 99 } else if(align.equals(RIGHT)) { 100 _align = RIGHT_INT; 101 } else { 102 _align = CENTER_INT; 103 } 104 } 105 106 public void setValign(String valign) { 107 if(valign.equals(TOP)) { 108 _valign = TOP_INT; 109 } else if(valign.equals(BOTTOM)) { 110 _valign = BOTTOM_INT; 111 } else { 112 _valign = MIDDLE_INT; 113 } 114 } 115 116 public void setComponent(Component comp) { 117 _comp = comp; 118 } 119 120 public Component getComponent() { 121 return _comp; 122 } 123 124 127 public Object onCreate() throws ConfigurationException { 128 _cons.anchor = ALIGN_MATRIX[_valign][_align]; 129 return this; 130 } 131 132 public GridBagConstraints getConstraints() { 133 return _cons; 134 } 135 136 140 public void handleObject(String name, Object obj) 141 throws ConfigurationException { 142 if(obj instanceof Component ) { 143 setComponent((Component ) obj); 144 } else if(obj instanceof Insets ) { 145 _cons.insets = (Insets ) obj; 146 } else { 147 throw new ConfigurationException("Expected instance of " 148 + Component .class.getName() + "; got: " + obj.getClass().getName()); 149 } 150 } 151 152 } 153 | Popular Tags |