Revision 306 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/dynobject/valuefield/DynFieldFormatter.java
DynFieldFormatter.java | ||
---|---|---|
7 | 7 |
import java.text.SimpleDateFormat; |
8 | 8 |
import java.util.Calendar; |
9 | 9 |
import java.util.Date; |
10 |
import java.util.Locale; |
|
11 | 10 |
|
12 | 11 |
import javax.swing.JFormattedTextField; |
13 | 12 |
|
14 | 13 |
import org.gvsig.tools.dataTypes.DataTypes; |
15 | 14 |
import org.gvsig.tools.dynobject.DynField; |
16 | 15 |
|
17 |
public class DynFieldFormatter { |
|
18 | 16 |
|
17 |
public class DynFieldFormatter { |
|
19 | 18 |
public class DateFormatter extends SimpleDateFormat { |
20 | 19 |
|
21 | 20 |
/** |
... | ... | |
45 | 44 |
return (Date) df.parse(time); |
46 | 45 |
} |
47 | 46 |
} |
48 |
public static DynFieldFormatter getInstance(DynField field, Locale loc) { |
|
49 |
return new DynFieldFormatter(field, loc); |
|
47 |
|
|
48 |
public static DynFieldFormatter getInstance(DynField field) { |
|
49 |
return new DynFieldFormatter(field); |
|
50 | 50 |
} |
51 |
private Locale loc; |
|
52 | 51 |
private int calendarField = Calendar.DAY_OF_MONTH; |
53 | 52 |
private DateFormat df; |
54 | 53 |
private DynField dynField; |
... | ... | |
59 | 58 |
|
60 | 59 |
private int type; |
61 | 60 |
|
62 |
private DynFieldFormatter(DynField field, Locale loc) {
|
|
61 |
private DynFieldFormatter(DynField field) {
|
|
63 | 62 |
super(); |
64 |
this.loc = loc; |
|
65 | 63 |
this.dynField = field; |
66 | 64 |
if (dynField.isContainer()) { |
67 | 65 |
this.type = dynField.getElementsType().getType(); |
... | ... | |
78 | 76 |
public JFormattedTextField createJFormattedTextField(Object element) { |
79 | 77 |
JFormattedTextField field = new JFormattedTextField(); |
80 | 78 |
field.setFormatterFactory(new DynFieldFormatterFactory( |
81 |
DynFieldFormatter.getInstance(dynField, loc)));
|
|
79 |
DynFieldFormatter.getInstance(dynField)));
|
|
82 | 80 |
field.setValue(element); |
83 | 81 |
return field; |
84 | 82 |
} |
... | ... | |
112 | 110 |
*/ |
113 | 111 |
public String formatDateFull(Date date) { |
114 | 112 |
DateFormat df = |
115 |
DateFormat.getDateInstance(DateFormat.FULL, getLocale());
|
|
113 |
DateFormat.getDateInstance(DateFormat.FULL); |
|
116 | 114 |
return df.format(date); |
117 | 115 |
} |
118 | 116 |
|
... | ... | |
124 | 122 |
*/ |
125 | 123 |
public String formatDateLong(Date date) { |
126 | 124 |
DateFormat df = |
127 |
DateFormat.getDateInstance(DateFormat.LONG, getLocale());
|
|
125 |
DateFormat.getDateInstance(DateFormat.LONG); |
|
128 | 126 |
return df.format(date); |
129 | 127 |
} |
130 | 128 |
|
... | ... | |
135 | 133 |
*/ |
136 | 134 |
public String formatDateMedium(Date date) { |
137 | 135 |
DateFormat df = |
138 |
DateFormat.getDateInstance(DateFormat.MEDIUM, getLocale());
|
|
136 |
DateFormat.getDateInstance(DateFormat.MEDIUM);
|
|
139 | 137 |
return df.format(date); |
140 | 138 |
} |
141 | 139 |
|
... | ... | |
146 | 144 |
*/ |
147 | 145 |
public String formatDateShort(Date date) { |
148 | 146 |
DateFormat df = |
149 |
DateFormat.getDateInstance(DateFormat.SHORT, getLocale());
|
|
147 |
DateFormat.getDateInstance(DateFormat.SHORT);
|
|
150 | 148 |
return df.format(date); |
151 | 149 |
} |
152 | 150 |
|
... | ... | |
181 | 179 |
public DateFormatter getDateFormatter() { |
182 | 180 |
if (this.df == null) { |
183 | 181 |
this.df = |
184 |
DateFormat.getDateInstance(DateFormat.MEDIUM, getLocale());
|
|
182 |
DateFormat.getDateInstance(DateFormat.MEDIUM);
|
|
185 | 183 |
} |
186 | 184 |
return new DateFormatter(this); |
187 | 185 |
} |
188 | 186 |
|
189 |
public Locale getLocale() { |
|
190 |
if (this.loc == null) { |
|
191 |
this.loc = Locale.getDefault(); |
|
192 |
} |
|
193 |
return this.loc; |
|
194 |
} |
|
195 |
|
|
196 | 187 |
/** |
197 | 188 |
* @param value |
198 | 189 |
* @return |
... | ... | |
232 | 223 |
if (this.f == null) { |
233 | 224 |
if (this.df == null) { |
234 | 225 |
this.f = |
235 |
(DecimalFormat) NumberFormat.getNumberInstance(getLocale());
|
|
226 |
(DecimalFormat) NumberFormat.getNumberInstance();
|
|
236 | 227 |
} else { |
237 | 228 |
return (DecimalFormat) this.df.getNumberFormat(); |
238 | 229 |
} |
... | ... | |
347 | 338 |
this.isDate = true; |
348 | 339 |
this.calendarField = Calendar.MINUTE; |
349 | 340 |
this.df = |
350 |
DateFormat.getTimeInstance(DateFormat.MEDIUM, getLocale());
|
|
341 |
DateFormat.getTimeInstance(DateFormat.MEDIUM);
|
|
351 | 342 |
break; |
352 | 343 |
case DataTypes.TIMESTAMP: |
353 | 344 |
this.isDate = true; |
354 | 345 |
this.calendarField = Calendar.SECOND; |
355 | 346 |
this.df = |
356 |
DateFormat.getTimeInstance(DateFormat.MEDIUM, getLocale());
|
|
347 |
DateFormat.getTimeInstance(DateFormat.MEDIUM);
|
|
357 | 348 |
break; |
358 | 349 |
case DataTypes.DATE: |
359 | 350 |
this.isDate = true; |
... | ... | |
361 | 352 |
if (!getSubType().equals(DataTypes.SUBTYPE_DATE)) { |
362 | 353 |
this.df = |
363 | 354 |
DateFormat.getDateTimeInstance(DateFormat.FULL, |
364 |
DateFormat.FULL, getLocale());
|
|
355 |
DateFormat.FULL);
|
|
365 | 356 |
} else { |
366 | 357 |
this.df = |
367 |
DateFormat.getDateInstance(DateFormat.LONG, getLocale());
|
|
358 |
DateFormat.getDateInstance(DateFormat.LONG);
|
|
368 | 359 |
} |
369 | 360 |
break; |
370 | 361 |
case DataTypes.DOUBLE: |
371 | 362 |
isNumber = true; |
372 |
f = (DecimalFormat) NumberFormat.getNumberInstance(getLocale());
|
|
363 |
f = (DecimalFormat) NumberFormat.getNumberInstance();
|
|
373 | 364 |
f.setMaximumFractionDigits(2); |
374 | 365 |
f.setMinimumFractionDigits(2); |
375 | 366 |
break; |
376 | 367 |
case DataTypes.FLOAT: |
377 | 368 |
isNumber = true; |
378 |
f = (DecimalFormat) NumberFormat.getNumberInstance(getLocale());
|
|
369 |
f = (DecimalFormat) NumberFormat.getNumberInstance();
|
|
379 | 370 |
f.setMaximumFractionDigits(2); |
380 | 371 |
f.setMinimumFractionDigits(2); |
381 | 372 |
break; |
382 | 373 |
case DataTypes.LONG: |
383 | 374 |
isNumber = true; |
384 |
f = (DecimalFormat) NumberFormat.getIntegerInstance(getLocale());
|
|
375 |
f = (DecimalFormat) NumberFormat.getIntegerInstance();
|
|
385 | 376 |
f.setMaximumFractionDigits(0); |
386 | 377 |
f.setMinimumFractionDigits(0); |
387 | 378 |
break; |
388 | 379 |
case DataTypes.INT: |
389 | 380 |
isNumber = true; |
390 |
f = (DecimalFormat) NumberFormat.getIntegerInstance(getLocale());
|
|
381 |
f = (DecimalFormat) NumberFormat.getIntegerInstance();
|
|
391 | 382 |
f.setMaximumFractionDigits(0); |
392 | 383 |
f.setMinimumFractionDigits(0); |
393 | 384 |
break; |
394 | 385 |
case DataTypes.BYTE: |
395 | 386 |
isNumber = true; |
396 |
f = (DecimalFormat) NumberFormat.getIntegerInstance(getLocale());
|
|
387 |
f = (DecimalFormat) NumberFormat.getIntegerInstance();
|
|
397 | 388 |
f.setMaximumFractionDigits(0); |
398 | 389 |
f.setMinimumFractionDigits(0); |
399 | 390 |
break; |
... | ... | |
404 | 395 |
this.calendarField = calendarField; |
405 | 396 |
} |
406 | 397 |
|
407 |
public void setLocale(Locale loc) { |
|
408 |
this.loc = loc; |
|
409 |
refresh(); |
|
410 |
} |
|
411 |
|
|
412 | 398 |
// /** |
413 | 399 |
// * @param textField |
414 | 400 |
// * @param value |
Also available in: Unified diff