﻿@startuml
|Registrar|
start
:Open the entry list;
|#AntiqueWhite|Application|
:Load entries from Storage;
|#BurlyWood|Storage|
:Load all entries;

|Registrar|
repeat
	if (Edit entry?) then (Edit entry)
		:Select entry from list;
		:Open entry editor;
		|Application|
		:Get entry from Storage;
		|Storage|
		:Load entry;
	else (Create entry)
		|Registrar|
		:Open new entry dialog;
		|Application|
		:Create empty entry;
	endif

    |Application|
	:Get associated data;
	|Storage|
	:Load associated entries;

	repeat
		|Registrar|
		:Edit entry data;
		|Application|
		:Check data;
	repeat while (Data invalid?)

	|Registrar|
	if (Changes are correct) then (true)
		:Save entry data;
		|Application|
		:Put edited entry in Storage;
		|Storage|
		:Save entry;
	else (false)
	endif

	|Registrar|
	:Close dialog;
repeat while (Done editing?)

|Registrar|
:Close entry list;
stop
@enduml