1 56 package org.objectstyle.cayenne.modeler.editor; 57 58 import org.objectstyle.cayenne.map.DbEntity; 59 import org.objectstyle.cayenne.map.DerivedDbAttribute; 60 import org.objectstyle.cayenne.map.event.AttributeEvent; 61 import org.objectstyle.cayenne.modeler.ProjectController; 62 63 68 public class DerivedDbAttributeTableModel extends DbAttributeTableModel { 69 private static final int DB_ATTRIBUTE_NAME = 0; 71 private static final int DB_ATTRIBUTE_SPEC = 1; 72 private static final int DB_ATTRIBUTE_TYPE = 2; 73 private static final int DB_ATTRIBUTE_GROUPBY = 3; 74 private static final int DB_ATTRIBUTE_PRIMARY_KEY = 4; 75 private static final int DB_ATTRIBUTE_MANDATORY = 5; 76 77 78 84 public DerivedDbAttributeTableModel( 85 DbEntity entity, 86 ProjectController mediator, 87 Object eventSource) { 88 super(entity, mediator, eventSource); 89 } 90 91 94 public Class getColumnClass(int col) { 95 switch (col) { 96 case DB_ATTRIBUTE_PRIMARY_KEY : 97 case DB_ATTRIBUTE_MANDATORY : 98 case DB_ATTRIBUTE_GROUPBY: 99 return Boolean .class; 100 default : 101 return String .class; 102 } 103 } 104 105 public int mandatoryColumnInd() { 106 return DB_ATTRIBUTE_MANDATORY; 107 } 108 109 public int nameColumnInd() { 110 return DB_ATTRIBUTE_NAME; 111 } 112 113 public int typeColumnInd() { 114 return DB_ATTRIBUTE_TYPE; 115 } 116 117 120 public int getColumnCount() { 121 return 6; 122 } 123 124 125 128 public String getColumnName(int col) { 129 switch(col) { 130 case DB_ATTRIBUTE_NAME: return "Name"; 131 case DB_ATTRIBUTE_SPEC: return "Spec"; 132 case DB_ATTRIBUTE_TYPE: return "Type"; 133 case DB_ATTRIBUTE_GROUPBY: return "Group By"; 134 case DB_ATTRIBUTE_PRIMARY_KEY: return "PK"; 135 case DB_ATTRIBUTE_MANDATORY: return "Mandatory"; 136 default: return ""; 137 } 138 } 139 140 public Object getValueAt(int row, int column) { 141 DerivedDbAttribute attr = (DerivedDbAttribute)getAttribute(row); 142 143 if (attr == null) { 144 return ""; 145 } 146 147 switch (column) { 148 case DB_ATTRIBUTE_NAME : 149 return getAttributeName(attr); 150 case DB_ATTRIBUTE_SPEC : 151 return getSpec(attr); 152 case DB_ATTRIBUTE_TYPE : 153 return getAttributeType(attr); 154 case DB_ATTRIBUTE_GROUPBY : 155 return isGroupBy(attr); 156 case DB_ATTRIBUTE_PRIMARY_KEY : 157 return isPrimaryKey(attr); 158 case DB_ATTRIBUTE_MANDATORY : 159 return isMandatory(attr); 160 default : 161 return ""; 162 } 163 } 164 165 public void setUpdatedValueAt(Object newVal, int row, int col) { 166 DerivedDbAttribute attr = (DerivedDbAttribute)getAttribute(row); 167 if (attr == null) { 168 return; 169 } 170 171 AttributeEvent e = new AttributeEvent(eventSource, attr, entity); 172 173 switch (col) { 174 case DB_ATTRIBUTE_NAME : 175 e.setOldName(attr.getName()); 176 setAttributeName((String ) newVal, attr); 177 fireTableCellUpdated(row, col); 178 break; 179 case DB_ATTRIBUTE_SPEC : 180 setSpec((String ) newVal, attr); 181 break; 182 case DB_ATTRIBUTE_TYPE : 183 setAttributeType((String ) newVal, attr); 184 break; 185 case DB_ATTRIBUTE_GROUPBY : 186 setGroupBy((Boolean ) newVal, attr); 187 break; 188 case DB_ATTRIBUTE_PRIMARY_KEY : 189 if(!setPrimaryKey((Boolean ) newVal, attr, row)) { 190 return; 191 } 192 193 break; 194 case DB_ATTRIBUTE_MANDATORY : 195 setMandatory((Boolean ) newVal, attr); 196 break; 197 } 198 199 mediator.fireDbAttributeEvent(e); 200 } 201 202 203 204 public String getSpec(DerivedDbAttribute attr) { 205 return attr.getExpressionSpec(); 206 } 207 208 public void setSpec(String newVal, DerivedDbAttribute attr) { 209 attr.setExpressionSpec(newVal); 210 } 211 212 public Boolean isGroupBy(DerivedDbAttribute attr) { 213 return attr.isGroupBy() ? Boolean.TRUE : Boolean.FALSE; 214 } 215 216 public void setGroupBy(Boolean newVal, DerivedDbAttribute attr) { 217 attr.setGroupBy(newVal.booleanValue()); 218 } 219 220 221 224 public Class getElementsClass() { 225 return DerivedDbAttribute.class; 226 } 227 } 228 229 | Popular Tags |