docs: private void init() {
          setTitle("Validation Framework Test");
          setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  
          // Create content pane
          JPanel contentPane = new JPanel(new MigLayout("fill, wrap 2", "[]related[grow]",
                  "[]related[]related[]related[]unrelated[]"));
  //		contentPane.setBorder(new EmptyBorder(50, 50, 50, 50));
  //		setContentPane(new JScrollPane(contentPane));
          setContentPane(contentPane);
  
          // Input fields
          contentPane.add(new JLabel("Tooltip:"));
          JTextField textField1 = new JTextField();
          contentPane.add(textField1, "growx");
          contentPane.add(new JLabel("Color:"));
          JTextField textField2 = new JTextField();
          contentPane.add(textField2, "growx");
          contentPane.add(new JLabel("Icon:"));
          JTextField textField3 = new JTextField();
          contentPane.add(textField3, "growx");
          contentPane.add(new JLabel("Icon with tooltip:"));
  
          NumberFormat courseFormat = NumberFormat.getIntegerInstance();
          courseFormat.setMinimumIntegerDigits(3);
          courseFormat.setMaximumIntegerDigits(4);
          courseFormat.setMaximumFractionDigits(0);
          NumberFormatter courseFormatter = new NumberFormatter(courseFormat);
          courseFormatter.setMinimum(0.0);
          courseFormatter.setMaximum(359.0);
          JFormattedTextField formattedTextField4 = new JFormattedTextField(courseFormatter);
          contentPane.add(formattedTextField4, "growx");
  
          contentPane.add(new JLabel("Icon with tooltip:"));
  
          courseFormat = NumberFormat.getIntegerInstance();
          courseFormat.setMinimumIntegerDigits(3);
          courseFormat.setMaximumIntegerDigits(4);
          courseFormat.setMaximumFractionDigits(0);
          courseFormatter = new NumberFormatter(courseFormat);
          courseFormatter.setMinimum(0.0);
          courseFormatter.setMaximum(359.0);
          JFormattedTextField formattedTextField5 = new JFormattedTextField(courseFormatter);
          contentPane.add(formattedTextField5, "growx");
  
          // Apply button
          JButton applyButton = new JButton("Apply");
          contentPane.add(applyButton, "growx, span");
  
          // Set size
          pack();
          Dimension size = getSize();
          size.width += 100;
          setMinimumSize(size);
  
          // Set location
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          setLocation((screenSize.width - size.width) / 2, (screenSize.height - size.height) / 3);
  
          // Create validators
          ResultCollector<InputFieldResult, Boolean> resultCollector1 = new ResultCollector<InputFieldResult,
                  Boolean>(new InputFieldResultToBooleanTransformer());
          ResultCollector<InputFieldResult, Boolean> resultCollector2 = new ResultCollector<InputFieldResult,
                  Boolean>(new InputFieldResultToBooleanTransformer());
          ResultCollector<InputFieldResult, Boolean> resultCollector3 = new ResultCollector<InputFieldResult,
                  Boolean>(new InputFieldResultToBooleanTransformer());
          ResultCollector<Boolean, Boolean> resultCollector4 = new ResultCollector<Boolean, Boolean>();
          ResultCollector<Boolean, Boolean> resultCollector5 = new ResultCollector<Boolean, Boolean>();
          createValidator1(textField1, resultCollector1);
          createValidator2(textField2, resultCollector2);
          createValidator3(textField3, resultCollector3);
          createValidator4(formattedTextField4, resultCollector4);
          createValidator4(formattedTextField5, resultCollector5);
  
          // Create global validator
          collect(resultCollector1) //
                  .collect(resultCollector2) //
                  .collect(resultCollector3) //
                  .collect(resultCollector4) //
                  .collect(resultCollector5) //
                  .check(new AndBooleanRule()) //
                  .handleWith(new ComponentEnablingBooleanResultHandler(applyButton));
      }