\section{Code-Stil}

\subsection{Server}

% Balkendiagram:
% zwei Balken: vorher, nachher
% eine Balken besteht aus verschiedenen Ebenen für jeden Linter Fehler
\definecolor{error00}{RGB}{255, 0, 0}
\definecolor{error01}{RGB}{204, 0, 0}
\definecolor{error02}{RGB}{153, 0, 0}
\definecolor{error03}{RGB}{102, 0, 0}
\definecolor{error04}{RGB}{51, 0, 0}
\definecolor{error05}{RGB}{25, 0, 0}

\definecolor{warning00}{RGB}{255, 255, 0}
\definecolor{warning01}{RGB}{255, 215, 0}
\definecolor{warning02}{RGB}{139, 117, 0}
\definecolor{warning03}{RGB}{238, 201, 0}
\definecolor{warning04}{RGB}{255, 215, 0}
\definecolor{warning05}{RGB}{238, 238, 0}
\definecolor{warning06}{RGB}{139, 139, 0}
\definecolor{warning07}{RGB}{255, 255, 0}
\definecolor{warning08}{RGB}{238, 201, 0}
\definecolor{warning09}{RGB}{205, 173, 0}
\definecolor{warning10}{RGB}{205, 205, 0}
\definecolor{warning11}{RGB}{205, 173, 0}
\definecolor{warning12}{RGB}{238, 238, 0}
\definecolor{warning13}{RGB}{139, 117, 0}
\definecolor{warning14}{RGB}{139, 139, 0}

\vspace{-2cm}
\begin{tikzpicture}
\begin{axis}[
    title={Code-Stil-Anmerkungen durch Checkstyle Sun-Checks},
    ybar stacked, ymin=0,  
    bar width=10mm,
    symbolic x coords={Vorher,Nachher},
    legend style={
        at={(1.3,0.5)},
        cells={anchor=west},
	anchor=west
        },
    xtick=data,
    xticklabel style={text width=2cm,align=center},
    nodes near coords={}
]

\addplot [fill=error02] coordinates { ({Vorher}, 285 ) ({Nachher}, 0)}; % (sizes)       LineLength
\addplot [fill=error00] coordinates { ({Vorher}, 143 ) ({Nachher}, 0)}; % (misc)        FinalParameters
\addplot [fill=error03] coordinates { ({Vorher}, 101 ) ({Nachher}, 0)}; % (javadoc)     JavadocVariable
\addplot [fill=error04] coordinates { ({Vorher}, 83  ) ({Nachher}, 0)}; % (javadoc)     JavadocStyle
\addplot [fill=error02] coordinates { ({Vorher}, 43  ) ({Nachher}, 0)}; % (design)      DesignForExtension
\addplot [fill=error01] coordinates { ({Vorher}, 39  ) ({Nachher}, 0)}; % (javadoc)     MissingJavadocMethod
\addplot [fill=error01] coordinates { ({Vorher}, 26  ) ({Nachher}, 0)}; % (regexp)      RegexpSingleline
\addplot [fill=error02] coordinates { ({Vorher}, 15  ) ({Nachher}, 0)}; % (whitespace)  WhitespaceAround
\addplot [fill=error01] coordinates { ({Vorher}, 13  ) ({Nachher}, 0)}; % (javadoc)     JavadocPackage
\addplot [fill=error03] coordinates { ({Vorher}, 10  ) ({Nachher}, 0)}; % (whitespace)  OperatorWrap
\addplot [fill=error00] coordinates { ({Vorher}, 10  ) ({Nachher}, 0)}; % (javadoc)     JavadocType
\addplot [fill=error05] coordinates { ({Vorher}, 7   ) ({Nachher}, 0)}; % (imports)     AvoidStarImport
\addplot [fill=error05] coordinates { ({Vorher}, 6   ) ({Nachher}, 0)}; % (coding)      MagicNumber
\addplot [fill=error05] coordinates { ({Vorher}, 4   ) ({Nachher}, 0)}; % (javadoc)     JavadocMethod
\addplot [fill=error04] coordinates { ({Vorher}, 3   ) ({Nachher}, 0)}; % (coding)      HiddenField
\addplot [fill=error02] coordinates { ({Vorher}, 2   ) ({Nachher}, 0)}; % (javadoc)     InvalidJavadocPosition
\addplot [fill=error00] coordinates { ({Vorher}, 2   ) ({Nachher}, 0)}; % (blocks)      RightCurly
\addplot [fill=error03] coordinates { ({Vorher}, 1   ) ({Nachher}, 0)}; % (whitespace)  WhitespaceAfter
\addplot [fill=error04] coordinates { ({Vorher}, 1   ) ({Nachher}, 0)}; % (whitespace)  FileTabCharacter
\addplot [fill=error04] coordinates { ({Vorher}, 1   ) ({Nachher}, 0)}; % (misc)        NewlineAtEndOfFile
\addplot [fill=error01] coordinates { ({Vorher}, 1   ) ({Nachher}, 0)}; % (misc)        ArrayTypeStyle
\addplot [fill=error00] coordinates { ({Vorher}, 1   ) ({Nachher}, 0)}; % (imports)     UnusedImports
\addplot [fill=error03, point meta=y,nodes near coords,nodes near coords align={anchor=south}] coordinates { ({Vorher}, 2   ) ({Nachher}, 1)}; % (design)      HideUtilityClassConstructor

\legend{
sizes: LineLength,
misc: FinalParameters,
javadoc: JavadocVariable,
javadoc: JavadocStyle,
design: DesignForExtension,
javadoc: MissingJavadocMethod,
regexp: RegexpSingleline,
whitespace: WhitespaceAround,
javadoc: JavadocPackage,
whitespace: OperatorWrap,
javadoc: JavadocType,
imports: AvoidStarImport,
coding: MagicNumber,
javadoc: JavadocMethod,
coding: HiddenField,
javadoc: InvalidJavadocPosition,
blocks: RightCurly,
whitespace: WhitespaceAfter,
whitespace: FileTabCharacter,
misc: NewlineAtEndOfFile,
misc: ArrayTypeStyle,
imports: UnusedImports,
design: HideUtilityClassConstructor,
}
\end{axis}
\end{tikzpicture}

\begin{tabularx}{\textwidth}{X | c | c}
Regel                               & Vorher & Nacher \\ \hline
sizes: LineLength                   & 285    & 0 \\
misc: FinalParameters               & 143    & 0 \\
javadoc: JavadocVariable            & 101    & 0 \\
javadoc: JavadocStyle               & 83     & 0 \\
design: DesignForExtension          & 43     & 0 \\
javadoc: MissingJavadocMethod       & 39     & 0 \\
regexp: RegexpSingleline            & 26     & 0 \\
whitespace: WhitespaceAround        & 15     & 0 \\
javadoc: JavadocPackage             & 13     & 0 \\
whitespace: OperatorWrap            & 10     & 0 \\
javadoc: JavadocType                & 10     & 0 \\
imports: AvoidStarImport            & 7      & 0 \\
coding: MagicNumber                 & 6      & 0 \\
javadoc: JavadocMethod              & 4      & 0 \\
coding: HiddenField                 & 3      & 0 \\
javadoc: InvalidJavadocPosition     & 2      & 0 \\
blocks: RightCurly                  & 2      & 0 \\
whitespace: WhitespaceAfter         & 1      & 0 \\
whitespace: FileTabCharacter        & 1      & 0 \\
misc: NewlineAtEndOfFile            & 1      & 0 \\
misc: ArrayTypeStyle                & 1      & 0 \\
imports: UnusedImports              & 1      & 0 \\
design: HideUtilityClassConstructor & 2      & 1 \\
\end{tabularx}

\subsection{Dashboard}

\vspace{-1.5cm}
\begin{tikzpicture}
\begin{axis}[
    title={Code-Stil-Anmerkungen durch ESLint},
    ybar stacked, ymin=0,  
    bar width=10mm,
    symbolic x coords={Vorher,Nachher},
    legend style={
        at={(1.1,0.5)},
        cells={anchor=west},
	anchor=west
        },
    xtick=data,
    xticklabel style={text width=2cm,align=center},
    nodes near coords={}
]

\addplot  [fill=error00]    coordinates  {  ({Vorher},  26   )    ({Nachher},  0)};     % error    vue/html-indent
\addplot  [fill=error01]    coordinates  {  ({Vorher},  17   )    ({Nachher},  0)};     % error    vue/script-indent
\addplot  [fill=error02]    coordinates  {  ({Vorher},  6    )    ({Nachher},  0)};     % error    vue/require-v-for-key
\addplot  [fill=error03]    coordinates  {  ({Vorher},  5    )    ({Nachher},  0)};     % error    vue/multi-word-component-names
\addplot  [fill=error04]    coordinates  {  ({Vorher},  1    )    ({Nachher},  0)};     % error    vue/valid-v-for
\addplot  [fill=error05]    coordinates  {  ({Vorher},  1    )    ({Nachher},  0)};     % error    vue/valid-template-root
\addplot  [fill=warning00]  coordinates  {  ({Vorher},  125  )    ({Nachher},  0)};     % warning  vue/max-attributes-per-line
\addplot  [fill=warning01]  coordinates  {  ({Vorher},  34   )    ({Nachher},  0)};     % warning  vue/attributes-order
\addplot  [fill=warning02]  coordinates  {  ({Vorher},  26   )    ({Nachher},  0)};     % warning  vue/singleline-html-element-content-newline
\addplot  [fill=warning03]  coordinates  {  ({Vorher},  12   )    ({Nachher},  0)};     % warning  vue/require-default-prop
\addplot  [fill=warning04]  coordinates  {  ({Vorher},  12   )    ({Nachher},  0)};     % warning  vue/html-self-closing
\addplot  [fill=warning05]  coordinates  {  ({Vorher},  11   )    ({Nachher},  0)};     % warning  vue/first-attribute-linebreak
\addplot  [fill=warning06]  coordinates  {  ({Vorher},  10   )    ({Nachher},  0)};     % warning  vue/html-closing-bracket-newline
\addplot  [fill=warning07]  coordinates  {  ({Vorher},  8    )    ({Nachher},  0)};     % warning  vue/multiline-html-element-content-newline
\addplot  [fill=warning08]  coordinates  {  ({Vorher},  5    )    ({Nachher},  0)};     % warning  vue/html-closing-bracket-spacing
\addplot  [fill=warning09]  coordinates  {  ({Vorher},  3    )    ({Nachher},  0)};     % warning  vue/require-prop-types
\addplot  [fill=warning10]  coordinates  {  ({Vorher},  3    )    ({Nachher},  0)};     % warning  vue/attribute-hyphenation
\addplot  [fill=warning11]  coordinates  {  ({Vorher},  2    )    ({Nachher},  0)};     % warning  vue/html-self-closing
\addplot  [fill=warning12]  coordinates  {  ({Vorher},  1    )    ({Nachher},  0)};     % warning  vue/v-on-event-hyphenation
\addplot  [fill=warning13]  coordinates  {  ({Vorher},  1    )    ({Nachher},  0)};     % warning  vue/no-v-html
\addplot  +[fill=warning14, point meta=y,nodes near coords,nodes near coords align={anchor=south}]coordinates  { ({Vorher},  1    ) ({Nachher}, 1)};  %            warning  vue/mustache-interpolation-spacing           


\legend{
error: html-indent,
error: script-indent,
error: require-v-for-key,
error: multi-word-component-names,
error: valid-v-for,
error: valid-template-root,
warning: max-attributes-per-line,
warning: attributes-order,
warning: singleline-html-element-content-newline,
warning: require-default-prop,
warning: html-self-closing,
warning: first-attribute-linebreak,
warning: html-closing-bracket-newline,
warning: multiline-html-element-content-newline,
warning: html-closing-bracket-spacing,
warning: require-prop-types,
warning: attribute-hyphenation,
warning: html-self-closing,
warning: v-on-event-hyphenation,
warning: mustache-interpolation-spacing,
warning: no-v-html,
}
\end{axis}
\end{tikzpicture}

\begin{tabularx}{\textwidth}{X | c | c}
Regel                                            & Vorher & Nachher \\ \hline
error: html-indent                               & 26     & 0 \\
error: script-indent                             & 17     & 0 \\
error: require-v-for-key                         & 6      & 0 \\
error: multi-word-component-names                & 5      & 0 \\
error: valid-v-for                               & 1      & 0 \\
error: valid-template-root                       & 1      & 0 \\
warning: max-attributes-per-line                 & 125    & 0 \\
warning: attributes-order                        & 34     & 0 \\
warning: singleline-html-element-content-newline & 26     & 0 \\
warning: require-default-prop                    & 12     & 0 \\
warning: html-self-closing                       & 12     & 0 \\
warning: first-attribute-linebreak               & 11     & 0 \\
warning: html-closing-bracket-newline            & 10     & 0 \\
warning: multiline-html-element-content-newline  & 8      & 0 \\
warning: html-closing-bracket-spacing            & 5      & 0 \\
warning: require-prop-types                      & 3      & 0 \\
warning: attribute-hyphenation                   & 3      & 0 \\
warning: html-self-closing                       & 2      & 0 \\
warning: v-on-event-hyphenation                  & 1      & 0 \\
warning: mustache-interpolation-spacing          & 1      & 0 \\
warning: no-v-html                               & 1      & 1 \\
\end{tabularx}

Das Attribut \texttt{v-html} wird genutzt, um das Hilfe-Popup zu übersetzen. Die
Übersetzungen für jede Sprache ist in einer separaten \texttt{HTML}-Datei gespeichert.
Dies gibt dem Übersetzer einen großen Spielraum dafür, welche Inhalte in den Hilfe-Popups
ausgegeben werden können. 

