2017-12-12 3 views
-2

큰 Java 응용 프로그램을 Eclipse 4.x RCP로 이식하고 있습니다. 저는 다양한 JFace 클래스, 특히 Eclipse 또는 OSGI 환경 설정 대신 환경 설정 기능 중 일부를 사용했습니다.JFace 부동 FieldEditor

JFace PreferenceStore에는 BigDecimal/Decimal/double/float 기본 설정이없는 이유는 무엇입니까? 기본 구현 FieldEditors에서 eclipse.org 웹 사이트 :

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 

모든 손으로 코드를 사람들에게 두 배의 서브 클래스를합니까? 일반적으로 사용되는 구현이 있습니까? 내가 뭔가를 놓치고있는 것 같아요 ... 내 구체적인 경우, 가격이나 항목 당 비용과 같은 USD $ 환경 설정이 필요합니다. 따라서 가격이 "6.99 달러"가 필요할 때가 있습니다. 엡실론 또는 정밀도를 2로 사용해야하는 경우 10 진수입니다.

답변

0

우리는 JFace 디자이너가 아니기 때문에 왜 그들이 뭔가를하지 않았는지 말할 수 없습니다.

통화의 경우 BigDecimal을 사용해야합니다. doublefloat은 통화에 적합하지 않습니다 (here 참조).

BigDecimal을 선호도로 저장하려면 String으로 저장해야합니다. StringFieldEditor 클래스를 확장하고 doCheckState 메서드를 재정 의하여 문자열이 유효한 큰 10 진수 값인지 확인할 수 있습니다.

+0

오버라이드 코멘트를 주셔서 감사합니다. Google에서 필자가 필요로하는 double을 처리하는 파생 클래스를 발견했습니다. – EclipseE4