BaseTreeAdapter

BaseTreeAdapter

new BaseTreeAdapter()

Description:
  • Base Tree Adapter - Basisklasse für Tree-Visualisierungs-Adapter

    Enthält gemeinsame Infrastruktur für:

    • IFrame-Kommunikation via IframeBridgeHost (bevorzugt) oder Legacy-postMessage (Fallback)
    • State Management (NodeMap, Commands)
    • Grundlegende Tree-Erstellung (createNode)
    • Handshake & Reset
Source:
Version:
  • 2.0
Author:
  • Alexander Wolf

Members

_bridge :IframeBridgeHost|null

Description:
  • Bridge-Host-Instanz (wenn verfügbar)

Source:

Bridge-Host-Instanz (wenn verfügbar)

Type:

_bridgeActive :boolean

Description:
  • Bridge ist aktiv und hat Handshake abgeschlossen

Source:

Bridge ist aktiv und hat Handshake abgeschlossen

Type:
  • boolean

_debugDomain :string

Description:
  • Debug-Domain-Key für DebugConfig

Source:

Debug-Domain-Key für DebugConfig

Type:
  • string

_debugPrefix :string

Description:
  • Log-Prefix für diesen Adapter

Source:

Log-Prefix für diesen Adapter

Type:
  • string

onActiveNodeChanged :function|null

Description:
  • Callback bei aktivem Knoten-Wechsel

Source:

Callback bei aktivem Knoten-Wechsel

Type:
  • function | null

onNodeClicked :function|null

Description:
  • Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)

Source:

Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)

Type:
  • function | null

onNodeFocused :function|null

Description:
  • Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)

Source:

Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)

Type:
  • function | null

onStatsChanged :function|null

Description:
  • Callback bei Statistik-Änderungen

Source:

Callback bei Statistik-Änderungen

Type:
  • function | null

stats :Object

Source:
Type:
  • Object

Methods

(protected) _debugLog(message, payloadopt, levelopt)

Description:
  • Einheitlicher Debug-Logger für alle Tree-Adapter. Subklassen setzen this._debugDomain und this._debugPrefix im Konstruktor.

Source:
Parameters:
Name Type Attributes Default Description
message string

Log-Nachricht

payload Object <optional>

Optionaler Payload

level string <optional>
'debug'

Log-Level ('debug', 'warn', 'error')

(protected) _getHighlightEdgeStyle(bestValue) → {Object}

Description:
  • Liefert Farbe und Breite für Best-Edge-Highlighting. Überschreibbar in Subklassen für spezifische Farblogik.

Source:
Parameters:
Name Type Description
bestValue number

Bester Wert des Knotens

Returns:
Type
Object

(protected) _highlightBestEdges(nodeId, bestValue)

Description:
  • Markiert die beste(n) Kante(n) eines inneren Knotens. Nutzt _getHighlightEdgeStyle() als Hook für adaptersspezifische Farben/Breiten.

Source:
Parameters:
Name Type Description
nodeId number

Elternknoten

bestValue number

Bester Wert (MAX oder MIN)

(protected) _highlightPropagationSubtree(parentId, color, width)

Description:
  • Markiert rekursiv alle Kanten eines Teilbaums ab parentId nach unten. Folgt allen offenen (nicht EVALUATED/PRUNED) Nachkommen. Wird für AB-Propagation-Pfeile verwendet.

Source:
Parameters:
Name Type Description
parentId number

Startknoten

color string

Kantenfarbe

width number

Kantenbreite

(protected) _isLeafTerminal(nodeId, data) → {boolean}

Description:
  • Prüft ob ein Blattknoten terminal ist. Überschreibbar in Subklassen für spielspezifische Terminal-Erkennung.

Source:
Parameters:
Name Type Description
nodeId number

Knoten-ID

data Object

treeStructure-Eintrag

Returns:
Type
boolean

(protected) _notifyStatsChanged()

Description:
  • Benachrichtigt UI über Statistik-Änderungen.

Source:

checkNodeStatus(nodeId)

Description:
  • Prüft und aktualisiert den Status eines Knotens.

    • Blattknoten (terminal) → READY
    • Innerer Knoten (alle Kinder EVALUATED/PRUNED) → READY
    • Sonst → WAIT
Source:
Parameters:
Name Type Description
nodeId number

Zu prüfende Knoten-ID

createNode(state, parentId, metadata, status, boardTypeopt)

Description:
  • Erstellt einen Basis-Knoten und registriert ihn.

    Unterstützte boardTypes:

    • 'minimax': TicTacToe-Grid Darstellung (default für Rückwärtskompatibilität)
    • 'numeric': Kreis mit Zahlenwert (Diagramm-Modus, Lehrbuch-Darstellung)
    • undefined: Auto-Detection anhand boardData-Struktur (Knights-Tour, RotateBox)
Source:
Parameters:
Name Type Attributes Default Description
state GameState | Object

Spielzustand oder generisches Datenobjekt

parentId number | null
metadata Object

Metadaten (value, isMaximizing, alpha, beta, etc.)

status string WAIT
boardType string <optional>
'minimax'

Expliziter boardType für Renderer-Routing

destroy()

Description:
  • Entfernt Event-Listener und räumt Ressourcen auf.

Source:

flushCommands()

Description:
  • Sendet alle gepufferten Commands als Batch und leert den Puffer.

Source:

getBoardKey(board) → {string}

Description:
  • Erzeugt einen eindeutigen Schlüssel für ein Board/State-Objekt.

Source:
Parameters:
Name Type Description
board Object

Board- oder State-Objekt

Returns:

Eindeutiger Schlüssel

Type
string

getInitialConfig()

Description:
  • Liefert Initiale Config (überschreibbar)

Source:

handleMessage(data)

Description:
  • Verarbeitet eingehende Nachrichten vom Visualizer

Source:
Parameters:
Name Type Description
data Object

handleNodeClick(nodeId)

Description:
  • Verarbeitet Klick auf einen Knoten. Nur READY-Knoten können evaluiert werden.

Source:
Parameters:
Name Type Description
nodeId number

Geklickte Knoten-ID

(protected) onTreeReady()

Description:
  • Wird aufgerufen wenn das IFrame TREE_READY meldet.

Source:

reset()

Description:
  • Setzt den Adapter-Zustand zurück und sendet CLEAR an das IFrame.

Source:

sendCommand(command)

Description:
  • Sendet einen einzelnen Command an das IFrame. Nutzt IframeBridgeHost wenn verfügbar, sonst Legacy-postMessage.

Source:
Parameters:
Name Type Description
command Object

Command-Objekt mit action-Property

startHandshake()

Description:
  • Startet den Handshake mit dem IFrame. Setzt ready-Flag als Fallback nach Timeout.

Source:

BaseTreeAdapter

new BaseTreeAdapter(iframeElement)

Source:
Parameters:
Name Type Description
iframeElement HTMLIFrameElement

Members

_bridge :IframeBridgeHost|null

Description:
  • Bridge-Host-Instanz (wenn verfügbar)

Source:

Bridge-Host-Instanz (wenn verfügbar)

Type:

_bridgeActive :boolean

Description:
  • Bridge ist aktiv und hat Handshake abgeschlossen

Source:

Bridge ist aktiv und hat Handshake abgeschlossen

Type:
  • boolean

_debugDomain :string

Description:
  • Debug-Domain-Key für DebugConfig

Source:

Debug-Domain-Key für DebugConfig

Type:
  • string

_debugPrefix :string

Description:
  • Log-Prefix für diesen Adapter

Source:

Log-Prefix für diesen Adapter

Type:
  • string

onActiveNodeChanged :function|null

Description:
  • Callback bei aktivem Knoten-Wechsel

Source:

Callback bei aktivem Knoten-Wechsel

Type:
  • function | null

onNodeClicked :function|null

Description:
  • Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)

Source:

Callback bei Knoten-Klick aus TreeViz (nodeId, boardData)

Type:
  • function | null

onNodeFocused :function|null

Description:
  • Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)

Source:

Callback bei Expansion-Klick aus TreeViz (nodeId, boardData)

Type:
  • function | null

onStatsChanged :function|null

Description:
  • Callback bei Statistik-Änderungen

Source:

Callback bei Statistik-Änderungen

Type:
  • function | null

stats :Object

Source:
Type:
  • Object

Methods

(protected) _debugLog(message, payloadopt, levelopt)

Description:
  • Einheitlicher Debug-Logger für alle Tree-Adapter. Subklassen setzen this._debugDomain und this._debugPrefix im Konstruktor.

Source:
Parameters:
Name Type Attributes Default Description
message string

Log-Nachricht

payload Object <optional>

Optionaler Payload

level string <optional>
'debug'

Log-Level ('debug', 'warn', 'error')

(protected) _getHighlightEdgeStyle(bestValue) → {Object}

Description:
  • Liefert Farbe und Breite für Best-Edge-Highlighting. Überschreibbar in Subklassen für spezifische Farblogik.

Source:
Parameters:
Name Type Description
bestValue number

Bester Wert des Knotens

Returns:
Type
Object

(protected) _highlightBestEdges(nodeId, bestValue)

Description:
  • Markiert die beste(n) Kante(n) eines inneren Knotens. Nutzt _getHighlightEdgeStyle() als Hook für adaptersspezifische Farben/Breiten.

Source:
Parameters:
Name Type Description
nodeId number

Elternknoten

bestValue number

Bester Wert (MAX oder MIN)

(protected) _highlightPropagationSubtree(parentId, color, width)

Description:
  • Markiert rekursiv alle Kanten eines Teilbaums ab parentId nach unten. Folgt allen offenen (nicht EVALUATED/PRUNED) Nachkommen. Wird für AB-Propagation-Pfeile verwendet.

Source:
Parameters:
Name Type Description
parentId number

Startknoten

color string

Kantenfarbe

width number

Kantenbreite

(protected) _isLeafTerminal(nodeId, data) → {boolean}

Description:
  • Prüft ob ein Blattknoten terminal ist. Überschreibbar in Subklassen für spielspezifische Terminal-Erkennung.

Source:
Parameters:
Name Type Description
nodeId number

Knoten-ID

data Object

treeStructure-Eintrag

Returns:
Type
boolean

(protected) _notifyStatsChanged()

Description:
  • Benachrichtigt UI über Statistik-Änderungen.

Source:

checkNodeStatus(nodeId)

Description:
  • Prüft und aktualisiert den Status eines Knotens.

    • Blattknoten (terminal) → READY
    • Innerer Knoten (alle Kinder EVALUATED/PRUNED) → READY
    • Sonst → WAIT
Source:
Parameters:
Name Type Description
nodeId number

Zu prüfende Knoten-ID

createNode(state, parentId, metadata, status, boardTypeopt)

Description:
  • Erstellt einen Basis-Knoten und registriert ihn.

    Unterstützte boardTypes:

    • 'minimax': TicTacToe-Grid Darstellung (default für Rückwärtskompatibilität)
    • 'numeric': Kreis mit Zahlenwert (Diagramm-Modus, Lehrbuch-Darstellung)
    • undefined: Auto-Detection anhand boardData-Struktur (Knights-Tour, RotateBox)
Source:
Parameters:
Name Type Attributes Default Description
state GameState | Object

Spielzustand oder generisches Datenobjekt

parentId number | null
metadata Object

Metadaten (value, isMaximizing, alpha, beta, etc.)

status string WAIT
boardType string <optional>
'minimax'

Expliziter boardType für Renderer-Routing

destroy()

Description:
  • Entfernt Event-Listener und räumt Ressourcen auf.

Source:

flushCommands()

Description:
  • Sendet alle gepufferten Commands als Batch und leert den Puffer.

Source:

getBoardKey(board) → {string}

Description:
  • Erzeugt einen eindeutigen Schlüssel für ein Board/State-Objekt.

Source:
Parameters:
Name Type Description
board Object

Board- oder State-Objekt

Returns:

Eindeutiger Schlüssel

Type
string

getInitialConfig()

Description:
  • Liefert Initiale Config (überschreibbar)

Source:

handleMessage(data)

Description:
  • Verarbeitet eingehende Nachrichten vom Visualizer

Source:
Parameters:
Name Type Description
data Object

handleNodeClick(nodeId)

Description:
  • Verarbeitet Klick auf einen Knoten. Nur READY-Knoten können evaluiert werden.

Source:
Parameters:
Name Type Description
nodeId number

Geklickte Knoten-ID

(protected) onTreeReady()

Description:
  • Wird aufgerufen wenn das IFrame TREE_READY meldet.

Source:

reset()

Description:
  • Setzt den Adapter-Zustand zurück und sendet CLEAR an das IFrame.

Source:

sendCommand(command)

Description:
  • Sendet einen einzelnen Command an das IFrame. Nutzt IframeBridgeHost wenn verfügbar, sonst Legacy-postMessage.

Source:
Parameters:
Name Type Description
command Object

Command-Objekt mit action-Property

startHandshake()

Description:
  • Startet den Handshake mit dem IFrame. Setzt ready-Flag als Fallback nach Timeout.

Source: