| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- <class name="ChatWindow" default="true">
- <relationships>
- <association name="client" class="NetworkClient"/>
- </relationships>
- <method name="ChatWindow">
- <parameter name="my_controller"/>
- <body><![CDATA[
- self.colors = {'service': 'black', 'me': 'red', 'other': 'blue'}
- self.numbers = set([str(c) for c in range(10)])
- self.characters = set([chr(c) for c in range(32,126)])
- self.server_list = [('localhost', 8000), ('localhost', 8001)]
- self.connecting_server = 0
- self.buffer = ''
- self.my_controller = my_controller
- try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlight","args":{}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></body>
- </method>
- <method name="add_message">
- <parameter name="msg"/>
- <parameter name="color"/>
- <body><![CDATA[
- self.my_controller.addMessage(msg, color)
- ]]></body>
- </method>
- <method name="append_to_buffer">
- <parameter name="character"/>
- <body><![CDATA[
- self.buffer = ''.join([self.buffer, character])
- self.my_controller.redraw_buffer(self.buffer)
- ]]></body>
- </method>
- <method name="remove_last_in_buffer">
- <body><![CDATA[
- self.buffer = self.buffer[:-1]
- self.my_controller.redraw_buffer(self.buffer)
- ]]></body>
- </method>
- <method name="clear_input">
- <body><![CDATA[
- self.buffer = ''
- self.my_controller.redraw_buffer(self.buffer)
- ]]></body>
- </method>
- <method name="input_join">
- <body><![CDATA[self.my_controller.setColor('green')
- ]]></body>
- </method>
- <method name="input_msg">
- <body><![CDATA[self.my_controller.setColor('white')
- ]]></body>
- </method>
- <method name="input_command">
- <body><![CDATA[self.my_controller.setColor('grey')
- ]]></body>
- </method>
- <method name="get_buffer">
- <body><![CDATA[return self.buffer
- ]]></body>
- </method>
- <scxml initial="init_network" priority="source_child">
- <state id="connecting">
- <transition event="connected" target="./../connected" >
- </transition>
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"232","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- <raise event="connect" scope="broad">
- <parameter expr="'localhost'"/>
- <parameter expr="8000"/>
- </raise>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"232"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- <state id="leaving">
- <transition event="left" target="./../left" >
- </transition>
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"233","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- self.add_message('leaving', self.colors['service'])]]></script>
- <raise event="leave" scope="broad">
- </raise>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"233"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- <state id="joined">
- <transition event="input" cond="character == 'k'" port="tkinter_input" target="./../leaving" >
- <parameter name="character"/>
- </transition>
- <transition after="10.0" target="./../leaving" >
- </transition>
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"228","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- self.add_message('joined room', self.colors['service'])]]></script>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"228"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- <state id="left">
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"229","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- self.add_message('left room', self.colors['service'])]]></script>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"229"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- <state id="connected">
- <transition event="joined" target="./../joined" >
- </transition>
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"230","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- self.add_message('joining room 1', self.colors['service'])]]></script>
- <raise event="join" scope="broad">
- <parameter expr="1"/>
- </raise>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"230"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- <state id="init_network">
- <transition event="instance_created" target="./../connecting" >
- <parameter name="association_name"/>
- <raise event="start_instance" scope="cd">
- <parameter expr="association_name"/>
- </raise>
- </transition>
- <onentry>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_highlightState","args":{"asid":"226","followCrossFormalismLinks":"*"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- <raise event="create_instance" scope="cd">
- <parameter expr="'client'"/>
- </raise>
- </onentry>
- <onexit>
- <script><![CDATA[try:
- data = json.dumps({'text':'CLIENT_BDAPI :: {"func":"_unhighlightState","args":{"asid":"226"}}'})
- headers = {'Content-Type': 'text/plain'}
- conn = httplib.HTTPConnection('127.0.0.1:8124')
- conn.request('PUT', '/GET/console?wid=5', data, headers)
- conn.getresponse()
- conn.close()
- except:
- pass
- ]]></script>
- </onexit>
- </state>
- </scxml>
- </class>
|