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
Members
_bridge :IframeBridgeHost|null
- Description:
Bridge-Host-Instanz (wenn verfügbar)
- Source:
Bridge-Host-Instanz (wenn verfügbar)
Type:
- IframeBridgeHost | null
_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
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: