Das Erstellen eines Klassendiagramms ist zwar lobenswert, aber verfrüht. Als erstes solltest du dir einen Überblick verschaffen, welche Funktionalitäten du implementieren möchtest und wie der Benutzer darauf zugreifen können soll. Mache dir eine Skizze der Benutzeroberfläche, um zu beurteilen, ob die GUI brauchbar und übersichtlich ist. Eine Tastatureinbindung ist empfehlenswert, du solltest aber davon ausgehen, dass die meisten Benutzer möglichst nur mit der Maus arbeiten wollen und nur in Ausnahmefällen zur Tastatur greifen möchten. Die meisten Tastaturbefehle können sowieso als Hotkeys für Menübefehle implementiert werden.
Für jede Funktionalität kannst du dann dir überlegen, auf welche Daten du zugreifen musst und welche Datenstrukturen du sinnvollerweise verwendest. Auch GUI-Elemente können als komfortable Datenspeicher dienen, beispielsweise dein Anzeigeelement für die Dateien. Schau nach, welche GUI-Elemente dein SDK unterstützt und welche davon du wie sinnvollerweise einzusetzen wünschst. Eine gute GUI ist mehr als nur eine Anhäufung von Buttons und Listboxen.