File: Action.py

package info (click to toggle)
jython 2.5.3-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 43,304 kB
  • sloc: python: 351,314; java: 216,338; xml: 1,547; sh: 330; perl: 124; ansic: 102; makefile: 101
file content (40 lines) | stat: -rw-r--r-- 1,002 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# I don't really like the design of this one...
from pawt import swing

class Action(swing.AbstractAction):
	def __init__(self, name, action=None, icon=None, description=None, needEvent=0):
		if action is None:
			action = name
			name = action.__name__

		#swing.AbstractAction.__init__(self, name)
		self.name = name
		self.icon = icon
		if icon:
			self.setIcon(swing.Action.SMALL_ICON, icon)
		if description:
			self.setText(swing.Action.SHORT_DESCRIPTION, description)
			self.description = description
		else:
			self.description = name
		self.action = action

		self.enabled = 1
		self.needEvent = needEvent

	def actionPerformed(self, event):
		if self.needEvent:
			self.action(event)
		else:
			self.action()

	def createMenuItem(self):
		mi = swing.JMenuItem(self.name, actionListener=self, enabled=self.enabled)
		return mi

class TargetAction(Action):
	def actionPerformed(self, event):
		if self.needEvent:
			self.action(self.getTarget(), event)
		else:
			self.action(self.getTarget())