[Jython-checkins] jython: Clean up Demo directory Python content for readability
jeff.allen
jython-checkins at python.org
Thu Jul 12 06:41:17 EDT 2018
https://hg.python.org/jython/rev/c532fa336c22
changeset: 8172:c532fa336c22
user: Richie Bendall <richiebendall at gmail.com>
date: Thu Jul 12 11:30:49 2018 +0100
summary:
Clean up Demo directory Python content for readability
White-space changes (hard tabs and other cruft) to improve readability
using AutoPEP8 and Autoflake.
files:
ACKNOWLEDGMENTS | 1 +
Demo/applet/deprecated/ButtonDemo.py | 27 +-
Demo/applet/deprecated/ButtonFontDemo.py | 29 +-
Demo/applet/deprecated/CheckboxDemo.py | 42 +-
Demo/applet/deprecated/ChoiceDemo.py | 23 +-
Demo/applet/deprecated/Converter.py | 112 +-
Demo/applet/deprecated/CoordinatesDemo.py | 55 +-
Demo/applet/deprecated/HelloApplet.py | 11 +-
Demo/applet/deprecated/HelloWorld.py | 3 +-
Demo/applet/deprecated/LabelDemo.py | 11 +-
Demo/applet/deprecated/ListDemo.py | 59 +-
Demo/awt/Colors.py | 15 +-
Demo/awt/Graph.py | 110 +-
Demo/awt/simple.py | 2 +
Demo/bean/TempConverter.py | 54 +-
Demo/javaclasses/deprecated/Graph.py | 116 +-
Demo/modjy_webapp/demo_app.py | 21 +-
Demo/swing/JythonConsole/Action.py | 63 +-
Demo/swing/JythonConsole/Console.py | 336 +++++----
Demo/swing/JythonConsole/Keymap.py | 131 ++-
Demo/swing/JythonConsole/Styles.py | 51 +-
Demo/swing/ListDemo.py | 1 -
Demo/swing/ObjectTree.py | 23 +-
Demo/swing/TreeDemo.py | 58 +-
Demo/swing/simple.py | 2 +
25 files changed, 700 insertions(+), 656 deletions(-)
diff --git a/ACKNOWLEDGMENTS b/ACKNOWLEDGMENTS
--- a/ACKNOWLEDGMENTS
+++ b/ACKNOWLEDGMENTS
@@ -180,6 +180,7 @@
Mat Booth
Alex Gaman
Tom Bech
+ Richie Bendall
Local Variables:
mode: indented-text
diff --git a/Demo/applet/deprecated/ButtonDemo.py b/Demo/applet/deprecated/ButtonDemo.py
--- a/Demo/applet/deprecated/ButtonDemo.py
+++ b/Demo/applet/deprecated/ButtonDemo.py
@@ -6,27 +6,28 @@
from java import awt, applet
+
class ButtonDemo(applet.Applet):
def init(self):
- self.b1 = awt.Button('Disable middle button',
- actionPerformed=self.disable)
- self.b2 = awt.Button('Middle button')
- self.b3 = awt.Button('Enable middle button',
- enabled=0, actionPerformed=self.enable)
+ self.b1 = awt.Button('Disable middle button',
+ actionPerformed=self.disable)
+ self.b2 = awt.Button('Middle button')
+ self.b3 = awt.Button('Enable middle button',
+ enabled=0, actionPerformed=self.enable)
- self.add(self.b1)
- self.add(self.b2)
- self.add(self.b3)
+ self.add(self.b1)
+ self.add(self.b2)
+ self.add(self.b3)
def enable(self, event):
- self.b1.enabled = self.b2.enabled = 1
- self.b3.enabled = 0
+ self.b1.enabled = self.b2.enabled = 1
+ self.b3.enabled = 0
def disable(self, event):
- self.b1.enabled = self.b2.enabled = 0
- self.b3.enabled = 1
+ self.b1.enabled = self.b2.enabled = 0
+ self.b3.enabled = 1
-if __name__ == '__main__':
+if __name__ == '__main__':
import pawt
pawt.test(ButtonDemo())
diff --git a/Demo/applet/deprecated/ButtonFontDemo.py b/Demo/applet/deprecated/ButtonFontDemo.py
--- a/Demo/applet/deprecated/ButtonFontDemo.py
+++ b/Demo/applet/deprecated/ButtonFontDemo.py
@@ -6,28 +6,29 @@
from java import awt, applet
+
class ButtonFontDemo(applet.Applet):
def init(self):
- self.font = awt.Font('Serif', 0, 24)
- self.b1 = awt.Button('Disable middle button',
- actionPerformed=self.disable)
- self.b2 = awt.Button('Middle button')
- self.b3 = awt.Button('Enable middle button',
- enabled=0, actionPerformed=self.enable)
+ self.font = awt.Font('Serif', 0, 24)
+ self.b1 = awt.Button('Disable middle button',
+ actionPerformed=self.disable)
+ self.b2 = awt.Button('Middle button')
+ self.b3 = awt.Button('Enable middle button',
+ enabled=0, actionPerformed=self.enable)
- self.add(self.b1)
- self.add(self.b2)
- self.add(self.b3)
+ self.add(self.b1)
+ self.add(self.b2)
+ self.add(self.b3)
def enable(self, event):
- self.b1.enabled = self.b2.enabled = 1
- self.b3.enabled = 0
+ self.b1.enabled = self.b2.enabled = 1
+ self.b3.enabled = 0
def disable(self, event):
- self.b1.enabled = self.b2.enabled = 0
- self.b3.enabled = 1
+ self.b1.enabled = self.b2.enabled = 0
+ self.b3.enabled = 1
-if __name__ == '__main__':
+if __name__ == '__main__':
import pawt
pawt.test(ButtonFontDemo())
diff --git a/Demo/applet/deprecated/CheckboxDemo.py b/Demo/applet/deprecated/CheckboxDemo.py
--- a/Demo/applet/deprecated/CheckboxDemo.py
+++ b/Demo/applet/deprecated/CheckboxDemo.py
@@ -6,36 +6,36 @@
from java import awt, applet
+
class CheckboxDemo(applet.Applet):
def init(self):
- cb1 = awt.Checkbox('Checkbox 1')
- cb2 = awt.Checkbox('Checkbox 2')
- cb3 = awt.Checkbox('Checkbox 3', state=1)
+ cb1 = awt.Checkbox('Checkbox 1')
+ cb2 = awt.Checkbox('Checkbox 2')
+ cb3 = awt.Checkbox('Checkbox 3', state=1)
- p1 = awt.Panel(layout=awt.FlowLayout())
+ p1 = awt.Panel(layout=awt.FlowLayout())
- p1.add(cb1)
- p1.add(cb2)
- p1.add(cb3)
+ p1.add(cb1)
+ p1.add(cb2)
+ p1.add(cb3)
- cbg = awt.CheckboxGroup()
- cb4 = awt.Checkbox('Checkbox 4', cbg, 0)
- cb5 = awt.Checkbox('Checkbox 5', cbg, 0)
- cb6 = awt.Checkbox('Checkbox 6', cbg, 0)
+ cbg = awt.CheckboxGroup()
+ cb4 = awt.Checkbox('Checkbox 4', cbg, 0)
+ cb5 = awt.Checkbox('Checkbox 5', cbg, 0)
+ cb6 = awt.Checkbox('Checkbox 6', cbg, 0)
- p2 = awt.Panel(layout=awt.FlowLayout())
- p2.add(cb4)
- p2.add(cb5)
- p2.add(cb6)
+ p2 = awt.Panel(layout=awt.FlowLayout())
+ p2.add(cb4)
+ p2.add(cb5)
+ p2.add(cb6)
- self.setLayout(awt.GridLayout(0, 2))
- self.add(p1)
- self.add(p2)
+ self.setLayout(awt.GridLayout(0, 2))
+ self.add(p1)
+ self.add(p2)
- self.validate()
+ self.validate()
-if __name__ == '__main__':
+if __name__ == '__main__':
import pawt
pawt.test(CheckboxDemo())
-
diff --git a/Demo/applet/deprecated/ChoiceDemo.py b/Demo/applet/deprecated/ChoiceDemo.py
--- a/Demo/applet/deprecated/ChoiceDemo.py
+++ b/Demo/applet/deprecated/ChoiceDemo.py
@@ -6,21 +6,22 @@
from java import awt, applet
-class ChoiceDemo(applet.Applet):
- def init(self):
- self.choices = awt.Choice(itemStateChanged = self.change)
- for item in ['ichi', 'ni', 'san', 'yon']:
- self.choices.addItem(item)
- self.label = awt.Label()
- self.change()
+class ChoiceDemo(applet.Applet):
+ def init(self):
+ self.choices = awt.Choice(itemStateChanged=self.change)
+ for item in ['ichi', 'ni', 'san', 'yon']:
+ self.choices.addItem(item)
- self.add(self.choices)
- self.add(self.label)
+ self.label = awt.Label()
+ self.change()
+
+ self.add(self.choices)
+ self.add(self.label)
def change(self, event=None):
- selection = self.choices.selectedIndex, self.choices.selectedItem
- self.label.text = 'Item #%d selected. Text = "%s".' % selection
+ selection = self.choices.selectedIndex, self.choices.selectedItem
+ self.label.text = 'Item #%d selected. Text = "%s".' % selection
if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/Converter.py b/Demo/applet/deprecated/Converter.py
--- a/Demo/applet/deprecated/Converter.py
+++ b/Demo/applet/deprecated/Converter.py
@@ -10,102 +10,98 @@
from pawt import GridBag
basicUnits = [['Metric System', [('Centimeters', 0.01),
- ('Meters', 1.0),
- ('Kilometers', 1000.0)]],
- ['U.S. System', [('Inches', 0.0254),
- ('Feet', 0.305),
- ('Yards', 0.914),
- ('Miles', 1613.0)]]
- ]
-
+ ('Meters', 1.0),
+ ('Kilometers', 1000.0)]],
+ ['U.S. System', [('Inches', 0.0254),
+ ('Feet', 0.305),
+ ('Yards', 0.914),
+ ('Miles', 1613.0)]]
+ ]
class SimpleBorder:
def paint(self, g):
- g.drawRect(0,0,self.size.width-1, self.size.height-1)
+ g.drawRect(0, 0, self.size.width-1, self.size.height-1)
def getInsets(self):
- return awt.Insets(5,5,5,5)
-
+ return awt.Insets(5, 5, 5, 5)
class Converter(Applet, SimpleBorder):
def init(self, unitSets=basicUnits):
- self.setLayout(awt.GridLayout(2,0,5,5))
- self.panels = []
- for name, units in unitSets:
- panel = ConversionPanel(name, units, self)
- self.panels.append(panel)
- self.add(panel)
+ self.setLayout(awt.GridLayout(2, 0, 5, 5))
+ self.panels = []
+ for name, units in unitSets:
+ panel = ConversionPanel(name, units, self)
+ self.panels.append(panel)
+ self.add(panel)
def convert(self, master):
- value = master.getValue()
- multiplier = master.getMultiplier()
+ value = master.getValue()
+ multiplier = master.getMultiplier()
- for panel in self.panels:
- if panel is not master:
- panel.setValue(multiplier/panel.getMultiplier()*value)
-
+ for panel in self.panels:
+ if panel is not master:
+ panel.setValue(multiplier/panel.getMultiplier()*value)
class ConversionPanel(awt.Panel, SimpleBorder,
- ActionListener, AdjustmentListener, ItemListener):
+ ActionListener, AdjustmentListener, ItemListener):
max, block = 10000, 100
def __init__(self, title, units, controller):
- self.units = units
- self.controller = controller
+ self.units = units
+ self.controller = controller
- bag = GridBag(self, fill='HORIZONTAL')
+ bag = GridBag(self, fill='HORIZONTAL')
- label = awt.Label(title, awt.Label.CENTER)
- bag.addRow(label)
+ label = awt.Label(title, awt.Label.CENTER)
+ bag.addRow(label)
- self.text = awt.TextField('0', 10, actionListener=self)
- bag.add(self.text, weightx=1.0)
+ self.text = awt.TextField('0', 10, actionListener=self)
+ bag.add(self.text, weightx=1.0)
- self.chooser = awt.Choice(itemListener=self)
- for name, multiplier in units:
- self.chooser.add(name)
- bag.addRow(self.chooser)
+ self.chooser = awt.Choice(itemListener=self)
+ for name, multiplier in units:
+ self.chooser.add(name)
+ bag.addRow(self.chooser)
- self.slider = awt.Scrollbar(awt.Scrollbar.HORIZONTAL,
- maximum=self.max+10,
- blockIncrement=self.block,
- adjustmentListener=self)
- bag.add(self.slider)
+ self.slider = awt.Scrollbar(awt.Scrollbar.HORIZONTAL,
+ maximum=self.max+10,
+ blockIncrement=self.block,
+ adjustmentListener=self)
+ bag.add(self.slider)
def getMultiplier(self):
- return self.units[self.chooser.selectedIndex][1]
+ return self.units[self.chooser.selectedIndex][1]
def getValue(self):
- try:
- return float(self.text.getText())
- except:
- return 0.0
+ try:
+ return float(self.text.getText())
+ except:
+ return 0.0
def actionPerformed(self, e):
- self.setSlider(self.getValue())
- self.controller.convert(self)
+ self.setSlider(self.getValue())
+ self.controller.convert(self)
def itemStateChanged(self, e):
- self.controller.convert(self)
+ self.controller.convert(self)
def adjustmentValueChanged(self, e):
- self.text.setText(str(e.getValue()))
- self.controller.convert(self)
+ self.text.setText(str(e.getValue()))
+ self.controller.convert(self)
def setValue(self, v):
- self.text.setText(str(v))
- self.setSlider(v)
+ self.text.setText(str(v))
+ self.setSlider(v)
def setSlider(self, f):
- if f > self.max:
- f = self.max
- if f < 0:
- f = 0
- self.slider.value = int(f)
-
+ if f > self.max:
+ f = self.max
+ if f < 0:
+ f = 0
+ self.slider.value = int(f)
if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/CoordinatesDemo.py b/Demo/applet/deprecated/CoordinatesDemo.py
--- a/Demo/applet/deprecated/CoordinatesDemo.py
+++ b/Demo/applet/deprecated/CoordinatesDemo.py
@@ -10,58 +10,55 @@
class CoordinatesDemo(applet.Applet):
def init(self):
- bag = GridBag(self)
+ bag = GridBag(self)
- self.framedArea = FramedArea(self)
- bag.addRow(self.framedArea, weighty=1.0, fill='BOTH')
+ self.framedArea = FramedArea(self)
+ bag.addRow(self.framedArea, weighty=1.0, fill='BOTH')
- self.label = awt.Label('Click within the framed area')
- bag.addRow(self.label, weightx=1.0, weighty=0.0, fill='HORIZONTAL')
+ self.label = awt.Label('Click within the framed area')
+ bag.addRow(self.label, weightx=1.0, weighty=0.0, fill='HORIZONTAL')
def updateLabel(self, point):
- text = 'Click occurred at coordinate (%d, %d).'
- self.label.text = text % (point.x, point.y)
-
+ text = 'Click occurred at coordinate (%d, %d).'
+ self.label.text = text % (point.x, point.y)
class FramedArea(awt.Panel):
def __init__(self, controller):
- self.background = awt.Color.lightGray
- self.setLayout(awt.GridLayout(1,0))
+ self.background = awt.Color.lightGray
+ self.setLayout(awt.GridLayout(1, 0))
- self.add(CoordinateArea(controller))
+ self.add(CoordinateArea(controller))
def getInsets(self):
- return awt.Insets(4,4,5,5)
+ return awt.Insets(4, 4, 5, 5)
def paint(self, g):
- d = self.size
+ d = self.size
- g.color = self.background
- g.draw3DRect(0, 0, d.width-1, d.height-1, 1)
- g.draw3DRect(3, 3, d.width-7, d.height-7, 1)
-
+ g.color = self.background
+ g.draw3DRect(0, 0, d.width-1, d.height-1, 1)
+ g.draw3DRect(3, 3, d.width-7, d.height-7, 1)
class CoordinateArea(awt.Canvas):
def __init__(self, controller):
- self.mousePressed = self.push
- self.controller = controller
+ self.mousePressed = self.push
+ self.controller = controller
def push(self, e):
- try:
- self.point.x = e.x
- self.point.y = e.y
- except AttributeError:
- self.point = awt.Point(e.x, e.y)
+ try:
+ self.point.x = e.x
+ self.point.y = e.y
+ except AttributeError:
+ self.point = awt.Point(e.x, e.y)
- self.repaint()
+ self.repaint()
def paint(self, g):
- if hasattr(self, 'point'):
- self.controller.updateLabel(self.point)
- g.fillRect(self.point.x-1, self.point.y-1, 2, 2)
-
+ if hasattr(self, 'point'):
+ self.controller.updateLabel(self.point)
+ g.fillRect(self.point.x-1, self.point.y-1, 2, 2)
if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/HelloApplet.py b/Demo/applet/deprecated/HelloApplet.py
--- a/Demo/applet/deprecated/HelloApplet.py
+++ b/Demo/applet/deprecated/HelloApplet.py
@@ -19,10 +19,11 @@
from java import awt, applet
+
class HelloApplet(applet.Applet):
def paint(self, g):
- g.setColor(awt.Color.black)
- g.fill3DRect(5,5,590,100,0)
- g.setFont(awt.Font('Arial', 0, 80))
- g.setColor(awt.Color.blue)
- g.drawString('Hello World', 90, 80)
+ g.setColor(awt.Color.black)
+ g.fill3DRect(5, 5, 590, 100, 0)
+ g.setFont(awt.Font('Arial', 0, 80))
+ g.setColor(awt.Color.blue)
+ g.drawString('Hello World', 90, 80)
diff --git a/Demo/applet/deprecated/HelloWorld.py b/Demo/applet/deprecated/HelloWorld.py
--- a/Demo/applet/deprecated/HelloWorld.py
+++ b/Demo/applet/deprecated/HelloWorld.py
@@ -1,9 +1,10 @@
from java.applet import Applet
import sys
+
class HelloWorld(Applet):
def paint(self, g):
- g.drawString("Hello from Jython %s!" % sys.version, 20, 30)
+ g.drawString("Hello from Jython %s!" % sys.version, 20, 30)
if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/LabelDemo.py b/Demo/applet/deprecated/LabelDemo.py
--- a/Demo/applet/deprecated/LabelDemo.py
+++ b/Demo/applet/deprecated/LabelDemo.py
@@ -7,12 +7,13 @@
from java import applet
from java.awt import Label, GridLayout
-class LabelDemo(applet.Applet):
+
+class LabelDemo(applet.Applet):
def init(self):
- self.setLayout(GridLayout(0,1))
- self.add(Label('Left'))
- self.add(Label('Center', Label.CENTER))
- self.add(Label('Right', Label.RIGHT))
+ self.setLayout(GridLayout(0, 1))
+ self.add(Label('Left'))
+ self.add(Label('Center', Label.CENTER))
+ self.add(Label('Right', Label.RIGHT))
if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/ListDemo.py b/Demo/applet/deprecated/ListDemo.py
--- a/Demo/applet/deprecated/ListDemo.py
+++ b/Demo/applet/deprecated/ListDemo.py
@@ -8,49 +8,50 @@
from java.awt.event import ItemEvent
from pawt import GridBag
+
class ListDemo(applet.Applet):
def fillList(self, list, names):
- list.actionPerformed=self.action
- list.itemStateChanged=self.change
+ list.actionPerformed = self.action
+ list.itemStateChanged = self.change
- for name in names:
- list.add(name)
+ for name in names:
+ list.add(name)
def init(self):
- self.spanish = awt.List(4, 1)
- self.fillList(self.spanish, ['uno', 'dos', 'tres', 'cuatro',
- 'cinco', 'seis', 'siete'])
- self.italian = awt.List()
- self.fillList(self.italian, ['uno', 'due', 'tre', 'quattro',
- 'cinque', 'sei', 'sette'])
+ self.spanish = awt.List(4, 1)
+ self.fillList(self.spanish, ['uno', 'dos', 'tres', 'cuatro',
+ 'cinco', 'seis', 'siete'])
+ self.italian = awt.List()
+ self.fillList(self.italian, ['uno', 'due', 'tre', 'quattro',
+ 'cinque', 'sei', 'sette'])
- self.output = awt.TextArea(10, 40, editable=0)
+ self.output = awt.TextArea(10, 40, editable=0)
- bag = GridBag(self)
- bag.add(self.output,
- fill='BOTH', weightx=1.0, weighty=1.0,
- gridheight=2)
+ bag = GridBag(self)
+ bag.add(self.output,
+ fill='BOTH', weightx=1.0, weighty=1.0,
+ gridheight=2)
- bag.addRow(self.spanish, fill='VERTICAL')
- bag.addRow(self.italian, fill='VERTICAL')
+ bag.addRow(self.spanish, fill='VERTICAL')
+ bag.addRow(self.italian, fill='VERTICAL')
- self.language = {self.spanish:'Spanish', self.italian:'Italian'}
+ self.language = {self.spanish: 'Spanish', self.italian: 'Italian'}
def action(self, e):
- list = e.source
- text = 'Action event occurred on "%s" in %s.\n'
- self.output.append(text % (list.selectedItem, self.language[list]))
+ list = e.source
+ text = 'Action event occurred on "%s" in %s.\n'
+ self.output.append(text % (list.selectedItem, self.language[list]))
def change(self, e):
- list = e.source
- if e.stateChange == ItemEvent.SELECTED:
- select = 'Select'
- else:
- select = 'Deselect'
+ list = e.source
+ if e.stateChange == ItemEvent.SELECTED:
+ select = 'Select'
+ else:
+ select = 'Deselect'
- text = '%s event occurred on item #%d (%s) in %s.\n'
- params = (select, e.item, list.getItem(e.item), self.language[list])
- self.output.append(text % params)
+ text = '%s event occurred on item #%d (%s) in %s.\n'
+ params = (select, e.item, list.getItem(e.item), self.language[list])
+ self.output.append(text % params)
if __name__ == '__main__':
diff --git a/Demo/awt/Colors.py b/Demo/awt/Colors.py
--- a/Demo/awt/Colors.py
+++ b/Demo/awt/Colors.py
@@ -9,11 +9,12 @@
p = awt.Panel()
for name in dir(colors):
- color = getattr(colors, name)
- if isinstance(color, awt.Color):
- l = awt.Label(name, awt.Label.CENTER, background=color)
- intensity = sqrt(color.red**2 + color.green**2 + color.blue**2)/3
- if intensity < 90: l.foreground = colors.white
- p.add(l)
+ color = getattr(colors, name)
+ if isinstance(color, awt.Color):
+ l = awt.Label(name, awt.Label.CENTER, background=color)
+ intensity = sqrt(color.red**2 + color.green**2 + color.blue**2)/3
+ if intensity < 90:
+ l.foreground = colors.white
+ p.add(l)
-test(p, size=(700,500))
\ No newline at end of file
+test(p, size=(700, 500))
diff --git a/Demo/awt/Graph.py b/Demo/awt/Graph.py
--- a/Demo/awt/Graph.py
+++ b/Demo/awt/Graph.py
@@ -2,62 +2,64 @@
from math import *
from jarray import array
+
class Graph(awt.Canvas):
- def __init__(self):
- self.function = None
+ def __init__(self):
+ self.function = None
+
+ def paint(self, g):
+ if self.function is None:
+ return self.error(g)
+
+ sz = self.size
+ xs = range(0, sz.width, 2)
+
+ xscale = 4*pi/sz.width
+ xoffset = -2*pi
+
+ yscale = -sz.height/2.
+ yoffset = sz.height/2.
- def paint(self, g):
- if self.function is None:
- return self.error(g)
-
- sz = self.size
- xs = range(0, sz.width, 2)
-
- xscale = 4*pi/sz.width
- xoffset = -2*pi
-
- yscale = -sz.height/2.
- yoffset = sz.height/2.
-
- ys = []
- for x in xs:
- x = xscale*x + xoffset
- y = int(yscale*self.function(x)+yoffset)
- ys.append(y)
- g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+ ys = []
+ for x in xs:
+ x = xscale*x + xoffset
+ y = int(yscale*self.function(x)+yoffset)
+ ys.append(y)
+ g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+
+ def error(self, g):
+ message = "Invalid Expression"
+ g.font = awt.Font('Serif', awt.Font.BOLD, 20)
+ width = g.fontMetrics.stringWidth(message)
- def error(self, g):
- message = "Invalid Expression"
- g.font = awt.Font('Serif', awt.Font.BOLD, 20)
- width = g.fontMetrics.stringWidth(message)
-
- x = (self.size.width-width)/2
- y = (self.size.height+g.fontMetrics.height)/2
- g.drawString("Invalid Expression", x, y)
-
- def setExpression(self, e):
- "@sig public void setExpression(java.lang.String e)"
- try:
- self.function = eval('lambda x: '+e)
- except:
- self.function = None
- self.repaint()
-
+ x = (self.size.width-width)/2
+ y = (self.size.height+g.fontMetrics.height)/2
+ g.drawString("Invalid Expression", x, y)
+
+ def setExpression(self, e):
+ "@sig public void setExpression(java.lang.String e)"
+ try:
+ self.function = eval('lambda x: '+e)
+ except:
+ self.function = None
+ self.repaint()
+
if __name__ == '__main__':
- def enter(e):
- graph.setExpression(expression.text)
- expression.caretPosition=0
- expression.selectAll()
-
- p = awt.Panel(layout=awt.BorderLayout())
- graph = Graph()
- p.add(graph, 'Center')
-
- expression = awt.TextField(text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
- p.add(expression, 'South')
-
- import pawt
- pawt.test(p, size=(300,300))
-
- enter(None)
+ def enter(e):
+ graph.setExpression(expression.text)
+ expression.caretPosition = 0
+ expression.selectAll()
+
+ p = awt.Panel(layout=awt.BorderLayout())
+ graph = Graph()
+ p.add(graph, 'Center')
+
+ expression = awt.TextField(
+ text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
+ p.add(expression, 'South')
+
+ import pawt
+ pawt.test(p, size=(300, 300))
+
+ enter(None)
diff --git a/Demo/awt/simple.py b/Demo/awt/simple.py
--- a/Demo/awt/simple.py
+++ b/Demo/awt/simple.py
@@ -9,8 +9,10 @@
import java
from java import awt
+
def exit(e): java.lang.System.exit(0)
+
frame = awt.Frame('AWT Example', visible=1)
button = awt.Button('Close Me!', actionPerformed=exit)
frame.add(button, 'Center')
diff --git a/Demo/bean/TempConverter.py b/Demo/bean/TempConverter.py
--- a/Demo/bean/TempConverter.py
+++ b/Demo/bean/TempConverter.py
@@ -1,36 +1,38 @@
import java
+
class TempConverter(java.lang.Object):
- def __init__(self):
- self.setFahrenheit(0.0)
+ def __init__(self):
+ self.setFahrenheit(0.0)
- def setFahrenheit(self, degrees):
- "@sig public void setFahrenheit(double degrees)"
- self.f = degrees
- self.c = (degrees-32.)/1.8
+ def setFahrenheit(self, degrees):
+ "@sig public void setFahrenheit(double degrees)"
+ self.f = degrees
+ self.c = (degrees-32.)/1.8
- def getFahrenheit(self):
- "@sig public double getFahrenheit()"
- return self.f
+ def getFahrenheit(self):
+ "@sig public double getFahrenheit()"
+ return self.f
- def setCelsius(self, degrees):
- "@sig public void setCelsius(double degrees)"
- self.c = degrees
- self.f = degrees*1.8+32.
+ def setCelsius(self, degrees):
+ "@sig public void setCelsius(double degrees)"
+ self.c = degrees
+ self.f = degrees*1.8+32.
- def getCelsius(self):
- "@sig public double getCelsius()"
- return self.c
+ def getCelsius(self):
+ "@sig public double getCelsius()"
+ return self.c
- def __repr__(self):
- return '<%.2g degrees fahrenheit == %.2g celsius>' % (self.f, self.c)
+ def __repr__(self):
+ return '<%.2g degrees fahrenheit == %.2g celsius>' % (self.f, self.c)
+
if __name__ == '__main__':
- c = TempConverter()
- print c
- c.setCelsius(100)
- print c
- c.setCelsius(0)
- print c
- c.setFahrenheit(212)
- print c
\ No newline at end of file
+ c = TempConverter()
+ print c
+ c.setCelsius(100)
+ print c
+ c.setCelsius(0)
+ print c
+ c.setFahrenheit(212)
+ print c
diff --git a/Demo/javaclasses/deprecated/Graph.py b/Demo/javaclasses/deprecated/Graph.py
--- a/Demo/javaclasses/deprecated/Graph.py
+++ b/Demo/javaclasses/deprecated/Graph.py
@@ -2,65 +2,67 @@
from math import *
from jarray import array
+
class Graph(awt.Canvas):
- def __init__(self, initialExpression=None):
- "@sig public Graph(java.lang.String initialExpression)"
- self.function = None
- if initialExpression is not None:
- self.setExpression(initialExpression)
+ def __init__(self, initialExpression=None):
+ "@sig public Graph(java.lang.String initialExpression)"
+ self.function = None
+ if initialExpression is not None:
+ self.setExpression(initialExpression)
+
+ def paint(self, g):
+ if self.function is None:
+ return self.error(g)
+
+ sz = self.size
+ xs = range(0, sz.width, 2)
+
+ xscale = 4*pi/sz.width
+ xoffset = -2*pi
+
+ yscale = -sz.height/2.
+ yoffset = sz.height/2.
- def paint(self, g):
- if self.function is None:
- return self.error(g)
-
- sz = self.size
- xs = range(0, sz.width, 2)
-
- xscale = 4*pi/sz.width
- xoffset = -2*pi
-
- yscale = -sz.height/2.
- yoffset = sz.height/2.
-
- ys = []
- for x in xs:
- x = xscale*x + xoffset
- y = int(yscale*self.function(x)+yoffset)
- ys.append(y)
- g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+ ys = []
+ for x in xs:
+ x = xscale*x + xoffset
+ y = int(yscale*self.function(x)+yoffset)
+ ys.append(y)
+ g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+
+ def error(self, g):
+ message = "Invalid Expression"
+ g.font = awt.Font('Serif', awt.Font.BOLD, 20)
+ width = g.fontMetrics.stringWidth(message)
- def error(self, g):
- message = "Invalid Expression"
- g.font = awt.Font('Serif', awt.Font.BOLD, 20)
- width = g.fontMetrics.stringWidth(message)
-
- x = (self.size.width-width)/2
- y = (self.size.height+g.fontMetrics.height)/2
- g.drawString("Invalid Expression", x, y)
-
- def setExpression(self, e):
- "@sig public void setExpression(java.lang.String e)"
- try:
- self.function = eval('lambda x: '+e)
- except:
- self.function = None
- self.repaint()
-
+ x = (self.size.width-width)/2
+ y = (self.size.height+g.fontMetrics.height)/2
+ g.drawString("Invalid Expression", x, y)
+
+ def setExpression(self, e):
+ "@sig public void setExpression(java.lang.String e)"
+ try:
+ self.function = eval('lambda x: '+e)
+ except:
+ self.function = None
+ self.repaint()
+
if __name__ == '__main__':
- def enter(e):
- graph.setExpression(expression.text)
- expression.caretPosition=0
- expression.selectAll()
-
- p = awt.Panel(layout=awt.BorderLayout())
- graph = Graph()
- p.add(graph, 'Center')
-
- expression = awt.TextField(text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
- p.add(expression, 'South')
-
- import pawt
- pawt.test(p, size=(300,300))
-
- enter(None)
+ def enter(e):
+ graph.setExpression(expression.text)
+ expression.caretPosition = 0
+ expression.selectAll()
+
+ p = awt.Panel(layout=awt.BorderLayout())
+ graph = Graph()
+ p.add(graph, 'Center')
+
+ expression = awt.TextField(
+ text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
+ p.add(expression, 'South')
+
+ import pawt
+ pawt.test(p, size=(300, 300))
+
+ enter(None)
diff --git a/Demo/modjy_webapp/demo_app.py b/Demo/modjy_webapp/demo_app.py
--- a/Demo/modjy_webapp/demo_app.py
+++ b/Demo/modjy_webapp/demo_app.py
@@ -1,30 +1,37 @@
import sys
-def escape_html(s): return s.replace('&', '&').replace('<', '<').replace('>', '>')
+
+def escape_html(s): return s.replace(
+ '&', '&').replace('<', '<').replace('>', '>')
+
def cutoff(s, n=100):
- if len(s) > n: return s[:n]+ '.. cut ..'
+ if len(s) > n:
+ return s[:n] + '.. cut ..'
return s
+
def handler(environ, start_response):
- writer = start_response("200 OK", [ ('content-type', 'text/html') ])
+ writer = start_response("200 OK", [('content-type', 'text/html')])
response_parts = []
response_parts.append("<html>")
response_parts.append("<head>")
response_parts.append("<title>Modjy demo application</title>")
response_parts.append("</head>")
response_parts.append("<body>")
- response_parts.append("<p>Modjy servlet running correctly: jython %s on %s:</p>" % (sys.version, sys.platform))
+ response_parts.append(
+ "<p>Modjy servlet running correctly: jython %s on %s:</p>" % (sys.version, sys.platform))
response_parts.append("<h3>Hello WSGI World!</h3>")
- response_parts.append("<h4>Here are the contents of the WSGI environment</h4>")
+ response_parts.append(
+ "<h4>Here are the contents of the WSGI environment</h4>")
environ_str = "<table border='1'>"
keys = environ.keys()
keys.sort()
for ix, name in enumerate(keys):
if ix % 2:
- background='#ffffff'
+ background = '#ffffff'
else:
- background='#eeeeee'
+ background = '#eeeeee'
style = " style='background-color:%s;'" % background
value = escape_html(cutoff(str(environ[name]))) or ' '
environ_str = "%s\n<tr><td%s>%s</td><td%s>%s</td></tr>" % \
diff --git a/Demo/swing/JythonConsole/Action.py b/Demo/swing/JythonConsole/Action.py
--- a/Demo/swing/JythonConsole/Action.py
+++ b/Demo/swing/JythonConsole/Action.py
@@ -1,40 +1,43 @@
# 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__
+ 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
+ #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
+ self.enabled = 1
+ self.needEvent = needEvent
- def actionPerformed(self, event):
- if self.needEvent:
- self.action(event)
- else:
- self.action()
+ 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
+ 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())
\ No newline at end of file
+ def actionPerformed(self, event):
+ if self.needEvent:
+ self.action(self.getTarget(), event)
+ else:
+ self.action(self.getTarget())
diff --git a/Demo/swing/JythonConsole/Console.py b/Demo/swing/JythonConsole/Console.py
--- a/Demo/swing/JythonConsole/Console.py
+++ b/Demo/swing/JythonConsole/Console.py
@@ -18,194 +18,204 @@
from java.awt.event import ActionEvent
from java.lang import Thread, System
from code import compile_command
-import string, sys, re
+import string
+import sys
+import re
+
class OutputBuffer:
- def __init__(self, console, stylename):
- self.console = console
- self.stylename = stylename
-
- def flush(self):
- pass
-
- def write(self, text):
- self.console.write(text, self.stylename)
+ def __init__(self, console, stylename):
+ self.console = console
+ self.stylename = stylename
+
+ def flush(self):
+ pass
+
+ def write(self, text):
+ self.console.write(text, self.stylename)
+
class Console:
- def __init__(self, styles=None, keymap=None):
- if styles is None:
- styles = Styles()
- basic = styles.add('normal', tabsize=3, fontSize=12, fontFamily="Courier")
- styles.add('error', parent=basic, foreground=colors.red)
- styles.add('output', parent=basic, foreground=colors.blue)
- styles.add('input', parent=basic, foreground=colors.black)
- styles.add('prompt', parent=basic, foreground=colors.purple)
- self.styles = styles
-
- # This is a hack to get at an inner class
- # This will not be required in JPython-1.1
- ForegroundAction = getattr(swing.text, 'StyledEditorKit$ForegroundAction')
- self.inputAction = ForegroundAction("start input", colors.black)
+ def __init__(self, styles=None, keymap=None):
+ if styles is None:
+ styles = Styles()
+ basic = styles.add('normal', tabsize=3,
+ fontSize=12, fontFamily="Courier")
+ styles.add('error', parent=basic, foreground=colors.red)
+ styles.add('output', parent=basic, foreground=colors.blue)
+ styles.add('input', parent=basic, foreground=colors.black)
+ styles.add('prompt', parent=basic, foreground=colors.purple)
+ self.styles = styles
- if keymap is None:
- keymap = Keymap()
- keymap.bind('enter', self.enter)
- keymap.bind('tab', self.tab)
- keymap.bind('escape', self.escape)
- keymap.bind('up', self.uphistory)
- keymap.bind('down', self.downhistory)
-
- self.keymap = keymap
-
- self.document = swing.text.DefaultStyledDocument(self.styles)
- self.document.setLogicalStyle(0, self.styles.get('normal'))
+ # This is a hack to get at an inner class
+ # This will not be required in JPython-1.1
+ ForegroundAction = getattr(
+ swing.text, 'StyledEditorKit$ForegroundAction')
+ self.inputAction = ForegroundAction("start input", colors.black)
+
+ if keymap is None:
+ keymap = Keymap()
+ keymap.bind('enter', self.enter)
+ keymap.bind('tab', self.tab)
+ keymap.bind('escape', self.escape)
+ keymap.bind('up', self.uphistory)
+ keymap.bind('down', self.downhistory)
+
+ self.keymap = keymap
+
+ self.document = swing.text.DefaultStyledDocument(self.styles)
+ self.document.setLogicalStyle(0, self.styles.get('normal'))
+
+ self.textpane = swing.JTextPane(self.document)
+ self.textpane.keymap = self.keymap
- self.textpane = swing.JTextPane(self.document)
- self.textpane.keymap = self.keymap
-
- self.history = []
- self.oldHistoryLength = 0
- self.historyPosition = 0
-
- self.command = []
- self.locals = {}
+ self.history = []
+ self.oldHistoryLength = 0
+ self.historyPosition = 0
+
+ self.command = []
+ self.locals = {}
+
+ def write(self, text, stylename='normal'):
+ style = self.styles.get(stylename)
+ self.document.insertString(self.document.length, text, style)
+
+ def beep(self):
+ self.textpane.toolkit.beep()
- def write(self, text, stylename='normal'):
- style = self.styles.get(stylename)
- self.document.insertString(self.document.length, text, style)
-
- def beep(self):
- self.textpane.toolkit.beep()
+ def startUserInput(self, prompt=None):
+ if prompt is not None:
+ self.write(prompt, 'prompt')
+ self.startInput = self.document.createPosition(self.document.length-1)
+ #self.document.setCharacterAttributes(self.document.length-1, 1, self.styles.get('input'), 1)
+ self.textpane.caretPosition = self.document.length
+ ae = ActionEvent(
+ self.textpane, ActionEvent.ACTION_PERFORMED, 'start input')
+ self.inputAction.actionPerformed(ae)
- def startUserInput(self, prompt=None):
- if prompt is not None:
- self.write(prompt, 'prompt')
- self.startInput = self.document.createPosition(self.document.length-1)
- #self.document.setCharacterAttributes(self.document.length-1, 1, self.styles.get('input'), 1)
- self.textpane.caretPosition = self.document.length
- ae = ActionEvent(self.textpane, ActionEvent.ACTION_PERFORMED, 'start input')
- self.inputAction.actionPerformed(ae)
+ def getinput(self):
+ offset = self.startInput.offset
+ line = self.document.getText(offset+1, self.document.length-offset)
+ return string.rstrip(line)
- def getinput(self):
- offset = self.startInput.offset
- line = self.document.getText(offset+1, self.document.length-offset)
- return string.rstrip(line)
+ def replaceinput(self, text):
+ offset = self.startInput.offset + 1
+ self.document.remove(offset, self.document.length-offset)
+ self.write(text, 'input')
- def replaceinput(self, text):
- offset = self.startInput.offset + 1
- self.document.remove(offset, self.document.length-offset)
- self.write(text, 'input')
-
- def enter(self):
- line = self.getinput()
- self.write('\n', 'input')
-
- self.history.append(line)
- self.handleLine(line)
-
- def gethistory(self, direction):
- historyLength = len(self.history)
- if self.oldHistoryLength < historyLength:
- # new line was entered after last call
- self.oldHistoryLength = historyLength
- if self.history[self.historyPosition] != self.history[-1]:
- self.historyPosition = historyLength
+ def enter(self):
+ line = self.getinput()
+ self.write('\n', 'input')
+
+ self.history.append(line)
+ self.handleLine(line)
+
+ def gethistory(self, direction):
+ historyLength = len(self.history)
+ if self.oldHistoryLength < historyLength:
+ # new line was entered after last call
+ self.oldHistoryLength = historyLength
+ if self.history[self.historyPosition] != self.history[-1]:
+ self.historyPosition = historyLength
- pos = self.historyPosition + direction
+ pos = self.historyPosition + direction
+
+ if 0 <= pos < historyLength:
+ self.historyPosition = pos
+ self.replaceinput(self.history[pos])
+ else:
+ self.beep()
- if 0 <= pos < historyLength:
- self.historyPosition = pos
- self.replaceinput(self.history[pos])
- else:
- self.beep()
+ def uphistory(self):
+ self.gethistory(-1)
- def uphistory(self):
- self.gethistory(-1)
+ def downhistory(self):
+ self.gethistory(1)
- def downhistory(self):
- self.gethistory(1)
+ def tab(self):
+ self.write('\t', 'input')
- def tab(self):
- self.write('\t', 'input')
-
- def escape(self):
- if (not hasattr(self, 'pythonThread') or self.pythonThread is None or
- not self.pythonThread.alive):
- self.beep()
- return
-
- self.pythonThread.stopPython()
+ def escape(self):
+ if (not hasattr(self, 'pythonThread') or self.pythonThread is None or
+ not self.pythonThread.alive):
+ self.beep()
+ return
+
+ self.pythonThread.stopPython()
- def capturePythonOutput(self, stdoutStyle='output', stderrStyle='error'):
- import sys
- sys.stdout = OutputBuffer(self, stdoutStyle)
- sys.stderr = OutputBuffer(self, stderrStyle)
+ def capturePythonOutput(self, stdoutStyle='output', stderrStyle='error'):
+ import sys
+ sys.stdout = OutputBuffer(self, stdoutStyle)
+ sys.stderr = OutputBuffer(self, stderrStyle)
+
+ def handleLine(self, text):
+ self.command.append(text)
- def handleLine(self, text):
- self.command.append(text)
-
- try:
- code = compile_command(string.join(self.command, '\n'))
- except SyntaxError:
- traceback.print_exc(0)
- self.command = []
- self.startUserInput(str(sys.ps1)+'\t')
- return
+ try:
+ code = compile_command(string.join(self.command, '\n'))
+ except SyntaxError:
+ traceback.print_exc(0)
+ self.command = []
+ self.startUserInput(str(sys.ps1)+'\t')
+ return
- if code is None:
- self.startUserInput(str(sys.ps2)+'\t')
- return
-
- self.command = []
-
- pt = PythonThread(code, self)
- self.pythonThread = pt
- pt.start()
-
- def newInput(self):
- self.startUserInput(str(sys.ps1)+'\t')
-
+ if code is None:
+ self.startUserInput(str(sys.ps2)+'\t')
+ return
+
+ self.command = []
+
+ pt = PythonThread(code, self)
+ self.pythonThread = pt
+ pt.start()
+
+ def newInput(self):
+ self.startUserInput(str(sys.ps1)+'\t')
+
+
import traceback
+
class PythonThread(Thread):
- def __init__(self, code, console):
- self.code = code
- self.console = console
- self.locals = console.locals
-
- def run(self):
- try:
- exec self.code in self.locals
-
- #Include these lines to actually exit on a sys.exit() call
- #except SystemExit, value:
- # raise SystemExit, value
-
- except:
- exc_type, exc_value, exc_traceback = sys.exc_info()
- l = len(traceback.extract_tb(sys.exc_traceback))
- try:
- 1/0
- except:
- m = len(traceback.extract_tb(sys.exc_traceback))
- traceback.print_exception(exc_type, exc_value, exc_traceback, l-m)
-
- self.console.newInput()
+ def __init__(self, code, console):
+ self.code = code
+ self.console = console
+ self.locals = console.locals
+
+ def run(self):
+ try:
+ exec self.code in self.locals
+
+ # Include these lines to actually exit on a sys.exit() call
+ # except SystemExit, value:
+ # raise SystemExit, value
- def stopPython(self):
- #Should spend 2 seconds trying to kill thread in nice Python style first...
- self.stop()
+ except:
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ l = len(traceback.extract_tb(sys.exc_traceback))
+ try:
+ 1/0
+ except:
+ m = len(traceback.extract_tb(sys.exc_traceback))
+ traceback.print_exception(exc_type, exc_value, exc_traceback, l-m)
+
+ self.console.newInput()
+
+ def stopPython(self):
+ # Should spend 2 seconds trying to kill thread in nice Python style first...
+ self.stop()
+
header = """\
JPython %(version)s on %(platform)s
%(copyright)s
-""" % {'version':sys.version, 'platform':sys.platform, 'copyright':sys.copyright}
+""" % {'version': sys.version, 'platform': sys.platform, 'copyright': sys.copyright}
if __name__ == '__main__':
- c = Console()
- pane = swing.JScrollPane(c.textpane)
- swing.test(pane, size=(500,400), name='JPython Console')
- c.write(header, 'output')
- c.capturePythonOutput()
- c.textpane.requestFocus()
- c.newInput()
\ No newline at end of file
+ c = Console()
+ pane = swing.JScrollPane(c.textpane)
+ swing.test(pane, size=(500, 400), name='JPython Console')
+ c.write(header, 'output')
+ c.capturePythonOutput()
+ c.textpane.requestFocus()
+ c.newInput()
diff --git a/Demo/swing/JythonConsole/Keymap.py b/Demo/swing/JythonConsole/Keymap.py
--- a/Demo/swing/JythonConsole/Keymap.py
+++ b/Demo/swing/JythonConsole/Keymap.py
@@ -4,84 +4,93 @@
from Action import Action
_keynames = {}
-def getKeyStroke(key):
- if len(_keynames) == 0:
- for name in dir(KeyEvent):
- if name[:3] == 'VK_':
- _keynames[string.lower(name[3:])] = getattr(KeyEvent, name)
+
- if key is None:
- return KeyStroke.getKeyStroke(KeyEvent.CHAR_UNDEFINED)
+def getKeyStroke(key):
+ if len(_keynames) == 0:
+ for name in dir(KeyEvent):
+ if name[:3] == 'VK_':
+ _keynames[string.lower(name[3:])] = getattr(KeyEvent, name)
- if len(key) == 1:
- return KeyStroke.getKeyStroke(key)
+ if key is None:
+ return KeyStroke.getKeyStroke(KeyEvent.CHAR_UNDEFINED)
- fields = string.split(key, '-')
- key = fields[-1]
- mods = fields[:-1]
+ if len(key) == 1:
+ return KeyStroke.getKeyStroke(key)
- modifiers = 0
- for mod in mods:
- if mod == 'C':
- modifiers = modifiers | InputEvent.CTRL_MASK
- elif mod == 'S':
- modifiers = modifiers | InputEvent.SHIFT_MASK
- #Meta and Alt don't currently work right
- elif mod == 'M':
- modifiers = modifiers | InputEvent.META_MASK
- elif mod == 'A':
- modifiers = modifiers | InputEvent.ALT_MASK
- else:
- raise ValueError, 'Invalid modifier in '+key
+ fields = string.split(key, '-')
+ key = fields[-1]
+ mods = fields[:-1]
- return KeyStroke.getKeyStroke(_keynames[key], modifiers)
+ modifiers = 0
+ for mod in mods:
+ if mod == 'C':
+ modifiers = modifiers | InputEvent.CTRL_MASK
+ elif mod == 'S':
+ modifiers = modifiers | InputEvent.SHIFT_MASK
+ # Meta and Alt don't currently work right
+ elif mod == 'M':
+ modifiers = modifiers | InputEvent.META_MASK
+ elif mod == 'A':
+ modifiers = modifiers | InputEvent.ALT_MASK
+ else:
+ raise ValueError, 'Invalid modifier in '+key
+
+ return KeyStroke.getKeyStroke(_keynames[key], modifiers)
def makeAction(o):
- if isinstance(o, Action): return o
- if callable(o): return Action(o)
+ if isinstance(o, Action):
+ return o
+ if callable(o):
+ return Action(o)
+
class Keymap:
- __keynames = {}
- __defaultKeymap = text.JTextComponent.getKeymap(text.JTextComponent.DEFAULT_KEYMAP)
+ __keynames = {}
+ __defaultKeymap = text.JTextComponent.getKeymap(
+ text.JTextComponent.DEFAULT_KEYMAP)
+
+ def __init__(self, bindings={}, parent=__defaultKeymap):
+ self.keymap = text.JTextComponent.addKeymap(None, parent)
+ for key, action in bindings.items():
+ self.bind(key, action)
- def __init__(self, bindings={}, parent=__defaultKeymap):
- self.keymap = text.JTextComponent.addKeymap(None, parent)
- for key, action in bindings.items():
- self.bind(key, action)
+ def bind(self, key, action):
+ self.keymap.addActionForKeyStroke(
+ getKeyStroke(key), makeAction(action))
- def bind(self, key, action):
- self.keymap.addActionForKeyStroke(getKeyStroke(key), makeAction(action))
+ def __tojava__(self, c):
+ if isinstance(self.keymap, c):
+ return self.keymap
- def __tojava__(self, c):
- if isinstance(self.keymap, c):
- return self.keymap
if __name__ == '__main__':
- km = Keymap()
- class T:
- def __init__(self, message):
- self.message = message
- self.__name__ = message
- def __call__(self):
- print self.message
+ km = Keymap()
+
+ class T:
+ def __init__(self, message):
+ self.message = message
+ self.__name__ = message
+
+ def __call__(self):
+ print self.message
- km.bind('x', T('x'))
- km.bind('C-x', T('C-x'))
- km.bind('A-x', T('A-x'))
- km.bind('up', T('up'))
- km.bind('enter', T('enter'))
- km.bind('tab', T('tab'))
- km.bind('S-tab', T('S-tab'))
-
+ km.bind('x', T('x'))
+ km.bind('C-x', T('C-x'))
+ km.bind('A-x', T('A-x'))
+ km.bind('up', T('up'))
+ km.bind('enter', T('enter'))
+ km.bind('tab', T('tab'))
+ km.bind('S-tab', T('S-tab'))
- text = "hello\nworld"
+ text = "hello\nworld"
- from pawt import swing, test
+ from pawt import swing, test
- doc = swing.text.DefaultStyledDocument()
- doc.insertString(0, text, None)
- edit = swing.JTextPane(doc)
- edit.keymap = km
+ doc = swing.text.DefaultStyledDocument()
+ doc.insertString(0, text, None)
+ edit = swing.JTextPane(doc)
+ edit.keymap = km
- test(edit, size=(150,80))
+ test(edit, size=(150, 80))
diff --git a/Demo/swing/JythonConsole/Styles.py b/Demo/swing/JythonConsole/Styles.py
--- a/Demo/swing/JythonConsole/Styles.py
+++ b/Demo/swing/JythonConsole/Styles.py
@@ -1,34 +1,35 @@
from pawt.swing.text import StyleContext, StyleConstants, TabSet, TabStop
import string
+
class Styles:
- def __init__(self, context=None):
- if context is None:
- context = StyleContext()
- self.context = context
- self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)
+ def __init__(self, context=None):
+ if context is None:
+ context = StyleContext()
+ self.context = context
+ self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)
- def add(self, name, parent=None, tabsize=None, **keywords):
- if parent is None:
- parent = self.default
- style = self.context.addStyle(name, parent)
+ def add(self, name, parent=None, tabsize=None, **keywords):
+ if parent is None:
+ parent = self.default
+ style = self.context.addStyle(name, parent)
- for key, value in keywords.items():
- key = string.upper(key[0])+key[1:]
- meth = getattr(StyleConstants, "set"+key)
- meth(style, value)
+ for key, value in keywords.items():
+ key = string.upper(key[0])+key[1:]
+ meth = getattr(StyleConstants, "set"+key)
+ meth(style, value)
- if tabsize is not None:
- charWidth=StyleConstants.getFontSize(style)
- tabs = []
- for i in range(20):
- tabs.append(TabStop(i*tabsize*charWidth))
- StyleConstants.setTabSet(style, TabSet(tabs))
- return style
+ if tabsize is not None:
+ charWidth = StyleConstants.getFontSize(style)
+ tabs = []
+ for i in range(20):
+ tabs.append(TabStop(i*tabsize*charWidth))
+ StyleConstants.setTabSet(style, TabSet(tabs))
+ return style
- def get(self, stylename):
- return self.context.getStyle(stylename)
+ def get(self, stylename):
+ return self.context.getStyle(stylename)
- def __tojava__(self, c):
- if isinstance(self.context, c):
- return self.context
\ No newline at end of file
+ def __tojava__(self, c):
+ if isinstance(self.context, c):
+ return self.context
diff --git a/Demo/swing/ListDemo.py b/Demo/swing/ListDemo.py
--- a/Demo/swing/ListDemo.py
+++ b/Demo/swing/ListDemo.py
@@ -3,4 +3,3 @@
lst = swing.JList(['a', 'b', 'c'])
swing.test(lst)
-
diff --git a/Demo/swing/ObjectTree.py b/Demo/swing/ObjectTree.py
--- a/Demo/swing/ObjectTree.py
+++ b/Demo/swing/ObjectTree.py
@@ -9,8 +9,7 @@
import java
leaves = (None, TypeType, IntType, StringType, FloatType, NoneType,
- BuiltinFunctionType, BuiltinMethodType)
-
+ BuiltinFunctionType, BuiltinMethodType)
class PyEnumeration(java.util.Enumeration):
@@ -26,13 +25,13 @@
return self.seq[self.index-1]
-
def classattrs(c, attrs):
for base in c.__bases__:
classattrs(base, attrs)
for name in c.__dict__.keys():
attrs[name] = 1
+
def mydir(obj):
attrs = {}
if hasattr(obj, '__class__'):
@@ -44,6 +43,7 @@
ret.sort()
return ret
+
def shortrepr(obj):
r = repr(obj)
if len(r) > 80:
@@ -51,7 +51,6 @@
return r
-
class ObjectNode(swing.tree.TreeNode):
def __init__(self, parent, name, object):
self.myparent = parent
@@ -60,7 +59,7 @@
def getChildren(self):
if hasattr(self, 'mychildren'):
- return self.mychildren
+ return self.mychildren
if self.isLeaf():
self.mychildren = None
@@ -69,10 +68,10 @@
children = []
for name in mydir(self.object):
if name[:2] == '__':
- continue
+ continue
try:
children.append(ObjectNode(self, name,
- getattr(self.object, name)))
+ getattr(self.object, name)))
except TypeError:
print 'type error on', name, self.object
self.mychildren = children
@@ -102,7 +101,7 @@
index = 0
for child in self.getChildren():
if child == node:
- return index
+ return index
index = index+1
return -1
@@ -113,13 +112,13 @@
return self.name+' = '+shortrepr(self.object)
-
if __name__ == '__main__':
class foo:
- bar=99
- eggs='hello'
+ bar = 99
+ eggs = 'hello'
+
class baz:
- x,y,z=1,2,3
+ x, y, z = 1, 2, 3
func = range
import __main__
diff --git a/Demo/swing/TreeDemo.py b/Demo/swing/TreeDemo.py
--- a/Demo/swing/TreeDemo.py
+++ b/Demo/swing/TreeDemo.py
@@ -4,47 +4,51 @@
"""
data = {
- 'PyObject': {
- 'PyInteger':None,
- 'PyFloat':None,
- 'PyComplex':None,
+ 'PyObject': {
+ 'PyInteger': None,
+ 'PyFloat': None,
+ 'PyComplex': None,
'PySequence': {
- 'PyArray':None,
- 'PyList':None,
- 'PyTuple':None,
- 'PyString':None,
+ 'PyArray': None,
+ 'PyList': None,
+ 'PyTuple': None,
+ 'PyString': None,
},
'PyClass': {
- 'PyJavaClass':None,
+ 'PyJavaClass': None,
},
- },
- 'sys':None,
- 'Py':None,
- 'PyException':None,
- '__builtin__':None,
- 'ThreadState':None,
+ },
+ 'sys': None,
+ 'Py': None,
+ 'PyException': None,
+ '__builtin__': None,
+ 'ThreadState': None,
}
from pawt import swing
Node = swing.tree.DefaultMutableTreeNode
+
def addNode(tree, key, value):
- node = Node(key)
- tree.add(node)
- if value is not None:
- addLeaves(node, value.items())
+ node = Node(key)
+ tree.add(node)
+ if value is not None:
+ addLeaves(node, value.items())
+
def addLeaves(node, items):
- items.sort()
- for key, value in items:
- addNode(node, key, value)
+ items.sort()
+ for key, value in items:
+ addNode(node, key, value)
+
def makeTree(name, data):
- tree = Node('A Few JPython Classes')
- addLeaves(tree, data.items())
- return tree
+ tree = Node('A Few JPython Classes')
+ addLeaves(tree, data.items())
+ return tree
+
if __name__ == '__main__':
- tree = makeTree('Some JPython Classes', data)
- swing.test(swing.JScrollPane(swing.JTree(tree)))
+ tree = makeTree('Some JPython Classes', data)
+ swing.test(swing.JScrollPane(swing.JTree(tree)))
diff --git a/Demo/swing/simple.py b/Demo/swing/simple.py
--- a/Demo/swing/simple.py
+++ b/Demo/swing/simple.py
@@ -7,8 +7,10 @@
from pawt import swing
import java
+
def exit(e): java.lang.System.exit(0)
+
frame = swing.JFrame('Swing Example', visible=1)
button = swing.JButton('Close Me!', actionPerformed=exit)
frame.contentPane.add(button)
--
Repository URL: https://hg.python.org/jython
More information about the Jython-checkins
mailing list