def register(cls, test, factory, datatype):
    """
        Registers a filter control against a specific datatype.  The filter controller is added to
        filter_controls.

        Depending on whether create_from_modelfield or create_from_datatype (below) is used, the test or datatype will
        be used to create FilterControls in the future.

        :param test: A function to test whether the filtercontrol should be displayed (?)
        :param factory:  The filter control class.  When called, you will get a subclass of FilterControl.
        :param datatype:  The field type that is filtered by this control (?)
        """
    cls.filter_controls.append((test, factory, datatype))
