2017-12-12 3 views
-2

Ich portiere eine große Java-Anwendung in Eclipse 4.x RCP. Ich habe eine Vielzahl von JFace-Klassen verwendet, insbesondere einige der Voreinstellungen, anstatt der Eclipse- oder OSGI-Einstellungen.Fehlender JFace Floating FieldEditor

Warum hat der JFace PreferenceStore keine BigDecimal/Decimal/double/float-Präferenz? Von den Standard implementiert FieldEditors eclipse.org Website:

org.eclipse.jface.preference.FieldEditor

org.eclipse.jface.preference.BooleanFieldEditor 
org.eclipse.jface.preference.ColorFieldEditor 
org.eclipse.jface.preference.ComboFieldEditor 
org.eclipse.jface.preference.FontFieldEditor 
org.eclipse.jface.preference.ListEditor 
    org.eclipse.jface.preference.PathEditor 
org.eclipse.jface.preference.RadioGroupFieldEditor 
org.eclipse.jface.preference.ScaleFieldEditor 
org.eclipse.jface.preference.StringFieldEditor 
    org.eclipse.jface.preference.IntegerFieldEditor 
    org.eclipse.jface.preference.StringButtonFieldEditor 
     org.eclipse.jface.preference.DirectoryFieldEditor 
     org.eclipse.jface.preference.FileFieldEditor 

Haben die Leute alle von Hand Code eine Unterklasse für die Doppel? Gibt es eine häufig verwendete Implementierung? Scheint, als ob ich etwas vermisse ... In meinem speziellen Fall brauche ich USD $ Präferenzen, wie Preis oder Artikelkosten, also brauche ich "$ 6,99" als Preis-Pref, muss ein Epsilon oder Präzision zu 2 verwenden Basis-10 Ziffern.

Antwort

0

Wir sind nicht die JFace-Designer, also können wir Ihnen nicht sagen, warum sie nichts getan haben.

Für Währung sollten Sie bei BigDecimal bleiben. double und float sind nicht für die Währung geeignet - siehe here.

Um BigDecimal als Präferenz zu speichern, müssten Sie es als String speichern. Sie können die StringFieldEditor-Klasse erweitern und die doCheckState-Methode überschreiben, um zu überprüfen, ob die Zeichenfolge ein gültiger großer Dezimalwert ist.

+0

Vielen Dank für den Override-Kommentar, fand ich schließlich eine abgeleitete Klasse von Google, die doppelt so behandelt, wie ich brauchte. – EclipseE4