protected void rebuild()
    {
        removeAll();

        for (SpecObject specObject : specification.getSpecObjectList())
            {
            if (specObject instanceof Predicate)
                {
                addView(new PredicateView((Predicate) specObject, specController));
                }

            if (specObject instanceof AxiomaticDef)
                {
                addView(new AxiomaticView((AxiomaticDef) specObject, specController));
                }

            if (specObject instanceof AbbreviationDef)
                {
                addView(new AbbreviationView((AbbreviationDef) specObject, specController));
                }

            if (specObject instanceof BasicTypeDef)
                {
                addView(new BasicTypeView((BasicTypeDef) specObject, specController));
                }

            if (specObject instanceof FreeTypeDef)
                {
                addView(new FreeTypeView((FreeTypeDef) specObject, specController));
                }

            if (specObject instanceof GenericDef)
                {
                addView(new GenericView((GenericDef)specObject, specController));
                }

            if (specObject instanceof ClassDef)
                {
                addView(new ClassView((ClassDef) specObject, specController));
                }
            }
    }