Index: code/branches/Presentation_HS17_merge/data/gui/scripts/Dialog.lua
===================================================================
--- code/branches/Presentation_HS17_merge/data/gui/scripts/Dialog.lua	(revision 11747)
+++ code/branches/Presentation_HS17_merge/data/gui/scripts/Dialog.lua	(revision 11747)
@@ -0,0 +1,127 @@
+-- Dialog.lua
+
+local P = createMenuSheet("Dialog")
+
+P.wrapper = nil
+P.detailsWindows = {}
+P.showing = false
+P.choice = 0
+P.scrollbarWidth = 12
+
+function P.onLoad() --wird ausgefuert wenn Fenster geladen
+    P.wrapper = nil
+end
+
+function P.onShow() --wird ausgefuert wenn Dialogfenster gezeigt
+
+    orxonox.CommandExecutor:execute("setTimeFactor 0")
+    P.createDialog()
+    P.showing = true
+
+end
+
+function P.onHide() --aufgefuert wenn Fenster geschlossen wird
+    orxonox.CommandExecutor:execute("setTimeFactor 1")
+    P.showing = false
+    P.cleanup(true)
+end
+
+function P.createDialog() -- initiallisiert das Dialog Fenster, setzt Namen sowie die erste Frage mit enstprechenden Antworten
+
+    local manager = orxonox.DialogManager:getInstance()
+    
+    
+    local personfield = winMgr:getWindow("orxonox/Dialog/Person")
+    local person = manager:getPerson()
+    personfield:setText(person)
+
+    local questionfield = winMgr:getWindow("orxonox/Dialog/Question")
+    local question = manager:getQuestion()
+    questionfield:setText(question)
+
+    local listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    CEGUI.toListbox(listboxwindow):resetList()
+
+    local ansList = {}
+    local anssize = manager:getSize()
+
+    for index = 0, anssize -1, 1 do
+        table.insert(ansList, manager:getAnswer(index))
+    end  
+
+    for k,v in pairs(ansList) do
+        item = CEGUI.createListboxTextItem(v)
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        CEGUI.toListbox(listboxwindow):addItem(item)
+    end
+end
+
+function P.updateDialog()   --updated den Dialog entsprechend der Ausgeaehlten option der letzten Frage, setzt Frage und Antwortmoeglichkeiten neu
+    local manager = orxonox.DialogManager:getInstance()
+    manager:update(P.choice)
+
+    local questionfield = winMgr:getWindow("orxonox/Dialog/Question")
+    local question = manager:getQuestion()
+    questionfield:setText(question)
+
+    local listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    listboxwindow:resetList()
+
+    local ansList = {}
+    local anssize = manager:getSize()
+
+    for index = 0, anssize -1, 1 do
+        table.insert(ansList, manager:getAnswer(index))
+    end  
+
+    for k,v in pairs(ansList) do
+        item = CEGUI.createListboxTextItem(v)
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        CEGUI.toListbox(listboxwindow):addItem(item)
+    end
+
+    P.choice = 0
+end
+
+function P.answer_changed(e)    --wird aufgerufen falls Auswahl geaendert wird und setzt enstprechenden Indexparameter  
+    listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    selection = listboxwindow:getFirstSelectedItem()
+    if selection ~= nil then
+    P.choice = listboxwindow:getItemIndex(selection)
+    else 
+        P.choice = 0
+    end
+end
+
+
+function P.cleanup(destroyDetails)  --loest Fenster wieder auf (!nicht selbst geschrieben, nur uebernommen, eventuell nicht noetiger code)
+
+    if P.wrapper ~= nil then
+        winMgr:destroyWindow(P.wrapper)
+    end
+    
+    --Destroy details windows.
+    if destroyDetails == false then
+        return
+    end
+    for k,v in pairs(P.detailsWindows) do
+        if v ~= nil then
+            P.destroyDetailWindow(k)
+        end
+    end
+    
+end
+
+
+
+function P.Button_clicked(e)    --wird bei click auf say knopf ausgeloest, entscheidet ob Dialog schliesst oder updated und fuert entsprechen aus
+    local ending = orxonox.DialogManager:getInstance():endtest(P.choice)
+    
+    if ending then
+        orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialog")
+    else 
+        P.updateDialog(index)
+    end
+end
+
+return P
Index: code/branches/Presentation_HS17_merge/data/gui/scripts/Dialogue.lua
===================================================================
--- code/branches/Presentation_HS17_merge/data/gui/scripts/Dialogue.lua	(revision 11723)
+++ 	(revision )
@@ -1,144 +1,0 @@
-
--- Dialogue.lua
-
-local P = createMenuSheet("Dialogue")
-
-P.wrapper = nil
-P.detailsWindows = {}
-P.detailPickups = {}
-P.pickupsList = {}
-
-P.showing = false
-
--- Design parameters
-P.imageHeight = 50
-P.detailImageSize = 100
-P.textHeight = 30
-P.buttonWidth = 85
-
-function P.onLoad()
-    P.wrapper = nil
-    P.detailsWindows = {}
-    P.detailPickups = {}
-    P.pickupsList = {}
-end
-
-function P.onShow()
-    orxonox.CommandExecutor:execute("setTimeFactor 0")
-    P.createInventory()
-    P.showing = true
-
-end
-
-function P.onHide()
-    orxonox.CommandExecutor:execute("setTimeFactor 1")
-    P.showing = false
-    P.cleanup(true)
-end
-
-function P.update()
-    P.updateInventory()
-    if P.showing == false then
-        return
-    end
-
-    -- Update opened detail windows.
-    
-
-    -- Update main inventory.
-    P.cleanup(false)
-    P.createInventory()
-    -- TODO: Recover scrolling position
-    
-end
-
-function P.createInventory()
-
-    local pickupManager = orxonox.DialogueManager:getInstance()
-    
-    root = winMgr:getWindow("orxonox/Dialogue/Inventory")
-    local question = orxonox.DialogueManager:getInstance():getquestion()
-    root:setText(question)
-    P.wrapper = winMgr:createWindow("MenuWidgets/ScrollablePane", "orxonox/Dialogue/Inventory/Wrapper")
-    P.wrapper:setSize(CEGUI.UVector2(CEGUI.UDim(1,0),CEGUI.UDim(1,0)))
-    root:addChildWindow(P.wrapper)
-    
-    
-    detailsButton = winMgr:createWindow("MenuWidgets/Button", "/DetailsButton")
-    local a1 = orxonox.DialogueManager:getInstance():getanswers1()
-    detailsButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0.1, 0),CEGUI.UDim(0.25, (P.imageHeight-P.textHeight)/2)))
-    detailsButton:setSize(CEGUI.UVector2(CEGUI.UDim(0.8, 0), CEGUI.UDim(0, P.textHeight)))
-    detailsButton:setText(a1)
-    orxonox.GUIManager:subscribeEventHelper(detailsButton, "Clicked", P.name ..".a1Button_clicked")
-    P.wrapper:addChildWindow(detailsButton)
-
-    a2Button = winMgr:createWindow("MenuWidgets/Button", "/a2Button")
-    local a2 = orxonox.DialogueManager:getInstance():getanswers2()
-    a2Button:setPosition(CEGUI.UVector2(CEGUI.UDim(0.1, 0),CEGUI.UDim(0.4, (P.imageHeight-P.textHeight)/2)))
-    a2Button:setSize(CEGUI.UVector2(CEGUI.UDim(0.8, 0), CEGUI.UDim(0, P.textHeight)))
-    a2Button:setText(a2)
-    orxonox.GUIManager:subscribeEventHelper(a2Button, "Clicked", P.name ..".a2Button_clicked")
-    P.wrapper:addChildWindow(a2Button)
-
-
-end
-
-function P.updateInventory()
-    local questionn = orxonox.DialogueManager:getInstance():getquestion()
-    root:setText(questionn)
-    local a1n = orxonox.DialogueManager:getInstance():getanswers1()
-    detailsButton:setText(a1n)
-    local a2n = orxonox.DialogueManager:getInstance():getanswers2()
-    a2Button:setText(a2n)
-
-end
-
-
-function P.cleanup(destroyDetails)
-    
-    if P.wrapper ~= nil then
-        winMgr:destroyWindow(P.wrapper)
-    end
-    
-    --Destroy details windows.
-    if destroyDetails == false then
-        return
-    end
-    for k,v in pairs(P.detailsWindows) do
-        if v ~= nil then
-            P.destroyDetailWindow(k)
-        end
-    end
-    
-end
-
-
-
-function P.a1Button_clicked(e)
-    local ending = orxonox.DialogueManager:getInstance():theEnd()
-    
-    if ending then
-        orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialogue")
-    
-    
-    else 
-        orxonox.DialogueManager:getInstance():a1clicked()
-        P.update()
-    end
-end
-
-function P.a2Button_clicked(e)
-    local ending = orxonox.DialogueManager:getInstance():theEnd()
-    
-    if ending then
-        orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialogue")
-    
-    
-    else 
-        orxonox.DialogueManager:getInstance():a2clicked()
-        P.update()
-    end
-    
-end
-
-return P
