code: public void reorderValue(final InputColumn<?>[] sortedValue) {
          // the offset represents the search textfield and the button panel
          final int offset = 2;
  
          // reorder the visual components
          for (int i = 0; i < sortedValue.length; i++) {
              final InputColumn<?> inputColumn = sortedValue[i];
              final JComponent decoration = getOrCreateCheckBoxDecoration(inputColumn, true);
              final int position = offset + i;
              add(decoration, position);
          }
          updateUI();
  
          // recreate the _checkBoxes map
          final TreeMap<InputColumn<?>, DCCheckBox<InputColumn<?>>> checkBoxesCopy = new TreeMap<>(_checkBoxes);
          _checkBoxes.clear();
          for (final InputColumn<?> inputColumn : sortedValue) {
              final DCCheckBox<InputColumn<?>> checkBox = checkBoxesCopy.get(inputColumn);
              _checkBoxes.put(inputColumn, checkBox);
          }
          _checkBoxes.putAll(checkBoxesCopy);
          setValue(sortedValue);
      }
docs: Reorders the values
  
  @param sortedValue