Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/cca/rev/6a24f9bb0d51
Дата изменения: Unknown
Дата индексирования: Mon Oct 1 23:07:22 2012
Кодировка:
cca: 6a24f9bb0d51

cca

changeset 30:6a24f9bb0d51

Automated merge with ssh://kodomo.fbb.msu.ru/cca
author is_rusinov
date Sun, 05 Dec 2010 02:06:46 +0300
parents 4c047a06b6a3 315a5fdf099e
children 4f04a0141d3f
files
diffstat 1 files changed, 48 insertions(+), 22 deletions(-) [+]
line diff
     1.1 --- a/Interface.py	Sun Dec 05 01:38:23 2010 +0300
     1.2 +++ b/Interface.py	Sun Dec 05 02:06:46 2010 +0300
     1.3 @@ -19,6 +19,7 @@
     1.4  		self.zoom_divisor = 10
     1.5  		self.is_started = False
     1.6  		self.keys = dict()
     1.7 +		self.draw()
     1.8  	def start(self):
     1.9  		if not self.is_started:
    1.10  			self.is_started = True
    1.11 @@ -26,7 +27,7 @@
    1.12  			self.after_id = canvas.after(self.delay, self.start)
    1.13  	
    1.14  	def stop(self):
    1.15 -		self.canvas.after_cancel(self.after_id)
    1.16 +		canvas.after_cancel(self.after_id)
    1.17  		self.is_started = False
    1.18  	
    1.19  	def next_step(self):
    1.20 @@ -39,10 +40,10 @@
    1.21  	def open_file(self):
    1.22  		pass
    1.23  	
    1.24 -	def help(self):
    1.25 +	def show_help_window(self):
    1.26  		pass
    1.27  	
    1.28 -	def close_help_window(self):
    1.29 +	def hide_help_window(self):
    1.30  		pass
    1.31  	
    1.32  	def zoom_in(self, zoom_rate=1):
    1.33 @@ -59,7 +60,7 @@
    1.34  		self.delay = self.delay + speed_rate
    1.35  	
    1.36  	def faster(self, speed_rate=1):
    1.37 -		if self.speed > speed_rate:
    1.38 +		if self.delay > speed_rate:
    1.39  			self.delay = self.delay - speed_rate
    1.40  		else:
    1.41  			self.delay = 0
    1.42 @@ -155,35 +156,60 @@
    1.43  		automata_frame.pack(side="right", fill="y", expand="no", before=canvas)
    1.44  	
    1.45  	def to_top(self):# replace choosen state to top
    1.46 -		index = symbols.get(state_list.get("active").split()[1])
    1.47 -		state = states[index]
    1.48 -		del states[index]
    1.49 -		states.insert(0, state)
    1.50 +		index = automata.symbols.get(state_list.get("active").split()[1])
    1.51 +		state = automata.states[index]
    1.52 +		del automata.states[index]
    1.53 +		automata.states.insert(0, state)
    1.54  	
    1.55  	def to_bottom(self):# replace choosen state to botton
    1.56 -		index = symbols.get(state_list.get("active").split()[1])
    1.57 -		state = states[index]
    1.58 -		del states[index]
    1.59 -		states.append(state)
    1.60 +		index = automata.symbols.get(state_list.get("active").split()[1])
    1.61 +		state = automata.states[index]
    1.62 +		del automata.states[index]
    1.63 +		automata.states.append(state)
    1.64  	
    1.65  	def upwards(self):
    1.66 -		index = symbols.get(state_list.get("active").split()[1])
    1.67 -		state = states[index]
    1.68 -		del states[index]
    1.69 -		states.insert(index - 1, state)
    1.70 +		index = automata.symbols.get(state_list.get("active").split()[1])
    1.71 +		state = automata.states[index]
    1.72 +		del automata.states[index]
    1.73 +		automata.states.insert(index - 1, state)
    1.74  	
    1.75  	def downwards(self):
    1.76 -		index = symbols.get(state_list.get("active").split()[1])
    1.77 -		state = states[index]
    1.78 -		del states[index]
    1.79 -		states.insert(index + 1, state)
    1.80 +		index = automata.symbols.get(state_list.get("active").split()[1])
    1.81 +		state = automata.states[index]
    1.82 +		del automata.states[index]
    1.83 +		automata.states.insert(index + 1, state)
    1.84  	
    1.85  	def delete_state(self):# delete choosen state
    1.86 -		index = symbols.get(state_list.get("active").split()[1])
    1.87 -		del states[index]
    1.88 +		index = automata.symbols.get(state_list.get("active").split()[1])
    1.89 +		del automata.states[index]
    1.90  	
    1.91  	def add(self):# add new state
    1.92  		pass
    1.93 +		name = state_name.get()
    1.94 +		symbol = state_sympob.get()
    1.95 +		key = lower(state_key.get())
    1.96 +		color = state_color.get()
    1.97 +		nums = []
    1.98 +		for i, value in enumerate(ckeckbox_nums):
    1.99 +			if value:
   1.100 +				nums.append(i)
   1.101 +		if self.keys.has_key(key):
   1.102 +			error.config(text="State with such key has already existed")
   1.103 +			state_key.focus()
   1.104 +		elif len(key) != 1:
   1.105 +			error.config(text="Bad key for state")
   1.106 +			state_key.focus()
   1.107 +		elif automata.symbols.has_key(symbol):
   1.108 +			error.config(text="State with such symbol has already existed")
   1.109 +			state_symbol.focus()
   1.110 +		elif len(symbol) != 1:
   1.111 +			error.config(text="Bad symbol for state")
   1.112 +			state_symbol.focus()
   1.113 +		else:
   1.114 +			state = State(name, symbol, color, nums)
   1.115 +			automata.states.append(state)
   1.116 +			automata.symbols(symbol) = len(automata.states) - 1
   1.117 +			self.keys(key) = len(automata.states) - 1
   1.118  	
   1.119  	def change(self):# change chosen state
   1.120  		pass