|
@@ -9,7 +9,7 @@ The following assumptions are made for the implementation of the node placement
|
|
\item Graphs are connected (maybe we will get rid of this assumption later, see~\ref{ch:progress}).
|
|
\item Graphs are connected (maybe we will get rid of this assumption later, see~\ref{ch:progress}).
|
|
\end{itemize}
|
|
\end{itemize}
|
|
|
|
|
|
-\section{Components}
|
|
|
|
|
|
+\section{Components}\label{sec:components}
|
|
\TODO{rough architecture}
|
|
\TODO{rough architecture}
|
|
|
|
|
|
\section{Input File Format}\label{sec:inputFileFormat}
|
|
\section{Input File Format}\label{sec:inputFileFormat}
|
|
@@ -88,6 +88,7 @@ Additionally, there are multiple attributes that are used during the computation
|
|
They are summarized in table~\ref{table:bk-variables}.
|
|
They are summarized in table~\ref{table:bk-variables}.
|
|
\item The \enquote{parent} of a node is the node that contains it in the hierarchy.
|
|
\item The \enquote{parent} of a node is the node that contains it in the hierarchy.
|
|
\item The attributes $x$ and $y$ are the coordinates of the node relative to its parent node.
|
|
\item The attributes $x$ and $y$ are the coordinates of the node relative to its parent node.
|
|
|
|
+ There is one coordinate for each of the four extremal layouts and on coordinate for the combined layout.
|
|
\end{itemize}
|
|
\end{itemize}
|
|
Similarly, edges have additional attributes:
|
|
Similarly, edges have additional attributes:
|
|
\begin{itemize}
|
|
\begin{itemize}
|
|
@@ -129,6 +130,18 @@ All the stages are displayed in class diagram~\ref{fig:animated}.
|
|
|
|
|
|
To be able to undo a step each stage needs to implement methods for both forward and backward steps.
|
|
To be able to undo a step each stage needs to implement methods for both forward and backward steps.
|
|
|
|
|
|
|
|
+Note that the \enquote{AnimationController} is not a controller in the MVC sense that it processes user input, but in the sense that it \enquote{controls} the execution of steps/stages.
|
|
|
|
+This works the following:
|
|
|
|
+\begin{enumerate}
|
|
|
|
+ \item The main view creates a node placement algorithm (only \enquote{BKNodePlacement} available).
|
|
|
|
+ It sends a controller as a parameter for the constructor.
|
|
|
|
+ \item The algorithm concurrently asks the AnimationController if it should do a forward or backward step.
|
|
|
|
+ \item The AnimationController waits until it knows which action to take (for example if the user pressed the right arrow key).
|
|
|
|
+ Alternatively, if the animation is not paused, then it waits until a specific delay has passed.
|
|
|
|
+ Then it returns to the algorithm which step to take next.
|
|
|
|
+ \item The algorithm potentially calls the step function of other alogrithms while executing one step.
|
|
|
|
+\end{enumerate}
|
|
|
|
+
|
|
\begin{figure}[tp]
|
|
\begin{figure}[tp]
|
|
\centering
|
|
\centering
|
|
\includegraphics[width=\linewidth, trim={0 9cm 0 0}]{img/Algorithms_Animated.pdf}
|
|
\includegraphics[width=\linewidth, trim={0 9cm 0 0}]{img/Algorithms_Animated.pdf}
|
|
@@ -140,4 +153,10 @@ To be able to undo a step each stage needs to implement methods for both forward
|
|
This section only covers the software architecture regarding the views.
|
|
This section only covers the software architecture regarding the views.
|
|
For an explanation of what is actually displayed, see chapter~\ref{ch:ui}
|
|
For an explanation of what is actually displayed, see chapter~\ref{ch:ui}
|
|
|
|
|
|
-\TODO{Kolja ausfragen}
|
|
|
|
|
|
+The distinguish two kinds of views:
|
|
|
|
+\begin{itemize}
|
|
|
|
+ \item The main window displays four regions for the different extremal layouts while also forwarding keyboard commands to the AnimationController.
|
|
|
|
+ For this we use a JFrame from the Swing library.
|
|
|
|
+ \item \enquote{EdgeView} and \enquote{NodeView} are JPanels, which means they can be drawn onto the JFrame.
|
|
|
|
+ For this they have to know about which part of the model and which layout they belong to.
|
|
|
|
+\end{itemize}
|