# Dashboards eines Modells

> Die frei gestalteten Dashboards, die auf einem Modell festgelegt sind, der Platzhalter für die Einheit, den ihre Verknüpfungen tragen, und wie jede Einheit ihre eigene aufgelöste Kopie öffnet.

Ein **Dashboard eines Modells** ist ein gewöhnliches Dashboard, das sein Modell nennt: Es wird aus
denselben Komponenten zusammengesetzt und mit demselben Editor geändert wie jedes Dashboard auf der
Seite View (siehe
[Der Dashboard-Editor](view-editor)), und was es zu dem eines Modells macht, ist, wo es wohnt und
was seine Verknüpfungen nennen. Es wird unter Process > Modelle > Modell > Visualisierung >
**Dashboards** gelistet, seine Adressfelder bieten die Kanäle des Modells an, und es schreibt einen
Platzhalter für die Einheit dorthin, wo sonst eine einzelne Einheit genannt würde. Eine Festlegung
dient jeder Einheit des Modells. Ein Dashboard anzulegen, zu entfernen und zu kennzeichnen braucht
die Berechtigung **Process verwalten**; zu ändern, was darauf steht, braucht die Berechtigung
**Dashboards ändern** des Bereichs Dashboard.

## Der Ordner Dashboards {#the-dashboards-folder}

Die Auswahl der Zeile **Dashboards** öffnet die Ordnerseite: den Kopf ("Bediener-Dashboards, die
auf diesem Modell definiert sind. Eine Definition dient jeder Einheit: jede Einheit trägt eine
eigene Zeile, die es über den verknüpften Kanälen dieser Einheit öffnet.") und eine Karte je
Dashboard, mit seinem Icon und seinem Namen. Ein Klick auf eine Karte öffnet das Dashboard; das X
auf einer Karte entfernt es. Hat das Modell keines, sagt die Seite "Noch keine Dashboards. Fügen Sie
eines hinzu und bearbeiten Sie es dann mit dem Werkzeugkasten für Dashboards." Der Baum listet die
Dashboards unter dem Ordner nach Namen, und die Ordnerzeile zählt sie.

| Befehl | Was er tut | Ausgegraut, wenn (Lage) | Nicht gezeichnet, wenn (Rolle) |
| --- | --- | --- | --- |
| **Dashboard** (Detailleiste, Ordner gewählt; Rechtsklick **Dashboard hinzufügen**) | Legt ein leeres Dashboard namens `Neues Dashboard <n>` an (die erste Nummer, die kein Dashboard dieses Modells schon benutzt), speichert es und markiert seine Karte auf dieser Seite und rollt sie in den sichtbaren Bereich; das Dashboard wird nicht geöffnet, und seine Karte oder seine Zeile im Baum öffnet es. | Irgendeine Einheit hält einen Lauf, oder die Runtime ist gestoppt. | Ohne Process verwalten. |

Ein neues Dashboard beginnt mit nichts darauf. Sein Name, seine Beschreibung, sein Icon und alles
Übrige, was ein Dashboard trägt, gehören dem Editor zum Ändern (siehe
[Einstellungen eines Dashboards](view-settings)); die Seite Process trägt kein Feld dafür.

## Die Seite des Dashboards {#the-dashboards-page}

Ein Dashboard zu wählen lässt es im Inhaltsbereich laufen, randlos, mit nichts davor: Das ist die
Festlegung selbst, auf derselben Zeichenfläche gezeichnet, auf der jedes andere Dashboard gezeichnet
wird. Weil hier keine Einheit genannt ist, zeichnet eine Komponente, die an einen Kanal des Modells
gebunden ist, ihre eigene Anordnung und liest keinen Wert; die Adresszeile des Editors lautet bei
einer solchen Verknüpfung "ein Datenpunkt je Einheit dieses Modells", statt einen fehlenden Punkt zu
melden. Eine Komponente, die an einen Punkt der Station gebunden ist (ein Tag, eine Variable), liest
ihn wie gewohnt.

Ein leeres Dashboard sagt es, statt als leerer Streifen zu stehen: "Auf diesem Bild ist noch
nichts. Bearbeiten Sie es, um Komponenten zu setzen: ihre Adressfelder bieten die Kanäle dieses
Modells an, und jede Einheit liest dann ihre eigenen."

Die Detailleiste trägt drei Dinge für ein gewähltes Dashboard: **Dashboard ändern**, den Schalter
**In View zeigen** und, in der Gefahrengruppe, **Dashboard entfernen**.

## Dashboard ändern {#edit-dashboard}

**Dashboard ändern** übergibt den Rumpf der Seite Process dem einen Dashboard-Editor der Anwendung,
auf dieser Festlegung eingehängt: Die Fläche, ihre Haarlinie und die Aufgabenleiste treten an die
Stelle des Inhaltsbereichs, und der Streifen des Editors trägt **Bearbeitung beenden** ("Die
Bearbeitung abschließen und dieses Dashboard wieder ansehen"), das den Rumpf dem
Inhaltsbereich zurückgibt, der das Dashboard so laufen lässt, wie es jetzt steht. Auf dem Weg hinaus
wird nichts übernommen: Jede Änderung wird gespeichert, sobald sie gemacht ist. Die eigene Adresse
des Dashboards (`/d/<id>`) bleibt ein Direktlink in den Editor für jeden, der mit einer ankommt.

| Lage | Was Sie sehen |
| --- | --- |
| Ihrer Rolle fehlt Dashboards ändern | Der Befehl wird gar nicht gezeichnet: was die Rolle nie drücken darf, bleibt weg statt ausgegraut. |
| Eine Einheit hält einen Lauf | Der Befehl ist ausgegraut mit "Die Projektierung ist gesperrt, solange eine Einheit läuft." Eine Sperre, die kommt, während Sie ändern, beendet den Änderungsmodus; nach der Freigabe der Station zurückzukehren ist Ihr eigener Druck. |
| Die Auswahl verlässt das Dashboard, oder die Rolle verliert das Bit | Der Änderungsmodus endet auf dieselbe Weise. |

Das Dashboard aus dem Editor heraus zu löschen schließt den Editor und setzt die Auswahl auf den
Ordner Dashboards des Modells.

### Der Platzhalter für die Einheit in Verknüpfungen {#the-unit-placeholder-in-bindings}

Auf dem Dashboard eines Modells führt jedes Adressfeld des Editors mit den Kanälen des Modells, eine
Zeile je Kanal in der Kanalreihenfolge des Modells, jede geschrieben als die Adresse von "diesem
Kanal, auf der Einheit, die das Bild öffnet": `Process.<Model>.{unit}.Channels.<Channel>`. Eine zu
wählen bindet den Kanal und lässt die Einheit später beantworten. Die eigenen Punkte der Station
folgen diesen Zeilen (das Dashboard eines Modells darf berechtigt ein Tag der Umgebung oder eine
geteilte Variable lesen), die Liste ist auf 50 Vorschläge begrenzt, und das Feld bleibt frei
tippbar. Ein Feld, das schreibt (eine Schaltfläche, ein Eingabefeld), listet allein die Kanäle,
deren Rolle beschreibbar ist, denn über welche Kanäle eine Einheit beschrieben werden kann, ist die
Rolle des Kanals.

Die Zeilen werden nach der Wertekategorie gefiltert, die das Feld annimmt, genau wie die eigenen
Punkte der Station, ein Kanal wird also allein dort verborgen, wo ihn nichts tragen könnte.

Drei Zeichen werden beantwortet, wenn eine Einheit das Dashboard öffnet:

| Zeichen | Wo es geschrieben wird | Was es wird |
| --- | --- | --- |
| `{unit}` | In einer Adresse und als ganzer Wert einer Eigenschaft einer Komponente, die eine Einheit bindet (etwa die Einheit einer Kommentarzeitachse oder einer Ereignisliste). | Der Adressabschnitt der Einheit in einer Adresse; die Kennung der Einheit in einer an eine Einheit gebundenen Eigenschaft. In gewöhnlichem Text geschrieben (einer Beschriftung, einer Bildunterschrift) bleibt es genau so, wie es ist. |
| `{unit.name}` | Beliebiger Text: der Name und die Beschreibung des Dashboards, der Name oder die Beschriftung einer Komponente, der Titel eines Diagramms oder die Beschriftung einer Datenreihe, jede Texteigenschaft. | Der Anzeigename der Einheit. |
| `{channel.name:<segment>}` | Beliebiger Text. Der Abschnitt ist der bereinigte Adressabschnitt des Kanals, derselbe Schlüssel, den die Adresse daneben benutzt. | Der Name, den der Kanal auf dieser Einheit trägt: sein Alias je Einheit, wo das Modell einen erlaubt und die Einheit ihn gesetzt hat, sonst der eigene Name des Kanals. Ein Abschnitt, der keinen Kanal des Modells nennt, bleibt, wie er ist. |

Solange das Dashboard auf dem Modell geändert wird, gilt eine Komponente, deren Adresse noch
`{unit}` trägt, als nicht gebunden: Sie zeichnet nichts und kennzeichnet nichts, denn Schweigen ist
allein auf der aufgelösten Kopie echt.

## Wie jede Einheit ihr aufgelöstes Dashboard bekommt {#how-each-unit-gets-its-resolved-dashboard}

Unter **Bedienen** trägt jede Einheit des Modells eine Zeile je Dashboard des Modells, nach ihren
Zeilen für Einheitenbereiche. Diese Zeile zu wählen lässt die Festlegung als die eigene dieser
Einheit laufen:

- Die Festlegung wird kopiert und neu gekennzeichnet (frische Kennungen für das Dashboard, seine
  Komponenten und seine Verbindungsnetze), so dass die Kopien zweier Einheiten nie eine
  Komponentenkennung teilen.
- Jedes `{unit}` wird zu dieser Einheit, jede Adresse kommt also als der gewöhnliche Punkt
  `Process.<Model>.<Unit>.Channels.<Channel>` heraus, und jede an eine Einheit gebundene Eigenschaft
  hält diese Einheit. Nichts weiter unten erfährt, dass die Festlegung abstrakt war: Die Komponenten
  lesen laufende Werte, die Komponenten Schaltfläche und Eingabefeld schreiben, und ein
  Liniendiagramm, dessen Datenreihen diese Einheit lesen, zeichnet die Bänder der Bewertung des
  gerade laufenden Laufs, genau wie auf jedem an eine Einheit gebundenen Dashboard.
- `{unit.name}` und `{channel.name:...}` werden zum Namen der Einheit und zu den auf ihr geltenden
  Kanalnamen.

Die Zeile trägt die Flächenleiste, die die Seite View benutzt: den Namen des Eintrags
`Model · Unit · Dashboard`, das Icon des Dashboards, **Erweitern** ("Das ganze Fenster nutzen")
und **Vollbild** ("Vollbild (F11)"). Es gibt darauf kein Kopieren und kein Ändern: Die Zeile einer
Einheit zeigt ein Dashboard und ändert es nie. Ein leeres Dashboard sagt auf der Zeile der Einheit:
"Auf diesem Bild ist noch nichts. Es wird in der Zeile Dashboards des Modells unter
Visualisierung gezeichnet, und was dort gesetzt wird, erscheint hier für jede Einheit."

Eine auf dem Modell gespeicherte Änderung erreicht die Zeile jeder Einheit: Die Zeile hält die
Festlegung des Modells und löst sie erneut auf, sobald eine frische Ausprägung ankommt.

## In View zeigen {#show-on-view}

**In View zeigen** ist der Schalter auf der Detailleiste, neben Dashboard ändern. Er liest den
geltenden Zustand, und sein Tooltip sagt, was dieser Zustand tut:

| Zustand | Tooltip |
| --- | --- |
| Ein | "Jede Einheit dieses Modells hat einen Eintrag für dieses Dashboard in der Spalte Visualisierung." |
| Aus | "Dieses Dashboard wird von der Einheit aus unter Bedienen geöffnet. Nichts davon steht auf der Seite View." |

Ihn einzuschalten setzt einen Eintrag je Einheit des Modells in die Spalte Visualisierung der Seite
View, benannt als `Model · Unit · Dashboard` und mit dem Icon des Dashboards; jeder Eintrag ist die
für diese Einheit aufgelöste Festlegung, dasselbe Bild, das die Zeile der Einheit unter Betrieb
laufen lässt. Die Einträge sind Zeilen dieser Liste und keine Dashboards der Station: Sie werden
dort nie umsortiert, geändert oder kopiert (Kopieren wird auf ihnen abgewiesen), auch wenn der
Eintrag jeder Einheit für sich in die Ordner der Seite View abgelegt werden darf. Ein Modell ohne
Einheiten setzt nichts auf die Seite View. Ein Dashboard darf für sich auf der Seite View stehen und
zugleich Karte eines Einheitenbereichs sein, der dort steht; beides zugleich ist eine gewöhnliche
Anordnung. Wie die Einträge aussehen, steht unter [Einheitenbereiche in View](view-unit-panels).

Der Schalter wird für eine Rolle ohne Process verwalten nicht gezeichnet. Er bleibt unter der
Projektierungssperre und bei gestoppter Runtime gezeichnet und ausgegraut und sagt, welches von
beidem es ist. Die Entscheidung wird mit dem Dashboard selbst gespeichert (dasselbe Speichern von
selbst, das sein Name nimmt), ein abgewiesener Schreibvorgang stellt den Schalter also zurück.

## Ein Dashboard als Karte eines Einheitenbereichs {#a-dashboard-as-a-card-of-a-panel}

Ein Einheitenbereich des Modells darf jedes Dashboard des Modells als eine seiner Karten zeichnen,
in einer auf dem Bereich gewählten Höhe (120 bis 1200 px, 320 als Vorgabe). Ein Dashboard tritt
einem Bereich erst bei, wenn Sie es dort einschalten; es beginnt aus. Siehe
[Einheitenbereiche](process-panels#the-card-catalogue).

## Dashboard entfernen {#remove-dashboard}

**Dashboard entfernen** steht in der Gefahrengruppe der Detailleiste, wenn das Dashboard gewählt
ist, im Rechtsklickmenü des Baums und als X auf der Karte der Ordnerseite. Es fragt zuerst
("Dashboard löschen": den Namen, dann "Das entfernt das Dashboard und alles darauf. Die Adressen,
die sie lesen, bleiben in Logic."). Nach dem Löschen landet die Auswahl auf dem Ordner Dashboards
des Modells, ein offener Editor auf diesem Dashboard schließt, jede Zeile eines Einheitenbereichs,
die es gezeichnet hat, lässt diese Karte fallen, und seine Einträge verlassen die Seite View. Es
braucht Process verwalten und ist unter der Projektierungssperre und bei gestoppter Runtime
ausgegraut.

## Was diese Seite nicht tut {#what-this-page-does-not-do}

- Sie ändert weder den Inhalt noch den Namen noch die Einstellungen des Dashboards: Die gehören dem
  Editor, den Dashboard ändern öffnet.
- Sie macht keine Kopie je Einheit. Was eine Einheit zeigt, wird jedes Mal aus der einen Festlegung
  aufgelöst; es gibt nichts je Einheit zu ändern, und ein Dashboard, das der Bediener für eine
  Station ändern will, ist ein zweites Dashboard des Modells.
- Sie setzt kein Dashboard in die eigenen Ordner der Seite View. Das Dashboard eines Modells steht
  nie in der Dashboard-Liste der Station; es erreicht die Seite View allein über In View zeigen,
  einen Eintrag je Einheit.
- Sie startet oder führt keinen Lauf. Eine Schaltfläche, die auf dem aufgelösten Dashboard an einen
  Befehlspunkt gebunden ist, tut das, unter der Berechtigung Abläufe ausführen, genau wie auf jedem
  Dashboard; siehe [Läufe und Kommentare](process-runs).
