Module: sdw/templates/application/perspective

Dieses Modul definiert die Klasse Perspektive. Eine Perspektive ist eine Sicht auf einen bestimmten Aspekt einer Anwendung. Jede Anwendung hat 1 bis beliebig viele Perspektiven. Die Perpektive bestimmt das Layout des GUI sowohl im Outlinepane als auch im Viewpane und stellt die fachlichen Inhalte dar. Das grundsätzliche GUI-Layout besteht aus einem schmalen Bereich links, dem OutlinePane, und einem breiten Bereich rechts, dem ViewPane. Die grundsätzliche Idee ist dabei, das im OutlinePane fachliche Objekte präsentiert werden, z.B. in einer Liste oder in einem Baum. Aufgabe der Perspektive ist es, diese fachlichen Objekte von der API zu holen, z.B. über eine Suchmaske oder einen initial leeren Baum, der sich durch Navigation dynamisch füllt, oder wie auch immer.

Die Perspektive legt nur den OutlinePane fest, der ViewPane wird zur Laufzeit mit unterschiedlichen Views gefüllt. Dafür können unterschiedliche Paradigmen gedacht werden, 2 Paradiegmen sind umgesetzt:

  1. Das ViewTabPane-Paradima ist ein sehr stark strukturiertes GUI das sehr einfach eingesetzt werden kann um Basisaufgaben wie die Stammdatenverwaltung zu realisieren. Klickt man auf ein fachliches Objekt im OutlinePane, öffnet sich im ViewPane ein äußerer Rahmen als TabContainer, jeder Tab beinhaltet einen AccordionContainer der wieder einzelne Panes beinhaltet, deshalb ViewTabPane-Paradigma. Dazu gibt es einen Toolbar, dessen Buttons automatisch aktiv/inaktiv sind, +/- Buttons um neue fachliche Objekt zu erzeugen oder zu löschen und ein API-Zugriff-Konzept, dass jedem View, Tab und Pane durch Zuordnung von Opcodes beim automatisierten Zugriff auf die OID des übergeordneten Objektes die API-Kommunikation ohne individuellen Code bereitstellt. In diesem Konzept führt das Anklicken eines fachlichen Objektes im OutlinePane oder das Wechseln der Perspektive immer zu einem vollständigen Löschen und Neuladen des gesamten ViewPanes.

    1. Das Container-GUI ist wesentlich weniger standardisiert. In diesem Konzept gibt es im ViewPane einen ViewContainer, also einen TabContainer, der die unterschiedlichsten Inhalte von einem oder verschiedenen Perspektiven beinhalten kann. So kann eine Application z.B. eine KalenderPerspektive und eine MapPerspektive haben, die unterschiedliche fachliche Objekte darstellt. Beide Perspektiven stellen ihren Daten, einen Kalender und eine Karte, im Viewbereich als Tabs im Container dar. Klickt man auf ein Kalenderitem, öffnet sich ein neuer Tab der das angeklickte Objekt darstellt. Klickt man in der Karte auf einen bestimmten Marker, öffnet sich auch für dieses Objekt ein neuer Tab im Pane. Gleiche Objekte können nur einmal dargestellt werden.

Erzeugt werden die Perspektiven in den von Application abgeleiteten Anwendungsklassen. Dazu überschreiben die Klassen die Methode createPerspective().

Diese Klasse ist die Basisklasse aller Perspektiven und nicht zur Instantiierung gedacht.

Author:
  • sdw.systems
Source:
See:

Requires

Members

(private) application

Source:

(private) debug

Source:

(private) languagePack

Source:

(private) metadata

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

(private) outlinePane

Source:

uniqueID

Properties:
Name Type Description
uniqueID UUID

Eindeutige ID der Perspektive

Source:

(private) viewPane

Source:

Methods

constructor(args)

Der Konstruktor stellt alle Argumente innerhalb der Klasse unter this.argument zur Verfügung. Danach wird setProperties() aufgerufen um abgeleiteten Klassen nochmals Gelegenheit zu geben Eigenschaften zu setzen.

Parameters:
Name Type Description
args Object

Argumentobjekt

Properties
Name Type Description
debug Boolean

Debugflag

metadata module:sdw/metadata

Zeiger auf das Metadatenobjekt des Applikationscontainers

languagePack module:sdw/languagePack

Zeiger auf das I18N Objekt des Applikationscontainers

application module:sdw/templates/application

Zeiger auf die Applikation

outlinePane module:dijit/layout/ContentPane

Zeiger auf den OutlinePane

viewPane module:dijit/layout/ContentPane

Zeiger auf den ViewPane

Source:

onRenderingComplete()

Wird von der Basisklasse aufgerufen sobald das GUI fertig gerendert ist und kann von den abgeleiteten Klassen dazu genutzt werden letzte Änderungen anzubringen. Pure virtual, gibt lediglich eine Warnung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt überschrieben wurde

Source:

removeApplicationInactive()

Wenn die umgebende Applikation schlafen geschickt wird ruft diese removeApplicationInactive bei allen Perspektiven auf. Ist pure virtual und erzeugt eine Warnung, wenn sie nicht von der abgeleiteten Klasse überschrieben wurde

Source:

setProperties()

Gibt der abgeleiteten Klasse neben den Constructor args die Möglichkeit Eigenschaften der Basisklasse zu setzen. Wird vom Konstruktor der Basisklasse aufgerufen. Pure virtual, gibt lediglich eine Warnung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt überschrieben wurde

Source: