public SuperinterfacesEditor(ObjectType objectType, ObjectType[] currentSuperinterfaces, ObjectType[] possibleSupertinterfaces)
        {
            this.InitializeComponent();

            this.objectType = objectType;

            var checkedSuperinterfaces = new ArrayList(currentSuperinterfaces);
            var superinterfaces        = new ArrayList(possibleSupertinterfaces);

            superinterfaces.Sort();

            foreach (ObjectType superType in superinterfaces)
            {
                var index = this.superinterfacesCheckedListBox.Items.Add(superType);
                if (checkedSuperinterfaces.Contains(superType))
                {
                    this.superinterfacesCheckedListBox.SetItemChecked(index, true);

                    var inheritance = objectType.FindInheritanceWhereDirectSubtype(superType);
                    {
                        if (inheritance != null && inheritance.DomainWhereDeclaredInheritance.IsSuperDomain)
                        {
                            this.superinterfacesCheckedListBox.SetItemCheckState(index, CheckState.Indeterminate);
                        }
                    }
                }
            }
        }