浏览代码

Working back button in browser

Yentl Van Tendeloo 8 年之前
父节点
当前提交
b28a33d697

+ 0 - 6
classes/main_app.xml

@@ -229,9 +229,6 @@
                     <transition event="mv_request" target=".">
                         <parameter name="name"/>
                         <parameter name="parameters"/>
-                        <script>
-                            print("Raising action to MV: " + str(name))
-                        </script>
                         <raise event="action" scope="narrow" target="'modelverse'">
                             <parameter expr="name"/>
                             <parameter expr="None"/>
@@ -241,9 +238,6 @@
                     </transition>
 
                     <transition event="mv_result" target=".">
-                        <script>
-                            print("Got MV reply: " + str(result))
-                        </script>
                         <parameter name="ID"/>
                         <parameter name="result"/>
                         <raise event="mv_response" scope="broad">

+ 2 - 2
classes/toolbar/generic_toolbar.xml

@@ -1,7 +1,7 @@
 <class name="GenericToolbar">
     <relationships>
         <inheritance class="tk.Frame" priority="1"/>
-        <inheritance class="MvKWidget" priority="0"/>
+        <inheritance class="SCCDWidget" priority="0"/>
         <association name="buttons" class="Button"/>
         <association name="parent" class="A"/>
     </relationships>
@@ -11,7 +11,7 @@
         <super class="tk.Frame">
             <parameter expr="parent"/>
         </super>
-        <super class="MvKWidget"/>
+        <super class="SCCDWidget"/>
         <body>
             self.to_create = ["new", "open"]
             self.button_info = {"new": "Create a new model",

+ 2 - 2
classes/widgets/button.xml

@@ -1,7 +1,7 @@
 <class name="Button">
     <relationships>
         <association name="parent" class="A"/>
-        <inheritance class="MvKWidget" priority='0'/>
+        <inheritance class="SCCDWidget" priority='0'/>
         <inheritance class="tk.Button" priority='1'/>
     </relationships>
     <constructor>
@@ -10,7 +10,7 @@
             <parameter expr="constructor_parameters['parent']"/>
             <parameter expr="**(constructor_parameters['visual'].get_params())"/>
         </super>
-        <super class="MvKWidget">
+        <super class="SCCDWidget">
         </super>
         <body>
             self.event_parameters = constructor_parameters["event_parameters"]

+ 2 - 2
classes/widgets/label.xml

@@ -1,7 +1,7 @@
 <class name="Label">
     <relationships>
         <association name="parent" class="A" min="1" max="1" />
-        <inheritance class="MvKWidget" priority='0'/>
+        <inheritance class="SCCDWidget" priority='0'/>
         <inheritance class="tk.Label" priority='1'/>
     </relationships>
     <constructor>
@@ -10,7 +10,7 @@
             <parameter expr="constructor_parameters['parent']"/>
             <parameter expr="**({'text': constructor_parameters['text'], 'bg': 'white'})"/>
         </super>
-        <super class="MvKWidget">
+        <super class="SCCDWidget">
         </super>
     </constructor>
     <destructor>

+ 2 - 1
classes/widgets/progress_bar.xml

@@ -1,6 +1,6 @@
 <class name="ProgressBar">
     <relationships>
-        <inheritance class="MvKWidget" priority="0"/>
+        <inheritance class="SCCDWidget" priority="0"/>
         <inheritance class="ttk.Progressbar" priority="1"/>
         <association name="parent" class="A"/>
     </relationships>
@@ -11,6 +11,7 @@
             <parameter expr="params['parent']"/>
             <parameter expr="**({'orient': tk.HORIZONTAL})"/>
         </super>
+        <super class="SCCDWidget"/>
         <body>
             self.value = tk.DoubleVar()
             self.configure(variable=self.value)

+ 7 - 3
classes/window/browser.xml

@@ -1,7 +1,7 @@
 <class name="Browser">
     <relationships>
         <inheritance class="tk.Toplevel" priority="1"/>
-        <inheritance class="MvKWidget" priority="0"/>
+        <inheritance class="SCCDWidget" priority="0"/>
         <association name="buttons" class="Button"/>
         <association name="labels" class="Label"/>
         <association name="parent" class="A"/>
@@ -12,7 +12,7 @@
         <parameter name="prompt"/>
         <parameter name="filter_metamodels" default="None"/>
         <super class="tk.TopLevel"/>
-        <super class="MvKWidget"/>
+        <super class="SCCDWidget"/>
         <body>
             tk.Label(self, text=prompt).pack()
             self.browser_frame = tk.Frame(self)
@@ -173,7 +173,11 @@
                     <transition event="button_pressed" cond="event_name == 'UP' and self.current_location != ''" target=".">
                         <parameter name="event_name"/>
                         <script>
-                            self.current_location = self.current_location[:-1].rsplit("/", 1)[0] + "/"
+                            split = self.current_location[:-1].rsplit("/", 1)
+                            if len(split) == 1:
+                                self.current_location = ""
+                            else:
+                                self.current_location = split[0] + "/"
                             self.selected_label = None
                         </script>
 

+ 2 - 2
classes/window/main_window.xml

@@ -1,7 +1,7 @@
 <class name="MainWindow">
     <relationships>
         <inheritance class="tk.Toplevel" priority="1"/>
-        <inheritance class="MvKWidget" priority="0"/>
+        <inheritance class="SCCDWidget" priority="0"/>
         <association name="parent" class="A"/>
         <association name="toolbars" class="Toolbar"/>
         <association name="browsers" class="Browser"/>
@@ -9,7 +9,7 @@
 
     <constructor>
         <super class="tk.TopLevel"/>
-        <super class="MvKWidget"/>
+        <super class="SCCDWidget"/>
         <body>
             self.current_model = None
             self.metamodel = None

+ 2 - 2
classes/window/prompt_window.xml

@@ -1,7 +1,7 @@
 <class name="PromptWindow">
     <relationships>
         <inheritance class="tk.Toplevel" priority="1"/>
-        <inheritance class="MvKWidget" priority="0"/>
+        <inheritance class="SCCDWidget" priority="0"/>
         <association name="buttons" class="Button"/>
         <association name="parent" class="A"/>
     </relationships>
@@ -10,7 +10,7 @@
         <parameter name="entries"/>
         <parameter name="options"/>
         <super class="tk.TopLevel"/>
-        <super class="MvKWidget"/>
+        <super class="SCCDWidget"/>
         <body>
             self.entries = {}
 

+ 1 - 1
frontend.xml

@@ -6,7 +6,7 @@
     <top>
         import Tkinter as tk
         import ttk
-        from mvk_widget import MvKWidget, ImageVisual, TextVisual, ToolTip
+        from sccd_widget import SCCDWidget, ImageVisual, TextVisual, ToolTip
         import uuid
         import json
         import urllib

+ 4 - 10
runner.py

@@ -1,20 +1,14 @@
-'''
-Created on 20-Jan.-2017
-
-@author: Addis G.
-'''
-
 import Tkinter as tk
 import frontend
 from sccd.runtime.tkinter_eventloop import *
 import sccd.runtime.socket2event as socket2event
 
-from mvk_widget import MvKWidget
+from sccd_widget import SCCDWidget
 
-class Root(tk.Tk, MvKWidget):
+class Root(tk.Tk, SCCDWidget):
     def __init__(self):
         tk.Tk.__init__(self)
-        MvKWidget.__init__(self)
+        SCCDWidget.__init__(self)
 
 if __name__ == '__main__':
     root = Root()
@@ -22,6 +16,6 @@ if __name__ == '__main__':
     controller = frontend.Controller(root, TkEventLoop(root))
     socket2event.boot_translation_service(controller)
 
-    MvKWidget.controller = controller
+    SCCDWidget.controller = controller
     controller.start()
     root.mainloop()

+ 13 - 18
mvk_widget.py

@@ -10,7 +10,7 @@ import Tkinter as tk
 import atexit
 from sccd.runtime.statecharts_core import Event
 
-class MvKWidget:
+class SCCDWidget:
     controller = None
 
     def __init__(self, configure_later=False):
@@ -59,7 +59,7 @@ class MvKWidget:
         event_name= "scroll_mousewheel"
         self.last_x = event.x
         self.last_y = event.y
-        MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def zoom_in(self, event):
@@ -69,7 +69,7 @@ class MvKWidget:
         if self.zoomer_count <=6:
             self.event_delta = 120
             self.zoomer_count +=1
-        MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def zoom_out(self, event):
@@ -79,7 +79,7 @@ class MvKWidget:
         if self.zoomer_count >=-6:
             self.event_delta = -120
             self.zoomer_count -=1
-        MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def on_dbclick(self, event):
@@ -95,7 +95,7 @@ class MvKWidget:
         if event_name:
             self.last_x = event.x
             self.last_y = event.y
-            MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+            SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def on_click(self, event):
@@ -110,7 +110,7 @@ class MvKWidget:
         if event_name:
             self.last_x = event.x
             self.last_y = event.y
-            MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+            SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def on_release(self, event):
@@ -126,21 +126,21 @@ class MvKWidget:
         if event_name:
             self.last_x = event.x
             self.last_y = event.y
-            MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+            SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def on_motion(self, event):
         self.last_x = event.x
         self.last_y = event.y
-        MvKWidget.controller.addInput(Event("motion", "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event("motion", "input", [id(self)]))
         return "break"
 
     def on_enter(self, event):
-        MvKWidget.controller.addInput(Event("enter", "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event("enter", "input", [id(self)]))
         return "break"
 
     def on_leave(self, event):
-        MvKWidget.controller.addInput(Event("leave", "input", [id(self)]))
+        SCCDWidget.controller.addInput(Event("leave", "input", [id(self)]))
         return "break"
 
     def on_key(self, event):
@@ -166,7 +166,7 @@ class MvKWidget:
             event_name = "down_key"
 
         if event_name:
-            MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+            SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def on_key_release(self, event):
@@ -184,12 +184,11 @@ class MvKWidget:
             event_name = "control-release"
 
         if event_name:
-            MvKWidget.controller.addInput(Event(event_name, "input", [id(self)]))
+            SCCDWidget.controller.addInput(Event(event_name, "input", [id(self)]))
         return "break"
 
     def window_close(self):
-        MvKWidget.controller.addInput(Event("window-close", "input", [id(self)]))
-
+        SCCDWidget.controller.addInput(Event("window-close", "input", [id(self)]))
 
 class HorizontalScrolledFrame(tk.Frame):
     def __init__(self, parent, *args, **kw):
@@ -221,7 +220,6 @@ class HorizontalScrolledFrame(tk.Frame):
 
         interior.bind('<Configure>', _configure_interior)
 
-
 class VerticalScrolledFrame(tk.Frame):
     def __init__(self, parent, *args, **kw):
         tk.Frame.__init__(self, parent, *args, **kw)
@@ -285,7 +283,6 @@ class Visual(object):
     def get_params(self):
         raise NotImplementedError()
 
-
 class TextVisual(Visual):
     def __init__(self, text):
         super(TextVisual, self).__init__()
@@ -294,7 +291,6 @@ class TextVisual(Visual):
     def get_params(self):
         return {'text': self.text}
 
-
 class ImageVisual(Visual):
     def __init__(self, img_loc):
         super(ImageVisual, self).__init__()
@@ -303,7 +299,6 @@ class ImageVisual(Visual):
     def get_params(self):
         return {'image': self.img}
 
-
 class ToolTip:
     def __init__(self, widget, text):
         self.widget = widget