Yepp - you are right - I'll define the enumerators.

The base problem is with those int values in String fields (I just hate it - would prefer to change this in elexis - but you know the story with ch.data.core... ;-) ) Since the values in the db are Strings we need some mapping from db-values (String) to the display-values (Tristate Values). As far as I have seen, we always have "0" and "1" for this. (are there also places where we save it as yes/no, true/false or something else? - if yes we have a problem in defining values for bool - once again the int/string issue...)

The best solution would be to separate the display (TristateCheckbox) and the mapping process from db to the display:
<ul>
   <li>a real Composite TristateCheckbox with the appropriate enums/methods
      <ul>
      <li>This way we have uniformly working TristateCheckboxes in Elexis for everybody</li>
      <li>Tristate Checkboxes are anyway already used in FallDetailBlatt2.java</li>
      <li>The place for this class should probably right beneath LabeledInputField
           (which is also just a Composite) at ch.elexis.core.ui.util</li>
      </ul>
   </li>
   <li>some general mapping class which maps from TristateValues to db-values and
         vice versa. db-values may differ in type/definition of true/false/undef, eg:
      <code><br><table>
      <tr><td>Tristate.TRUE</td><td>"1"</td><td>true</td><td>"true"</td><td>"wahr"</td><td>userdefined true</td></tr>
      <tr><td>Tristate.FALSE</td><td>"0"</td><td>false</td><td>"false"</td><td>"falsch"</td><td>userdefined false</td></tr>
      <tr><td>Tristate.UNDEF</td><td>""</td><td>null</td><td>""</td><td>""</td><td>userdefined undef</td></tr>
      </table></code>
   </li>
</ul>

What do you think?