Główne klasy aplikacji odpowiedzialne za jej uruchomienie w środowisku GEF-owym.
Klasy opisujące akcje wykonywane w aplikacji w odpowiedzi na określone zachowanie użytkownika. Np. generacja nowego modelu czy zapisywanie/usuwanie modeli.
Najistotniejszą klasą jest AbstractEditor, która definiuje bazową klasę dla pozostałych edytorów, z których składa się aplikacja.
Abstrakcyjne figury używane przez wiele diagramów, np. NodeFigure, przedstawiające ludzika z podpisem, w skład którego wchodzi ikona - ImageFigure.
Komponent odpowiedzialny za przeprowadzanie importu danych do CASTa.
Pakiet zawierający interfejs IDataImporter do importowania danych oraz dwie klasy pomocnicze do tego interface'u. Pakiety podrzędne zawierają konkretne implementacje interfejsu IDataImporter.
Pakiet zwierający interfejs IDataFilter do filtrowania danych przy imporcie danych. W tym pakiecie znajdują się również przykladowe implementacje tego interfejsu.
Klasy odpowiedzialne za wejście/wyście, np. import danych i serializację. W tym pakiecie zdefiniowane są również ogólne klasy, które konkretyzują, co może być danymi wejściowymi edytora (*EditorInput).
Wspólne klasy określające jakie akcje mogą być wykonane w danym edytorze. Cf. poniżej, pl.edu.agh.cast.[schema/hierarchy/timeline].policy
Abstrakcyjne klasy dla elementów widoku aplikacji.
Klasy definiujące postać i częściowo zachowanie nawigatora dostępnego użytkownikowi (drzewko po lewej stronie).
Podobnie jak dla nawigatora, w pakiecie outline znajduje się definicja nawigatora po modelu widocznego po prawej stronie.
Implementacja wizarda do importowania danych.
Klasy pomocnicze, przechowujące konfigurację, ścieżki do obrazków, itp.
Akcje zdefiniowane w określonym typie edytora. Klasy akcji są potrzebne do dołączania ich np. do menu kontekstowego. Akcje zazwyczaj tworzą i wykonują jakąś komendę a podpakietu pl.edu.agh.cast.[schema/hierarchy/timeline].command
Klasy odpowiedzialne za zmianę layoutu czy kontrolera w diagramach schematycznych i czasowych.
Definicje komend stowarzyszonych z czynnościami jakie wykonuje użytkownik korzystając z konkretnego edytora.
Klasy, wywodzące sie od AbstractEditor, definiujące konkretny rodzaj edytora, np. HierachicalEdior.
Definicje obszarów, które są traktowane jednostkowo w obrębie edytora. Dla takich obszarów można np. definiować różne polityki (policy).
Definicje elementów widocznych jako grafika w oknie edytora.
Dla konkretnych edytorów w pakiecie layout znajdują się definicje algorytmów rozkładu elementów w oknie edytora.
Klasy, które rozszerzają niskopoziomowy model danych aplikacji. Definicje elementów, które zawiera wcześniej wspomniany model zenkapsulowany.
Klasy określające, co (jakie czynności) może być wykonane w danym edytorze. Klasy dostarczają interfejsu do tworzenia odpowiednich komend, które operują na modelu w odpowiedzi na czynności wykonywane przez użytkownika.
Mechanizm właściwości w modelu
Mechanizmy walidacji właściwości elementów modelu
Algorytmy rozkładu dla diagramów schematycznych