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

View differences:

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