# View und Dashboards

> Die Seite View: die Spalte Visualisierung mit Ordnern, Bildern und Einheitenbereichen, die Leiste des offenen Bildes mit Erweitern und Vollbild, das Raster, auf dem ein Bild aufgebaut wird, und wer darauf was drücken darf.

**View** ist der erste Eintrag der Navigationsleiste nach [Willkommen](welcome) und die Seite, mit der die Station öffnet, wann immer Willkommen nicht in der Leiste steht. Sie führt jedes Bild auf, das diese Station zeigt, und lässt das laufen, das Sie
wählen: die Dashboards, die Sie auf einem Raster über dem lebenden Adressraum von
[Logic](logic) aufbauen, und die Bereiche, die die Process-Einheiten hier ablegen. Jede
Rolle erreicht sie, denn "Dashboards anzeigen" ist die eine Berechtigung, die jede Rolle
hält (siehe [Berechtigungen](users-permissions)); was eine Rolle auf der Seite dann tun
darf, wird Befehl für Befehl an ihren übrigen Berechtigungen abgelesen.

Die Seite beantwortet vier Routen. `/view` ist die kanonische Adresse, und `/` öffnet
dieselbe Seite; `/home` bleibt erhalten, damit eine alte Verknüpfung weiterhin hier landet.
`/d/{id}` öffnet ein Bild direkt, womit ein Lesezeichen auf einem Tablet oder ein Link von
einer anderen Seite es erreicht; eine Kennung, die die Rolle dieser Verbindung nicht sehen
darf, oder eine, die es nicht mehr gibt, fällt still auf das Bild zurück, das die Seite
ohnehin geöffnet hätte. `/d/{id}?edit=true` öffnet das Bild direkt im
[Editor](view-editor), die Landung eines Reparaturlinks aus der [Validierung](validation), und wird ignoriert, wenn das Bild nicht bearbeitet werden kann.

## Die Spalte Visualisierung {#the-visualization-column}

Die Spalte links trägt die Überschrift **Visualisierung** und hält eine Zeile je Sache, die
die Station zeigen kann:

- **Ordner**, höchstens zwei Ebenen tief, jeder mit einem Pfeil, der die Gruppe zuklappt,
  und einem Namen, der den Ordner selbst auf der Fläche öffnet. Eine Ordnerzeile endet mit
  der Anzahl der Bilder, die sie hält, Unterordner eingerechnet.
- **Bilder**, Ihre eigenen Dashboards, in Ordner einsortiert oder auf der obersten Ebene
  stehend, jedes mit dem Icon aus seinen [Einstellungen](view-settings) und seiner
  Beschreibung als Tooltip der Zeile.
- **Einheitenbereiche**, die Einträge, die die Process-Modelle hier ablegen, einer je
  Einheit, benannt `Model · Unit · Surface`. Die, die niemand einsortiert hat, stehen
  zusammen unter einer Überschrift **Einheitenbereiche** nach dem Baum; ein einsortierter
  tritt seinem Ordner neben Ihren Bildern bei.

Ein Bild, das eine Komponente hält, deren Datenpunkt gerade nicht gelesen werden kann, trägt
einen leisen Hinweispunkt nach seinem Namen, und jeder Ordner darüber ebenso, damit eine
Störung auch bei zugeklappten Gruppen auffindbar ist. Der Punkt sagt nichts weiter: keine
Anzahl, keine Bewegung.

Die Fußzeile führt **Neu…** (nur für eine Rolle gezeichnet, die Dashboards bearbeiten
darf; es öffnet ein Menü mit **Neues Dashboard** und **Neuer Ordner**, beide auf der
obersten Ebene), dann, solange der Editor offen ist, **Dashboard nach oben verschieben**
und **Dashboard nach unten verschieben** für das offene Bild, und in der hinteren Ecke
**Alle ausklappen** und **Alle einklappen** über den Ordnern. Ein Rechtsklick auf eine Bildzeile öffnet ein Menü, das mit den Befehlen ihrer Leiste beginnt (**Kopieren**, **Bearbeiten** oder **Bearbeitung beenden**, am Eintrag einer Einheit **In Process bearbeiten**), dann **Verschieben nach**; ein Rechtsklick auf eine Ordnerzeile
öffnet das Menü, das anlegt, umbenennt und entfernt; all das steht unter
[Bilder und Ordner](view-screens).

Die Spalte klappt mit dem Pfeil in ihrem Kopf zu einer schmalen Leiste zusammen. Ein Druck
auf diese Leiste öffnet die Liste als Überlagerung über der Fläche, damit die Zeichenfläche
jedes gewonnene Pixel behält; die Wahl einer Zeile schließt sie wieder, und das Anheften
stellt die feste Spalte zurück. Der Trenner zwischen Spalte und Fläche zieht zwischen 260
und 600 px. Welche Ordner Sie geöffnet haben, die Breite und der zugeklappte Zustand
gehören Ihnen für die Sitzung: sie werden je Verbindung gehalten, ein Browser, der eine
Gruppe zuklappt, klappt sie also nie auf dem Fenster der Station zu, und nichts davon wird
gespeichert.

## Die Leiste des offenen Bildes {#the-open-screens-bar}

Die Leiste über der Fläche nennt, was offen ist, mit Icon und Namen des Bildes, und führt
die Befehle dafür. Solange der Editor offen ist, trägt der Name das Kennzeichen
**Bearbeitung**.

| Befehl | Was er tut | Ausgegraut, wenn (Situation) | Nicht gezeichnet, wenn (Rolle) |
|---|---|---|---|
| Kopieren | Legt eine bearbeitbare Kopie des offenen Bildes daneben an, im selben Ordner, benannt nach dem Original mit "(2)", "(3)" und so fort, bis ein Name frei ist, und öffnet sie nicht: Die Fläche zeigt die Wand dieses Ordners (die Wand **Oberste Ebene** bei einem Bild auf der obersten Ebene), mit der Karte der Kopie markiert und in den sichtbaren Bereich gerollt. | Nichts ist offen ("Öffnen Sie ein Bild, um es zu kopieren."), die Projektierung ist gesperrt, die Runtime ist gestoppt. | Die Rolle darf keine Dashboards bearbeiten, oder der offene Eintrag ist ein Einheitenbereich oder ein Einheitenbild (nichts zu kopieren: es ist an seinem Modell eingerichtet). |
| Bearbeiten / Bearbeitung beenden | Betritt den [Editor](view-editor) auf dem offenen Bild oder verlässt ihn und kehrt zum Ansehen zurück. Das Verlassen wird nie abgelehnt. | Nichts ist offen ("Öffnen Sie ein Bild, um es zu bearbeiten."), die Projektierung ist gesperrt ("Die Projektierung ist gesperrt, solange eine Einheit läuft."), die Runtime ist gestoppt ("Runtime gestoppt"). | Die Rolle darf keine Dashboards bearbeiten, oder der offene Eintrag ist ein Einheitenbereich oder ein Einheitenbild. |
| In Process bearbeiten | Öffnet die eigene Definition des Eintrags im Arbeitsbereich Process: die Bereichszeile oder die Bildzeile seines Modells. | Nie ausgegraut; er wird nur gezeichnet, wenn er ausgeführt werden kann. | Der offene Eintrag ist ein eigenes Bild, oder die Rolle darf keine Modelle verwalten. |
| Erweitern | Blendet die Navigationsleiste, die Titelleiste und die Leiste selbst aus und gibt dem Bild das ganze Fenster; das Fenster bleibt, wie es ist. | Nichts ist offen. | Nie, aber während der Bearbeitung zurückgehalten. |
| Vollbild | Das echte Vollbild: das Fenster der Station bedeckt den Bildschirm, oder ein Browser geht in den Vollbildmodus des Dokuments. F11 tut dasselbe. | Nichts ist offen. | Nie, aber während der Bearbeitung zurückgehalten. |

Erweitern und Vollbild sind für das Bedienen eines fertigen Bildes, deshalb hält die Leiste
beide zurück, solange der Editor offen ist, und F11 tut dann nichts. Alles über die beiden
Modi, das Ausklappfenster und die Statusleiste steht unter
[Vollbild-Bedienmodus](view-fullscreen).

Ist statt eines Bildes ein Ordner offen, wechselt die Leiste den Gegenstand: sie nennt den
Ordner und führt **Ordner umbenennen** (öffnet das Namensfeld auf der Zeile des Ordners)
und, in der Warnfarbe rechts, **Ordner entfernen** (dieselbe Bestätigung wie im Menü der
Zeile). Beide werden nur für eine Rolle gezeichnet, die Dashboards bearbeiten darf, und
sind ausgegraut, solange die Projektierung gesperrt ist.

## Die Fläche {#the-stage}

Was die Fläche zeichnet, folgt der Zeile, die Sie gewählt haben:

- Ein **Bild** läuft auf der Zeichenfläche: sein Raster skaliert bis zum Rand der Fläche,
  ohne Bildlauf, und seine Komponenten lesen den Adressraum im Takt der Seite (alle 150 ms
  auf dem Fenster der Station, alle 400 ms in einem entfernten Browser).
- Ein **Ordner** öffnet als Übersicht: eine Zeile, die sagt, was dort einsortiert ist, eine
  Zeile je Unterordner mit seiner Anzahl und eine Karte je Bild mit Icon, Namen und
  Beschreibung. Ein Druck auf eine Karte öffnet das Bild.
- Ein **Einheitenbereich** ist kein Layout, sondern ein Stapel Karten, deshalb wird die
  Fläche zu einer scrollenden Spalte davon: siehe
  [Einheitenbereiche in View](view-unit-panels). Ein **Einheitenbild** (ein Bild eines
  Modells, das in View gezeigt wird) läuft wie jedes Bild auf der Zeichenfläche, aufgelöst
  für seine Einheit.

Gibt es nichts zu zeigen, sagt die Fläche das: eine Station ohne jedes Dashboard liest
"Noch keine Dashboards. Legen Sie eines an, um Live-Anzeigen, Diagramme und Bedienelemente
für Ihren Prüfstand zusammenzustellen, und öffnen Sie es dann zum Bedienen im Vollbild."
mit einer Schaltfläche **Neues Dashboard** für eine Rolle, die bearbeiten darf; eine Rolle,
der jedes Dashboard verborgen bleibt, liest "Ihrer Rolle wird kein Dashboard angezeigt.";
eine Liste mit Ordnern, aber ohne Bild ("Die Liste hat Ordner, aber noch kein Bild."), oder
ein offener Ordner ohne gewähltes Bild ("Es ist kein Bild geöffnet. Wählen Sie eines aus der
Liste daneben.") sagt, welcher der beiden Fälle vorliegt.

## Das Raster {#the-grid}

Jedes Dashboard besitzt ein Raster aus **Spalten × Zeilen** Zellen (24 × 12, bis Sie es
ändern, jede zwischen 1 und 96), das die Fläche füllt und mit dem Fenster skaliert. Eine
Komponente belegt ein Rechteck aus Zellen (ihr X, Y, ihre Breite und Höhe); Komponenten
dürfen sich frei überlappen, und jede trägt eine **Ebene** (Z): die höhere Ebene wird oben
gezeichnet und nimmt den Klick. So wird ein [Rahmen](component-frame) zu einem echten
Hintergrund: schicken Sie ihn nach hinten und zeichnen Sie die Gruppe darüber. Platzierung,
Größe und die Reihenfolge der Ebenen gehören dem [Editor](view-editor); die Größe des
Rasters selbst ist eine [Dashboard-Einstellung](view-settings).

## Befehle, Berechtigungen und das Sperrzeichen {#commands-permissions-and-the-lock-mark}

Jede Bedienkomponente schreibt durch den einen Schreibtrichter von Logic auf der Station,
journalisiert, und antwortet einem Berechtigungsmodell. Das gilt für jedes Bedienelement,
das sich auf einer Ansicht drücken lässt, für die Ablaufkarten, die ein Einheitenbereich
führt, und für das Quittieren auf einem
[Alarmhinweis](component-alarm-banner):

- Ein Bedienelement auf einem eigenen Dashboard zu drücken, braucht die Berechtigung
  **Dashboards bedienen** der Rolle, die je Rolle auf der Seite [Benutzer](users) erteilt
  wird.
- Ein Druck, dessen Ziel eine Änderung in Process ist (ein Laufbefehl einer Einheit, ein
  Vorbereitungsfeld, ein Kommentar zum Lauf), braucht zusätzlich **Abläufe ausführen**. Was ein Druck braucht, wird an
  seinem aufgelösten Ziel abgelesen, nie an der Art der Komponente: ein Button, der einen
  Wert schreibt oder ein anderes Dashboard öffnet, bleibt bei der Dashboard-Berechtigung.
- Auf einem Einheitenbereich oder einem Einheitenbild regiert allein die Berechtigung aus
  Process: **Abläufe ausführen**, nichts über Dashboards.
- Solange die Runtime gestoppt ist, wird jeder Befehl mit "Runtime gestoppt" abgelehnt,
  gleich welche Rolle gilt.

Ein Befehl, den die angemeldete Rolle nicht drücken darf, bleibt auf dem Bild und trägt das
leise **Sperrzeichen**: ein kleines Vorhängeschloss in der Ecke der Komponente, mit dem
ganzen Grund ("Berechtigung Dashboards bedienen erforderlich." oder "Berechtigung
Abläufe ausführen erforderlich.") im Tooltip der Komponente. Es ist bewusst leise,
denn eine ansehende Rolle sieht es auf jedem Bedienelement zugleich, und eine normal
laufende Anlage darf nicht wie ein Bild voller Warnungen aussehen. Die Berechtigung wird im
Moment jedes Drucks neu geprüft, damit eine Abmeldung oder ein Rollenwechsel bei offenem
Bild keinen veralteten Klick absetzen kann.

Jede Befehlskomponente antwortet auf ihrer eigenen **Rückmeldezeile** unter dem
Bedienelement ("Geschrieben", "Fertig · 12 ms" oder die Ablehnung), die nach fünf Sekunden
verfällt. Diese Zeile ist die einzige Fläche, die bleibt, wenn ein Bild im Vollbild die
Statusleiste verbirgt; deshalb antworten die Befehle dort und nicht im Aktionsprotokoll der
Statusleiste. In einer Zelle, die zu niedrig ist, um den Titel in der Ecke der Komponente, das
Bedienelement und diese Zeile zugleich zu fassen, nimmt die Antwort den Platz des Titels
ein, solange sie steht, und der Titel kehrt zurück, wenn sie verfällt. Der Editor sagt das im
Abschnitt **Schrift** des Bedienelements, wenn ein Befehl mit einem Titel in der Ecke nur eine
Rasterzeile hoch ist, die Größe, die selten alle drei fasst. Eine Zelle, die selbst für den Titel
in der Ecke und das Bedienelement zu niedrig ist, gibt die Zeile des Titels dem Bedienelement,
sodass ein Feld oder eine Taste nie abgeschnitten gezeichnet wird. Wo die Antwort keine
eigene Zeile hat und kein Titel in der Ecke über dem Bedienelement steht (keiner wurde
geschrieben, oder er hat seine Zeile abgegeben), zeichnen die Schaltfläche, der Schalter, die
Eingabe, der Sollwertschieber, die Auswahl und die Schritttasten die Antwort an der
Stelle ihres eigenen Textes, solange sie steht: die Aufschrift der Schaltfläche, die
Beschriftung des Schalters, die Taste, mit der die Eingabe und der Schieber senden, die
gedrückte Taste der Auswahl oder der Schritttasten und bei einer Auswahl als Liste die Option, die in der geschlossenen Liste steht. Die Antwort liegt über diesem Text in der
Farbe der Rückmeldezeile (auf der Schaltfläche in einem ruhigeren Ton der Farbe ihrer eigenen
Aufschrift), eine Ablehnung in der Fehlerfarbe, mit Auslassungspunkten gekürzt, wo der Text
weniger Platz hat, und ganz im Tooltip. Nichts rückt: Der Text behält seinen Platz und seinen
Namen und kehrt zurück, wenn die Antwort verfällt. Die übrigen Befehle behalten die
Antwort auf ihrer Zeile, und eine höhere Zelle bringt diese Zeile zurück.

## Sperren {#locks}

Solange eine Einheit läuft, zeigt die Seite den Hinweis **Projektierung gesperrt**: "Ein
Vorgang an einer Einheit läuft. Die Konfiguration bleibt schreibgeschützt, bis jede Einheit
fertig ist; die Bedienelemente des Laufs und andere Bedienhandlungen bleiben verfügbar."
Anlegen,
Kopieren, Bearbeiten, Einsortieren, Umbenennen und Umordnen sind mit diesem Grund
ausgegraut, ein offener Editor schließt sich, und die Bilder laufen weiter und nehmen
erlaubte Befehle an. Eine gestoppte Runtime schließt dieselben Befehle und dazu die
Bedienbefehle; der eigene Pausenhinweis der Anwendung sagt, wo der Neustart geschieht.

## Was die Seite nicht tut {#what-the-page-does-not-do}

Sie bearbeitet nie einen Einheitenbereich oder ein Einheitenbild (In Process bearbeiten
führt dorthin, wo sie eingerichtet werden), ordnet sie nie um und lässt eine Rolle nie ein
Dashboard sehen, das vor ihr verborgen ist, weder über die Liste noch über die Adresse. Sie
hält über die Sitzung hinaus nichts von Ihrem Layout: die zugeklappten Ordner, die Breite
der Spalte, das Anheften und das gewählte Bild werden mit der Verbindung zurückgesetzt. Ein
Bild wird im Editor unter [Dashboard-Einstellungen](view-settings) gelöscht, nicht aus der
Spalte.

## In diesem Bereich {#in-this-area}

| Seite | Was sie behandelt |
|---|---|
| [Bilder und Ordner](view-screens) | Anlegen, Kopieren, Einsortieren, Umbenennen, Umordnen und Entfernen dessen, was die Spalte führt, das Startbild und wer welches Bild sieht. |
| [Der Dashboard-Editor](view-editor) | Die Werkbank: die Palette, die Zeichenfläche, die Auswahl, die Eigenschaftsabschnitte, die jede Komponente teilt, und die Verbindungslinien zwischen den Anschlusspunkten von Symbolen. |
| [Dashboard-Einstellungen](view-settings) | Was ein Bild über sich selbst erklärt: Name, Beschreibung, Icon, Raster, Start, die Statusleiste im Vollbild, sichtbare Rollen, Löschen. |
| [Vollbild-Bedienmodus](view-fullscreen) | Erweitern und Vollbild, F11 und Esc, das Ausklappfenster und die Einstellung der Statusleiste. |
| [Einheitenbereiche in View](view-unit-panels) | Der Kartenstapel, über den eine Process-Einheit bedient wird, so wie er hier erscheint. |
| [Diagramme](view-charts) | Die Werkzeugleiste, die jedes Diagramm trägt, seine Skala, die Bereiche für Statistik und Referenzen und das abgesetzte Diagrammfenster. |
| [Dashboard-Komponenten](components) | Der Katalog der Komponentenarten, die Adressen, die sie binden, wie eine Messung gezeichnet wird, und eine Referenzseite je Art. |
