1 14 package org.compiere.grid.ed; 15 16 import javax.swing.*; 17 18 import org.compiere.util.*; 19 import org.compiere.model.*; 20 import org.compiere.swing.*; 21 import org.compiere.plaf.*; 22 23 30 public class VEditorFactory 31 { 32 39 public static VEditor getEditor (MField mField, boolean tableEditor) 40 { 41 return getEditor (null, mField, tableEditor); 42 } 44 52 public static VEditor getEditor (MTab mTab, MField mField, boolean tableEditor) 53 { 54 if (mField == null) 55 return null; 56 57 VEditor editor = null; 58 int displayType = mField.getDisplayType(); 59 String columnName = mField.getColumnName(); 60 boolean mandatory = mField.isMandatory(false); boolean readOnly = mField.isReadOnly(); 62 boolean updateable = mField.isUpdateable(); 63 int WindowNo = mField.getWindowNo(); 64 65 if (mField.isHeading()) 67 return null; 68 69 if (displayType == DisplayType.String 71 || (tableEditor && (displayType == DisplayType.Text || displayType == DisplayType.TextLong)) ) 72 { 73 if (mField.isEncryptedField()) 74 { 75 VPassword vs = new VPassword (columnName, mandatory, readOnly, updateable, 76 mField.getDisplayLength(), mField.getFieldLength(), mField.getVFormat()); 77 vs.setName (columnName); 78 vs.setField (mField); 79 editor = vs; 80 } 81 91 else 92 { 93 VString vs = new VString (columnName, mandatory, readOnly, updateable, 94 mField.getDisplayLength(), mField.getFieldLength(), mField.getVFormat()); 95 vs.setName (columnName); 96 vs.setField (mField); 97 editor = vs; 98 } 99 } 100 101 else if (DisplayType.isLookup(displayType) || displayType == DisplayType.ID) 103 { 104 VLookup vl = new VLookup(columnName, mandatory, readOnly, updateable, 105 mField.getLookup(), displayType, WindowNo); 106 vl.setName(columnName); 107 vl.setField (mField); 108 editor = vl; 109 } 110 111 else if (DisplayType.isNumeric(displayType)) 113 { 114 VNumber vn = new VNumber(columnName, mandatory, readOnly, updateable, 115 displayType, mField.getHeader()); 116 vn.setRange(mField.getValueMin(), mField.getValueMax()); 117 vn.setName(columnName); 118 vn.setField (mField); 119 editor = vn; 120 } 121 122 else if (displayType == DisplayType.YesNo) 124 { 125 VCheckBox vc = new VCheckBox(columnName, mandatory, readOnly, updateable, 126 mField.getHeader(), mField.getDescription(), tableEditor); 127 vc.setName(columnName); 128 vc.setField (mField); 129 editor = vc; 130 } 131 132 else if (displayType == DisplayType.Text) 134 { 135 VText vt = new VText(columnName, mandatory, readOnly, updateable, 136 mField.getDisplayLength(), mField.getFieldLength()); 137 vt.setName(columnName); 138 vt.setField (mField); 139 editor = vt; 140 } 141 142 else if (displayType == DisplayType.Memo) 144 { 145 VMemo vt = new VMemo(columnName, mandatory, readOnly, updateable, 146 mField.getDisplayLength(), mField.getFieldLength()); 147 vt.setName(columnName); 148 vt.setField (mField); 149 editor = vt; 150 } 151 152 else if (DisplayType.isDate(displayType)) 154 { 155 if (displayType == DisplayType.DateTime) 156 readOnly = true; 157 VDate vd = new VDate(columnName, mandatory, readOnly, updateable, 158 displayType, mField.getHeader()); 159 vd.setName(columnName); 160 vd.setField (mField); 161 editor = vd; 162 } 163 164 else if (displayType == DisplayType.Location) 166 { 167 VLocation loc = new VLocation (columnName, mandatory, readOnly, updateable, 168 (MLocation)mField.getLookup()); 169 loc.setName(columnName); 170 loc.setField (mField); 171 editor = loc; 172 } 173 174 else if (displayType == DisplayType.Locator) 176 { 177 VLocator loc = new VLocator (columnName, mandatory, readOnly, updateable, 178 (MLocatorLookup)mField.getLookup(), WindowNo); 179 loc.setName(columnName); 180 loc.setField (mField); 181 editor = loc; 182 } 183 184 else if (displayType == DisplayType.Account) 186 { 187 VAccount acct = new VAccount (columnName, mandatory, readOnly, updateable, 188 (MAccount)mField.getLookup(), mField.getHeader()); 189 acct.setName(columnName); 190 acct.setField (mField); 191 editor = acct; 192 } 193 194 else if (displayType == DisplayType.Button) 196 { 197 VButton button = new VButton(columnName, mandatory, readOnly, updateable, 198 mField.getHeader(), mField.getDescription(), mField.getHelp(), mField.getAD_Process_ID()); 199 button.setName(columnName); 200 button.setField (mField); 201 editor = button; 202 } 203 204 else if (displayType == DisplayType.Assignment) 206 { 207 VAssignment assign = new VAssignment (mandatory, readOnly, updateable); 208 assign.setName(columnName); 209 assign.setField (mField); 210 editor = assign; 211 } 212 213 else if (displayType == DisplayType.Color) 215 { 216 VColor color = new VColor (mTab, mandatory, readOnly); 217 color.setName(columnName); 218 color.setField (mField); 219 editor = color; 220 } 221 222 else if (displayType == DisplayType.Image) 224 { 225 VImage image = new VImage (WindowNo); 226 image.setName(columnName); 227 image.setField (mField); 228 editor = image; 229 } 230 231 else if (displayType == DisplayType.PAttribute) 233 { 234 VPAttribute attrib = new VPAttribute (mandatory, readOnly, updateable, WindowNo, 235 (MPAttribute)mField.getLookup()); 236 attrib.setName(columnName); 237 attrib.setField (mField); 238 editor = attrib; 239 } 240 241 else if (displayType == DisplayType.TextLong) 243 { 244 VText vt = new VText(columnName, mandatory, readOnly, updateable, 245 mField.getDisplayLength(), mField.getFieldLength()); 246 vt.setName(columnName); 247 vt.setField (mField); 248 editor = vt; 249 } 250 251 else 252 Log.error("VEditorFactory.getEditor - " + columnName + " - Unknown Type: " + displayType); 253 254 return editor; 255 } 257 264 public static CLabel getLabel (MField mField) 265 { 266 if (mField == null) 267 return null; 268 269 int displayType = mField.getDisplayType(); 270 271 if (mField.isFieldOnly() 273 || displayType == DisplayType.YesNo 274 || displayType == DisplayType.Button) 275 return null; 276 CLabel label = new CLabel(mField.getHeader(), mField.getDescription()); 278 label.setName(mField.getColumnName()); 279 return label; 282 } 284 } | Popular Tags |