Context of usage

The development and usage of this library and it's controls, involves three people groups, which should be defined here with clarity as these group names are used throughout the whole project and it's documentation.

So to put it in one sentence: the developers use the library created by the authors to provide interfaces for the end-users.

Any developer can use this library under the Apache License, Version 2.0.

Planned Features

Features for developers

  1. Class marking for use with this library via an interface implemetation, similar to the one used for serialization.
  2. Annotation for various data types as well a generic annotation for marking the fields or properties of interest for a class. Supported annotations:
    1. AutoField - Automatic annotation for fields that are coing to be configured later via explicit code.
    2. BooleanField - Annotates & configures boolean fields passing boolean specific parameters.
    3. NumericField - Annotates & configures all types of numeric (reference types) data for Java (e.g. Long, Integer, Double, etc).
    4. StringField - Annotates & configures textual data (Strings).
    5. EnumField - Annotates & configures enum type fields.
    6. EnumSetField - Annotates & configures EnumSet type fields.
    7. ArrayField - Annotates & configures fields that are arrays of one of the above mentioned types.
    8. While annotations 1 to 6 are used in exclusion with each other, the ArrayField annotation's use is supplemental to the above annotations and configures array related properties.

  3. Annotation for grouping fields together (F2Ggroup annotation) and assigning a group to one or more interfaces (used to configure controls).
  4. Selection from a set of predefined group types: For now Tree & Box, future plans include tabs or other.
  5. Subgrouping in a tree fashion with group types inherited from parent to child.
  6. InterfaceInfo class that gathers all the fields & groups related information and allows alteration either via code or via loading fields & groups info over the annotated data.
  7. Supported file formats for fields & groups settings will be XML and Java Properties files.
  8. All fields applicable have to be reference types.
  9. A base class for the developer that allows the creation of more custom controls.
  10. Support for applying and canceling user input via the control base class (restore and sync methods).
  11. Direct conversion of the existing, as well as the developer-defined controls, to a dialog via the ShowAsDialog utility methods.
  12. A SimpleTreeControl that inherits from the base control class and that is ready to use in forms for interfaces of settings/options for applications.
  13. Localization support via the InterfaceInfo class and a proper resource file, user supplied if the developer wishes to.
  14. A utility GroupControl class that helps the developer build custom controls easyer.

Features for end-users

  1. Enhanced Swing controls that have:
    1. Filters
      1. None
      2. Numeric integral
      3. Numeric decimal
      4. MixedText
      5. Latin
      6. Greek
    2. Types
      1. TextBox
      2. UpdownNumericBox
      3. DropdownList
      4. UpdownListBox
      5. ComboBox
      6. CheckBox
      7. Option buttons group
      8. CheckButs group
      9. List
      10. Checked List
  2. Of course, there is an option for the library to automaticaly select the simplest & most generic control and/or filter for each field's (or property's) data type.

  3. Localization support via user edited files, when the developers allow that.

Control & Datatype combinations

Data types
x x2 x x
x x2 x x
x x1
x x2 x x
x x2 x


  1. Not available for string with a predefind set of values (OnlySetValues = True)
  2. Only allowed for (OnlySetValues = True), in fact a selection of one of those control's types forces that OnlySetValues=True.
  3. The default (automatic) controls for each datatype appear in the coloured boxes.

Filter & Datatype combinations

The filters are used when the control has a text mode (i.e. JTextField and editable JComboBox for now).

Data types
None Custom Latin Greek Integer Decimal
Byte, Short, Integer, Long
x x x
Float, Double
x x x
x x x x x x
- - - - - -
? ? ? ? ? ?


Current development

Currently the code being developed is the support of the main features of the library in the infrastructure classes. Logo