diff --git a/build.sbt b/build.sbt index 0ba47761..532e67de 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,7 @@ scalaVersionsByJvm in ThisBuild := Map( OsgiKeys.exportPackage := Seq(s"scala.swing.*;version=${version.value}") -mimaPreviousVersion := None +mimaPreviousVersion := Some("2.0.0") // set the prompt (for this build) to include the project id. shellPrompt in ThisBuild := { state => Project.extract(state).currentRef.project + "> " } diff --git a/src/main/scala/scala/swing/AbstractButton.scala b/src/main/scala/scala/swing/AbstractButton.scala index fd84d6f1..00126886 100644 --- a/src/main/scala/scala/swing/AbstractButton.scala +++ b/src/main/scala/scala/swing/AbstractButton.scala @@ -23,65 +23,65 @@ abstract class AbstractButton extends Component with Action.Trigger.Wrapper with override lazy val peer: JAbstractButton = new JAbstractButton with SuperMixin {} def text: String = peer.getText - def text_=(s: String) = peer.setText(s) + def text_=(s: String): Unit = peer.setText(s) def icon: Icon = peer.getIcon - def icon_=(i: Icon) = peer.setIcon(i) + def icon_=(i: Icon): Unit = peer.setIcon(i) def pressedIcon: Icon = peer.getPressedIcon - def pressedIcon_=(i: Icon) = peer.setPressedIcon(i) + def pressedIcon_=(i: Icon): Unit = peer.setPressedIcon(i) def selectedIcon: Icon = peer.getSelectedIcon - def selectedIcon_=(i: Icon) = peer.setSelectedIcon(i) + def selectedIcon_=(i: Icon): Unit = peer.setSelectedIcon(i) def disabledIcon: Icon = peer.getDisabledIcon - def disabledIcon_=(i: Icon) = peer.setDisabledIcon(i) + def disabledIcon_=(i: Icon): Unit = peer.setDisabledIcon(i) def disabledSelectedIcon: Icon = peer.getDisabledSelectedIcon - def disabledSelectedIcon_=(i: Icon) = peer.setDisabledSelectedIcon(i) + def disabledSelectedIcon_=(i: Icon): Unit = peer.setDisabledSelectedIcon(i) def rolloverIcon: Icon = peer.getRolloverIcon - def rolloverIcon_=(b: Icon) = peer.setRolloverIcon(b) + def rolloverIcon_=(b: Icon): Unit = peer.setRolloverIcon(b) def rolloverSelectedIcon: Icon = peer.getRolloverSelectedIcon - def rolloverSelectedIcon_=(b: Icon) = peer.setRolloverSelectedIcon(b) + def rolloverSelectedIcon_=(b: Icon): Unit = peer.setRolloverSelectedIcon(b) - peer.addActionListener(Swing.ActionListener { e => + peer.addActionListener(Swing.ActionListener { _ => publish(ButtonClicked(AbstractButton.this)) }) def selected: Boolean = peer.isSelected - def selected_=(b: Boolean) = peer.setSelected(b) + def selected_=(b: Boolean): Unit = peer.setSelected(b) def contentAreaFilled: Boolean = peer.isContentAreaFilled - def contentAreaFilled_=(b: Boolean) { peer.setContentAreaFilled(b) } + def contentAreaFilled_=(b: Boolean): Unit = peer.setContentAreaFilled(b) def borderPainted: Boolean = peer.isBorderPainted - def borderPainted_=(b: Boolean) { peer.setBorderPainted(b) } + def borderPainted_=(b: Boolean): Unit = peer.setBorderPainted(b) def focusPainted: Boolean = peer.isFocusPainted - def focusPainted_=(b: Boolean) { peer.setFocusPainted(b) } + def focusPainted_=(b: Boolean): Unit = peer.setFocusPainted(b) def rolloverEnabled: Boolean = peer.isRolloverEnabled - def rolloverEnabled_=(b: Boolean) = peer.setRolloverEnabled(b) + def rolloverEnabled_=(b: Boolean): Unit = peer.setRolloverEnabled(b) def verticalTextPosition: Alignment.Value = Alignment(peer.getVerticalTextPosition) - def verticalTextPosition_=(a: Alignment.Value) { peer.setVerticalTextPosition(a.id) } + def verticalTextPosition_=(a: Alignment.Value): Unit = peer.setVerticalTextPosition(a.id) def verticalAlignment: Alignment.Value = Alignment(peer.getVerticalAlignment) - def verticalAlignment_=(a: Alignment.Value) { peer.setVerticalAlignment(a.id) } + def verticalAlignment_=(a: Alignment.Value): Unit = peer.setVerticalAlignment(a.id) def horizontalTextPosition: Alignment.Value = Alignment(peer.getHorizontalTextPosition) - def horizontalTextPosition_=(a: Alignment.Value) { peer.setHorizontalTextPosition(a.id) } + def horizontalTextPosition_=(a: Alignment.Value): Unit = peer.setHorizontalTextPosition(a.id) def horizontalAlignment: Alignment.Value = Alignment(peer.getHorizontalAlignment) - def horizontalAlignment_=(a: Alignment.Value) { peer.setHorizontalAlignment(a.id) } + def horizontalAlignment_=(a: Alignment.Value): Unit = peer.setHorizontalAlignment(a.id) def iconTextGap: Int = peer.getIconTextGap - def iconTextGap_=(x: Int) { peer.setIconTextGap(x) } + def iconTextGap_=(x: Int): Unit = peer.setIconTextGap(x) def mnemonic: Key.Value = Key(peer.getMnemonic) - def mnemonic_=(k: Key.Value) { peer.setMnemonic(k.id) } + def mnemonic_=(k: Key.Value): Unit = peer.setMnemonic(k.id) def displayedMnemonicIndex: Int = peer.getDisplayedMnemonicIndex - def displayedMnemonicIndex_=(n: Int) { peer.setDisplayedMnemonicIndex(n) } + def displayedMnemonicIndex_=(n: Int): Unit = peer.setDisplayedMnemonicIndex(n) def multiClickThreshold: Long = peer.getMultiClickThreshhold - def multiClickThreshold_=(n: Long) { peer.setMultiClickThreshhold(n) } + def multiClickThreshold_=(n: Long): Unit = peer.setMultiClickThreshhold(n) - def doClick() { peer.doClick() } - def doClick(times: Int) { peer.doClick(times) } + def doClick(): Unit = peer.doClick() + def doClick(times: Int): Unit = peer.doClick(times) def margin: Insets = peer.getMargin - def margin_=(i: Insets) { peer.setMargin(i) } + def margin_=(i: Insets): Unit = peer.setMargin(i) } diff --git a/src/main/scala/scala/swing/Action.scala b/src/main/scala/scala/swing/Action.scala index 8740f63e..580687d5 100644 --- a/src/main/scala/scala/swing/Action.scala +++ b/src/main/scala/scala/swing/Action.scala @@ -21,21 +21,21 @@ object Action { * instead of from its action. * In Java Swing, one would use `null` instead of a designated action. */ - case object NoAction extends Action("") { def apply() {} } + case object NoAction extends Action("") { def apply(): Unit = () } object Trigger { trait Wrapper extends Action.Trigger { def peer: javax.swing.JComponent { - def addActionListener(a: ActionListener) - def removeActionListener(a: ActionListener) - def setAction(a: javax.swing.Action) + def addActionListener(a: ActionListener): Unit + def removeActionListener(a: ActionListener): Unit + def setAction(a: javax.swing.Action): Unit def getAction(): javax.swing.Action } // TODO: we need an action cache private var _action: Action = Action.NoAction def action: Action = _action - def action_=(a: Action) { _action = a; peer.setAction(a.peer) } + def action_=(a: Action): Unit = { _action = a; peer.setAction(a.peer) } //1.6: def hideActionText: Boolean = peer.getHideActionText //def hideActionText_=(b: Boolean) = peer.setHideActionText(b) @@ -47,7 +47,7 @@ object Action { */ trait Trigger { def action: Action - def action_=(a: Action) + def action_=(a: Action): Unit //1.6: def hideActionText: Boolean //def hideActionText_=(b: Boolean) @@ -56,8 +56,8 @@ object Action { /** * Convenience method to create an action with a given title and body to run. */ - def apply(title: String)(body: =>Unit) = new Action(title) { - def apply() { body } + def apply(title: String)(body: => Unit): Action = new Action(title) { + def apply(): Unit = body } } @@ -75,41 +75,40 @@ abstract class Action(title0: String) { import Swing._ lazy val peer: javax.swing.Action = new javax.swing.AbstractAction(title0) { - def actionPerformed(a: java.awt.event.ActionEvent) = apply() + def actionPerformed(a: java.awt.event.ActionEvent): Unit = apply() } /** * Title is not optional. */ def title: String = ifNull(peer.getValue(javax.swing.Action.NAME),"") - def title_=(t: String) { peer.putValue(javax.swing.Action.NAME, t) } + def title_=(t: String): Unit = peer.putValue(javax.swing.Action.NAME, t) /** * None if large icon and small icon are not equal. */ def icon: Icon = smallIcon //if(largeIcon == smallIcon) largeIcon else None - def icon_=(i: Icon) { /*largeIcon = i;*/ smallIcon = i } + def icon_=(i: Icon): Unit = /*largeIcon = i;*/ smallIcon = i // 1.6: def largeIcon: Icon = toNoIcon(peer.getValue(javax.swing.Action.LARGE_ICON_KEY).asInstanceOf[Icon]) // def largeIcon_=(i: Icon) { peer.putValue(javax.swing.Action.LARGE_ICON_KEY, toNullIcon(i)) } def smallIcon: Icon = toNoIcon(peer.getValue(javax.swing.Action.SMALL_ICON).asInstanceOf[Icon]) - def smallIcon_=(i: Icon) { peer.putValue(javax.swing.Action.SMALL_ICON, toNullIcon(i)) } + def smallIcon_=(i: Icon): Unit = peer.putValue(javax.swing.Action.SMALL_ICON, toNullIcon(i)) /** * For all components. */ def toolTip: String = ifNull(peer.getValue(javax.swing.Action.SHORT_DESCRIPTION), "") - def toolTip_=(t: String) { + def toolTip_=(t: String): Unit = peer.putValue(javax.swing.Action.SHORT_DESCRIPTION, t) - } + /** * Can be used for status bars, for example. */ def longDescription: String = ifNull(peer.getValue(javax.swing.Action.LONG_DESCRIPTION), "") - def longDescription_=(t: String) { + def longDescription_=(t: String): Unit = peer.putValue(javax.swing.Action.LONG_DESCRIPTION, t) - } /** * Default: java.awt.event.KeyEvent.VK_UNDEFINED, i.e., no mnemonic key. @@ -117,7 +116,7 @@ abstract class Action(title0: String) { */ def mnemonic: Int = ifNull(peer.getValue(javax.swing.Action.MNEMONIC_KEY), java.awt.event.KeyEvent.VK_UNDEFINED) - def mnemonic_=(m: Int) { peer.putValue(javax.swing.Action.MNEMONIC_KEY, m) } + def mnemonic_=(m: Int): Unit = peer.putValue(javax.swing.Action.MNEMONIC_KEY, m) /*/** * Indicates which character of the title should be underlined to indicate the mnemonic key. @@ -134,15 +133,14 @@ abstract class Action(title0: String) { */ def accelerator: Option[KeyStroke] = toOption(peer.getValue(javax.swing.Action.ACCELERATOR_KEY)) - def accelerator_=(k: Option[KeyStroke]) { + def accelerator_=(k: Option[KeyStroke]): Unit = peer.putValue(javax.swing.Action.ACCELERATOR_KEY, k.orNull) - } /** * For all components. */ def enabled: Boolean = peer.isEnabled - def enabled_=(b: Boolean) { peer.setEnabled(b) } + def enabled_=(b: Boolean): Unit = peer.setEnabled(b) /*/** * Only honored if not None. For various buttons. @@ -153,5 +151,5 @@ abstract class Action(title0: String) { if (b == None) null else new java.lang.Boolean(b.get)) }*/ - def apply() + def apply(): Unit } diff --git a/src/main/scala/scala/swing/Adjustable.scala b/src/main/scala/scala/swing/Adjustable.scala index 590153fb..7cc9cfcd 100644 --- a/src/main/scala/scala/swing/Adjustable.scala +++ b/src/main/scala/scala/swing/Adjustable.scala @@ -6,40 +6,40 @@ object Adjustable { trait Wrapper extends Oriented.Wrapper with Adjustable { def peer: JAdjustable with OrientedMixin - def unitIncrement = peer.getUnitIncrement - def unitIncrement_=(i: Int) = peer.setUnitIncrement(i) - def blockIncrement = peer.getBlockIncrement - def blockIncrement_=(i: Int) = peer.setBlockIncrement(i) + def unitIncrement: Int = peer.getUnitIncrement + def unitIncrement_=(i: Int): Unit = peer.setUnitIncrement(i) + def blockIncrement: Int = peer.getBlockIncrement + def blockIncrement_=(i: Int): Unit = peer.setBlockIncrement(i) - def value = peer.getValue - def value_=(v: Int) = peer.setValue(v) + def value: Int = peer.getValue + def value_=(v: Int): Unit = peer.setValue(v) - def visibleAmount = peer.getVisibleAmount - def visibleAmount_=(v: Int) = peer.setVisibleAmount(v) + def visibleAmount: Int = peer.getVisibleAmount + def visibleAmount_=(v: Int): Unit = peer.setVisibleAmount(v) - def minimum = peer.getMinimum - def minimum_=(m: Int) = peer.setMinimum(m) - def maximum = peer.getMaximum - def maximum_=(m: Int) = peer.setMaximum(m) + def minimum: Int = peer.getMinimum + def minimum_=(m: Int): Unit = peer.setMinimum(m) + def maximum: Int = peer.getMaximum + def maximum_=(m: Int): Unit = peer.setMaximum(m) } } trait Adjustable extends Oriented { def unitIncrement: Int - def unitIncrement_=(i: Int) + def unitIncrement_=(i: Int): Unit def blockIncrement: Int - def blockIncrement_=(i: Int) + def blockIncrement_=(i: Int): Unit def value: Int - def value_=(v : Int) + def value_=(v : Int): Unit def visibleAmount: Int - def visibleAmount_=(v: Int) + def visibleAmount_=(v: Int): Unit def minimum: Int - def minimum_=(m: Int) + def minimum_=(m: Int): Unit def maximum: Int - def maximum_=(m: Int) + def maximum_=(m: Int): Unit // Needs implementation of AdjustmentEvent // diff --git a/src/main/scala/scala/swing/Alignment.scala b/src/main/scala/scala/swing/Alignment.scala index b49e89db..bdbbca99 100644 --- a/src/main/scala/scala/swing/Alignment.scala +++ b/src/main/scala/scala/swing/Alignment.scala @@ -10,8 +10,6 @@ package scala.swing -import javax.swing.SwingConstants._ - /** * Horizontal and vertical alignments. We sacrifice a bit of type-safety * for simplicity here. @@ -19,14 +17,15 @@ import javax.swing.SwingConstants._ * @see javax.swing.SwingConstants */ object Alignment extends Enumeration { - val Left = Value(LEFT) - val Right = Value(RIGHT) - val Center = Value(CENTER) - val Top = Value(TOP) - val Bottom = Value(BOTTOM) + import javax.swing.SwingConstants._ + val Left : Alignment.Value = Value(LEFT) + val Right : Alignment.Value = Value(RIGHT) + val Center : Alignment.Value = Value(CENTER) + val Top : Alignment.Value = Value(TOP) + val Bottom : Alignment.Value = Value(BOTTOM) //1.6: val Baseline = Value(BASELINE) - val Leading = Value(LEADING) - val Trailing = Value(TRAILING) + val Leading : Alignment.Value = Value(LEADING) + val Trailing: Alignment.Value = Value(TRAILING) } diff --git a/src/main/scala/scala/swing/Applet.scala b/src/main/scala/scala/swing/Applet.scala index b8ba4eab..b5e0f6a6 100644 --- a/src/main/scala/scala/swing/Applet.scala +++ b/src/main/scala/scala/swing/Applet.scala @@ -27,20 +27,20 @@ import javax.swing.JApplet abstract class Applet extends JApplet { outer => val ui: UI - override def init() { ui.init() } - override def start() { ui.start() } - override def stop() { ui.stop() } + override def init (): Unit = ui.init () + override def start(): Unit = ui.start() + override def stop (): Unit = ui.stop () abstract class UI extends RootPanel { - def peer = outer - override def contents_=(c: Component) { + def peer: Applet = outer + override def contents_=(c: Component): Unit = { super.contents_=(c) peer.validate() } - def init() - def start() {} - def stop() {} + def init (): Unit + def start(): Unit = () + def stop (): Unit = () } } diff --git a/src/main/scala/scala/swing/BorderPanel.scala b/src/main/scala/scala/swing/BorderPanel.scala index 75bb721f..ab73b67b 100644 --- a/src/main/scala/scala/swing/BorderPanel.scala +++ b/src/main/scala/scala/swing/BorderPanel.scala @@ -17,18 +17,22 @@ object BorderPanel { * The position of a component in a BorderPanel */ object Position extends Enumeration { - val North = Value(BorderLayout.NORTH) - val South = Value(BorderLayout.SOUTH) - val West = Value(BorderLayout.WEST) - val East = Value(BorderLayout.EAST) - val Center = Value(BorderLayout.CENTER) + import BorderLayout._ + val North : Position.Value = Value(NORTH) + val South : Position.Value = Value(SOUTH) + val West : Position.Value = Value(WEST) + val East : Position.Value = Value(EAST) + val Center: Position.Value = Value(CENTER) } - private[swing] def wrapPosition(s: String): Position.Value = s match { - case BorderLayout.NORTH => Position.North - case BorderLayout.SOUTH => Position.South - case BorderLayout.WEST => Position.West - case BorderLayout.EAST => Position.East - case BorderLayout.CENTER => Position.Center + private[swing] def wrapPosition(s: String): Position.Value = { + import BorderLayout._ + s match { + case NORTH => Position.North + case SOUTH => Position.South + case WEST => Position.West + case EAST => Position.East + case CENTER => Position.Center + } } } @@ -41,16 +45,17 @@ object BorderPanel { */ class BorderPanel extends Panel with LayoutContainer { import BorderPanel._ - def layoutManager = peer.getLayout.asInstanceOf[BorderLayout] + def layoutManager: BorderLayout = peer.getLayout.asInstanceOf[BorderLayout] override lazy val peer = new javax.swing.JPanel(new BorderLayout) with SuperMixin type Constraints = Position.Value - protected def constraintsFor(comp: Component) = + protected def constraintsFor(comp: Component): Constraints = wrapPosition(layoutManager.getConstraints(comp.peer).asInstanceOf[String]) protected def areValid(c: Constraints): (Boolean, String) = (true, "") - protected def add(c: Component, l: Constraints) { + + protected def add(c: Component, l: Constraints): Unit = { // we need to remove previous components with the same constraints as the new one, // otherwise the layout manager loses track of the old one val old = layoutManager.getLayoutComponent(l.toString) diff --git a/src/main/scala/scala/swing/BufferWrapper.scala b/src/main/scala/scala/swing/BufferWrapper.scala index 38230ba6..6c2760ef 100644 --- a/src/main/scala/scala/swing/BufferWrapper.scala +++ b/src/main/scala/scala/swing/BufferWrapper.scala @@ -8,27 +8,30 @@ package scala.swing -import scala.collection.mutable.Buffer -import scala.collection.Iterator +import scala.collection.{Iterator, mutable} /** * Default partial implementation for buffer adapters. */ -protected[swing] abstract class BufferWrapper[A] extends Buffer[A] { outer => - def clear() { for (i <- 0 until length) remove(0) } - def update(n: Int, a: A) { +protected[swing] abstract class BufferWrapper[A] extends mutable.Buffer[A] { outer => + def clear(): Unit = for (_ <- 0 until length) remove(0) + + def update(n: Int, a: A): Unit = { remove(n) insertAt(n, a) } - def insertAll(n: Int, elems: Traversable[A]) { + + def insertAll(n: Int, elems: Traversable[A]): Unit = { var i = n for (el <- elems) { insertAt(i, el) i += 1 } } - protected def insertAt(n: Int, a: A) + + protected def insertAt(n: Int, a: A): Unit def +=:(a: A): this.type = { insertAt(0, a); this } - def iterator = Iterator.range(0,length).map(apply(_)) + + def iterator: Iterator[A] = Iterator.range(0,length).map(apply) } diff --git a/src/main/scala/scala/swing/Button.scala b/src/main/scala/scala/swing/Button.scala index 0170727e..492dfd29 100644 --- a/src/main/scala/scala/swing/Button.scala +++ b/src/main/scala/scala/swing/Button.scala @@ -30,5 +30,5 @@ class Button(text0: String) extends AbstractButton with Publisher { def defaultButton: Boolean = peer.isDefaultButton def defaultCapable: Boolean = peer.isDefaultCapable - def defaultCapable_=(capable: Boolean) { peer.setDefaultCapable(capable) } + def defaultCapable_=(capable: Boolean): Unit = peer.setDefaultCapable(capable) } diff --git a/src/main/scala/scala/swing/ButtonGroup.scala b/src/main/scala/scala/swing/ButtonGroup.scala index 0b04d208..82658561 100644 --- a/src/main/scala/scala/swing/ButtonGroup.scala +++ b/src/main/scala/scala/swing/ButtonGroup.scala @@ -22,17 +22,17 @@ class ButtonGroup(initialButtons: AbstractButton*) { val buttons: mutable.Set[AbstractButton] = new mutable.Set[AbstractButton] { def -=(b: AbstractButton): this.type = { peer.remove(b.peer); this } def +=(b: AbstractButton): this.type = { peer.add(b.peer); this } - def contains(b: AbstractButton) = this.iterator.contains(b) - override def size = peer.getButtonCount + def contains(b: AbstractButton): Boolean = this.iterator.contains(b) + override def size: Int = peer.getButtonCount def iterator: Iterator[AbstractButton] = new Iterator[AbstractButton] { val enum = peer.getElements - def next = UIElement.cachedWrapper[AbstractButton](enum.nextElement) - def hasNext = enum.hasMoreElements + def next: AbstractButton = UIElement.cachedWrapper[AbstractButton](enum.nextElement) + def hasNext: Boolean = enum.hasMoreElements } } buttons ++= initialButtons //1.6: def deselectAll() { peer.clearSelection } def selected: Option[AbstractButton] = buttons.find(_.selected) - def select(b: AbstractButton) { peer.setSelected(b.peer.getModel, true) } + def select(b: AbstractButton): Unit = peer.setSelected(b.peer.getModel, true) } diff --git a/src/main/scala/scala/swing/CheckBox.scala b/src/main/scala/scala/swing/CheckBox.scala index 7287c95a..2e884aee 100644 --- a/src/main/scala/scala/swing/CheckBox.scala +++ b/src/main/scala/scala/swing/CheckBox.scala @@ -22,5 +22,5 @@ class CheckBox(text: String) extends ToggleButton { def this() = this("") def borderPaintedFlat: Boolean = peer.isBorderPaintedFlat - def borderPaintedFlat_=(flat: Boolean) { peer.setBorderPaintedFlat(flat) } + def borderPaintedFlat_=(flat: Boolean): Unit = peer.setBorderPaintedFlat(flat) } diff --git a/src/main/scala/scala/swing/ColorChooser.scala b/src/main/scala/scala/swing/ColorChooser.scala index a1a27321..f4fc3aae 100644 --- a/src/main/scala/scala/swing/ColorChooser.scala +++ b/src/main/scala/scala/swing/ColorChooser.scala @@ -33,14 +33,13 @@ class ColorChooser(color0: Color) extends Component { override lazy val peer: JColorChooser = new JColorChooser(color0) with SuperMixin peer.getSelectionModel.addChangeListener(new javax.swing.event.ChangeListener { - def stateChanged(e: javax.swing.event.ChangeEvent) { - publish(ColorChanged(ColorChooser.this, peer.getColor)) - } + def stateChanged(e: javax.swing.event.ChangeEvent): Unit = + publish(ColorChanged(ColorChooser.this, peer.getColor)) }) def color: Color = peer.getColor - def color_=(c: Color) = peer.setColor(c) + def color_=(c: Color): Unit = peer.setColor(c) def dragEnabled: Boolean = peer.getDragEnabled - def dragEnabled_=(b: Boolean) = peer.setDragEnabled(b) + def dragEnabled_=(b: Boolean): Unit = peer.setDragEnabled(b) } \ No newline at end of file diff --git a/src/main/scala/scala/swing/ComboBox.scala b/src/main/scala/scala/swing/ComboBox.scala index fdc8cc72..b1e4b6e3 100644 --- a/src/main/scala/scala/swing/ComboBox.scala +++ b/src/main/scala/scala/swing/ComboBox.scala @@ -8,9 +8,10 @@ package scala.swing -import event._ -import javax.swing.{ JComponent, JComboBox, JTextField, ComboBoxModel, AbstractListModel, ListCellRenderer } import java.awt.event.ActionListener +import javax.swing.{AbstractListModel, ComboBoxModel, InputVerifier, JComboBox, JComponent, JTextField, ListCellRenderer} + +import scala.swing.event._ object ComboBox { /** @@ -23,7 +24,7 @@ object ComboBox { */ trait Editor[A] extends Publisher { lazy val comboBoxPeer: javax.swing.ComboBoxEditor = new javax.swing.ComboBoxEditor with Publisher { - def addActionListener(l: ActionListener) { + def addActionListener(l: ActionListener): Unit = this match { // TODO case w: Action.Trigger.Wrapper => // w.peer.addActionListener(l) @@ -32,24 +33,28 @@ object ComboBox { case ActionEvent(c) => l.actionPerformed(new java.awt.event.ActionEvent(c.peer, 0, "")) })) } - } - def removeActionListener(l: ActionListener) { + + def removeActionListener(l: ActionListener): Unit = this match { // TODO case w: Action.Trigger.Wrapper => // w.peer.removeActionListener(l) case _ => this.unsubscribe(new Reactions.Wrapper(l)({ case _ => })) } - } + def getEditorComponent: JComponent = Editor.this.component.peer + def getItem(): AnyRef = item.asInstanceOf[AnyRef] - def selectAll() { startEditing() } - def setItem(a: Any) { item = a.asInstanceOf[A] } + + def selectAll(): Unit = startEditing() + + def setItem(a: Any): Unit = + item = a.asInstanceOf[A] } def component: Component def item: A - def item_=(a: A) - def startEditing() + def item_=(a: A): Unit + def startEditing(): Unit } /** @@ -74,32 +79,29 @@ object ComboBox { throw new IllegalArgumentException("ComboBox not initialized with a proper value, was '" + v + "'.") } } - def addActionListener(l: ActionListener) { - editor.addActionListener(l) - } - def removeActionListener(l: ActionListener) { - editor.removeActionListener(l) - } + def addActionListener(l: ActionListener): Unit = editor.addActionListener(l) + def removeActionListener(l: ActionListener): Unit = editor.removeActionListener(l) def getEditorComponent: JComponent = editor.getEditorComponent.asInstanceOf[JComponent] - def selectAll() { editor.selectAll() } + def selectAll(): Unit = editor.selectAll() def getItem(): AnyRef = { verifier.verify(getEditorComponent); value.asInstanceOf[AnyRef] } - def setItem(a: Any) { editor.setItem(a) } + def setItem(a: Any): Unit = editor.setItem(a) - val verifier = new javax.swing.InputVerifier { + val verifier: InputVerifier = new InputVerifier { // TODO: should chain with potentially existing verifier in editor - def verify(c: JComponent) = try { - value = string2A(c.asInstanceOf[JTextField].getText) - true - } - catch { - case e: Exception => false - } + def verify(c: JComponent): Boolean = + try { + value = string2A(c.asInstanceOf[JTextField].getText) + true + } + catch { + case _: Exception => false + } } - def textEditor = getEditorComponent.asInstanceOf[JTextField] + def textEditor: JTextField = getEditorComponent.asInstanceOf[JTextField] textEditor.setInputVerifier(verifier) - textEditor.addActionListener(Swing.ActionListener{ a => + textEditor.addActionListener(Swing.ActionListener{ _ => getItem() // make sure our value is updated textEditor.setText(a2String(value)) }) @@ -107,10 +109,10 @@ object ComboBox { override lazy val comboBoxPeer: javax.swing.ComboBoxEditor = new DelegatedEditor(comboBox.peer.getEditor) - def component = Component.wrap(comboBoxPeer.getEditorComponent.asInstanceOf[JComponent]) + def component: Component = Component.wrap(comboBoxPeer.getEditorComponent.asInstanceOf[JComponent]) def item: A = { comboBoxPeer.asInstanceOf[DelegatedEditor].value } - def item_=(a: A) { comboBoxPeer.setItem(a2String(a)) } - def startEditing() { comboBoxPeer.selectAll() } + def item_=(a: A): Unit = comboBoxPeer.setItem(a2String(a)) + def startEditing(): Unit = comboBoxPeer.selectAll() } implicit def stringEditor(c: ComboBox[String]): Editor[String] = new BuiltInEditor(c)(s => s, s => s) @@ -121,16 +123,16 @@ object ComboBox { def newConstantModel[A](items: Seq[A]): ComboBoxModel[A] = { new AbstractListModel[A] with ComboBoxModel[A] { private var selected: A = if (items.isEmpty) null.asInstanceOf[A] else items(0) - def getSelectedItem = selected.asInstanceOf[AnyRef] - def setSelectedItem(a: Any) { + def getSelectedItem: AnyRef = selected.asInstanceOf[AnyRef] + def setSelectedItem(a: Any): Unit = { if ((selected != null && selected != a) || selected == null && a != null) { selected = a.asInstanceOf[A] fireContentsChanged(this, -1, -1) } } - def getElementAt(n: Int) = items(n).asInstanceOf[A] - def getSize = items.size + def getElementAt(n: Int): A = items(n) + def getSize: Int = items.size } } @@ -161,11 +163,11 @@ class ComboBox[A](items: Seq[A]) extends Component with Publisher { object selection extends Publisher { def index: Int = peer.getSelectedIndex - def index_=(n: Int) { peer.setSelectedIndex(n) } + def index_=(n: Int): Unit = peer.setSelectedIndex(n) def item: A = peer.getSelectedItem.asInstanceOf[A] - def item_=(a: A) { peer.setSelectedItem(a) } + def item_=(a: A): Unit = peer.setSelectedItem(a) - peer.addActionListener(Swing.ActionListener { e => + peer.addActionListener(Swing.ActionListener { _ => publish(event.SelectionChanged(ComboBox.this)) }) } @@ -183,7 +185,7 @@ class ComboBox[A](items: Seq[A]) extends Component with Publisher { * configured. That's Swing's principle of most suprise. */ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer.asInstanceOf[ListCellRenderer[A]]) - def renderer_=(r: ListView.Renderer[A]) { peer.setRenderer(r.peer) } + def renderer_=(r: ListView.Renderer[A]): Unit = peer.setRenderer(r.peer) /* XXX: currently not safe to expose: def editor: ComboBox.Editor[A] = @@ -207,13 +209,12 @@ class ComboBox[A](items: Seq[A]) extends Component with Publisher { * editor which is supplied by the implicit argument. For default * editors, see ComboBox companion object. */ - def makeEditable()(implicit editor: ComboBox[A] => ComboBox.Editor[A]) { + def makeEditable()(implicit editor: ComboBox[A] => ComboBox.Editor[A]): Unit = { peer.setEditable(true) peer.setEditor(editor(this).comboBoxPeer) } def prototypeDisplayValue: Option[A] = Option(peer.getPrototypeDisplayValue) - def prototypeDisplayValue_=(v: Option[A]) { + def prototypeDisplayValue_=(v: Option[A]): Unit = peer.setPrototypeDisplayValue(v getOrElse null.asInstanceOf[A]) - } } diff --git a/src/main/scala/scala/swing/Component.scala b/src/main/scala/scala/swing/Component.scala index b7dd856d..680ccaf9 100644 --- a/src/main/scala/scala/swing/Component.scala +++ b/src/main/scala/scala/swing/Component.scala @@ -25,7 +25,7 @@ object Component { def wrap(c: JComponent): Component = { val w = UIElement.cachedWrapper[Component](c) if (w != null) w - else new Component { override lazy val peer = c } + else new Component { override lazy val peer: JComponent = c } } } @@ -49,65 +49,62 @@ abstract class Component extends UIElement { * and back. Useful to expose methods that can be customized by overriding. */ protected trait SuperMixin extends JComponent { - override def paintComponent(g: Graphics) { + override def paintComponent(g: Graphics): Unit = Component.this.paintComponent(g.asInstanceOf[Graphics2D]) - } - def __super__paintComponent(g: Graphics) { + + def __super__paintComponent(g: Graphics): Unit = super.paintComponent(g) - } - override def paintBorder(g: Graphics) { + + override def paintBorder(g: Graphics): Unit = Component.this.paintBorder(g.asInstanceOf[Graphics2D]) - } - def __super__paintBorder(g: Graphics) { + + def __super__paintBorder(g: Graphics): Unit = super.paintBorder(g) - } - override def paintChildren(g: Graphics) { + + override def paintChildren(g: Graphics): Unit = Component.this.paintChildren(g.asInstanceOf[Graphics2D]) - } - def __super__paintChildren(g: Graphics) { + + def __super__paintChildren(g: Graphics): Unit = super.paintChildren(g) - } - override def paint(g: Graphics) { + override def paint(g: Graphics): Unit = Component.this.paint(g.asInstanceOf[Graphics2D]) - } - def __super__paint(g: Graphics) { + + def __super__paint(g: Graphics): Unit = super.paint(g) - } } def name: String = peer.getName - def name_=(s: String) = peer.setName(s) + def name_=(s: String): Unit = peer.setName(s) /** * Used by certain layout managers, e.g., BoxLayout or OverlayLayout to * align components relative to each other. */ def xLayoutAlignment: Double = peer.getAlignmentX - def xLayoutAlignment_=(x: Double) = peer.setAlignmentX(x.toFloat) + def xLayoutAlignment_=(x: Double): Unit = peer.setAlignmentX(x.toFloat) def yLayoutAlignment: Double = peer.getAlignmentY - def yLayoutAlignment_=(y: Double) = peer.setAlignmentY(y.toFloat) + def yLayoutAlignment_=(y: Double): Unit = peer.setAlignmentY(y.toFloat) def border: Border = peer.getBorder - def border_=(b: Border) { peer.setBorder(b) } + def border_=(b: Border): Unit = peer.setBorder(b) def opaque: Boolean = peer.isOpaque - def opaque_=(b: Boolean) = peer.setOpaque(b) + def opaque_=(b: Boolean): Unit = peer.setOpaque(b) def enabled: Boolean = peer.isEnabled - def enabled_=(b: Boolean) = peer.setEnabled(b) + def enabled_=(b: Boolean): Unit = peer.setEnabled(b) def tooltip: String = peer.getToolTipText - def tooltip_=(t: String) = peer.setToolTipText(t) + def tooltip_=(t: String): Unit = peer.setToolTipText(t) def inputVerifier: Component => Boolean = { a => Option(peer.getInputVerifier) forall (_ verify a.peer) } - def inputVerifier_=(v: Component => Boolean) { + def inputVerifier_=(v: Component => Boolean): Unit = peer.setInputVerifier(new javax.swing.InputVerifier { - def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper[Component](c)) + def verify(c: javax.swing.JComponent): Boolean = v(UIElement.cachedWrapper[Component](c)) }) - } /*def verifyOnTraversal: (Component, Component) => Boolean = { a => peer.getInputVerifier().verify(a.peer) @@ -126,52 +123,50 @@ abstract class Component extends UIElement { * Publishes clicks, presses and releases. */ val clicks: Publisher = new LazyPublisher { - lazy val l = new MouseListener { - def mouseEntered(e: java.awt.event.MouseEvent) {} - def mouseExited(e: java.awt.event.MouseEvent) {} - def mouseClicked(e: java.awt.event.MouseEvent) { + lazy val l: MouseListener = new MouseListener { + def mouseEntered(e: java.awt.event.MouseEvent): Unit = () + def mouseExited(e: java.awt.event.MouseEvent): Unit = () + def mouseClicked(e: java.awt.event.MouseEvent): Unit = publish(new MouseClicked(e)) - } - def mousePressed(e: java.awt.event.MouseEvent) { + + def mousePressed(e: java.awt.event.MouseEvent): Unit = publish(new MousePressed(e)) - } - def mouseReleased(e: java.awt.event.MouseEvent) { + + def mouseReleased(e: java.awt.event.MouseEvent): Unit = publish(new MouseReleased(e)) - } } - def onFirstSubscribe() = peer.addMouseListener(l) - def onLastUnsubscribe() = peer.removeMouseListener(l) + def onFirstSubscribe (): Unit = peer.addMouseListener(l) + def onLastUnsubscribe(): Unit = peer.removeMouseListener(l) } /** * Publishes enters, exits, moves, and drags. */ val moves: Publisher = new LazyPublisher { - lazy val mouseListener = new MouseListener { - def mouseEntered(e: java.awt.event.MouseEvent) { + lazy val mouseListener: MouseListener = new MouseListener { + def mouseEntered(e: java.awt.event.MouseEvent): Unit = publish(new MouseEntered(e)) - } - def mouseExited(e: java.awt.event.MouseEvent) { + + def mouseExited(e: java.awt.event.MouseEvent): Unit = publish(new MouseExited(e)) - } - def mouseClicked(e: java.awt.event.MouseEvent) {} - def mousePressed(e: java.awt.event.MouseEvent) {} - def mouseReleased(e: java.awt.event.MouseEvent) {} + + def mouseClicked (e: java.awt.event.MouseEvent): Unit = () + def mousePressed (e: java.awt.event.MouseEvent): Unit = () + def mouseReleased(e: java.awt.event.MouseEvent): Unit = () } - lazy val mouseMotionListener = new MouseMotionListener { - def mouseMoved(e: java.awt.event.MouseEvent) { + lazy val mouseMotionListener: MouseMotionListener = new MouseMotionListener { + def mouseMoved(e: java.awt.event.MouseEvent): Unit = publish(new MouseMoved(e)) - } - def mouseDragged(e: java.awt.event.MouseEvent) { + + def mouseDragged(e: java.awt.event.MouseEvent): Unit = publish(new MouseDragged(e)) - } } - def onFirstSubscribe() { + def onFirstSubscribe(): Unit = { peer.addMouseListener(mouseListener) peer.addMouseMotionListener(mouseMotionListener) } - def onLastUnsubscribe() { + def onLastUnsubscribe(): Unit = { peer.removeMouseListener(mouseListener) peer.removeMouseMotionListener(mouseMotionListener) } @@ -182,66 +177,63 @@ abstract class Component extends UIElement { val wheel: Publisher = new LazyPublisher { // We need to subscribe lazily and unsubscribe, since components in scroll panes capture // mouse wheel events if there is a listener installed. See ticket #1442. - lazy val l = new MouseWheelListener { - def mouseWheelMoved(e: java.awt.event.MouseWheelEvent) { + lazy val l: MouseWheelListener = new MouseWheelListener { + def mouseWheelMoved(e: java.awt.event.MouseWheelEvent): Unit = publish(new MouseWheelMoved(e)) - } } - def onFirstSubscribe() = peer.addMouseWheelListener(l) - def onLastUnsubscribe() = peer.removeMouseWheelListener(l) + def onFirstSubscribe (): Unit = peer.addMouseWheelListener(l) + def onLastUnsubscribe(): Unit = peer.removeMouseWheelListener(l) } } object keys extends Publisher { peer.addKeyListener(new KeyListener { - def keyPressed(e: java.awt.event.KeyEvent) { publish(new KeyPressed(e)) } - def keyReleased(e: java.awt.event.KeyEvent) { publish(new KeyReleased(e)) } - def keyTyped(e: java.awt.event.KeyEvent) { publish(new KeyTyped(e)) } + def keyPressed (e: java.awt.event.KeyEvent): Unit = publish(new KeyPressed(e)) + def keyReleased (e: java.awt.event.KeyEvent): Unit = publish(new KeyReleased(e)) + def keyTyped (e: java.awt.event.KeyEvent): Unit = publish(new KeyTyped(e)) }) } def focusable: Boolean = peer.isFocusable - def focusable_=(b: Boolean) = peer.setFocusable(b) - def requestFocus() = peer.requestFocus() - def requestFocusInWindow() = peer.requestFocusInWindow() + def focusable_=(b: Boolean): Unit = peer.setFocusable(b) + def requestFocus(): Unit = peer.requestFocus() + def requestFocusInWindow(): Boolean = peer.requestFocusInWindow() def hasFocus: Boolean = peer.isFocusOwner - protected override def onFirstSubscribe() { - super.onFirstSubscribe + protected override def onFirstSubscribe(): Unit = { + super.onFirstSubscribe() // TODO: deprecated, remove after 2.8 peer.addComponentListener(new java.awt.event.ComponentListener { - def componentHidden(e: java.awt.event.ComponentEvent) { + def componentHidden(e: java.awt.event.ComponentEvent): Unit = publish(UIElementHidden(Component.this)) - } - def componentShown(e: java.awt.event.ComponentEvent) { + + def componentShown(e: java.awt.event.ComponentEvent): Unit = publish(UIElementShown(Component.this)) - } - def componentMoved(e: java.awt.event.ComponentEvent) { + + def componentMoved(e: java.awt.event.ComponentEvent): Unit = publish(UIElementMoved(Component.this)) - } - def componentResized(e: java.awt.event.ComponentEvent) { + + def componentResized(e: java.awt.event.ComponentEvent): Unit = publish(UIElementResized(Component.this)) - } }) peer.addFocusListener(new java.awt.event.FocusListener { - def other(e: java.awt.event.FocusEvent) = e.getOppositeComponent match { + def other(e: java.awt.event.FocusEvent): Option[Component] = e.getOppositeComponent match { case c: JComponent => Some(UIElement.cachedWrapper[Component](c)) case _ => None } - def focusGained(e: java.awt.event.FocusEvent) { + def focusGained(e: java.awt.event.FocusEvent): Unit = publish(FocusGained(Component.this, other(e), e.isTemporary)) - } - def focusLost(e: java.awt.event.FocusEvent) { + + def focusLost(e: java.awt.event.FocusEvent): Unit = publish(FocusLost(Component.this, other(e), e.isTemporary)) - } }) peer.addPropertyChangeListener(new java.beans.PropertyChangeListener { - def propertyChange(e: java.beans.PropertyChangeEvent) { + def propertyChange(e: java.beans.PropertyChangeEvent): Unit = e.getPropertyName match { - case "font" => publish(FontChanged(Component.this)) + case "font" => publish(FontChanged (Component.this)) case "background" => publish(BackgroundChanged(Component.this)) case "foreground" => publish(ForegroundChanged(Component.this)) case _ => @@ -254,42 +246,37 @@ abstract class Component extends UIElement { case "focusTraversalPolicy" => case "focusCycleRoot" =>*/ } - } }) } - def revalidate() { peer.revalidate() } + def revalidate(): Unit = peer.revalidate() /** * For custom painting, users should usually override this method. */ - protected def paintComponent(g: Graphics2D) { + protected def paintComponent(g: Graphics2D): Unit = peer match { case peer: SuperMixin => peer.__super__paintComponent(g) case _ => } - } - protected def paintBorder(g: Graphics2D) { + protected def paintBorder(g: Graphics2D): Unit = peer match { case peer: SuperMixin => peer.__super__paintBorder(g) case _ => } - } - protected def paintChildren(g: Graphics2D) { + protected def paintChildren(g: Graphics2D): Unit = peer match { case peer: SuperMixin => peer.__super__paintChildren(g) case _ => } - } - def paint(g: Graphics2D) { + def paint(g: Graphics2D): Unit = peer match { case peer: SuperMixin => peer.__super__paint(g) case _ => peer.paint(g) } - } - override def toString = "scala.swing wrapper " + peer.toString + override def toString: String = "scala.swing wrapper " + peer.toString } diff --git a/src/main/scala/scala/swing/Container.scala b/src/main/scala/scala/swing/Container.scala index 24889f0c..9ae0bd6a 100644 --- a/src/main/scala/scala/swing/Container.scala +++ b/src/main/scala/scala/swing/Container.scala @@ -10,8 +10,7 @@ package scala.swing -import event._ -import scala.collection.mutable.Buffer +import scala.swing.event._ object Container { /** @@ -25,27 +24,26 @@ object Container { def contents: Seq[Component] = _contents protected class Content extends BufferWrapper[Component] { - override def clear() { peer.removeAll() } + override def clear(): Unit = peer.removeAll() override def remove(n: Int): Component = { val c = peer.getComponent(n) peer.remove(n) UIElement.cachedWrapper[Component](c) } - protected def insertAt(n: Int, c: Component) { peer.add(c.peer, n) } + protected def insertAt(n: Int, c: Component): Unit = peer.add(c.peer, n) def +=(c: Component): this.type = { peer.add(c.peer) ; this } - def length = peer.getComponentCount - def apply(n: Int) = UIElement.cachedWrapper[Component](peer.getComponent(n)) + def length: Int = peer.getComponentCount + def apply(n: Int): Component = UIElement.cachedWrapper[Component](peer.getComponent(n)) } peer.addContainerListener(new java.awt.event.ContainerListener { - def componentAdded(e: java.awt.event.ContainerEvent) { + def componentAdded(e: java.awt.event.ContainerEvent): Unit = publish(ComponentAdded(Wrapper.this, UIElement.cachedWrapper[Component](e.getChild.asInstanceOf[javax.swing.JComponent]))) - } - def componentRemoved(e: java.awt.event.ContainerEvent) { + + def componentRemoved(e: java.awt.event.ContainerEvent): Unit = publish(ComponentRemoved(Wrapper.this, UIElement.cachedWrapper[Component](e.getChild.asInstanceOf[javax.swing.JComponent]))) - } }) } } diff --git a/src/main/scala/scala/swing/EditorPane.scala b/src/main/scala/scala/swing/EditorPane.scala index 9b1aab78..3ab0305e 100644 --- a/src/main/scala/scala/swing/EditorPane.scala +++ b/src/main/scala/scala/swing/EditorPane.scala @@ -21,8 +21,8 @@ class EditorPane(contentType0: String, text0: String) extends TextComponent { def this() = this("text/plain", "") def contentType: String = peer.getContentType - def contentType_=(t: String) = peer.setContentType(t) + def contentType_=(t: String): Unit = peer.setContentType(t) def editorKit: EditorKit = peer.getEditorKit - def editorKit_=(k: EditorKit) = peer.setEditorKit(k) + def editorKit_=(k: EditorKit): Unit = peer.setEditorKit(k) } diff --git a/src/main/scala/scala/swing/FileChooser.scala b/src/main/scala/scala/swing/FileChooser.scala index 0be1d407..44633e32 100644 --- a/src/main/scala/scala/swing/FileChooser.scala +++ b/src/main/scala/scala/swing/FileChooser.scala @@ -19,18 +19,20 @@ object FileChooser { * `"open"` for instance. */ object Result extends Enumeration { - val Cancel = Value(JFileChooser.CANCEL_OPTION) - val Approve = Value(JFileChooser.APPROVE_OPTION) - val Error = Value(JFileChooser.ERROR_OPTION) + import JFileChooser._ + val Cancel : Result.Value = Value(CANCEL_OPTION) + val Approve: Result.Value = Value(APPROVE_OPTION) + val Error : Result.Value = Value(ERROR_OPTION) } /** * The kind of elements a user can select in a file dialog. */ object SelectionMode extends Enumeration { - val FilesOnly = Value(JFileChooser.FILES_ONLY) - val DirectoriesOnly = Value(JFileChooser.DIRECTORIES_ONLY) - val FilesAndDirectories = Value(JFileChooser.FILES_AND_DIRECTORIES) + import JFileChooser._ + val FilesOnly : SelectionMode.Value = Value(FILES_ONLY) + val DirectoriesOnly : SelectionMode.Value = Value(DIRECTORIES_ONLY) + val FilesAndDirectories: SelectionMode.Value = Value(FILES_AND_DIRECTORIES) } } @@ -70,36 +72,36 @@ class FileChooser(dir: File) { def showDialog(over: PeerContainer, approveText: String): Result.Value = Result(peer.showDialog(nullPeer(over), approveText)) def controlButtonsAreShown: Boolean = peer.getControlButtonsAreShown - def controlButtonsAreShown_=(b: Boolean) { peer.setControlButtonsAreShown(b) } + def controlButtonsAreShown_=(b: Boolean): Unit = peer.setControlButtonsAreShown(b) def title: String = peer.getDialogTitle - def title_=(t: String) { peer.setDialogTitle(t) } + def title_=(t: String): Unit = peer.setDialogTitle(t) def accessory: Component = UIElement.cachedWrapper[Component](peer.getAccessory) - def accessory_=(c: Component) { peer.setAccessory(c.peer) } + def accessory_=(c: Component): Unit = peer.setAccessory(c.peer) def fileHidingEnabled: Boolean = peer.isFileHidingEnabled - def fileHidingEnabled_=(b: Boolean) { peer.setFileHidingEnabled(b) } + def fileHidingEnabled_=(b: Boolean): Unit = peer.setFileHidingEnabled(b) def fileSelectionMode: SelectionMode.Value = SelectionMode(peer.getFileSelectionMode) - def fileSelectionMode_=(s: SelectionMode.Value) { peer.setFileSelectionMode(s.id) } + def fileSelectionMode_=(s: SelectionMode.Value): Unit = peer.setFileSelectionMode(s.id) def fileFilter: FileFilter = peer.getFileFilter - def fileFilter_=(f: FileFilter) { peer setFileFilter f } + def fileFilter_=(f: FileFilter): Unit = peer setFileFilter f def selectedFile: File = peer.getSelectedFile - def selectedFile_=(file: File) { peer.setSelectedFile(file) } + def selectedFile_=(file: File): Unit = peer.setSelectedFile(file) def selectedFiles: Seq[File] = peer.getSelectedFiles - def selectedFiles_=(files: File*) { peer.setSelectedFiles(files.toArray) } + def selectedFiles_=(files: File*): Unit = peer.setSelectedFiles(files.toArray) def multiSelectionEnabled: Boolean = peer.isMultiSelectionEnabled - def multiSelectionEnabled_=(b: Boolean) { peer.setMultiSelectionEnabled(b) } + def multiSelectionEnabled_=(b: Boolean): Unit = peer.setMultiSelectionEnabled(b) - def iconFor(f: File) = peer.getIcon(f) - def descriptionFor(f: File) = peer.getDescription(f) - def nameFor(f: File) = peer.getName(f) - def typeDescriptionFor(f: File) = peer.getTypeDescription(f) - def traversable(f: File) = peer.isTraversable(f) + def iconFor(f: File): Icon = peer.getIcon(f) + def descriptionFor(f: File): String = peer.getDescription(f) + def nameFor(f: File): String = peer.getName(f) + def typeDescriptionFor(f: File): String = peer.getTypeDescription(f) + def traversable(f: File): Boolean = peer.isTraversable(f) - def acceptAllFileFilter = peer.getAcceptAllFileFilter + def acceptAllFileFilter: FileFilter = peer.getAcceptAllFileFilter /*peer.addPropertyChangeListener(new java.beans.PropertyChangeListener { def propertyChange(e: java.beans.PropertyChangeEvent) { diff --git a/src/main/scala/scala/swing/FlowPanel.scala b/src/main/scala/scala/swing/FlowPanel.scala index feeb3d47..45696cd1 100644 --- a/src/main/scala/scala/swing/FlowPanel.scala +++ b/src/main/scala/scala/swing/FlowPanel.scala @@ -15,11 +15,12 @@ import javax.swing.JPanel object FlowPanel { object Alignment extends Enumeration { - val Leading = Value(FlowLayout.LEADING) - val Trailing = Value(FlowLayout.TRAILING) - val Left = Value(FlowLayout.LEFT) - val Right = Value(FlowLayout.RIGHT) - val Center = Value(FlowLayout.CENTER) + import FlowLayout._ + val Leading : Alignment.Value = Value(LEADING) + val Trailing: Alignment.Value = Value(TRAILING) + val Left : Alignment.Value = Value(LEFT) + val Right : Alignment.Value = Value(RIGHT) + val Center : Alignment.Value = Value(CENTER) } } @@ -40,7 +41,7 @@ class FlowPanel(alignment: FlowPanel.Alignment.Value)(contents0: Component*) ext private def layoutManager = peer.getLayout.asInstanceOf[java.awt.FlowLayout] def vGap: Int = layoutManager.getVgap - def vGap_=(n: Int) { layoutManager.setVgap(n) } + def vGap_=(n: Int): Unit = layoutManager.setVgap(n) def hGap: Int = layoutManager.getHgap - def hGap_=(n: Int) { layoutManager.setHgap(n) } + def hGap_=(n: Int): Unit = layoutManager.setHgap(n) } diff --git a/src/main/scala/scala/swing/FormattedTextField.scala b/src/main/scala/scala/swing/FormattedTextField.scala index b0807585..301b9dc7 100644 --- a/src/main/scala/scala/swing/FormattedTextField.scala +++ b/src/main/scala/scala/swing/FormattedTextField.scala @@ -15,10 +15,11 @@ object FormattedTextField { * The behavior of a formatted text field when it loses its focus. */ object FocusLostBehavior extends Enumeration { - val Commit = Value(JFormattedTextField.COMMIT) - val CommitOrRevert = Value(JFormattedTextField.COMMIT_OR_REVERT) - val Persist = Value(JFormattedTextField.PERSIST) - val Revert = Value(JFormattedTextField.REVERT) + import JFormattedTextField._ + val Commit : FocusLostBehavior.Value = Value(COMMIT) + val CommitOrRevert: FocusLostBehavior.Value = Value(COMMIT_OR_REVERT) + val Persist : FocusLostBehavior.Value = Value(PERSIST) + val Revert : FocusLostBehavior.Value = Value(REVERT) } } @@ -32,9 +33,9 @@ class FormattedTextField(format: java.text.Format) extends TextComponent { import FormattedTextField._ - def commitEdit() { peer.commitEdit() } + def commitEdit(): Unit = peer.commitEdit() def editValid: Boolean = peer.isEditValid def focusLostBehavior: FocusLostBehavior.Value = FocusLostBehavior(peer.getFocusLostBehavior) - def focusLostBehavior_=(b: FocusLostBehavior.Value) { peer.setFocusLostBehavior(b.id) } + def focusLostBehavior_=(b: FocusLostBehavior.Value): Unit = peer.setFocusLostBehavior(b.id) } diff --git a/src/main/scala/scala/swing/GridBagPanel.scala b/src/main/scala/scala/swing/GridBagPanel.scala index 7d181af4..fdeaf249 100644 --- a/src/main/scala/scala/swing/GridBagPanel.scala +++ b/src/main/scala/scala/swing/GridBagPanel.scala @@ -12,30 +12,32 @@ import java.awt.{GridBagConstraints, GridBagLayout} object GridBagPanel { object Fill extends Enumeration { - val None = Value(GridBagConstraints.NONE) - val Horizontal = Value(GridBagConstraints.HORIZONTAL) - val Vertical = Value(GridBagConstraints.VERTICAL) - val Both = Value(GridBagConstraints.BOTH) + import GridBagConstraints._ + val None : Fill.Value = Value(NONE) + val Horizontal : Fill.Value = Value(HORIZONTAL) + val Vertical : Fill.Value = Value(VERTICAL) + val Both : Fill.Value = Value(BOTH) } object Anchor extends Enumeration { - val North = Value(GridBagConstraints.NORTH) - val NorthEast = Value(GridBagConstraints.NORTHEAST) - val East = Value(GridBagConstraints.EAST) - val SouthEast = Value(GridBagConstraints.SOUTHEAST) - val South = Value(GridBagConstraints.SOUTH) - val SouthWest = Value(GridBagConstraints.SOUTHWEST) - val West = Value(GridBagConstraints.WEST) - val NorthWest = Value(GridBagConstraints.NORTHWEST) - val Center = Value(GridBagConstraints.CENTER) + import GridBagConstraints._ + val North : Anchor.Value = Value(NORTH) + val NorthEast : Anchor.Value = Value(NORTHEAST) + val East : Anchor.Value = Value(EAST) + val SouthEast : Anchor.Value = Value(SOUTHEAST) + val South : Anchor.Value = Value(SOUTH) + val SouthWest : Anchor.Value = Value(SOUTHWEST) + val West : Anchor.Value = Value(WEST) + val NorthWest : Anchor.Value = Value(NORTHWEST) + val Center : Anchor.Value = Value(CENTER) - val PageStart = Value(GridBagConstraints.PAGE_START) - val PageEnd = Value(GridBagConstraints.PAGE_END) - val LineStart = Value(GridBagConstraints.LINE_START) - val LineEnd = Value(GridBagConstraints.LINE_END) - val FirstLineStart = Value(GridBagConstraints.FIRST_LINE_START) - val FirstLineEnd = Value(GridBagConstraints.FIRST_LINE_END) - val LastLineStart = Value(GridBagConstraints.LAST_LINE_START) - val LastLineEnd = Value(GridBagConstraints.LAST_LINE_END) + val PageStart : Anchor.Value = Value(PAGE_START) + val PageEnd : Anchor.Value = Value(PAGE_END) + val LineStart : Anchor.Value = Value(LINE_START) + val LineEnd : Anchor.Value = Value(LINE_END) + val FirstLineStart: Anchor.Value = Value(FIRST_LINE_START) + val FirstLineEnd : Anchor.Value = Value(FIRST_LINE_END) + val LastLineStart : Anchor.Value = Value(LAST_LINE_START) + val LastLineEnd : Anchor.Value = Value(LAST_LINE_END) } } @@ -76,38 +78,38 @@ class GridBagPanel extends Panel with LayoutContainer { ipadx, ipady)) def this() = this(new GridBagConstraints()) def gridx: Int = peer.gridx - def gridx_=(x: Int) { peer.gridx = x } + def gridx_=(x: Int): Unit = { peer.gridx = x } def gridy: Int = peer.gridy - def gridy_=(y: Int) { peer.gridy = y } + def gridy_=(y: Int): Unit = { peer.gridy = y } def grid: (Int, Int) = (gridx, gridy) - def grid_=(c: (Int, Int)) = { + def grid_=(c: (Int, Int)): Unit = { gridx = c._1 gridy = c._2 } def gridwidth: Int = peer.gridwidth - def gridwidth_=(w: Int) { peer.gridwidth = w } + def gridwidth_=(w: Int): Unit = { peer.gridwidth = w } def gridheight: Int = peer.gridheight - def gridheight_=(h: Int) { peer.gridheight = h } + def gridheight_=(h: Int): Unit = { peer.gridheight = h } def weightx: Double = peer.weightx - def weightx_=(x: Double) { peer.weightx = x } + def weightx_=(x: Double): Unit = { peer.weightx = x } def weighty: Double = peer.weighty - def weighty_=(y: Double) { peer.weighty = y } + def weighty_=(y: Double): Unit = { peer.weighty = y } def anchor: Anchor.Value = Anchor(peer.anchor) - def anchor_=(a: Anchor.Value) { peer.anchor = a.id } + def anchor_=(a: Anchor.Value): Unit = { peer.anchor = a.id } def fill: Fill.Value = Fill(peer.fill) - def fill_=(f: Fill.Value) { peer.fill = f.id } + def fill_=(f: Fill.Value): Unit = { peer.fill = f.id } def insets: Insets = peer.insets - def insets_=(i: Insets) { peer.insets = i } + def insets_=(i: Insets): Unit = { peer.insets = i } def ipadx: Int = peer.ipadx - def ipadx_=(x: Int) { peer.ipadx = x } + def ipadx_=(x: Int): Unit = { peer.ipadx = x } def ipady: Int = peer.ipady - def ipady_=(y: Int) { peer.ipady = y } + def ipady_=(y: Int): Unit = { peer.ipady = y } } protected def constraintsFor(comp: Component) = new Constraints(layoutManager.getConstraints(comp.peer)) protected def areValid(c: Constraints): (Boolean, String) = (true, "") - protected def add(c: Component, l: Constraints) { peer.add(c.peer, l.peer) } + protected def add(c: Component, l: Constraints): Unit = peer.add(c.peer, l.peer) } diff --git a/src/main/scala/scala/swing/GridPanel.scala b/src/main/scala/scala/swing/GridPanel.scala index d41f9e1c..2a0204a5 100644 --- a/src/main/scala/scala/swing/GridPanel.scala +++ b/src/main/scala/scala/swing/GridPanel.scala @@ -40,12 +40,12 @@ class GridPanel(rows0: Int, cols0: Int) extends Panel with SequentialContainer.W private def layoutManager = peer.getLayout.asInstanceOf[java.awt.GridLayout] def rows: Int = layoutManager.getRows - def rows_=(n: Int) { layoutManager.setRows(n) } + def rows_=(n: Int): Unit = layoutManager.setRows(n) def columns: Int = layoutManager.getColumns - def columns_=(n: Int) { layoutManager.setColumns(n) } + def columns_=(n: Int): Unit = layoutManager.setColumns(n) def vGap: Int = layoutManager.getVgap - def vGap_=(n: Int) { layoutManager.setVgap(n) } + def vGap_=(n: Int): Unit = layoutManager.setVgap(n) def hGap: Int = layoutManager.getHgap - def hGap_=(n: Int) { layoutManager.setHgap(n) } + def hGap_=(n: Int): Unit = layoutManager.setHgap(n) } diff --git a/src/main/scala/scala/swing/Label.scala b/src/main/scala/scala/swing/Label.scala index 65d43cbe..7b1bc8d1 100644 --- a/src/main/scala/scala/swing/Label.scala +++ b/src/main/scala/scala/swing/Label.scala @@ -25,38 +25,38 @@ class Label(text0: String, icon0: Icon, align: Alignment.Value) extends Componen def this() = this("", EmptyIcon, Alignment.Center) def this(s: String) = this(s, EmptyIcon, Alignment.Center) def text: String = peer.getText - def text_=(s: String) = peer.setText(s) + def text_=(s: String): Unit = peer.setText(s) def icon: Icon = peer.getIcon - def icon_=(i: Icon) = peer.setIcon(i) + def icon_=(i: Icon): Unit = peer.setIcon(i) /** * The alignment of the label's contents relative to its bounding box. */ def xAlignment: Alignment.Value = Alignment(peer.getHorizontalAlignment) - def xAlignment_=(x: Alignment.Value) { peer.setHorizontalAlignment(x.id) } + def xAlignment_=(x: Alignment.Value): Unit = peer.setHorizontalAlignment(x.id) def yAlignment: Alignment.Value = Alignment(peer.getVerticalAlignment) - def yAlignment_=(x: Alignment.Value) { peer.setVerticalAlignment(x.id) } + def yAlignment_=(x: Alignment.Value): Unit = peer.setVerticalAlignment(x.id) /** @see javax.swing.JLabel#getHorizontalAlignment() */ def horizontalAlignment: Alignment.Value = Alignment(peer.getHorizontalAlignment) /** @see javax.swing.JLabel#setHorizontalAlignment() */ - def horizontalAlignment_=(x: Alignment.Value) { peer.setHorizontalAlignment(x.id) } + def horizontalAlignment_=(x: Alignment.Value): Unit = peer.setHorizontalAlignment(x.id) def verticalAlignment: Alignment.Value = Alignment(peer.getVerticalAlignment) - def verticalAlignment_=(x: Alignment.Value) { peer.setVerticalAlignment(x.id) } + def verticalAlignment_=(x: Alignment.Value): Unit = peer.setVerticalAlignment(x.id) def horizontalTextPosition: Alignment.Value = Alignment(peer.getHorizontalTextPosition) - def horizontalTextPosition_=(x: Alignment.Value) { peer.setHorizontalTextPosition(x.id) } + def horizontalTextPosition_=(x: Alignment.Value): Unit = peer.setHorizontalTextPosition(x.id) def verticalTextPosition: Alignment.Value = Alignment(peer.getVerticalTextPosition) - def verticalTextPosition_=(x: Alignment.Value) { peer.setVerticalTextPosition(x.id) } + def verticalTextPosition_=(x: Alignment.Value): Unit = peer.setVerticalTextPosition(x.id) def disabledIcon: Icon = peer.getDisabledIcon - def disabledIcon_=(icon: Icon) { peer.setDisabledIcon(icon) } + def disabledIcon_=(icon: Icon): Unit = peer.setDisabledIcon(icon) def iconTextGap: Int = peer.getIconTextGap - def iconTextGap_=(gap: Int) { peer.setIconTextGap(gap) } + def iconTextGap_=(gap: Int): Unit = peer.setIconTextGap(gap) def displayedMnemonicIndex: Int = peer.getDisplayedMnemonicIndex - def displayedMnemonicIndex_=(index: Int) { peer.setDisplayedMnemonicIndex(index) } + def displayedMnemonicIndex_=(index: Int): Unit = peer.setDisplayedMnemonicIndex(index) } diff --git a/src/main/scala/scala/swing/LayoutContainer.scala b/src/main/scala/scala/swing/LayoutContainer.scala index 37d35145..ac9d5cc4 100644 --- a/src/main/scala/scala/swing/LayoutContainer.scala +++ b/src/main/scala/scala/swing/LayoutContainer.scala @@ -43,7 +43,7 @@ trait LayoutContainer extends Container.Wrapper { * held components in order to maintain layout consistency. See `BorderPanel` * for an example. */ - protected def add(comp: Component, c: Constraints) + protected def add(comp: Component, c: Constraints): Unit /** * A map of components to the associated layout constraints. @@ -57,13 +57,17 @@ trait LayoutContainer extends Container.Wrapper { def layout: mutable.Map[Component, Constraints] = new mutable.Map[Component, Constraints] { def -= (c: Component): this.type = { _contents -= c; this } def += (cl: (Component, Constraints)): this.type = { update(cl._1, cl._2); this } - override def update (c: Component, l: Constraints) { + + override def update(c: Component, l: Constraints): Unit = { val (v, msg) = areValid(l) if (!v) throw new IllegalArgumentException(msg) add(c, l) } + def get(c: Component) = Option(constraintsFor(c)) - override def size = peer.getComponentCount + + override def size: Int = peer.getComponentCount + def iterator: Iterator[(Component, Constraints)] = peer.getComponents.iterator.map { c => val comp = UIElement.cachedWrapper[Component](c.asInstanceOf[JComponent]) diff --git a/src/main/scala/scala/swing/ListView.scala b/src/main/scala/scala/swing/ListView.scala index 1c50bee6..6f3ca2a4 100644 --- a/src/main/scala/scala/swing/ListView.scala +++ b/src/main/scala/scala/swing/ListView.scala @@ -19,12 +19,13 @@ object ListView { * The supported modes of user selections. */ object IntervalMode extends Enumeration { - val Single = Value(ListSelectionModel.SINGLE_SELECTION) - val SingleInterval = Value(ListSelectionModel.SINGLE_INTERVAL_SELECTION) - val MultiInterval = Value(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) + import ListSelectionModel._ + val Single : IntervalMode.Value = Value(SINGLE_SELECTION) + val SingleInterval: IntervalMode.Value = Value(SINGLE_INTERVAL_SELECTION) + val MultiInterval : IntervalMode.Value = Value(MULTIPLE_INTERVAL_SELECTION) } - def wrap[A](c: JList[A]) = new ListView[A] { + def wrap[A](c: JList[A]): ListView[A] = new ListView[A] { override lazy val peer = c } @@ -35,7 +36,7 @@ object ListView { * Wrapper for javax.swing.ListCellRenderers */ class Wrapped[A](override val peer: ListCellRenderer[A]) extends Renderer[A] { - def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int) = { + def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = { Component.wrap(peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent]) } } @@ -70,7 +71,7 @@ object ListView { */ abstract class Renderer[-A] { def peer: ListCellRenderer[_ >: A] = new ListCellRenderer[A] { - def getListCellRendererComponent(list: JList[_ <: A], a: A, index: Int, isSelected: Boolean, focused: Boolean) = + def getListCellRendererComponent(list: JList[_ <: A], a: A, index: Int, isSelected: Boolean, focused: Boolean): JComponent = componentFor(ListView.wrap[A](list.asInstanceOf[JList[A]]), isSelected, focused, a, index).peer } def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component @@ -93,7 +94,7 @@ object ListView { * This includes foreground and background colors, as well as colors * of item selections. */ - def preConfigure(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int) { + def preConfigure(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Unit = { if (isSelected) { component.background = list.selectionBackground component.foreground = list.selectionForeground @@ -105,7 +106,7 @@ object ListView { /** * Configuration that is specific to the component and this renderer. */ - def configure(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int) + def configure(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Unit /** * Configures the component before returning it. @@ -149,28 +150,28 @@ class ListView[A] extends Component { listData = items } - protected class ModelWrapper[A](val items: Seq[A]) extends AbstractListModel[A] { + protected class ModelWrapper[B](val items: Seq[B]) extends AbstractListModel[B] { def getElementAt(n: Int) = items(n) - def getSize = items.size + def getSize: Int = items.size } def listData: Seq[A] = peer.getModel match { case model: ModelWrapper[a] => model.items case model => new Seq[A] { selfSeq => - def length = model.getSize - def iterator = new Iterator[A] { + def length: Int = model.getSize + def iterator: Iterator[A] = new Iterator[A] { var idx = 0 - def next = { idx += 1; apply(idx-1) } - def hasNext = idx < selfSeq.length + def next: A = { idx += 1; apply(idx-1) } + def hasNext: Boolean = idx < selfSeq.length } def apply(n: Int): A = model.getElementAt(n) } } - def listData_=(items: Seq[A]) { + def listData_=(items: Seq[A]): Unit = { peer.setModel(new AbstractListModel[A] { - def getElementAt(n: Int) = items(n) - def getSize = items.size + def getElementAt(n: Int): A = items(n) + def getSize: Int = items.size }) } @@ -178,12 +179,12 @@ class ListView[A] extends Component { * The current item selection. */ object selection extends Publisher { - protected abstract class Indices[A](a: =>Seq[A]) extends scala.collection.mutable.Set[A] { - def -=(n: A): this.type - def +=(n: A): this.type - def contains(n: A) = a.contains(n) - override def size = a.length - def iterator = a.iterator + protected abstract class Indices[B](a: => Seq[B]) extends scala.collection.mutable.Set[B] { + def -=(n: B): this.type + def +=(n: B): this.type + def contains(n: B): Boolean = a.contains(n) + override def size: Int = a.length + def iterator: Iterator[B] = a.iterator } def leadIndex: Int = peer.getSelectionModel.getLeadSelectionIndex @@ -205,44 +206,43 @@ class ListView[A] extends Component { } def intervalMode: IntervalMode.Value = IntervalMode(peer.getSelectionModel.getSelectionMode) - def intervalMode_=(m: IntervalMode.Value) { peer.getSelectionModel.setSelectionMode(m.id) } + def intervalMode_=(m: IntervalMode.Value): Unit = peer.getSelectionModel.setSelectionMode(m.id) peer.getSelectionModel.addListSelectionListener(new ListSelectionListener { - def valueChanged(e: javax.swing.event.ListSelectionEvent) { + def valueChanged(e: javax.swing.event.ListSelectionEvent): Unit = publish(new ListSelectionChanged(ListView.this, e.getFirstIndex to e.getLastIndex, e.getValueIsAdjusting)) - } }) - def adjusting = peer.getSelectionModel.getValueIsAdjusting + def adjusting: Boolean = peer.getSelectionModel.getValueIsAdjusting } def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getCellRenderer) - def renderer_=(r: ListView.Renderer[A]) { peer.setCellRenderer(r.peer) } + def renderer_=(r: ListView.Renderer[A]): Unit = peer.setCellRenderer(r.peer) - def fixedCellWidth = peer.getFixedCellWidth - def fixedCellWidth_=(x: Int) = peer.setFixedCellWidth(x) + def fixedCellWidth: Int = peer.getFixedCellWidth + def fixedCellWidth_=(x: Int): Unit = peer.setFixedCellWidth(x) - def fixedCellHeight = peer.getFixedCellHeight - def fixedCellHeight_=(x: Int) = peer.setFixedCellHeight(x) + def fixedCellHeight: Int = peer.getFixedCellHeight + def fixedCellHeight_=(x: Int): Unit = peer.setFixedCellHeight(x) - def prototypeCellValue: A = peer.getPrototypeCellValue.asInstanceOf[A] - def prototypeCellValue_=(a: A) { peer.setPrototypeCellValue(a) } + def prototypeCellValue: A = peer.getPrototypeCellValue + def prototypeCellValue_=(a: A): Unit = peer.setPrototypeCellValue(a) - def visibleRowCount = peer.getVisibleRowCount - def visibleRowCount_=(n: Int) = peer.setVisibleRowCount(n) + def visibleRowCount: Int = peer.getVisibleRowCount + def visibleRowCount_=(n: Int): Unit = peer.setVisibleRowCount(n) - def ensureIndexIsVisible(idx: Int) = peer.ensureIndexIsVisible(idx) + def ensureIndexIsVisible(idx: Int): Unit = peer.ensureIndexIsVisible(idx) def selectionForeground: Color = peer.getSelectionForeground - def selectionForeground_=(c: Color) = peer.setSelectionForeground(c) + def selectionForeground_=(c: Color): Unit = peer.setSelectionForeground(c) def selectionBackground: Color = peer.getSelectionBackground - def selectionBackground_=(c: Color) = peer.setSelectionBackground(c) + def selectionBackground_=(c: Color): Unit = peer.setSelectionBackground(c) - def selectIndices(ind: Int*) = peer.setSelectedIndices(ind.toArray) + def selectIndices(ind: Int*): Unit = peer.setSelectedIndices(ind.toArray) peer.getModel.addListDataListener(new ListDataListener { - def contentsChanged(e: ListDataEvent) { publish(ListChanged(ListView.this)) } - def intervalRemoved(e: ListDataEvent) { publish(ListElementsRemoved(ListView.this, e.getIndex0 to e.getIndex1)) } - def intervalAdded(e: ListDataEvent) { publish(ListElementsAdded(ListView.this, e.getIndex0 to e.getIndex1)) } + def contentsChanged(e: ListDataEvent): Unit = publish(ListChanged(ListView.this)) + def intervalRemoved(e: ListDataEvent): Unit = publish(ListElementsRemoved(ListView.this, e.getIndex0 to e.getIndex1)) + def intervalAdded (e: ListDataEvent): Unit = publish(ListElementsAdded(ListView.this, e.getIndex0 to e.getIndex1)) }) } diff --git a/src/main/scala/scala/swing/MainFrame.scala b/src/main/scala/scala/swing/MainFrame.scala index 1dfc155f..b67f3fa4 100644 --- a/src/main/scala/scala/swing/MainFrame.scala +++ b/src/main/scala/scala/swing/MainFrame.scala @@ -13,5 +13,5 @@ package scala.swing * framework and quits the application when closed. */ class MainFrame(gc: java.awt.GraphicsConfiguration = null) extends Frame(gc) { - override def closeOperation() { sys.exit(0) } + override def closeOperation(): Unit = sys.exit(0) } diff --git a/src/main/scala/scala/swing/Orientable.scala b/src/main/scala/scala/swing/Orientable.scala index a73bafb9..86929372 100644 --- a/src/main/scala/scala/swing/Orientable.scala +++ b/src/main/scala/scala/swing/Orientable.scala @@ -12,7 +12,7 @@ package scala.swing object Orientable { trait Wrapper extends Oriented.Wrapper with Orientable { - def orientation_=(o: Orientation.Value) { peer.setOrientation(o.id) } + def orientation_=(o: Orientation.Value): Unit = peer.setOrientation(o.id) } } @@ -20,5 +20,5 @@ object Orientable { * An Oriented whose orientation can be changed. */ trait Orientable extends Oriented { - def orientation_=(o: Orientation.Value) + def orientation_=(o: Orientation.Value): Unit } diff --git a/src/main/scala/scala/swing/Orientation.scala b/src/main/scala/scala/swing/Orientation.scala index ad616ec6..5fa2aeef 100644 --- a/src/main/scala/scala/swing/Orientation.scala +++ b/src/main/scala/scala/swing/Orientation.scala @@ -10,10 +10,9 @@ package scala.swing -import java.awt.Adjustable._ - object Orientation extends Enumeration { - val Horizontal = Value(HORIZONTAL) - val Vertical = Value(VERTICAL) - val NoOrientation = Value(NO_ORIENTATION) + import java.awt.Adjustable._ + val Horizontal : Orientation.Value = Value(HORIZONTAL) + val Vertical : Orientation.Value = Value(VERTICAL) + val NoOrientation: Orientation.Value = Value(NO_ORIENTATION) } diff --git a/src/main/scala/scala/swing/Oriented.scala b/src/main/scala/scala/swing/Oriented.scala index 7996d218..1a705f05 100644 --- a/src/main/scala/scala/swing/Oriented.scala +++ b/src/main/scala/scala/swing/Oriented.scala @@ -20,7 +20,7 @@ object Oriented { */ protected type OrientedMixin = { def getOrientation(): Int - def setOrientation(n: Int) + def setOrientation(n: Int): Unit } def orientation: Orientation.Value = Orientation(peer.getOrientation) } diff --git a/src/main/scala/scala/swing/PasswordField.scala b/src/main/scala/scala/swing/PasswordField.scala index fd0b586a..e7ee3bf7 100644 --- a/src/main/scala/scala/swing/PasswordField.scala +++ b/src/main/scala/scala/swing/PasswordField.scala @@ -22,13 +22,13 @@ class PasswordField(text0: String, columns0: Int) extends TextField(text0, colum def this() = this("") def echoChar: Char = peer.getEchoChar - def echoChar_=(c: Char) = peer.setEchoChar(c) + def echoChar_=(c: Char): Unit = peer.setEchoChar(c) /** * The text property should not be used on a password field for * security reasons. */ override def text: String = "" - override def text_=(s: String) {} + override def text_=(s: String): Unit = () def password: Array[Char] = peer.getPassword } diff --git a/src/main/scala/scala/swing/PopupMenu.scala b/src/main/scala/scala/swing/PopupMenu.scala index e82c3a1b..15566aaa 100644 --- a/src/main/scala/scala/swing/PopupMenu.scala +++ b/src/main/scala/scala/swing/PopupMenu.scala @@ -45,21 +45,20 @@ class PopupMenu extends Component with SequentialContainer.Wrapper with Publishe override lazy val peer: JPopupMenu = new JPopupMenu with SuperMixin peer.addPopupMenuListener(new PopupMenuListener { - def popupMenuCanceled(e: PopupMenuEvent) { + def popupMenuCanceled(e: PopupMenuEvent): Unit = publish(PopupMenuCanceled(PopupMenu.this)) - } - def popupMenuWillBecomeInvisible(e: PopupMenuEvent) { + + def popupMenuWillBecomeInvisible(e: PopupMenuEvent): Unit = publish(PopupMenuWillBecomeInvisible(PopupMenu.this)) - } - def popupMenuWillBecomeVisible(e: PopupMenuEvent) { + + def popupMenuWillBecomeVisible(e: PopupMenuEvent): Unit = publish(PopupMenuWillBecomeVisible(PopupMenu.this)) - } }) def show(invoker: Component, x: Int, y: Int): Unit = peer.show(invoker.peer, x, y) def margin: Insets = peer.getMargin def label: String = peer.getLabel - def label_=(s: String) { peer.setLabel(s) } + def label_=(s: String): Unit = peer.setLabel(s) } diff --git a/src/main/scala/scala/swing/ProgressBar.scala b/src/main/scala/scala/swing/ProgressBar.scala index 81e2989c..ab67f3a9 100644 --- a/src/main/scala/scala/swing/ProgressBar.scala +++ b/src/main/scala/scala/swing/ProgressBar.scala @@ -20,21 +20,21 @@ class ProgressBar extends Component with Orientable.Wrapper { new javax.swing.JProgressBar with SuperMixin def min: Int = peer.getMinimum - def min_=(v: Int) { peer.setMinimum(v) } + def min_=(v: Int): Unit = peer.setMinimum(v) def max: Int = peer.getMaximum - def max_=(v: Int) { peer.setMaximum(v) } + def max_=(v: Int): Unit = peer.setMaximum(v) def value: Int = peer.getValue - def value_=(v: Int) { peer.setValue(v) } + def value_=(v: Int): Unit = peer.setValue(v) def labelPainted: Boolean = peer.isStringPainted - def labelPainted_=(v: Boolean) { peer.setStringPainted(v) } + def labelPainted_=(v: Boolean): Unit = peer.setStringPainted(v) def label: String = peer.getString - def label_=(v: String) = peer.setString(v) + def label_=(v: String): Unit = peer.setString(v) def indeterminate: Boolean = peer.isIndeterminate - def indeterminate_=(v: Boolean) { peer.setIndeterminate(v) } + def indeterminate_=(v: Boolean): Unit = peer.setIndeterminate(v) def paintBorder: Boolean = peer.isBorderPainted - def paintBorder(v: Boolean) { peer.setBorderPainted(v) } + def paintBorder(v: Boolean): Unit = peer.setBorderPainted(v) } diff --git a/src/main/scala/scala/swing/Publisher.scala b/src/main/scala/scala/swing/Publisher.scala index 578ef71e..70cd0fbb 100644 --- a/src/main/scala/scala/swing/Publisher.scala +++ b/src/main/scala/scala/swing/Publisher.scala @@ -9,8 +9,7 @@ package scala.swing import scala.collection.mutable -import mutable.Buffer -import event.Event +import scala.swing.event.Event /**

* Notifies registered reactions when an event is published. Publishers are @@ -32,19 +31,19 @@ trait Publisher extends Reactor { protected val listeners = new RefSet[Reaction] { import scala.ref._ val underlying = new mutable.HashSet[Reference[Reaction]] - protected def Ref(a: Reaction) = a match { + protected def Ref(a: Reaction): Ref[Reaction] = a match { case a: StronglyReferenced => new StrongReference[Reaction](a) with super.Ref[Reaction] case _ => new WeakReference[Reaction](a, referenceQueue) with super.Ref[Reaction] } } - private[swing] def subscribe(listener: Reaction) { listeners += listener } - private[swing] def unsubscribe(listener: Reaction) { listeners -= listener } + private[swing] def subscribe (listener: Reaction): Unit = listeners += listener + private[swing] def unsubscribe(listener: Reaction): Unit = listeners -= listener /** * Notify all registered reactions. */ - def publish(e: Event) { for (l <- listeners) if (l.isDefinedAt(e)) l(e) } + def publish(e: Event): Unit = for (l <- listeners) if (l.isDefinedAt(e)) l(e) listenTo(this) } @@ -56,16 +55,17 @@ trait Publisher extends Reactor { private[swing] trait LazyPublisher extends Publisher { import Reactions._ - protected def onFirstSubscribe() - protected def onLastUnsubscribe() + protected def onFirstSubscribe (): Unit + protected def onLastUnsubscribe(): Unit - override def subscribe(listener: Reaction) { - if(listeners.size == 1) onFirstSubscribe() + override def subscribe(listener: Reaction): Unit = { + if (listeners.size == 1) onFirstSubscribe() super.subscribe(listener) } - override def unsubscribe(listener: Reaction) { + + override def unsubscribe(listener: Reaction): Unit = { super.unsubscribe(listener) - if(listeners.size == 1) onLastUnsubscribe() + if (listeners.size == 1) onLastUnsubscribe() } } @@ -75,12 +75,12 @@ import scala.ref._ private[swing] trait SingleRefCollection[+A <: AnyRef] extends Iterable[A] { self => - trait Ref[+A <: AnyRef] extends Reference[A] { - override def hashCode() = get match { + trait Ref[+B <: AnyRef] extends Reference[B] { + override def hashCode(): Int = get match { case Some(x) => x.## case _ => 0 } - override def equals(that: Any) = that match { + override def equals(that: Any): Boolean = that match { case that: ReferenceWrapper[_] => val v1 = this.get val v2 = that.get @@ -95,17 +95,17 @@ private[swing] trait SingleRefCollection[+A <: AnyRef] extends Iterable[A] { sel protected val underlying: Iterable[Reference[A]] - def purgeReferences() { + def purgeReferences(): Unit = { var ref = referenceQueue.poll - while (ref != None) { - removeReference(ref.get.asInstanceOf[Reference[A]]) + while (ref.isDefined) { + removeReference(ref.get) ref = referenceQueue.poll } } - protected[this] def removeReference(ref: Reference[A]) + protected[this] def removeReference(ref: Reference[A]): Unit - def iterator = new Iterator[A] { + def iterator: Iterator[A] = new Iterator[A] { private val elems = self.underlying.iterator private var hd: A = _ private var ahead: Boolean = false @@ -114,10 +114,10 @@ private[swing] trait SingleRefCollection[+A <: AnyRef] extends Iterable[A] { sel // make sure we have a reference to the next element, // otherwise it might be garbage collected val next = elems.next.get - ahead = next != None + ahead = next.isDefined if (ahead) hd = next.get } - def hasNext: Boolean = { skip; ahead } + def hasNext: Boolean = { skip(); ahead } def next(): A = if (hasNext) { ahead = false; hd } else throw new NoSuchElementException("next on empty iterator") @@ -126,40 +126,40 @@ private[swing] trait SingleRefCollection[+A <: AnyRef] extends Iterable[A] { sel private[swing] class StrongReference[+T <: AnyRef](value: T) extends Reference[T] { private[this] var ref: Option[T] = Some(value) - def isValid: Boolean = ref != None + def isValid: Boolean = ref.isDefined def apply(): T = ref.get def get : Option[T] = ref - override def toString = get.map(_.toString).getOrElse("") - def clear() { ref = None } + override def toString: String = get.map(_.toString).getOrElse("") + def clear(): Unit = { ref = None } def enqueue(): Boolean = false def isEnqueued(): Boolean = false } -abstract class RefBuffer[A <: AnyRef] extends Buffer[A] with SingleRefCollection[A] { self => - protected val underlying: Buffer[Reference[A]] +abstract class RefBuffer[A <: AnyRef] extends mutable.Buffer[A] with SingleRefCollection[A] { self => + protected val underlying: mutable.Buffer[Reference[A]] def +=(el: A): this.type = { purgeReferences(); underlying += Ref(el); this } - def +=:(el: A) = { purgeReferences(); Ref(el) +=: underlying; this } - def remove(el: A) { underlying -= Ref(el); purgeReferences(); } - def remove(n: Int) = { val el = apply(n); remove(el); el } - def insertAll(n: Int, iter: Iterable[A]) { + def +=:(el: A): this.type = { purgeReferences(); Ref(el) +=: underlying; this } + def remove(el: A): Unit = { underlying -= Ref(el); purgeReferences(); } + def remove(n: Int): A = { val el = apply(n); remove(el); el } + def insertAll(n: Int, iter: Iterable[A]): Unit = { purgeReferences() - underlying.insertAll(n, iter.view.map(Ref(_))) + underlying.insertAll(n, iter.view.map(Ref)) } - def update(n: Int, el: A) { purgeReferences(); underlying(n) = Ref(el) } - def apply(n: Int) = { + def update(n: Int, el: A): Unit = { purgeReferences(); underlying(n) = Ref(el) } + def apply(n: Int): A = { purgeReferences() var el = underlying(n).get - while (el == None) { + while (el.isEmpty) { purgeReferences(); el = underlying(n).get } el.get } - def length = { purgeReferences(); underlying.length } - def clear() { underlying.clear(); purgeReferences() } + def length: Int = { purgeReferences(); underlying.length } + def clear(): Unit = { underlying.clear(); purgeReferences() } - protected[this] def removeReference(ref: Reference[A]) { underlying -= ref } + protected[this] def removeReference(ref: Reference[A]): Unit = { underlying -= ref } } private[swing] abstract class RefSet[A <: AnyRef] extends mutable.Set[A] with SingleRefCollection[A] { self => @@ -168,7 +168,7 @@ private[swing] abstract class RefSet[A <: AnyRef] extends mutable.Set[A] with Si def -=(el: A): this.type = { underlying -= Ref(el); purgeReferences(); this } def +=(el: A): this.type = { purgeReferences(); underlying += Ref(el); this } def contains(el: A): Boolean = { purgeReferences(); underlying.contains(Ref(el)) } - override def size = { purgeReferences(); underlying.size } + override def size: Int = { purgeReferences(); underlying.size } - protected[this] def removeReference(ref: Reference[A]) { underlying -= ref } + protected[this] def removeReference(ref: Reference[A]): Unit = { underlying -= ref } } diff --git a/src/main/scala/scala/swing/Reactions.scala b/src/main/scala/scala/swing/Reactions.scala index c32212cf..d8c3baf5 100644 --- a/src/main/scala/scala/swing/Reactions.scala +++ b/src/main/scala/scala/swing/Reactions.scala @@ -10,16 +10,17 @@ package scala.swing -import event.Event -import scala.collection.mutable.{Buffer, ListBuffer} +import scala.collection.mutable +import scala.collection.mutable.ListBuffer +import scala.swing.event.Event object Reactions { class Impl extends Reactions { - private val parts: Buffer[Reaction] = new ListBuffer[Reaction] - def isDefinedAt(e: Event) = parts.exists(_ isDefinedAt e) + private val parts: mutable.Buffer[Reaction] = new ListBuffer[Reaction] + def isDefinedAt(e: Event): Boolean = parts.exists(_ isDefinedAt e) def += (r: Reaction): this.type = { parts += r; this } def -= (r: Reaction): this.type = { parts -= r; this } - def apply(e: Event) { + def apply(e: Event): Unit = { for (p <- parts) if (p isDefinedAt e) p(e) } } @@ -32,9 +33,9 @@ object Reactions { trait StronglyReferenced class Wrapper(listener: Any)(r: Reaction) extends Reaction with StronglyReferenced with Proxy { - def self = listener - def isDefinedAt(e: Event) = r.isDefinedAt(e) - def apply(e: Event) { r(e) } + def self: Any = listener + def isDefinedAt(e: Event): Boolean = r.isDefinedAt(e) + def apply(e: Event): Unit = r(e) } } diff --git a/src/main/scala/scala/swing/Reactor.scala b/src/main/scala/scala/swing/Reactor.scala index 8f74831a..3f813673 100644 --- a/src/main/scala/scala/swing/Reactor.scala +++ b/src/main/scala/scala/swing/Reactor.scala @@ -22,9 +22,9 @@ trait Reactor { * Listen to the given publisher as long as deafTo isn't called for * them. */ - def listenTo(ps: Publisher*) = for (p <- ps) p.subscribe(reactions) + def listenTo(ps: Publisher*): Unit = for (p <- ps) p.subscribe(reactions) /** * Installed reaction won't receive events from the given publisher anylonger. */ - def deafTo(ps: Publisher*) = for (p <- ps) p.unsubscribe(reactions) + def deafTo(ps: Publisher*): Unit = for (p <- ps) p.unsubscribe(reactions) } diff --git a/src/main/scala/scala/swing/RichWindow.scala b/src/main/scala/scala/swing/RichWindow.scala index 005ee530..a7fe8bdb 100644 --- a/src/main/scala/scala/swing/RichWindow.scala +++ b/src/main/scala/scala/swing/RichWindow.scala @@ -35,16 +35,16 @@ sealed trait RichWindow extends Window { trait InterfaceMixin extends super.InterfaceMixin { def getJMenuBar(): JMenuBar - def setJMenuBar(b: JMenuBar) - def setUndecorated(b: Boolean) - def setTitle(s: String) + def setJMenuBar(b: JMenuBar): Unit + def setUndecorated(b: Boolean): Unit + def setTitle(s: String): Unit def getTitle(): String - def setResizable(b: Boolean) + def setResizable(b: Boolean): Unit def isResizable(): Boolean } def title: String = peer.getTitle - def title_=(s: String) = peer.setTitle(s) + def title_=(s: String): Unit = peer.setTitle(s) /** * The menu bar of this frame or `NoMenuBar` if no menu bar is set. @@ -57,11 +57,11 @@ sealed trait RichWindow extends Window { * Set the current menu bar of this frame. Pass `NoMenuBar` if this frame * should not show a menu bar. */ - def menuBar_=(m: MenuBar) = + def menuBar_=(m: MenuBar): Unit = peer.setJMenuBar(if (m == MenuBar.NoMenuBar) null else m.peer) - def resizable_=(b: Boolean) { peer.setResizable(b) } - def resizable = peer.isResizable + def resizable_=(b: Boolean): Unit = peer.setResizable(b) + def resizable: Boolean = peer.isResizable } /** @@ -75,15 +75,15 @@ sealed trait RichWindow extends Window { class Frame(gc: java.awt.GraphicsConfiguration = null) extends RichWindow { override lazy val peer: JFrame with InterfaceMixin = new JFrame(gc) with InterfaceMixin with SuperMixin - def iconify() { peer.setExtendedState(peer.getExtendedState | AWTFrame.ICONIFIED) } - def uniconify() { peer.setExtendedState(peer.getExtendedState & ~AWTFrame.ICONIFIED) } + def iconify(): Unit = { peer.setExtendedState(peer.getExtendedState | AWTFrame.ICONIFIED) } + def uniconify(): Unit = { peer.setExtendedState(peer.getExtendedState & ~AWTFrame.ICONIFIED) } def iconified: Boolean = (peer.getExtendedState & AWTFrame.ICONIFIED) != 0 - def maximize() { peer.setExtendedState(peer.getExtendedState | AWTFrame.MAXIMIZED_BOTH) } - def unmaximize() { peer.setExtendedState(peer.getExtendedState & ~AWTFrame.MAXIMIZED_BOTH) } + def maximize(): Unit = { peer.setExtendedState(peer.getExtendedState | AWTFrame.MAXIMIZED_BOTH) } + def unmaximize(): Unit = { peer.setExtendedState(peer.getExtendedState & ~AWTFrame.MAXIMIZED_BOTH) } def maximized: Boolean = (peer.getExtendedState & AWTFrame.MAXIMIZED_BOTH) != 0 def iconImage: Image = peer.getIconImage - def iconImage_=(i: Image) { peer.setIconImage(i) } + def iconImage_=(i: Image): Unit = peer.setIconImage(i) } /** @@ -96,32 +96,35 @@ object Dialog { * The message type of a dialog. */ object Message extends Enumeration { - val Error = Value(JOptionPane.ERROR_MESSAGE) - val Info = Value(JOptionPane.INFORMATION_MESSAGE) - val Warning = Value(JOptionPane.WARNING_MESSAGE) - val Question = Value(JOptionPane.QUESTION_MESSAGE) - val Plain = Value(JOptionPane.PLAIN_MESSAGE) + import JOptionPane._ + val Error : Message.Value = Value(ERROR_MESSAGE) + val Info : Message.Value = Value(INFORMATION_MESSAGE) + val Warning : Message.Value = Value(WARNING_MESSAGE) + val Question: Message.Value = Value(QUESTION_MESSAGE) + val Plain : Message.Value = Value(PLAIN_MESSAGE) } /** * The possible answers a user can select. */ object Options extends Enumeration { - val Default = Value(JOptionPane.DEFAULT_OPTION) - val YesNo = Value(JOptionPane.YES_NO_OPTION) - val YesNoCancel = Value(JOptionPane.YES_NO_CANCEL_OPTION) - val OkCancel = Value(JOptionPane.OK_CANCEL_OPTION) + import JOptionPane._ + val Default : Options.Value = Value(DEFAULT_OPTION) + val YesNo : Options.Value = Value(YES_NO_OPTION) + val YesNoCancel: Options.Value = Value(YES_NO_CANCEL_OPTION) + val OkCancel : Options.Value = Value(OK_CANCEL_OPTION) } /** * The selected result of dialog. */ object Result extends Enumeration { - val Yes = Value(JOptionPane.YES_OPTION) - val Ok = Yes - val No = Value(JOptionPane.NO_OPTION) - val Cancel = Value(JOptionPane.CANCEL_OPTION) - val Closed = Value(JOptionPane.CLOSED_OPTION) + import JOptionPane._ + val Yes : Result.Value = Value(YES_OPTION) + val Ok : Result.Value = Value(OK_OPTION) + val No : Result.Value = Value(NO_OPTION) + val Cancel: Result.Value = Value(CANCEL_OPTION) + val Closed: Result.Value = Value(CLOSED_OPTION) } private def uiString(txt: String) = UIManager.getString(txt) @@ -168,7 +171,7 @@ object Dialog { message: Any, title: String = uiString("OptionPane.messageDialogTitle"), messageType: Message.Value = Message.Info, - icon: Icon = EmptyIcon) { + icon: Icon = EmptyIcon): Unit = { JOptionPane.showMessageDialog(nullPeer(parent), message, title, messageType.id, Swing.wrapIcon(icon)) } @@ -189,7 +192,7 @@ class Dialog(owner: Window, gc: java.awt.GraphicsConfiguration = null) extends R def this() = this(null) - def modal_=(b: Boolean) { peer.setModal(b) } - def modal = peer.isModal + def modal_=(b: Boolean): Unit = peer.setModal(b) + def modal: Boolean = peer.isModal } diff --git a/src/main/scala/scala/swing/RootPanel.scala b/src/main/scala/scala/swing/RootPanel.scala index 7e4882d7..e0ac3590 100644 --- a/src/main/scala/scala/swing/RootPanel.scala +++ b/src/main/scala/scala/swing/RootPanel.scala @@ -28,7 +28,7 @@ trait RootPanel extends Container { List(UIElement.cachedWrapper[Component](c)) } - def contents_=(c: Component) { + def contents_=(c: Component): Unit = { if (peer.getContentPane.getComponentCount > 0) { val old = peer.getContentPane.getComponent(0) peer.getContentPane.remove(old) diff --git a/src/main/scala/scala/swing/ScrollBar.scala b/src/main/scala/scala/swing/ScrollBar.scala index 6a1acdca..376b48c9 100644 --- a/src/main/scala/scala/swing/ScrollBar.scala +++ b/src/main/scala/scala/swing/ScrollBar.scala @@ -10,8 +10,7 @@ package scala.swing -import javax.swing.{JScrollBar, BoundedRangeModel} -import java.awt.event.{AdjustmentListener} +import javax.swing.JScrollBar object ScrollBar { def wrap(c: JScrollBar): ScrollBar = { @@ -24,8 +23,8 @@ object ScrollBar { class ScrollBar extends Component with Orientable.Wrapper with Adjustable.Wrapper { override lazy val peer: JScrollBar = new JScrollBar with SuperMixin - def valueIsAjusting = peer.getValueIsAdjusting - def valueIsAjusting_=(b : Boolean) = peer.setValueIsAdjusting(b) + def valueIsAjusting: Boolean = peer.getValueIsAdjusting + def valueIsAjusting_=(b : Boolean): Unit = peer.setValueIsAdjusting(b) // TODO: can we find a better interface? //def setValues(value: Int = this.value, visible: Int = visibleAmount, diff --git a/src/main/scala/scala/swing/ScrollPane.scala b/src/main/scala/scala/swing/ScrollPane.scala index afd6cf27..ec746b79 100644 --- a/src/main/scala/scala/swing/ScrollPane.scala +++ b/src/main/scala/scala/swing/ScrollPane.scala @@ -22,13 +22,14 @@ object ScrollPane { val Always = new Value(HORIZONTAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_ALWAYS) - def wrap(id: Int) = id match { - case HORIZONTAL_SCROLLBAR_AS_NEEDED | VERTICAL_SCROLLBAR_AS_NEEDED => AsNeeded - case HORIZONTAL_SCROLLBAR_NEVER | VERTICAL_SCROLLBAR_NEVER => Never - case HORIZONTAL_SCROLLBAR_ALWAYS | VERTICAL_SCROLLBAR_ALWAYS => Always + def wrap(id: Int): BarPolicy.Value = id match { + case HORIZONTAL_SCROLLBAR_AS_NEEDED | VERTICAL_SCROLLBAR_AS_NEEDED => AsNeeded + case HORIZONTAL_SCROLLBAR_NEVER | VERTICAL_SCROLLBAR_NEVER => Never + case HORIZONTAL_SCROLLBAR_ALWAYS | VERTICAL_SCROLLBAR_ALWAYS => Always } + class Value(val horizontalPeer: Int, val verticalPeer: Int) extends super.Val { - override def id = horizontalPeer + override def id: Int = horizontalPeer } } } @@ -53,7 +54,7 @@ class ScrollPane extends Component with Container { /** * Sets the single child. */ - def contents_=(c: Component) { peer.setViewportView(c.peer) } + def contents_=(c: Component): Unit = peer.setViewportView(c.peer) /** * The component being displayed in this pane's row header. @@ -64,25 +65,25 @@ class ScrollPane extends Component with Container { */ def rowHeaderView: Option[Component] = Option(peer.getRowHeader.getView) map UIElement.cachedWrapper[Component] - def rowHeaderView_=(c: Component) = peer.setRowHeaderView(c.peer) - def rowHeaderView_=(c: Option[Component]) = peer.setRowHeaderView(c.map(_.peer).orNull) + def rowHeaderView_=(c: Component): Unit = peer.setRowHeaderView(c.peer) + def rowHeaderView_=(c: Option[Component]): Unit = peer.setRowHeaderView(c.map(_.peer).orNull) def columnHeaderView: Option[Component] = Option(peer.getColumnHeader.getView) map UIElement.cachedWrapper[Component] - def columnHeaderView_=(c: Component) = peer.setColumnHeaderView(c.peer) - def columnHeaderView_=(c: Option[Component]) = peer.setColumnHeaderView(c.map(_.peer).orNull) + def columnHeaderView_=(c: Component): Unit = peer.setColumnHeaderView(c.peer) + def columnHeaderView_=(c: Option[Component]): Unit = peer.setColumnHeaderView(c.map(_.peer).orNull) def viewportView: Option[Component] = Option(peer.getViewport.getView) map UIElement.cachedWrapper[Component] - def viewportView_=(c: Component) = peer.setViewportView(c.peer) - def viewportView_=(c: Option[Component]) = peer.setViewportView(c.map(_.peer).orNull) + def viewportView_=(c: Component): Unit = peer.setViewportView(c.peer) + def viewportView_=(c: Option[Component]): Unit = peer.setViewportView(c.map(_.peer).orNull) - def verticalScrollBarPolicy = BarPolicy.wrap(peer.getVerticalScrollBarPolicy) - def verticalScrollBarPolicy_=(p: BarPolicy.Value) = peer.setVerticalScrollBarPolicy(p.verticalPeer) + def verticalScrollBarPolicy: BarPolicy.Value = BarPolicy.wrap(peer.getVerticalScrollBarPolicy) + def verticalScrollBarPolicy_=(p: BarPolicy.Value): Unit = peer.setVerticalScrollBarPolicy(p.verticalPeer) - def horizontalScrollBarPolicy = BarPolicy.wrap(peer.getHorizontalScrollBarPolicy) - def horizontalScrollBarPolicy_=(p: BarPolicy.Value) = peer.setHorizontalScrollBarPolicy(p.horizontalPeer) + def horizontalScrollBarPolicy: BarPolicy.Value = BarPolicy.wrap(peer.getHorizontalScrollBarPolicy) + def horizontalScrollBarPolicy_=(p: BarPolicy.Value): Unit = peer.setHorizontalScrollBarPolicy(p.horizontalPeer) - def horizontalScrollBar = ScrollBar.wrap(peer.getHorizontalScrollBar) - def verticalScrollBar = ScrollBar.wrap(peer.getVerticalScrollBar) + def horizontalScrollBar: ScrollBar = ScrollBar.wrap(peer.getHorizontalScrollBar) + def verticalScrollBar: ScrollBar = ScrollBar.wrap(peer.getVerticalScrollBar) } diff --git a/src/main/scala/scala/swing/Scrollable.scala b/src/main/scala/scala/swing/Scrollable.scala index 1253ac8d..3cf93f8b 100644 --- a/src/main/scala/scala/swing/Scrollable.scala +++ b/src/main/scala/scala/swing/Scrollable.scala @@ -13,7 +13,7 @@ package scala.swing object Scrollable { trait Wrapper extends Scrollable { protected def scrollablePeer: javax.swing.Scrollable - def preferredViewportSize = scrollablePeer.getPreferredScrollableViewportSize + def preferredViewportSize: Dimension = scrollablePeer.getPreferredScrollableViewportSize def tracksViewportHeight: Boolean = scrollablePeer.getScrollableTracksViewportHeight def tracksViewportWidth: Boolean = scrollablePeer.getScrollableTracksViewportWidth diff --git a/src/main/scala/scala/swing/SequentialContainer.scala b/src/main/scala/scala/swing/SequentialContainer.scala index 5f32b08d..a37a0d18 100644 --- a/src/main/scala/scala/swing/SequentialContainer.scala +++ b/src/main/scala/scala/swing/SequentialContainer.scala @@ -10,14 +10,14 @@ package scala.swing -import scala.collection.mutable.Buffer +import scala.collection.mutable object SequentialContainer { /** * Utility trait for wrapping sequential containers. */ trait Wrapper extends SequentialContainer with Container.Wrapper { - override val contents: Buffer[Component] = new Content + override val contents: mutable.Buffer[Component] = new Content //def contents_=(c: Component*) { contents.clear(); contents ++= c } } } @@ -31,6 +31,6 @@ trait SequentialContainer extends Container { * The mutable child components of this container. The order matters and * usually indicates the layout of the children. */ - override def contents: Buffer[Component] + override def contents: mutable.Buffer[Component] //def contents_=(c: Component*) } diff --git a/src/main/scala/scala/swing/SimpleSwingApplication.scala b/src/main/scala/scala/swing/SimpleSwingApplication.scala index cd0f2be8..0a4cd7bf 100644 --- a/src/main/scala/scala/swing/SimpleSwingApplication.scala +++ b/src/main/scala/scala/swing/SimpleSwingApplication.scala @@ -22,7 +22,7 @@ abstract class SimpleSwingApplication extends SwingApplication { /** * Calls `top`, packs the frame, and displays it. */ - override def startup(args: Array[String]) { + override def startup(args: Array[String]): Unit = { val t = top if (t.size == new Dimension(0,0)) t.pack() t.visible = true diff --git a/src/main/scala/scala/swing/Slider.scala b/src/main/scala/scala/swing/Slider.scala index 60d04711..12e2f28d 100644 --- a/src/main/scala/scala/swing/Slider.scala +++ b/src/main/scala/scala/swing/Slider.scala @@ -26,37 +26,37 @@ class Slider extends Component with Orientable.Wrapper with Publisher { override lazy val peer: JSlider = new JSlider with SuperMixin def min: Int = peer.getMinimum - def min_=(v: Int) { peer.setMinimum(v) } + def min_=(v: Int): Unit = peer.setMinimum(v) def max: Int = peer.getMaximum - def max_=(v: Int) { peer.setMaximum(v) } + def max_=(v: Int): Unit = peer.setMaximum(v) def value: Int = peer.getValue - def value_=(v: Int) { peer.setValue(v) } + def value_=(v: Int): Unit = peer.setValue(v) def extent: Int = peer.getExtent - def extent_=(v: Int) { peer.setExtent(v) } + def extent_=(v: Int): Unit = peer.setExtent(v) def paintLabels: Boolean = peer.getPaintLabels - def paintLabels_=(v: Boolean) { peer.setPaintLabels(v) } + def paintLabels_=(v: Boolean): Unit = peer.setPaintLabels(v) def paintTicks: Boolean = peer.getPaintTicks - def paintTicks_=(v: Boolean) { peer.setPaintTicks(v) } + def paintTicks_=(v: Boolean): Unit = peer.setPaintTicks(v) def paintTrack: Boolean = peer.getPaintTrack - def paintTrack_=(v: Boolean) { peer.setPaintTrack(v) } + def paintTrack_=(v: Boolean): Unit = peer.setPaintTrack(v) def snapToTicks: Boolean = peer.getSnapToTicks - def snapToTicks_=(v: Boolean) { peer.setSnapToTicks(v) } + def snapToTicks_=(v: Boolean): Unit = peer.setSnapToTicks(v) def minorTickSpacing: Int = peer.getMinorTickSpacing - def minorTickSpacing_=(v: Int) { peer.setMinorTickSpacing(v) } + def minorTickSpacing_=(v: Int): Unit = peer.setMinorTickSpacing(v) def majorTickSpacing: Int = peer.getMajorTickSpacing - def majorTickSpacing_=(v: Int) { peer.setMajorTickSpacing(v) } + def majorTickSpacing_=(v: Int): Unit = peer.setMajorTickSpacing(v) - def adjusting = peer.getValueIsAdjusting + def adjusting: Boolean = peer.getValueIsAdjusting def labels: scala.collection.Map[Int, Label] = { import scala.collection.convert.WrapAsScala._ val labelTable = peer.getLabelTable.asInstanceOf[java.util.Map[Int, JLabel]] labelTable.mapValues(v => UIElement.cachedWrapper[Label](v)) } - def labels_=(l: scala.collection.Map[Int, Label]) { + def labels_=(l: scala.collection.Map[Int, Label]): Unit = { // TODO: do some lazy wrapping val table = new java.util.Hashtable[java.lang.Integer, javax.swing.JComponent] for ((k,v) <- l) table.put(k, v.peer) @@ -64,8 +64,7 @@ class Slider extends Component with Orientable.Wrapper with Publisher { } peer.addChangeListener(new javax.swing.event.ChangeListener { - def stateChanged(e: javax.swing.event.ChangeEvent) { + def stateChanged(e: javax.swing.event.ChangeEvent): Unit = publish(new ValueChanged(Slider.this)) - } }) } diff --git a/src/main/scala/scala/swing/SplitPane.scala b/src/main/scala/scala/swing/SplitPane.scala index f61dfedb..d584c168 100644 --- a/src/main/scala/scala/swing/SplitPane.scala +++ b/src/main/scala/scala/swing/SplitPane.scala @@ -24,40 +24,40 @@ class SplitPane(o: Orientation.Value, left: Component, right: Component) extends def this() = this(Orientation.Horizontal) def contents: Seq[Component] = List(leftComponent, rightComponent) - def contents_=(left: Component, right: Component) { + def contents_=(left: Component, right: Component): Unit = { peer.setLeftComponent(nullPeer(left)) peer.setRightComponent(nullPeer(right)) } def topComponent: Component = UIElement.cachedWrapper[Component](peer.getTopComponent.asInstanceOf[javax.swing.JComponent]) - def topComponent_=(c: Component) { peer.setTopComponent(nullPeer(c)) } + def topComponent_=(c: Component): Unit = peer.setTopComponent(nullPeer(c)) def bottomComponent: Component = UIElement.cachedWrapper[Component](peer.getBottomComponent.asInstanceOf[javax.swing.JComponent]) - def bottomComponent_=(c: Component) { peer.setBottomComponent(nullPeer(c)) } + def bottomComponent_=(c: Component): Unit = peer.setBottomComponent(nullPeer(c)) def leftComponent: Component = topComponent - def leftComponent_=(c: Component) { topComponent = c } + def leftComponent_=(c: Component): Unit = { topComponent = c } def rightComponent: Component = bottomComponent - def rightComponent_=(c: Component) { bottomComponent = c } + def rightComponent_=(c: Component): Unit = { bottomComponent = c } def dividerLocation: Int = peer.getDividerLocation - def dividerLocation_=(n: Int) { peer.setDividerLocation(n) } + def dividerLocation_=(n: Int): Unit = peer.setDividerLocation(n) /*def proportionalDividerLocation: Double = if (orientation == Orientation.Vertical) dividerLocation / (size.height - dividerSize) else dividerLocation / (size.width - dividerSize)*/ - def dividerLocation_=(f: Double) { peer.setDividerLocation(f) } + def dividerLocation_=(f: Double): Unit = peer.setDividerLocation(f) def dividerSize: Int = peer.getDividerSize - def dividerSize_=(n: Int) { peer.setDividerSize(n) } + def dividerSize_=(n: Int): Unit = peer.setDividerSize(n) def resizeWeight: Double = peer.getResizeWeight - def resizeWeight_=(n: Double) { peer.setResizeWeight(n) } + def resizeWeight_=(n: Double): Unit = peer.setResizeWeight(n) - def resetToPreferredSizes() { peer.resetToPreferredSizes() } + def resetToPreferredSizes(): Unit = peer.resetToPreferredSizes() def oneTouchExpandable: Boolean = peer.isOneTouchExpandable - def oneTouchExpandable_=(b: Boolean) { peer.setOneTouchExpandable(b) } + def oneTouchExpandable_=(b: Boolean): Unit = peer.setOneTouchExpandable(b) def continuousLayout: Boolean = peer.isContinuousLayout - def continuousLayout_=(b: Boolean) { peer.setContinuousLayout(b) } + def continuousLayout_=(b: Boolean): Unit = peer.setContinuousLayout(b) } diff --git a/src/main/scala/scala/swing/Swing.scala b/src/main/scala/scala/swing/Swing.scala index ec3e1b34..cd97a1cf 100644 --- a/src/main/scala/scala/swing/Swing.scala +++ b/src/main/scala/scala/swing/Swing.scala @@ -10,34 +10,34 @@ package scala.swing +import java.awt import java.awt.event._ -import javax.swing.event._ import javax.swing.border._ -import javax.swing.{JComponent, Icon, BorderFactory, SwingUtilities} - +import javax.swing.event._ +import javax.swing.{BorderFactory, Icon, JComponent, SwingUtilities} /** * Helpers for this package. */ object Swing { - protected[swing] type PeerContainer = {def peer:java.awt.Container} + protected[swing] type PeerContainer = {def peer: awt.Container} protected[swing] def toNoIcon(i: Icon): Icon = if(i == null) EmptyIcon else i protected[swing] def toNullIcon(i: Icon): Icon = if(i == EmptyIcon) null else i - protected[swing] def nullPeer(c: PeerContainer) = if (c != null) c.peer else null + protected[swing] def nullPeer(c: PeerContainer): awt.Container = if (c != null) c.peer else null implicit def pair2Dimension(p: (Int, Int)): Dimension = new Dimension(p._1, p._2) implicit def pair2Point(p: (Int, Int)): Point = new Point(p._1, p._2) implicit def pair2Point(p: (Int, Int, Int, Int)): Rectangle = new Rectangle(p._1, p._2, p._3, p._4) - @inline final def Runnable(@inline block: =>Unit) = new Runnable { - def run = block + @inline final def Runnable(@inline block: => Unit): Runnable = new Runnable { + def run(): Unit = block } - final def ChangeListener(f: ChangeEvent => Unit) = new ChangeListener { - def stateChanged(e: ChangeEvent) { f(e) } + final def ChangeListener(f: ChangeEvent => Unit): ChangeListener = new ChangeListener { + def stateChanged(e: ChangeEvent): Unit = f(e) } - final def ActionListener(f: ActionEvent => Unit) = new ActionListener { - def actionPerformed(e: ActionEvent) { f(e) } + final def ActionListener(f: ActionEvent => Unit): ActionListener = new ActionListener { + def actionPerformed(e: ActionEvent): Unit = f(e) } def Box(min: Dimension, pref: Dimension, max: Dimension) = new Component { @@ -73,27 +73,27 @@ object Swing { case object EmptyIcon extends Icon { def getIconHeight: Int = 0 def getIconWidth: Int = 0 - def paintIcon(c: java.awt.Component, g: java.awt.Graphics, x: Int, y: Int) {} + def paintIcon(c: java.awt.Component, g: java.awt.Graphics, x: Int, y: Int): Unit = () } def unwrapIcon(icon: Icon): Icon = if (icon == null) EmptyIcon else icon def wrapIcon(icon: Icon): Icon = if (icon == EmptyIcon) null else icon - def EmptyBorder = BorderFactory.createEmptyBorder() - def EmptyBorder(weight: Int) = + def EmptyBorder: Border = BorderFactory.createEmptyBorder() + def EmptyBorder(weight: Int): Border = BorderFactory.createEmptyBorder(weight, weight, weight, weight) - def EmptyBorder(top: Int, left: Int, bottom: Int, right: Int) = + def EmptyBorder(top: Int, left: Int, bottom: Int, right: Int): Border = BorderFactory.createEmptyBorder(top, left, bottom, right) - def LineBorder(c: Color) = BorderFactory.createLineBorder(c) - def LineBorder(c: Color, weight: Int) = BorderFactory.createLineBorder(c, weight) + def LineBorder(c: Color): Border = BorderFactory.createLineBorder(c) + def LineBorder(c: Color, weight: Int): Border = BorderFactory.createLineBorder(c, weight) - def BeveledBorder(kind: Embossing) = BorderFactory.createBevelBorder(kind.bevelPeer) - def BeveledBorder(kind: Embossing, highlight: Color, shadow: Color) = + def BeveledBorder(kind: Embossing): Border = BorderFactory.createBevelBorder(kind.bevelPeer) + def BeveledBorder(kind: Embossing, highlight: Color, shadow: Color): Border = BorderFactory.createBevelBorder(kind.bevelPeer, highlight, shadow) def BeveledBorder(kind: Embossing, highlightOuter: Color, highlightInner: Color, - shadowOuter: Color, shadowInner: Color) = + shadowOuter: Color, shadowInner: Color): Border = BorderFactory.createBevelBorder(kind.bevelPeer, highlightOuter, highlightInner, shadowOuter, shadowInner) @@ -103,40 +103,40 @@ object Swing { def etchPeer: Int } case object Lowered extends Embossing { - def bevelPeer = BevelBorder.LOWERED - def etchPeer = javax.swing.border.EtchedBorder.LOWERED + def bevelPeer: Int = BevelBorder.LOWERED + def etchPeer: Int = javax.swing.border.EtchedBorder.LOWERED } case object Raised extends Embossing { - def bevelPeer = BevelBorder.RAISED - def etchPeer = javax.swing.border.EtchedBorder.RAISED + def bevelPeer: Int = BevelBorder.RAISED + def etchPeer: Int = javax.swing.border.EtchedBorder.RAISED } - def EtchedBorder = BorderFactory.createEtchedBorder() - def EtchedBorder(kind: Embossing) = + def EtchedBorder: Border = BorderFactory.createEtchedBorder() + def EtchedBorder(kind: Embossing): Border = BorderFactory.createEtchedBorder(kind.etchPeer) - def EtchedBorder(kind: Embossing, highlight: Color, shadow: Color) = + def EtchedBorder(kind: Embossing, highlight: Color, shadow: Color): Border = BorderFactory.createEtchedBorder(kind.etchPeer, highlight, shadow) - def MatteBorder(top: Int, left: Int, bottom: Int, right: Int, color: Color) = + def MatteBorder(top: Int, left: Int, bottom: Int, right: Int, color: Color): MatteBorder = BorderFactory.createMatteBorder(top, left, bottom, right, color) - def MatteBorder(top: Int, left: Int, bottom: Int, right: Int, icon: Icon) = + def MatteBorder(top: Int, left: Int, bottom: Int, right: Int, icon: Icon): MatteBorder = BorderFactory.createMatteBorder(top, left, bottom, right, icon) - def CompoundBorder(outside: Border, inside: Border) = + def CompoundBorder(outside: Border, inside: Border): CompoundBorder = BorderFactory.createCompoundBorder(outside, inside) - def TitledBorder(border: Border, title: String) = + def TitledBorder(border: Border, title: String): TitledBorder = BorderFactory.createTitledBorder(border, title) /** * Schedule the given code to be executed on the Swing event dispatching * thread (EDT). Returns immediately. */ - @inline final def onEDT(op: =>Unit) = SwingUtilities invokeLater Runnable(op) + @inline final def onEDT(op: => Unit): Unit = SwingUtilities invokeLater Runnable(op) /** * Schedule the given code to be executed on the Swing event dispatching * thread (EDT). Blocks until after the code has been run. */ - @inline final def onEDTWait(op: =>Unit) = SwingUtilities invokeAndWait Runnable(op) + @inline final def onEDTWait(op: => Unit): Unit = SwingUtilities invokeAndWait Runnable(op) } diff --git a/src/main/scala/scala/swing/SwingApplication.scala b/src/main/scala/scala/swing/SwingApplication.scala index 214001f7..121dca4a 100644 --- a/src/main/scala/scala/swing/SwingApplication.scala +++ b/src/main/scala/scala/swing/SwingApplication.scala @@ -4,14 +4,14 @@ package scala.swing abstract class SwingApplication extends Reactor { /** Initializes the application and runs the given program. */ - def main(args: Array[String]) = Swing.onEDT { startup(args) } + def main(args: Array[String]): Unit = Swing.onEDT { startup(args) } /** Called before the GUI is created. Override to customize. */ - def startup(args: Array[String]) + def startup(args: Array[String]): Unit /** Finalizes the application by calling `shutdown` and exits.*/ - def quit() { shutdown(); sys.exit(0) } + def quit(): Unit = { shutdown(); sys.exit(0) } /** Called before the application is exited. Override to customize. */ - def shutdown() {} + def shutdown(): Unit = () } diff --git a/src/main/scala/scala/swing/TabbedPane.scala b/src/main/scala/scala/swing/TabbedPane.scala index 6e46256f..99e62d0e 100644 --- a/src/main/scala/scala/swing/TabbedPane.scala +++ b/src/main/scala/scala/swing/TabbedPane.scala @@ -10,15 +10,16 @@ package scala.swing -import event._ -import scala.collection.mutable.Buffer -import javax.swing.{JTabbedPane, JComponent} +import javax.swing.JTabbedPane + +import scala.swing.event._ object TabbedPane { object Layout extends Enumeration { - val Wrap = Value(JTabbedPane.WRAP_TAB_LAYOUT) - val Scroll = Value(JTabbedPane.SCROLL_TAB_LAYOUT) + import JTabbedPane._ + val Wrap : Layout.Value = Value(WRAP_TAB_LAYOUT) + val Scroll: Layout.Value = Value(SCROLL_TAB_LAYOUT) } class Page protected[TabbedPane](parent0: TabbedPane, title0: String, content0: Component, tip0: String) extends Proxy { @@ -34,36 +35,36 @@ object TabbedPane { protected[TabbedPane] var parent: TabbedPane = parent0 - protected var _title = title0 + protected var _title: String = title0 def title: String = _title - def title_=(t: String) { + def title_=(t: String): Unit = { // beware to keep this order since, index depends on the _old_ title if (parent != null) parent.peer.setTitleAt(index, t) _title = t } - protected var _content = content0 + protected var _content: Component = content0 def content: Component = _content//UIElement.cachedWrapper(peer.getComponentAt(index).asInstanceOf[JComponent]) - def content_=(c: Component) { _content = c; if (parent != null) parent.peer.setComponentAt(index, c.peer) } - protected var _tip = tip0 + def content_=(c: Component): Unit = { _content = c; if (parent != null) parent.peer.setComponentAt(index, c.peer) } + protected var _tip: String = tip0 def tip: String = _tip//peer.getToolTipTextAt(index) - def tip_=(t: String) { _tip = t; if (parent != null) parent.peer.setToolTipTextAt(index, t) } + def tip_=(t: String): Unit = { _tip = t; if (parent != null) parent.peer.setToolTipTextAt(index, t) } protected var _enabled = true def enabled: Boolean = _enabled//peer.isEnabledAt(index) - def enabled_=(b: Boolean) { _enabled = b; if (parent != null) parent.peer.setEnabledAt(index, b) } - protected var _mnemonic = -1 + def enabled_=(b: Boolean): Unit = { _enabled = b; if (parent != null) parent.peer.setEnabledAt(index, b) } + protected var _mnemonic: Int = -1 def mnemonic: Int = _mnemonic//peer.getMnemonicAt(index) - def mnemonic_=(k: Int) { _mnemonic = k; if (parent != null) parent.peer.setMnemonicAt(index, k)} + def mnemonic_=(k: Int): Unit = { _mnemonic = k; if (parent != null) parent.peer.setMnemonicAt(index, k)} protected var _foreground: Color = null def foreground: Color = _foreground//peer.getForegroundAt(index) - def foreground_=(c: Color) { _foreground = c; if (parent != null) parent.peer.setForegroundAt(index, c)} + def foreground_=(c: Color): Unit = { _foreground = c; if (parent != null) parent.peer.setForegroundAt(index, c)} protected var _background: Color = null def background: Color = _background //peer.getBackgroundAt(index) - def background_=(c: Color) { _background = c; if (parent != null) parent.peer.setBackgroundAt(index, c)} + def background_=(c: Color): Unit = { _background = c; if (parent != null) parent.peer.setBackgroundAt(index, c)} def bounds: Rectangle = parent.peer.getBoundsAt(index) // TODO: icon, disabledIcon - def index = if(parent != null) parent.peer.indexOfTab(title) else 0//_index + def index: Int = if(parent != null) parent.peer.indexOfTab(title) else 0//_index //protected[TabbedPane] var _index: Int = index0 } } @@ -89,43 +90,42 @@ class TabbedPane extends Component with Publisher { //for(i <- n to length) apply(i)._index -= 1 t } - protected def insertAt(n: Int, t: Page) { + protected def insertAt(n: Int, t: Page): Unit = { //for(i <- n to length) apply(i)._index += 1 t.parent = TabbedPane.this peer.insertTab(t.title, null, t.content.peer, t.tip, n) } def +=(t: Page): this.type = { t.parent = TabbedPane.this; peer.addTab(t.title, null, t.content.peer, t.tip); this } - def length = peer.getTabCount + def length: Int = peer.getTabCount def apply(n: Int) = new Page(TabbedPane.this, peer.getTitleAt(n), UIElement.cachedWrapper[Component](peer.getComponentAt(n).asInstanceOf[javax.swing.JComponent]), peer.getToolTipTextAt(n)) } def tabLayoutPolicy: Layout.Value = Layout(peer.getTabLayoutPolicy) - def tabLayoutPolicy_=(p: Layout.Value) { peer.setTabLayoutPolicy(p.id) } + def tabLayoutPolicy_=(p: Layout.Value): Unit = { peer.setTabLayoutPolicy(p.id) } def tabPlacement: Alignment.Value = Alignment(peer.getTabPlacement) /** * Possible values are Left, Right, Top, Bottom. */ - def tabPlacement_=(b: Alignment.Value) { peer.setTabPlacement(b.id) } + def tabPlacement_=(b: Alignment.Value): Unit = peer.setTabPlacement(b.id) /** * The current page selection */ object selection extends Publisher { def page: Page = pages(index) - def page_=(p: Page) { index = p.index } + def page_=(p: Page): Unit = { index = p.index } def index: Int = peer.getSelectedIndex - def index_=(n: Int) { peer.setSelectedIndex(n) } + def index_=(n: Int): Unit = peer.setSelectedIndex(n) peer.addChangeListener(new javax.swing.event.ChangeListener { - def stateChanged(e: javax.swing.event.ChangeEvent) { + def stateChanged(e: javax.swing.event.ChangeEvent): Unit = publish(SelectionChanged(TabbedPane.this)) - } }) } } diff --git a/src/main/scala/scala/swing/Table.scala b/src/main/scala/scala/swing/Table.scala index 45053f04..531af815 100644 --- a/src/main/scala/scala/swing/Table.scala +++ b/src/main/scala/scala/swing/Table.scala @@ -19,17 +19,18 @@ import scala.collection.mutable object Table { object AutoResizeMode extends Enumeration { import JTable._ - val Off = Value(AUTO_RESIZE_OFF, "Off") - val NextColumn = Value(AUTO_RESIZE_NEXT_COLUMN, "NextColumn") - val SubsequentColumns = Value(AUTO_RESIZE_SUBSEQUENT_COLUMNS, "SubsequentColumns") - val LastColumn = Value(AUTO_RESIZE_LAST_COLUMN, "LastColumn") - val AllColumns = Value(AUTO_RESIZE_ALL_COLUMNS, "AllColumns") + val Off : AutoResizeMode.Value = Value(AUTO_RESIZE_OFF, "Off") + val NextColumn : AutoResizeMode.Value = Value(AUTO_RESIZE_NEXT_COLUMN, "NextColumn") + val SubsequentColumns: AutoResizeMode.Value = Value(AUTO_RESIZE_SUBSEQUENT_COLUMNS, "SubsequentColumns") + val LastColumn : AutoResizeMode.Value = Value(AUTO_RESIZE_LAST_COLUMN, "LastColumn") + val AllColumns : AutoResizeMode.Value = Value(AUTO_RESIZE_ALL_COLUMNS, "AllColumns") } object IntervalMode extends Enumeration { - val Single = Value(ListSelectionModel.SINGLE_SELECTION) - val SingleInterval = Value(ListSelectionModel.SINGLE_INTERVAL_SELECTION) - val MultiInterval = Value(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) + import ListSelectionModel._ + val Single : IntervalMode.Value = Value(SINGLE_SELECTION) + val SingleInterval: IntervalMode.Value = Value(SINGLE_INTERVAL_SELECTION) + val MultiInterval : IntervalMode.Value = Value(MULTIPLE_INTERVAL_SELECTION) } object ElementMode extends Enumeration { val Row, Column, Cell, None = Value @@ -42,7 +43,7 @@ object Table { */ abstract class Renderer[-A] { def peer: TableCellRenderer = new TableCellRenderer { - def getTableCellRendererComponent(table: JTable, value: AnyRef, isSelected: Boolean, hasFocus: Boolean, row: Int, column: Int) = { + def getTableCellRendererComponent(table: JTable, value: AnyRef, isSelected: Boolean, hasFocus: Boolean, row: Int, column: Int): JComponent = { componentFor(table match { case t: JTableMixin => t.tableWrapper case _ => assert(false); null @@ -61,7 +62,7 @@ object Table { /** * Standard preconfiguration that is commonly done for any component. */ - def preConfigure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int) { + def preConfigure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int): Unit = { if (isSelected) { component.background = table.selectionBackground component.foreground = table.selectionForeground @@ -73,7 +74,7 @@ object Table { /** * Configuration that is specific to the component and this renderer. */ - def configure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int) + def configure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int): Unit /** * Configures the component before returning it. @@ -90,7 +91,7 @@ object Table { this{ a => (null, a.toString) } } - def configure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int) { + def configure(table: Table, isSelected: Boolean, hasFocus: Boolean, a: A, row: Int, column: Int): Unit = { val (icon, text) = convert(a) component.icon = icon component.text = text @@ -110,13 +111,13 @@ object Table { */ class Table extends Component with Scrollable.Wrapper { override lazy val peer: JTable = new JTable with Table.JTableMixin with SuperMixin { - def tableWrapper = Table.this - override def getCellRenderer(r: Int, c: Int) = new TableCellRenderer { - def getTableCellRendererComponent(table: JTable, value: AnyRef, isSelected: Boolean, hasFocus: Boolean, row: Int, column: Int) = + def tableWrapper: Table = Table.this + override def getCellRenderer(r: Int, c: Int): TableCellRenderer = new TableCellRenderer { + def getTableCellRendererComponent(table: JTable, value: AnyRef, isSelected: Boolean, hasFocus: Boolean, row: Int, column: Int): JComponent = Table.this.rendererComponent(isSelected, hasFocus, row, column).peer } - override def getCellEditor(r: Int, c: Int) = editor(r, c) - override def getValueAt(r: Int, c: Int) = Table.this.apply(r,c).asInstanceOf[AnyRef] + override def getCellEditor(r: Int, c: Int): TableCellEditor = editor(r, c) + override def getValueAt(r: Int, c: Int): AnyRef = Table.this.apply(r,c).asInstanceOf[AnyRef] } import Table._ @@ -124,12 +125,12 @@ class Table extends Component with Scrollable.Wrapper { def this(rowData: Array[Array[Any]], columnNames: Seq[_]) = { this() model = new AbstractTableModel { - override def getColumnName(column: Int) = columnNames(column).toString - def getRowCount() = rowData.length - def getColumnCount() = columnNames.length + override def getColumnName(column: Int): String = columnNames(column).toString + def getRowCount: Int = rowData.length + def getColumnCount: Int = columnNames.length def getValueAt(row: Int, col: Int): AnyRef = rowData(row)(col).asInstanceOf[AnyRef] override def isCellEditable(row: Int, column: Int) = true - override def setValueAt(value: Any, row: Int, col: Int) { + override def setValueAt(value: Any, row: Int, col: Int): Unit = { rowData(row)(col) = value fireTableCellUpdated(row, col) } @@ -138,7 +139,7 @@ class Table extends Component with Scrollable.Wrapper { def this(rows: Int, columns: Int) = { this() model = new DefaultTableModel(rows, columns) { - override def setValueAt(value: Any, row: Int, col: Int) { + override def setValueAt(value: Any, row: Int, col: Int): Unit = { super.setValueAt(value, row, col) } } @@ -146,52 +147,52 @@ class Table extends Component with Scrollable.Wrapper { protected def scrollablePeer = peer - def rowHeight = peer.getRowHeight - def rowHeight_=(x: Int) = peer.setRowHeight(x) + def rowHeight: Int = peer.getRowHeight + def rowHeight_=(x: Int): Unit = peer.setRowHeight(x) - def rowCount = peer.getRowCount + def rowCount: Int = peer.getRowCount - def model = peer.getModel() - def model_=(x: TableModel) = { + def model: TableModel = peer.getModel + def model_=(x: TableModel): Unit = { peer.setModel(x) model.removeTableModelListener(modelListener) model.addTableModelListener(modelListener) } def autoResizeMode: AutoResizeMode.Value = AutoResizeMode(peer.getAutoResizeMode) - def autoResizeMode_=(x: Table.AutoResizeMode.Value) = peer.setAutoResizeMode(x.id) + def autoResizeMode_=(x: Table.AutoResizeMode.Value): Unit = peer.setAutoResizeMode(x.id) - def showGrid = peer.getShowHorizontalLines && peer.getShowVerticalLines - def showGrid_=(grid: Boolean) = peer.setShowGrid(grid) + def showGrid: Boolean = peer.getShowHorizontalLines && peer.getShowVerticalLines + def showGrid_=(grid: Boolean): Unit = peer.setShowGrid(grid) - def gridColor = peer.getGridColor - def gridColor_=(color: Color) = peer.setGridColor(color) + def gridColor: Color = peer.getGridColor + def gridColor_=(color: Color): Unit = peer.setGridColor(color) - def preferredViewportSize_=(dim: Dimension) = peer.setPreferredScrollableViewportSize(dim) + def preferredViewportSize_=(dim: Dimension): Unit = peer.setPreferredScrollableViewportSize(dim) //1.6: def fillsViewportHeight: Boolean = peer.getFillsViewportHeight //def fillsViewportHeight_=(b: Boolean) = peer.setFillsViewportHeight(b) object selection extends Publisher { // TODO: could be a sorted set - protected abstract class SelectionSet[A](a: =>Seq[A]) extends mutable.Set[A] { + protected abstract class SelectionSet[A](a: => Seq[A]) extends mutable.Set[A] { def -=(n: A): this.type def +=(n: A): this.type - def contains(n: A) = a.contains(n) - override def size = a.length - def iterator = a.iterator + def contains(n: A): Boolean = a.contains(n) + override def size: Int = a.length + def iterator: Iterator[A] = a.iterator } object rows extends SelectionSet(peer.getSelectedRows) { - def -=(n: Int) = { peer.removeRowSelectionInterval(n,n); this } - def +=(n: Int) = { peer.addRowSelectionInterval(n,n); this } + def -=(n: Int): this.type = { peer.removeRowSelectionInterval(n,n); this } + def +=(n: Int): this.type = { peer.addRowSelectionInterval(n,n); this } def leadIndex: Int = peer.getSelectionModel.getLeadSelectionIndex def anchorIndex: Int = peer.getSelectionModel.getAnchorSelectionIndex } object columns extends SelectionSet(peer.getSelectedColumns) { - def -=(n: Int) = { peer.removeColumnSelectionInterval(n,n); this } - def +=(n: Int) = { peer.addColumnSelectionInterval(n,n); this } + def -=(n: Int): this.type = { peer.removeColumnSelectionInterval(n,n); this } + def +=(n: Int): this.type = { peer.addColumnSelectionInterval(n,n); this } def leadIndex: Int = peer.getColumnModel.getSelectionModel.getLeadSelectionIndex def anchorIndex: Int = peer.getColumnModel.getSelectionModel.getAnchorSelectionIndex @@ -199,17 +200,17 @@ class Table extends Component with Scrollable.Wrapper { def cells: mutable.Set[(Int, Int)] = new SelectionSet[(Int, Int)]((for(r <- selection.rows; c <- selection.columns) yield (r,c)).toSeq) { outer => - def -=(n: (Int, Int)) = { + def -=(n: (Int, Int)): this.type = { peer.removeRowSelectionInterval(n._1,n._1) peer.removeColumnSelectionInterval(n._2,n._2) this } - def +=(n: (Int, Int)) = { + def +=(n: (Int, Int)): this.type = { peer.addRowSelectionInterval(n._1,n._1) peer.addColumnSelectionInterval(n._2,n._2) this } - override def size = peer.getSelectedRowCount * peer.getSelectedColumnCount + override def size: Int = peer.getSelectedRowCount * peer.getSelectedColumnCount } /** @@ -218,30 +219,28 @@ class Table extends Component with Scrollable.Wrapper { * but the result is a table that does not produce useful selections. */ def intervalMode: IntervalMode.Value = IntervalMode(peer.getSelectionModel.getSelectionMode) - def intervalMode_=(m: IntervalMode.Value) { peer.setSelectionMode(m.id) } + def intervalMode_=(m: IntervalMode.Value): Unit = peer.setSelectionMode(m.id) def elementMode: ElementMode.Value = if(peer.getColumnSelectionAllowed && peer.getRowSelectionAllowed) ElementMode.Cell else if(peer.getColumnSelectionAllowed) ElementMode.Column else if(peer.getRowSelectionAllowed) ElementMode.Row else ElementMode.None - def elementMode_=(m: ElementMode.Value) { + def elementMode_=(m: ElementMode.Value): Unit = { m match { - case ElementMode.Cell => peer.setCellSelectionEnabled(true) + case ElementMode.Cell => peer.setCellSelectionEnabled(true) case ElementMode.Column => peer.setRowSelectionAllowed(false); peer.setColumnSelectionAllowed(true) - case ElementMode.Row => peer.setRowSelectionAllowed(true); peer.setColumnSelectionAllowed(false) - case ElementMode.None => peer.setRowSelectionAllowed(false); peer.setColumnSelectionAllowed(false) + case ElementMode.Row => peer.setRowSelectionAllowed(true) ; peer.setColumnSelectionAllowed(false) + case ElementMode.None => peer.setRowSelectionAllowed(false); peer.setColumnSelectionAllowed(false) } } peer.getColumnModel.getSelectionModel.addListSelectionListener(new ListSelectionListener { - def valueChanged(e: javax.swing.event.ListSelectionEvent) { + def valueChanged(e: javax.swing.event.ListSelectionEvent): Unit = publish(TableColumnsSelected(Table.this, e.getFirstIndex to e.getLastIndex, e.getValueIsAdjusting)) - } }) peer.getSelectionModel.addListSelectionListener(new ListSelectionListener { - def valueChanged(e: javax.swing.event.ListSelectionEvent) { + def valueChanged(e: javax.swing.event.ListSelectionEvent): Unit = publish(TableRowsSelected(Table.this, e.getFirstIndex to e.getLastIndex, e.getValueIsAdjusting)) - } }) } @@ -261,7 +260,7 @@ class Table extends Component with Scrollable.Wrapper { } // TODO: a public API for setting editors - protected def editor(row: Int, column: Int) = { + protected def editor(row: Int, column: Int): TableCellEditor = { val v = apply(row, column).asInstanceOf[AnyRef] if (v != null) Table.this.peer.getDefaultEditor(v.getClass) @@ -281,27 +280,27 @@ class Table extends Component with Scrollable.Wrapper { //def viewToModelRow(idx: Int) = peer.convertRowIndexToModel(idx) //def modelToViewRow(idx: Int) = peer.convertRowIndexToView(idx) - def viewToModelColumn(idx: Int) = peer.convertColumnIndexToModel(idx) - def modelToViewColumn(idx: Int) = peer.convertColumnIndexToView(idx) + def viewToModelColumn(idx: Int): Int = peer.convertColumnIndexToModel(idx) + def modelToViewColumn(idx: Int): Int = peer.convertColumnIndexToView (idx) /** * Change the value of the given cell. */ - def update(row: Int, column: Int, value: Any) { model.setValueAt(value, row, viewToModelColumn(column)) } + def update(row: Int, column: Int, value: Any): Unit = model.setValueAt(value, row, viewToModelColumn(column)) /** * Visually update the given cell. */ - def updateCell(row: Int, column: Int) = update(row, column, apply(row, column)) + def updateCell(row: Int, column: Int): Unit = update(row, column, apply(row, column)) def selectionForeground: Color = peer.getSelectionForeground - def selectionForeground_=(c: Color) = peer.setSelectionForeground(c) + def selectionForeground_=(c: Color): Unit = peer.setSelectionForeground(c) def selectionBackground: Color = peer.getSelectionBackground - def selectionBackground_=(c: Color) = peer.setSelectionBackground(c) + def selectionBackground_=(c: Color): Unit = peer.setSelectionBackground(c) - protected val modelListener = new TableModelListener { - def tableChanged(e: TableModelEvent) = publish( + protected val modelListener: TableModelListener = new TableModelListener { + def tableChanged(e: TableModelEvent): Unit = publish( e.getType match { case TableModelEvent.UPDATE => if (e.getFirstRow == 0 && e.getLastRow == Int.MaxValue && e.getColumn == TableModelEvent.ALL_COLUMNS) diff --git a/src/main/scala/scala/swing/TextArea.scala b/src/main/scala/scala/swing/TextArea.scala index 2f6bdca1..d7e660c1 100644 --- a/src/main/scala/scala/swing/TextArea.scala +++ b/src/main/scala/scala/swing/TextArea.scala @@ -23,21 +23,21 @@ class TextArea(text0: String, rows0: Int, columns0: Int) extends TextComponent def this() = this("", 0, 0) // TODO: we could make contents StringBuilder-like - def append(t: String) { peer.append(t) } + def append(t: String): Unit = peer.append(t) def rows: Int = peer.getRows - def rows_=(n: Int) = peer.setRows(n) + def rows_=(n: Int): Unit = peer.setRows(n) def columns: Int = peer.getColumns - def columns_=(n: Int) = peer.setColumns(n) + def columns_=(n: Int): Unit = peer.setColumns(n) def tabSize: Int = peer.getTabSize - def tabSize_=(n: Int) = peer.setTabSize(n) + def tabSize_=(n: Int): Unit = peer.setTabSize(n) def lineCount: Int = peer.getLineCount def lineWrap: Boolean = peer.getLineWrap - def lineWrap_=(w: Boolean) = peer.setLineWrap(w) + def lineWrap_=(w: Boolean): Unit = peer.setLineWrap(w) def wordWrap: Boolean = peer.getWrapStyleWord - def wordWrap_=(w: Boolean) = peer.setWrapStyleWord(w) + def wordWrap_=(w: Boolean): Unit = peer.setWrapStyleWord(w) def charWrap: Boolean = !peer.getWrapStyleWord - def charWrap_=(w: Boolean) = peer.setWrapStyleWord(!w) + def charWrap_=(w: Boolean): Unit = peer.setWrapStyleWord(!w) } diff --git a/src/main/scala/scala/swing/TextComponent.scala b/src/main/scala/scala/swing/TextComponent.scala index 4d233997..e1dffcac 100644 --- a/src/main/scala/scala/swing/TextComponent.scala +++ b/src/main/scala/scala/swing/TextComponent.scala @@ -15,11 +15,11 @@ import javax.swing.event._ object TextComponent { trait HasColumns extends TextComponent { def columns: Int - def columns_=(n: Int) + def columns_=(n: Int): Unit } trait HasRows extends TextComponent { def rows: Int - def rows_=(n: Int) + def rows_=(n: Int): Unit } } @@ -31,27 +31,27 @@ object TextComponent { class TextComponent extends Component with Publisher { override lazy val peer: JTextComponent = new JTextComponent with SuperMixin {} def text: String = peer.getText - def text_=(t: String) = peer.setText(t) + def text_=(t: String): Unit = peer.setText(t) class Caret extends Publisher { def dot: Int = peer.getCaret.getDot - def dot_=(n: Int) { peer.getCaret.setDot(n) } + def dot_=(n: Int): Unit = peer.getCaret.setDot(n) def mark: Int = peer.getCaret.getMark - def moveDot(n: Int) { peer.getCaret.moveDot(n) } + def moveDot(n: Int): Unit = peer.getCaret.moveDot(n) def visible: Boolean = peer.getCaret.isVisible - def visible_=(b: Boolean) { peer.getCaret.setVisible(b) } + def visible_=(b: Boolean): Unit = peer.getCaret.setVisible(b) def selectionVisible: Boolean = peer.getCaret.isSelectionVisible - def selectionVisible_=(b: Boolean) { peer.getCaret.setSelectionVisible(b) } + def selectionVisible_=(b: Boolean): Unit = peer.getCaret.setSelectionVisible(b) def blinkRate: Int = peer.getCaret.getBlinkRate - def blinkRate_=(n: Int) { peer.getCaret.setBlinkRate(n) } + def blinkRate_=(n: Int): Unit = peer.getCaret.setBlinkRate(n) def color: Color = peer.getCaretColor - def color_=(c: Color) = peer.setCaretColor(c) + def color_=(c: Color): Unit = peer.setCaretColor(c) def position: Int = peer.getCaretPosition - def position_=(p: Int) = peer.setCaretPosition(p) + def position_=(p: Int): Unit = peer.setCaretPosition(p) peer.addCaretListener { new CaretListener { - def caretUpdate(e: CaretEvent) { publish(CaretUpdate(TextComponent.this)) } + def caretUpdate(e: CaretEvent): Unit = publish(CaretUpdate(TextComponent.this)) } } } @@ -59,17 +59,19 @@ class TextComponent extends Component with Publisher { object caret extends Caret def editable: Boolean = peer.isEditable - def editable_=(x: Boolean) = peer.setEditable(x) - def cut() { peer.cut() } - def copy() { peer.copy() } - def paste() { peer.paste() } + def editable_=(x: Boolean): Unit = peer.setEditable(x) + + def cut (): Unit = peer.cut() + def copy (): Unit = peer.copy() + def paste(): Unit = peer.paste() + def selected: String = peer.getSelectedText - def selectAll() { peer.selectAll() } + def selectAll(): Unit = peer.selectAll() peer.getDocument.addDocumentListener(new DocumentListener { - def changedUpdate(e:DocumentEvent) { publish(new ValueChanged(TextComponent.this)) } - def insertUpdate(e:DocumentEvent) { publish(new ValueChanged(TextComponent.this)) } - def removeUpdate(e:DocumentEvent) { publish(new ValueChanged(TextComponent.this)) } + def changedUpdate(e:DocumentEvent): Unit = publish(new ValueChanged(TextComponent.this)) + def insertUpdate (e:DocumentEvent): Unit = publish(new ValueChanged(TextComponent.this)) + def removeUpdate (e:DocumentEvent): Unit = publish(new ValueChanged(TextComponent.this)) }) } diff --git a/src/main/scala/scala/swing/TextField.scala b/src/main/scala/scala/swing/TextField.scala index a28e8f84..5906a7f9 100644 --- a/src/main/scala/scala/swing/TextField.scala +++ b/src/main/scala/scala/swing/TextField.scala @@ -36,43 +36,43 @@ class TextField(text0: String, columns0: Int) extends TextComponent with TextCom def this() = this("") def columns: Int = peer.getColumns - def columns_=(n: Int) = peer.setColumns(n) + def columns_=(n: Int): Unit = peer.setColumns(n) /** @see javax.swing.JTextField#getHorizontalAlignment() */ def horizontalAlignment: Alignment.Value = Alignment(peer.getHorizontalAlignment) /** @see javax.swing.JTextField#setHorizontalAlignment() */ - def horizontalAlignment_=(x: Alignment.Value) { peer.setHorizontalAlignment(x.id) } + def horizontalAlignment_=(x: Alignment.Value): Unit = peer.setHorizontalAlignment(x.id) - private lazy val actionListener = Swing.ActionListener { e => + private lazy val actionListener = Swing.ActionListener { _ => publish(EditDone(TextField.this)) } - protected override def onFirstSubscribe() { - super.onFirstSubscribe + protected override def onFirstSubscribe(): Unit = { + super.onFirstSubscribe() peer.addActionListener(actionListener) peer.addFocusListener(new FocusAdapter { - override def focusLost(e: java.awt.event.FocusEvent) { publish(EditDone(TextField.this)) } + override def focusLost(e: java.awt.event.FocusEvent): Unit = publish(EditDone(TextField.this)) }) } - protected override def onLastUnsubscribe() { - super.onLastUnsubscribe + protected override def onLastUnsubscribe(): Unit = { + super.onLastUnsubscribe() peer.removeActionListener(actionListener) } - def verifier: String => Boolean = s => Option(peer.getInputVerifier) forall (_ verify peer) - def verifier_=(v: String => Boolean) { + def verifier: String => Boolean = _ => Option(peer.getInputVerifier) forall (_ verify peer) + def verifier_=(v: String => Boolean): Unit = { peer.setInputVerifier(new InputVerifier { private val old = Option(peer.getInputVerifier) def verify(c: JComponent) = v(text) - override def shouldYieldFocus(c: JComponent) = old forall (_ shouldYieldFocus c) + override def shouldYieldFocus(c: JComponent): Boolean = old forall (_ shouldYieldFocus c) }) } - def shouldYieldFocus: String => Boolean = s => Option(peer.getInputVerifier) forall (_ shouldYieldFocus peer) - def shouldYieldFocus_=(y: String=>Boolean) { + def shouldYieldFocus: String => Boolean = _ => Option(peer.getInputVerifier) forall (_ shouldYieldFocus peer) + def shouldYieldFocus_=(y: String => Boolean): Unit = { peer.setInputVerifier(new InputVerifier { private val old = peer.getInputVerifier - def verify(c: JComponent) = old.verify(c) + def verify(c: JComponent): Boolean = old.verify(c) override def shouldYieldFocus(c: JComponent) = y(text) }) } diff --git a/src/main/scala/scala/swing/TextPane.scala b/src/main/scala/scala/swing/TextPane.scala index 3ffd1a89..76749696 100644 --- a/src/main/scala/scala/swing/TextPane.scala +++ b/src/main/scala/scala/swing/TextPane.scala @@ -14,5 +14,5 @@ package scala.swing */ class TextPane() extends TextComponent { override lazy val peer: javax.swing.JTextPane = new javax.swing.JTextPane() with SuperMixin - def styledDocument: javax.swing.text.StyledDocument = peer.getStyledDocument() + def styledDocument: javax.swing.text.StyledDocument = peer.getStyledDocument } \ No newline at end of file diff --git a/src/main/scala/scala/swing/UIElement.scala b/src/main/scala/scala/swing/UIElement.scala index b92e484a..fb46c76e 100644 --- a/src/main/scala/scala/swing/UIElement.scala +++ b/src/main/scala/scala/swing/UIElement.scala @@ -8,14 +8,16 @@ package scala.swing -import java.awt.{ComponentOrientation, Cursor} -import event._ +import java.awt.{ComponentOrientation, Cursor, Toolkit} +import java.util +import java.util.Locale + import scala.ref._ -import java.util.WeakHashMap +import scala.swing.event._ object UIElement { private val ClientKey = "scala.swingWrapper" - private[this] val wrapperCache = new WeakHashMap[java.awt.Component, WeakReference[UIElement]] + private[this] val wrapperCache = new util.WeakHashMap[java.awt.Component, WeakReference[UIElement]] private def cache(e: UIElement) = e.peer match { case p: javax.swing.JComponent => p.putClientProperty(ClientKey, e) @@ -78,60 +80,59 @@ trait UIElement extends Proxy with LazyPublisher { UIElement.cache(this) def foreground: Color = peer.getForeground - def foreground_=(c: Color) = peer setForeground c + def foreground_=(c: Color): Unit = peer setForeground c def background: Color = peer.getBackground - def background_=(c: Color) = peer setBackground c + def background_=(c: Color): Unit = peer setBackground c - def minimumSize = peer.getMinimumSize - def minimumSize_=(x: Dimension) = peer setMinimumSize x - def maximumSize = peer.getMaximumSize - def maximumSize_=(x: Dimension) = peer setMaximumSize x - def preferredSize = peer.getPreferredSize - def preferredSize_=(x: Dimension) = peer setPreferredSize x - def componentOrientation = peer.getComponentOrientation - def componentOrientation_=(x: ComponentOrientation) = peer setComponentOrientation x + def minimumSize: Dimension = peer.getMinimumSize + def minimumSize_=(x: Dimension): Unit = peer setMinimumSize x + def maximumSize: Dimension = peer.getMaximumSize + def maximumSize_=(x: Dimension): Unit = peer setMaximumSize x + def preferredSize: Dimension = peer.getPreferredSize + def preferredSize_=(x: Dimension): Unit = peer setPreferredSize x + def componentOrientation: ComponentOrientation = peer.getComponentOrientation + def componentOrientation_=(x: ComponentOrientation): Unit = peer setComponentOrientation x def font: Font = peer.getFont - def font_=(f: Font) = peer setFont f + def font_=(f: Font): Unit = peer setFont f - def locationOnScreen = peer.getLocationOnScreen - def location = peer.getLocation - def bounds = peer.getBounds - def size = peer.getSize + def locationOnScreen: Point = peer.getLocationOnScreen + def location: Point = peer.getLocation + def bounds: Rectangle = peer.getBounds + def size: Dimension = peer.getSize - def locale = peer.getLocale - def toolkit = peer.getToolkit + def locale: Locale = peer.getLocale + def toolkit: Toolkit = peer.getToolkit def cursor: Cursor = peer.getCursor - def cursor_=(c: Cursor) { peer.setCursor(c) } + def cursor_=(c: Cursor): Unit = peer.setCursor(c) def visible: Boolean = peer.isVisible - def visible_=(b: Boolean) { peer.setVisible(b) } + def visible_=(b: Boolean): Unit = peer.setVisible(b) def showing: Boolean = peer.isShowing def displayable: Boolean = peer.isDisplayable - def validate() { peer.validate } - def repaint() { peer.repaint } - def repaint(rect: Rectangle) { peer.repaint(rect.x, rect.y, rect.width, rect.height) } + def validate(): Unit = peer.validate() + def repaint(): Unit = peer.repaint() + def repaint(rect: Rectangle): Unit = peer.repaint(rect.x, rect.y, rect.width, rect.height) def ignoreRepaint: Boolean = peer.getIgnoreRepaint - def ignoreRepaint_=(b: Boolean) { peer.setIgnoreRepaint(b) } + def ignoreRepaint_=(b: Boolean): Unit = peer.setIgnoreRepaint(b) - protected def onFirstSubscribe() { + protected def onFirstSubscribe(): Unit = { peer.addComponentListener(new java.awt.event.ComponentListener { - def componentHidden(e: java.awt.event.ComponentEvent) { + def componentHidden(e: java.awt.event.ComponentEvent): Unit = publish(UIElementHidden(UIElement.this)) - } - def componentShown(e: java.awt.event.ComponentEvent) { + + def componentShown(e: java.awt.event.ComponentEvent): Unit = publish(UIElementShown(UIElement.this)) - } - def componentMoved(e: java.awt.event.ComponentEvent) { + + def componentMoved(e: java.awt.event.ComponentEvent): Unit = publish(UIElementMoved(UIElement.this)) - } - def componentResized(e: java.awt.event.ComponentEvent) { + + def componentResized(e: java.awt.event.ComponentEvent): Unit = publish(UIElementResized(UIElement.this)) - } }) } - protected def onLastUnsubscribe() {} + protected def onLastUnsubscribe(): Unit = () } diff --git a/src/main/scala/scala/swing/Window.scala b/src/main/scala/scala/swing/Window.scala index a9f4ae75..97ca0693 100644 --- a/src/main/scala/scala/swing/Window.scala +++ b/src/main/scala/scala/swing/Window.scala @@ -25,9 +25,9 @@ abstract class Window extends UIElement with RootPanel with Publisher { outer => protected trait InterfaceMixin extends javax.swing.RootPaneContainer protected trait SuperMixin extends AWTWindow { - override protected def processWindowEvent(e: java.awt.event.WindowEvent) { + override protected def processWindowEvent(e: java.awt.event.WindowEvent): Unit = { super.processWindowEvent(e) - if (e.getID() == java.awt.event.WindowEvent.WINDOW_CLOSING) + if (e.getID == java.awt.event.WindowEvent.WINDOW_CLOSING) closeOperation() } } @@ -36,43 +36,43 @@ abstract class Window extends UIElement with RootPanel with Publisher { outer => * This method is called when the window is closing, after all other window * event listeners have been processed. */ - def closeOperation() {} + def closeOperation(): Unit = () - override def contents_=(c: Component) { + override def contents_=(c: Component): Unit = { super.contents_=(c) peer.pack() // pack also validates, which is generally required after an add } def defaultButton: Option[Button] = toOption(peer.getRootPane.getDefaultButton) map UIElement.cachedWrapper[Button] - def defaultButton_=(b: Button) { + def defaultButton_=(b: Button): Unit = { peer.getRootPane.setDefaultButton(b.peer) } - def defaultButton_=(b: Option[Button]) { + def defaultButton_=(b: Option[Button]): Unit = { peer.getRootPane.setDefaultButton(b.map(_.peer).orNull) } - def dispose() { peer.dispose() } + def dispose(): Unit = peer.dispose() def pack(): this.type = { peer.pack(); this } - def setLocationRelativeTo(c: UIElement) { peer.setLocationRelativeTo(c.peer) } - def centerOnScreen() { peer.setLocationRelativeTo(null) } - def location_=(p: Point) { peer.setLocation(p) } - def size_=(size: Dimension) { peer.setSize(size) } - def bounds_=(rect: Rectangle) { peer.setBounds(rect) } + def setLocationRelativeTo(c: UIElement): Unit = peer.setLocationRelativeTo(c.peer) + def centerOnScreen(): Unit = peer.setLocationRelativeTo(null) + def location_=(p: Point): Unit = peer.setLocation(p) + def size_=(size: Dimension): Unit = peer.setSize(size) + def bounds_=(rect: Rectangle): Unit = peer.setBounds(rect) def owner: Window = UIElement.cachedWrapper[Window](peer.getOwner) - def open() { peer setVisible true } - def close() { peer setVisible false } + def open (): Unit = peer setVisible true + def close(): Unit = peer setVisible false peer.addWindowListener(new java.awt.event.WindowListener { - def windowActivated(e: java.awt.event.WindowEvent) { publish(WindowActivated(outer)) } - def windowClosed(e: java.awt.event.WindowEvent) { publish(WindowClosed(outer)) } - def windowClosing(e: java.awt.event.WindowEvent) { publish(WindowClosing(outer)) } - def windowDeactivated(e: java.awt.event.WindowEvent) { publish(WindowDeactivated(outer)) } - def windowDeiconified(e: java.awt.event.WindowEvent) { publish(WindowDeiconified(outer)) } - def windowIconified(e: java.awt.event.WindowEvent) { publish(WindowIconified(outer)) } - def windowOpened(e: java.awt.event.WindowEvent) { publish(WindowOpened(outer)) } + def windowActivated (e: java.awt.event.WindowEvent): Unit = publish(WindowActivated(outer)) + def windowClosed (e: java.awt.event.WindowEvent): Unit = publish(WindowClosed(outer)) + def windowClosing (e: java.awt.event.WindowEvent): Unit = publish(WindowClosing(outer)) + def windowDeactivated (e: java.awt.event.WindowEvent): Unit = publish(WindowDeactivated(outer)) + def windowDeiconified (e: java.awt.event.WindowEvent): Unit = publish(WindowDeiconified(outer)) + def windowIconified (e: java.awt.event.WindowEvent): Unit = publish(WindowIconified(outer)) + def windowOpened (e: java.awt.event.WindowEvent): Unit = publish(WindowOpened(outer)) }) } diff --git a/src/main/scala/scala/swing/event/InputEvent.scala b/src/main/scala/scala/swing/event/InputEvent.scala index b515b015..966aba4d 100644 --- a/src/main/scala/scala/swing/event/InputEvent.scala +++ b/src/main/scala/scala/swing/event/InputEvent.scala @@ -15,6 +15,6 @@ trait InputEvent extends ComponentEvent { def peer: java.awt.event.InputEvent def when: Long = peer.getWhen def modifiers: Key.Modifiers - def consume() { peer.consume() } + def consume(): Unit = peer.consume() def consumed: Boolean = peer.isConsumed } diff --git a/src/main/scala/scala/swing/event/Key.scala b/src/main/scala/scala/swing/event/Key.scala index 5e9e0cbe..9d26fddd 100644 --- a/src/main/scala/scala/swing/event/Key.scala +++ b/src/main/scala/scala/swing/event/Key.scala @@ -15,218 +15,222 @@ package event * Enumeration of key codes used by key events. */ object Key extends Enumeration { - import java.awt.event.KeyEvent._ - + object Location extends Enumeration { - val Left = Value(java.awt.event.KeyEvent.KEY_LOCATION_LEFT) - val Right = Value(java.awt.event.KeyEvent.KEY_LOCATION_RIGHT) - val Numpad = Value(java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD) - val Standard = Value(java.awt.event.KeyEvent.KEY_LOCATION_STANDARD) - val Unknown = Value(java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN) + import java.awt.event.KeyEvent._ + val Left : Location.Value = Value(KEY_LOCATION_LEFT) + val Right : Location.Value = Value(KEY_LOCATION_RIGHT) + val Numpad : Location.Value = Value(KEY_LOCATION_NUMPAD) + val Standard: Location.Value = Value(KEY_LOCATION_STANDARD) + val Unknown : Location.Value = Value(KEY_LOCATION_UNKNOWN) } type Modifiers = Int object Modifier { import java.awt.event.InputEvent._ - val Shift = SHIFT_DOWN_MASK - val Control = CTRL_DOWN_MASK - val Alt = ALT_DOWN_MASK - val AltGraph = ALT_GRAPH_DOWN_MASK - val Meta = META_DOWN_MASK - def text(mods: Int) = java.awt.event.KeyEvent.getKeyModifiersText(mods) + val Shift : Modifiers = SHIFT_DOWN_MASK + val Control : Modifiers = CTRL_DOWN_MASK + val Alt : Modifiers = ALT_DOWN_MASK + val AltGraph: Modifiers = ALT_GRAPH_DOWN_MASK + val Meta : Modifiers = META_DOWN_MASK + + def text(mods: Int): String = java.awt.event.KeyEvent.getKeyModifiersText(mods) } //def text(k: Value) = java.awt.event.KeyEvent.getKeyText(k.id) + + import Key.{Value => KV} + import java.awt.event.KeyEvent.{getKeyText => t, _} - val Shift = Value(VK_SHIFT, getKeyText(VK_SHIFT)) - val Control = Value(VK_CONTROL, getKeyText(VK_CONTROL)) - val Alt = Value(VK_ALT, getKeyText(VK_ALT)) - val AltGraph = Value(VK_ALT_GRAPH, getKeyText(VK_ALT_GRAPH)) - val Meta = Value(VK_META, getKeyText(VK_META)) + val Shift : KV = Value(VK_SHIFT , t(VK_SHIFT)) + val Control : KV = Value(VK_CONTROL , t(VK_CONTROL)) + val Alt : KV = Value(VK_ALT , t(VK_ALT)) + val AltGraph : KV = Value(VK_ALT_GRAPH , t(VK_ALT_GRAPH)) + val Meta : KV = Value(VK_META , t(VK_META)) - val Enter = Value(VK_ENTER, getKeyText(VK_ENTER)) - val BackSpace = Value(VK_BACK_SPACE, getKeyText(VK_BACK_SPACE)) - val Tab = Value(VK_TAB, getKeyText(VK_TAB)) - val Cancel = Value(VK_CANCEL, getKeyText(VK_CANCEL)) - val Clear = Value(VK_CLEAR, getKeyText(VK_CLEAR)) + val Enter : KV = Value(VK_ENTER , t(VK_ENTER)) + val BackSpace : KV = Value(VK_BACK_SPACE , t(VK_BACK_SPACE)) + val Tab : KV = Value(VK_TAB , t(VK_TAB)) + val Cancel : KV = Value(VK_CANCEL , t(VK_CANCEL)) + val Clear : KV = Value(VK_CLEAR , t(VK_CLEAR)) - val Pause = Value(VK_PAUSE, getKeyText(VK_PAUSE)) - val CapsLock = Value(VK_CAPS_LOCK, getKeyText(VK_CAPS_LOCK)) - val Escape = Value(VK_ESCAPE, getKeyText(VK_ESCAPE)) - val Space = Value(VK_SPACE, getKeyText(VK_SPACE)) - val PageUp = Value(VK_PAGE_UP, getKeyText(VK_PAGE_UP)) - val PageDown = Value(VK_PAGE_DOWN, getKeyText(VK_PAGE_DOWN)) - val End = Value(VK_END, getKeyText(VK_END)) - val Home = Value(VK_HOME, getKeyText(VK_HOME)) - val Left = Value(VK_LEFT, getKeyText(VK_LEFT)) - val Up = Value(VK_UP, getKeyText(VK_UP)) - val Right = Value(VK_RIGHT, getKeyText(VK_RIGHT)) - val Down = Value(VK_DOWN, getKeyText(VK_DOWN)) - val Comma = Value(VK_COMMA, getKeyText(VK_COMMA)) - val Minus = Value(VK_MINUS, getKeyText(VK_MINUS)) - val Period = Value(VK_PERIOD, getKeyText(VK_PERIOD)) - val Slash = Value(VK_SLASH, getKeyText(VK_SLASH)) - val Key0 = Value(VK_0, getKeyText(VK_0)) - val Key1 = Value(VK_1, getKeyText(VK_1)) - val Key2 = Value(VK_2, getKeyText(VK_2)) - val Key3 = Value(VK_3, getKeyText(VK_3)) - val Key4 = Value(VK_4, getKeyText(VK_4)) - val Key5 = Value(VK_5, getKeyText(VK_5)) - val Key6 = Value(VK_6, getKeyText(VK_6)) - val Key7 = Value(VK_7, getKeyText(VK_7)) - val Key8 = Value(VK_8, getKeyText(VK_8)) - val Key9 = Value(VK_9, getKeyText(VK_9)) - val Semicolon = Value(VK_SEMICOLON, getKeyText(VK_SEMICOLON)) - val Equals = Value(VK_EQUALS, getKeyText(VK_EQUALS)) - val A = Value(VK_A, getKeyText(VK_A)) - val B = Value(VK_B, getKeyText(VK_B)) - val C = Value(VK_C, getKeyText(VK_C)) - val D = Value(VK_D, getKeyText(VK_D)) - val E = Value(VK_E, getKeyText(VK_E)) - val F = Value(VK_F, getKeyText(VK_F)) - val G = Value(VK_G, getKeyText(VK_G)) - val H = Value(VK_H, getKeyText(VK_H)) - val I = Value(VK_I, getKeyText(VK_I)) - val J = Value(VK_J, getKeyText(VK_J)) - val K = Value(VK_K, getKeyText(VK_K)) - val L = Value(VK_L, getKeyText(VK_L)) - val M = Value(VK_M, getKeyText(VK_M)) - val N = Value(VK_N, getKeyText(VK_N)) - val O = Value(VK_O, getKeyText(VK_O)) - val P = Value(VK_P, getKeyText(VK_P)) - val Q = Value(VK_Q, getKeyText(VK_Q)) - val R = Value(VK_R, getKeyText(VK_R)) - val S = Value(VK_S, getKeyText(VK_S)) - val T = Value(VK_T, getKeyText(VK_T)) - val U = Value(VK_U, getKeyText(VK_U)) - val V = Value(VK_V, getKeyText(VK_V)) - val W = Value(VK_W, getKeyText(VK_W)) - val X = Value(VK_X, getKeyText(VK_X)) - val Y = Value(VK_Y, getKeyText(VK_Y)) - val Z = Value(VK_Z, getKeyText(VK_Z)) - val OpenBracket = Value(VK_OPEN_BRACKET, getKeyText(VK_OPEN_BRACKET)) - val BackSlash = Value(VK_BACK_SLASH, getKeyText(VK_BACK_SLASH)) - val CloseBracket = Value(VK_CLOSE_BRACKET, getKeyText(VK_CLOSE_BRACKET)) - val Numpad0 = Value(VK_NUMPAD0, getKeyText(VK_NUMPAD0)) - val Numpad1 = Value(VK_NUMPAD1, getKeyText(VK_NUMPAD1)) - val Numpad2 = Value(VK_NUMPAD2, getKeyText(VK_NUMPAD2)) - val Numpad3 = Value(VK_NUMPAD3, getKeyText(VK_NUMPAD3)) - val Numpad4 = Value(VK_NUMPAD4, getKeyText(VK_NUMPAD4)) - val Numpad5 = Value(VK_NUMPAD5, getKeyText(VK_NUMPAD5)) - val Numpad6 = Value(VK_NUMPAD6, getKeyText(VK_NUMPAD6)) - val Numpad7 = Value(VK_NUMPAD7, getKeyText(VK_NUMPAD7)) - val Numpad8 = Value(VK_NUMPAD8, getKeyText(VK_NUMPAD8)) - val Numpad9 = Value(VK_NUMPAD9, getKeyText(VK_NUMPAD9)) - val Multiply = Value(VK_MULTIPLY, getKeyText(VK_MULTIPLY)) - val Add = Value(VK_ADD, getKeyText(VK_ADD)) - val Separator = Value(VK_SEPARATOR, getKeyText(VK_SEPARATOR)) - val Subtract = Value(VK_SUBTRACT, getKeyText(VK_SUBTRACT)) - val Decimal = Value(VK_DECIMAL, getKeyText(VK_DECIMAL)) - val Divide = Value(VK_DIVIDE, getKeyText(VK_DIVIDE)) - val Delete = Value(VK_DELETE, getKeyText(VK_DELETE)) - val NumLock = Value(VK_NUM_LOCK, getKeyText(VK_NUM_LOCK)) - val ScrollLock = Value(VK_SCROLL_LOCK, getKeyText(VK_SCROLL_LOCK)) - val F1 = Value(VK_F1, getKeyText(VK_F1)) - val F2 = Value(VK_F2, getKeyText(VK_F2)) - val F3 = Value(VK_F3, getKeyText(VK_F3)) - val F4 = Value(VK_F4, getKeyText(VK_F4)) - val F5 = Value(VK_F5, getKeyText(VK_F5)) - val F6 = Value(VK_F6, getKeyText(VK_F6)) - val F7 = Value(VK_F7, getKeyText(VK_F7)) - val F8 = Value(VK_F8, getKeyText(VK_F8)) - val F9 = Value(VK_F9, getKeyText(VK_F9)) - val F10 = Value(VK_F10, getKeyText(VK_F10)) - val F11 = Value(VK_F11, getKeyText(VK_F11)) - val F12 = Value(VK_F12, getKeyText(VK_F12)) - val F13 = Value(VK_F13, getKeyText(VK_F13)) - val F14 = Value(VK_F14, getKeyText(VK_F14)) - val F15 = Value(VK_F15, getKeyText(VK_F15)) - val F16 = Value(VK_F16, getKeyText(VK_F16)) - val F17 = Value(VK_F17, getKeyText(VK_F17)) - val F18 = Value(VK_F18, getKeyText(VK_F18)) - val F19 = Value(VK_F19, getKeyText(VK_F19)) - val F20 = Value(VK_F20, getKeyText(VK_F20)) - val F21 = Value(VK_F21, getKeyText(VK_F21)) - val F22 = Value(VK_F22, getKeyText(VK_F22)) - val F23 = Value(VK_F23, getKeyText(VK_F23)) - val F24 = Value(VK_F24, getKeyText(VK_F24)) - val Printscreen = Value(VK_PRINTSCREEN, getKeyText(VK_PRINTSCREEN)) - val Insert = Value(VK_INSERT, getKeyText(VK_INSERT)) - val Help = Value(VK_HELP, getKeyText(VK_HELP)) - val BackQuote = Value(VK_BACK_QUOTE, getKeyText(VK_BACK_QUOTE)) - val Quote = Value(VK_QUOTE, getKeyText(VK_QUOTE)) - val KpUp = Value(VK_KP_UP, getKeyText(VK_KP_UP)) - val KpDown = Value(VK_KP_DOWN, getKeyText(VK_KP_DOWN)) - val KpLeft = Value(VK_KP_LEFT, getKeyText(VK_KP_LEFT)) - val KpRight = Value(VK_KP_RIGHT, getKeyText(VK_KP_RIGHT)) - val DeadGrave = Value(VK_DEAD_GRAVE, getKeyText(VK_DEAD_GRAVE)) - val DeadAcute = Value(VK_DEAD_ACUTE, getKeyText(VK_DEAD_ACUTE)) - val DeadCircumflex = Value(VK_DEAD_CIRCUMFLEX, getKeyText(VK_DEAD_CIRCUMFLEX)) - val DeadTilde = Value(VK_DEAD_TILDE, getKeyText(VK_DEAD_TILDE)) - val DeadMacron = Value(VK_DEAD_MACRON, getKeyText(VK_DEAD_MACRON)) - val DeadBreve = Value(VK_DEAD_BREVE, getKeyText(VK_DEAD_BREVE)) - val DeadAbovedot = Value(VK_DEAD_ABOVEDOT, getKeyText(VK_DEAD_ABOVEDOT)) - val DeadDiaeresis = Value(VK_DEAD_DIAERESIS, getKeyText(VK_DEAD_DIAERESIS)) - val DeadAbovering = Value(VK_DEAD_ABOVERING, getKeyText(VK_DEAD_ABOVERING)) - val DeadDoubleacute = Value(VK_DEAD_DOUBLEACUTE, getKeyText(VK_DEAD_DOUBLEACUTE)) - val DeadCaron = Value(VK_DEAD_CARON, getKeyText(VK_DEAD_CARON)) - val DeadCedilla = Value(VK_DEAD_CEDILLA, getKeyText(VK_DEAD_CEDILLA)) - val DeadOgonek = Value(VK_DEAD_OGONEK, getKeyText(VK_DEAD_OGONEK)) - val DeadIota = Value(VK_DEAD_IOTA, getKeyText(VK_DEAD_IOTA)) - val DeadVoicedSound = Value(VK_DEAD_VOICED_SOUND, getKeyText(VK_DEAD_VOICED_SOUND)) - val DeadSemivoicedSound = Value(VK_DEAD_SEMIVOICED_SOUND, getKeyText(VK_DEAD_SEMIVOICED_SOUND)) - val Ampersand = Value(VK_AMPERSAND, getKeyText(VK_AMPERSAND)) - val Asterisk = Value(VK_ASTERISK, getKeyText(VK_ASTERISK)) - val Quotedbl = Value(VK_QUOTEDBL, getKeyText(VK_QUOTEDBL)) - val Less = Value(VK_LESS, getKeyText(VK_LESS)) - val Greater = Value(VK_GREATER, getKeyText(VK_GREATER)) - val Braceleft = Value(VK_BRACELEFT, getKeyText(VK_BRACELEFT)) - val Braceright = Value(VK_BRACERIGHT, getKeyText(VK_BRACERIGHT)) - val At = Value(VK_AT, getKeyText(VK_AT)) - val Colon = Value(VK_COLON, getKeyText(VK_COLON)) - val Circumflex = Value(VK_CIRCUMFLEX, getKeyText(VK_CIRCUMFLEX)) - val Dollar = Value(VK_DOLLAR, getKeyText(VK_DOLLAR)) - val EuroSign = Value(VK_EURO_SIGN, getKeyText(VK_EURO_SIGN)) - val ExclamationMark = Value(VK_EXCLAMATION_MARK, getKeyText(VK_EXCLAMATION_MARK)) - val InvertedExclamationMark = Value(VK_INVERTED_EXCLAMATION_MARK, getKeyText(VK_INVERTED_EXCLAMATION_MARK)) - val LeftParenthesis = Value(VK_LEFT_PARENTHESIS, getKeyText(VK_LEFT_PARENTHESIS)) - val NumberSign = Value(VK_NUMBER_SIGN, getKeyText(VK_NUMBER_SIGN)) - val Plus = Value(VK_PLUS, getKeyText(VK_PLUS)) - val RightParenthesis = Value(VK_RIGHT_PARENTHESIS, getKeyText(VK_RIGHT_PARENTHESIS)) - val Underscore = Value(VK_UNDERSCORE, getKeyText(VK_UNDERSCORE)) - val Windows = Value(VK_WINDOWS, getKeyText(VK_WINDOWS)) - val ContextMenu = Value(VK_CONTEXT_MENU, getKeyText(VK_CONTEXT_MENU)) - val Final = Value(VK_FINAL, getKeyText(VK_FINAL)) - val Convert = Value(VK_CONVERT, getKeyText(VK_CONVERT)) - val Nonconvert = Value(VK_NONCONVERT, getKeyText(VK_NONCONVERT)) - val Accept = Value(VK_ACCEPT, getKeyText(VK_ACCEPT)) - val Modechange = Value(VK_MODECHANGE, getKeyText(VK_MODECHANGE)) - val Kana = Value(VK_KANA, getKeyText(VK_KANA)) - val Kanji = Value(VK_KANJI, getKeyText(VK_KANJI)) - val Alphanumeric = Value(VK_ALPHANUMERIC, getKeyText(VK_ALPHANUMERIC)) - val Katakana = Value(VK_KATAKANA, getKeyText(VK_KATAKANA)) - val Hiragana = Value(VK_HIRAGANA, getKeyText(VK_HIRAGANA)) - val FullWidth = Value(VK_FULL_WIDTH, getKeyText(VK_FULL_WIDTH)) - val HalfWidth = Value(VK_HALF_WIDTH, getKeyText(VK_HALF_WIDTH)) - val RomanCharacters = Value(VK_ROMAN_CHARACTERS, getKeyText(VK_ROMAN_CHARACTERS)) - val AllCandidates = Value(VK_ALL_CANDIDATES, getKeyText(VK_ALL_CANDIDATES)) - val PreviousCandidate = Value(VK_PREVIOUS_CANDIDATE, getKeyText(VK_PREVIOUS_CANDIDATE)) - val CodeInput = Value(VK_CODE_INPUT, getKeyText(VK_CODE_INPUT)) - val JapaneseKatakana = Value(VK_JAPANESE_KATAKANA, getKeyText(VK_JAPANESE_KATAKANA)) - val JapaneseHiragana = Value(VK_JAPANESE_HIRAGANA, getKeyText(VK_JAPANESE_HIRAGANA)) - val JapaneseRoman = Value(VK_JAPANESE_ROMAN, getKeyText(VK_JAPANESE_ROMAN)) - val KanaLock = Value(VK_KANA_LOCK, getKeyText(VK_KANA_LOCK)) - val InputMethodOnOff = Value(VK_INPUT_METHOD_ON_OFF, getKeyText(VK_INPUT_METHOD_ON_OFF)) - val Cut = Value(VK_CUT, getKeyText(VK_CUT)) - val Copy = Value(VK_COPY, getKeyText(VK_COPY)) - val Paste = Value(VK_PASTE, getKeyText(VK_PASTE)) - val Undo = Value(VK_UNDO, getKeyText(VK_UNDO)) - val Again = Value(VK_AGAIN, getKeyText(VK_AGAIN)) - val Find = Value(VK_FIND, getKeyText(VK_FIND)) - val Props = Value(VK_PROPS, getKeyText(VK_PROPS)) - val Stop = Value(VK_STOP, getKeyText(VK_STOP)) - val Compose = Value(VK_COMPOSE, getKeyText(VK_COMPOSE)) - val Begin = Value(VK_BEGIN, getKeyText(VK_BEGIN)) - val Undefined = Value(VK_UNDEFINED, getKeyText(VK_UNDEFINED)) + val Pause : KV = Value(VK_PAUSE , t(VK_PAUSE)) + val CapsLock : KV = Value(VK_CAPS_LOCK , t(VK_CAPS_LOCK)) + val Escape : KV = Value(VK_ESCAPE , t(VK_ESCAPE)) + val Space : KV = Value(VK_SPACE , t(VK_SPACE)) + val PageUp : KV = Value(VK_PAGE_UP , t(VK_PAGE_UP)) + val PageDown : KV = Value(VK_PAGE_DOWN , t(VK_PAGE_DOWN)) + val End : KV = Value(VK_END , t(VK_END)) + val Home : KV = Value(VK_HOME , t(VK_HOME)) + val Left : KV = Value(VK_LEFT , t(VK_LEFT)) + val Up : KV = Value(VK_UP , t(VK_UP)) + val Right : KV = Value(VK_RIGHT , t(VK_RIGHT)) + val Down : KV = Value(VK_DOWN , t(VK_DOWN)) + val Comma : KV = Value(VK_COMMA , t(VK_COMMA)) + val Minus : KV = Value(VK_MINUS , t(VK_MINUS)) + val Period : KV = Value(VK_PERIOD , t(VK_PERIOD)) + val Slash : KV = Value(VK_SLASH , t(VK_SLASH)) + val Key0 : KV = Value(VK_0 , t(VK_0)) + val Key1 : KV = Value(VK_1 , t(VK_1)) + val Key2 : KV = Value(VK_2 , t(VK_2)) + val Key3 : KV = Value(VK_3 , t(VK_3)) + val Key4 : KV = Value(VK_4 , t(VK_4)) + val Key5 : KV = Value(VK_5 , t(VK_5)) + val Key6 : KV = Value(VK_6 , t(VK_6)) + val Key7 : KV = Value(VK_7 , t(VK_7)) + val Key8 : KV = Value(VK_8 , t(VK_8)) + val Key9 : KV = Value(VK_9 , t(VK_9)) + val Semicolon : KV = Value(VK_SEMICOLON , t(VK_SEMICOLON)) + val Equals : KV = Value(VK_EQUALS , t(VK_EQUALS)) + val A : KV = Value(VK_A , t(VK_A)) + val B : KV = Value(VK_B , t(VK_B)) + val C : KV = Value(VK_C , t(VK_C)) + val D : KV = Value(VK_D , t(VK_D)) + val E : KV = Value(VK_E , t(VK_E)) + val F : KV = Value(VK_F , t(VK_F)) + val G : KV = Value(VK_G , t(VK_G)) + val H : KV = Value(VK_H , t(VK_H)) + val I : KV = Value(VK_I , t(VK_I)) + val J : KV = Value(VK_J , t(VK_J)) + val K : KV = Value(VK_K , t(VK_K)) + val L : KV = Value(VK_L , t(VK_L)) + val M : KV = Value(VK_M , t(VK_M)) + val N : KV = Value(VK_N , t(VK_N)) + val O : KV = Value(VK_O , t(VK_O)) + val P : KV = Value(VK_P , t(VK_P)) + val Q : KV = Value(VK_Q , t(VK_Q)) + val R : KV = Value(VK_R , t(VK_R)) + val S : KV = Value(VK_S , t(VK_S)) + val T : KV = Value(VK_T , t(VK_T)) + val U : KV = Value(VK_U , t(VK_U)) + val V : KV = Value(VK_V , t(VK_V)) + val W : KV = Value(VK_W , t(VK_W)) + val X : KV = Value(VK_X , t(VK_X)) + val Y : KV = Value(VK_Y , t(VK_Y)) + val Z : KV = Value(VK_Z , t(VK_Z)) + val OpenBracket : KV = Value(VK_OPEN_BRACKET , t(VK_OPEN_BRACKET)) + val BackSlash : KV = Value(VK_BACK_SLASH , t(VK_BACK_SLASH)) + val CloseBracket : KV = Value(VK_CLOSE_BRACKET , t(VK_CLOSE_BRACKET)) + val Numpad0 : KV = Value(VK_NUMPAD0 , t(VK_NUMPAD0)) + val Numpad1 : KV = Value(VK_NUMPAD1 , t(VK_NUMPAD1)) + val Numpad2 : KV = Value(VK_NUMPAD2 , t(VK_NUMPAD2)) + val Numpad3 : KV = Value(VK_NUMPAD3 , t(VK_NUMPAD3)) + val Numpad4 : KV = Value(VK_NUMPAD4 , t(VK_NUMPAD4)) + val Numpad5 : KV = Value(VK_NUMPAD5 , t(VK_NUMPAD5)) + val Numpad6 : KV = Value(VK_NUMPAD6 , t(VK_NUMPAD6)) + val Numpad7 : KV = Value(VK_NUMPAD7 , t(VK_NUMPAD7)) + val Numpad8 : KV = Value(VK_NUMPAD8 , t(VK_NUMPAD8)) + val Numpad9 : KV = Value(VK_NUMPAD9 , t(VK_NUMPAD9)) + val Multiply : KV = Value(VK_MULTIPLY , t(VK_MULTIPLY)) + val Add : KV = Value(VK_ADD , t(VK_ADD)) + val Separator : KV = Value(VK_SEPARATOR , t(VK_SEPARATOR)) + val Subtract : KV = Value(VK_SUBTRACT , t(VK_SUBTRACT)) + val Decimal : KV = Value(VK_DECIMAL , t(VK_DECIMAL)) + val Divide : KV = Value(VK_DIVIDE , t(VK_DIVIDE)) + val Delete : KV = Value(VK_DELETE , t(VK_DELETE)) + val NumLock : KV = Value(VK_NUM_LOCK , t(VK_NUM_LOCK)) + val ScrollLock : KV = Value(VK_SCROLL_LOCK , t(VK_SCROLL_LOCK)) + val F1 : KV = Value(VK_F1 , t(VK_F1)) + val F2 : KV = Value(VK_F2 , t(VK_F2)) + val F3 : KV = Value(VK_F3 , t(VK_F3)) + val F4 : KV = Value(VK_F4 , t(VK_F4)) + val F5 : KV = Value(VK_F5 , t(VK_F5)) + val F6 : KV = Value(VK_F6 , t(VK_F6)) + val F7 : KV = Value(VK_F7 , t(VK_F7)) + val F8 : KV = Value(VK_F8 , t(VK_F8)) + val F9 : KV = Value(VK_F9 , t(VK_F9)) + val F10 : KV = Value(VK_F10 , t(VK_F10)) + val F11 : KV = Value(VK_F11 , t(VK_F11)) + val F12 : KV = Value(VK_F12 , t(VK_F12)) + val F13 : KV = Value(VK_F13 , t(VK_F13)) + val F14 : KV = Value(VK_F14 , t(VK_F14)) + val F15 : KV = Value(VK_F15 , t(VK_F15)) + val F16 : KV = Value(VK_F16 , t(VK_F16)) + val F17 : KV = Value(VK_F17 , t(VK_F17)) + val F18 : KV = Value(VK_F18 , t(VK_F18)) + val F19 : KV = Value(VK_F19 , t(VK_F19)) + val F20 : KV = Value(VK_F20 , t(VK_F20)) + val F21 : KV = Value(VK_F21 , t(VK_F21)) + val F22 : KV = Value(VK_F22 , t(VK_F22)) + val F23 : KV = Value(VK_F23 , t(VK_F23)) + val F24 : KV = Value(VK_F24 , t(VK_F24)) + val Printscreen : KV = Value(VK_PRINTSCREEN , t(VK_PRINTSCREEN)) + val Insert : KV = Value(VK_INSERT , t(VK_INSERT)) + val Help : KV = Value(VK_HELP , t(VK_HELP)) + val BackQuote : KV = Value(VK_BACK_QUOTE , t(VK_BACK_QUOTE)) + val Quote : KV = Value(VK_QUOTE , t(VK_QUOTE)) + val KpUp : KV = Value(VK_KP_UP , t(VK_KP_UP)) + val KpDown : KV = Value(VK_KP_DOWN , t(VK_KP_DOWN)) + val KpLeft : KV = Value(VK_KP_LEFT , t(VK_KP_LEFT)) + val KpRight : KV = Value(VK_KP_RIGHT , t(VK_KP_RIGHT)) + val DeadGrave : KV = Value(VK_DEAD_GRAVE , t(VK_DEAD_GRAVE)) + val DeadAcute : KV = Value(VK_DEAD_ACUTE , t(VK_DEAD_ACUTE)) + val DeadCircumflex : KV = Value(VK_DEAD_CIRCUMFLEX , t(VK_DEAD_CIRCUMFLEX)) + val DeadTilde : KV = Value(VK_DEAD_TILDE , t(VK_DEAD_TILDE)) + val DeadMacron : KV = Value(VK_DEAD_MACRON , t(VK_DEAD_MACRON)) + val DeadBreve : KV = Value(VK_DEAD_BREVE , t(VK_DEAD_BREVE)) + val DeadAbovedot : KV = Value(VK_DEAD_ABOVEDOT , t(VK_DEAD_ABOVEDOT)) + val DeadDiaeresis : KV = Value(VK_DEAD_DIAERESIS , t(VK_DEAD_DIAERESIS)) + val DeadAbovering : KV = Value(VK_DEAD_ABOVERING , t(VK_DEAD_ABOVERING)) + val DeadDoubleacute : KV = Value(VK_DEAD_DOUBLEACUTE , t(VK_DEAD_DOUBLEACUTE)) + val DeadCaron : KV = Value(VK_DEAD_CARON , t(VK_DEAD_CARON)) + val DeadCedilla : KV = Value(VK_DEAD_CEDILLA , t(VK_DEAD_CEDILLA)) + val DeadOgonek : KV = Value(VK_DEAD_OGONEK , t(VK_DEAD_OGONEK)) + val DeadIota : KV = Value(VK_DEAD_IOTA , t(VK_DEAD_IOTA)) + val DeadVoicedSound : KV = Value(VK_DEAD_VOICED_SOUND , t(VK_DEAD_VOICED_SOUND)) + val DeadSemivoicedSound : KV = Value(VK_DEAD_SEMIVOICED_SOUND , t(VK_DEAD_SEMIVOICED_SOUND)) + val Ampersand : KV = Value(VK_AMPERSAND , t(VK_AMPERSAND)) + val Asterisk : KV = Value(VK_ASTERISK , t(VK_ASTERISK)) + val Quotedbl : KV = Value(VK_QUOTEDBL , t(VK_QUOTEDBL)) + val Less : KV = Value(VK_LESS , t(VK_LESS)) + val Greater : KV = Value(VK_GREATER , t(VK_GREATER)) + val Braceleft : KV = Value(VK_BRACELEFT , t(VK_BRACELEFT)) + val Braceright : KV = Value(VK_BRACERIGHT , t(VK_BRACERIGHT)) + val At : KV = Value(VK_AT , t(VK_AT)) + val Colon : KV = Value(VK_COLON , t(VK_COLON)) + val Circumflex : KV = Value(VK_CIRCUMFLEX , t(VK_CIRCUMFLEX)) + val Dollar : KV = Value(VK_DOLLAR , t(VK_DOLLAR)) + val EuroSign : KV = Value(VK_EURO_SIGN , t(VK_EURO_SIGN)) + val ExclamationMark : KV = Value(VK_EXCLAMATION_MARK , t(VK_EXCLAMATION_MARK)) + val InvertedExclamationMark : KV = Value(VK_INVERTED_EXCLAMATION_MARK , t(VK_INVERTED_EXCLAMATION_MARK)) + val LeftParenthesis : KV = Value(VK_LEFT_PARENTHESIS , t(VK_LEFT_PARENTHESIS)) + val NumberSign : KV = Value(VK_NUMBER_SIGN , t(VK_NUMBER_SIGN)) + val Plus : KV = Value(VK_PLUS , t(VK_PLUS)) + val RightParenthesis : KV = Value(VK_RIGHT_PARENTHESIS , t(VK_RIGHT_PARENTHESIS)) + val Underscore : KV = Value(VK_UNDERSCORE , t(VK_UNDERSCORE)) + val Windows : KV = Value(VK_WINDOWS , t(VK_WINDOWS)) + val ContextMenu : KV = Value(VK_CONTEXT_MENU , t(VK_CONTEXT_MENU)) + val Final : KV = Value(VK_FINAL , t(VK_FINAL)) + val Convert : KV = Value(VK_CONVERT , t(VK_CONVERT)) + val Nonconvert : KV = Value(VK_NONCONVERT , t(VK_NONCONVERT)) + val Accept : KV = Value(VK_ACCEPT , t(VK_ACCEPT)) + val Modechange : KV = Value(VK_MODECHANGE , t(VK_MODECHANGE)) + val Kana : KV = Value(VK_KANA , t(VK_KANA)) + val Kanji : KV = Value(VK_KANJI , t(VK_KANJI)) + val Alphanumeric : KV = Value(VK_ALPHANUMERIC , t(VK_ALPHANUMERIC)) + val Katakana : KV = Value(VK_KATAKANA , t(VK_KATAKANA)) + val Hiragana : KV = Value(VK_HIRAGANA , t(VK_HIRAGANA)) + val FullWidth : KV = Value(VK_FULL_WIDTH , t(VK_FULL_WIDTH)) + val HalfWidth : KV = Value(VK_HALF_WIDTH , t(VK_HALF_WIDTH)) + val RomanCharacters : KV = Value(VK_ROMAN_CHARACTERS , t(VK_ROMAN_CHARACTERS)) + val AllCandidates : KV = Value(VK_ALL_CANDIDATES , t(VK_ALL_CANDIDATES)) + val PreviousCandidate : KV = Value(VK_PREVIOUS_CANDIDATE , t(VK_PREVIOUS_CANDIDATE)) + val CodeInput : KV = Value(VK_CODE_INPUT , t(VK_CODE_INPUT)) + val JapaneseKatakana : KV = Value(VK_JAPANESE_KATAKANA , t(VK_JAPANESE_KATAKANA)) + val JapaneseHiragana : KV = Value(VK_JAPANESE_HIRAGANA , t(VK_JAPANESE_HIRAGANA)) + val JapaneseRoman : KV = Value(VK_JAPANESE_ROMAN , t(VK_JAPANESE_ROMAN)) + val KanaLock : KV = Value(VK_KANA_LOCK , t(VK_KANA_LOCK)) + val InputMethodOnOff : KV = Value(VK_INPUT_METHOD_ON_OFF , t(VK_INPUT_METHOD_ON_OFF)) + val Cut : KV = Value(VK_CUT , t(VK_CUT)) + val Copy : KV = Value(VK_COPY , t(VK_COPY)) + val Paste : KV = Value(VK_PASTE , t(VK_PASTE)) + val Undo : KV = Value(VK_UNDO , t(VK_UNDO)) + val Again : KV = Value(VK_AGAIN , t(VK_AGAIN)) + val Find : KV = Value(VK_FIND , t(VK_FIND)) + val Props : KV = Value(VK_PROPS , t(VK_PROPS)) + val Stop : KV = Value(VK_STOP , t(VK_STOP)) + val Compose : KV = Value(VK_COMPOSE , t(VK_COMPOSE)) + val Begin : KV = Value(VK_BEGIN , t(VK_BEGIN)) + val Undefined : KV = Value(VK_UNDEFINED , t(VK_UNDEFINED)) } diff --git a/src/main/scala/scala/swing/event/KeyEvent.scala b/src/main/scala/scala/swing/event/KeyEvent.scala index 1345c774..bc5413bb 100644 --- a/src/main/scala/scala/swing/event/KeyEvent.scala +++ b/src/main/scala/scala/swing/event/KeyEvent.scala @@ -17,7 +17,7 @@ sealed abstract class KeyEvent extends InputEvent { def peer: java.awt.event.KeyEvent } -case class KeyTyped(val source: Component, char: Char, val modifiers: Key.Modifiers, +case class KeyTyped(source: Component, char: Char, modifiers: Key.Modifiers, location: Key.Location.Value) (val peer: java.awt.event.KeyEvent) extends KeyEvent { def this(e: java.awt.event.KeyEvent) = @@ -26,16 +26,16 @@ case class KeyTyped(val source: Component, char: Char, val modifiers: Key.Modifi Key.Location(e.getKeyLocation))(e) } -case class KeyPressed(val source: Component, key: Key.Value, val modifiers: Key.Modifiers, - location: Key.Location.Value) +case class KeyPressed(source: Component, key: Key.Value, modifiers: Key.Modifiers, + location: Key.Location.Value) (val peer: java.awt.event.KeyEvent) extends KeyEvent { def this(e: java.awt.event.KeyEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), Key(e.getKeyCode), e.getModifiersEx, Key.Location(e.getKeyLocation))(e) } -case class KeyReleased(val source: Component, key: Key.Value, val modifiers: Key.Modifiers, - location: Key.Location.Value) +case class KeyReleased(source: Component, key: Key.Value, modifiers: Key.Modifiers, + location: Key.Location.Value) (val peer: java.awt.event.KeyEvent) extends KeyEvent { def this(e: java.awt.event.KeyEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), diff --git a/src/main/scala/scala/swing/event/MouseEvent.scala b/src/main/scala/scala/swing/event/MouseEvent.scala index 8629d71d..c92d26a1 100644 --- a/src/main/scala/scala/swing/event/MouseEvent.scala +++ b/src/main/scala/scala/swing/event/MouseEvent.scala @@ -23,22 +23,22 @@ sealed abstract class MouseButtonEvent extends MouseEvent { def clicks: Int def triggersPopup: Boolean } -case class MouseClicked(val source: Component, point: Point, val modifiers: Key.Modifiers, - clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) +case class MouseClicked(source: Component, point: Point, modifiers: Key.Modifiers, + clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) extends MouseButtonEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) } -case class MousePressed(val source: Component, point: Point, val modifiers: Key.Modifiers, +case class MousePressed(source: Component, point: Point, modifiers: Key.Modifiers, clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) extends MouseButtonEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) } -case class MouseReleased(val source: Component, point: Point, val modifiers: Key.Modifiers, - clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) +case class MouseReleased(source: Component, point: Point, modifiers: Key.Modifiers, + clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) extends MouseButtonEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), @@ -46,32 +46,32 @@ case class MouseReleased(val source: Component, point: Point, val modifiers: Key } sealed abstract class MouseMotionEvent extends MouseEvent -case class MouseMoved(val source: Component, point: Point, val modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) +case class MouseMoved(source: Component, point: Point, modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) extends MouseMotionEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx)(e) } -case class MouseDragged(val source: Component, point: Point, val modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) +case class MouseDragged(source: Component, point: Point, modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) extends MouseMotionEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx)(e) } -case class MouseEntered(val source: Component, point: Point, val modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) +case class MouseEntered(source: Component, point: Point, modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) extends MouseMotionEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx)(e) } -case class MouseExited(val source: Component, point: Point, val modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) +case class MouseExited(source: Component, point: Point, modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) extends MouseMotionEvent { def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), e.getPoint, e.getModifiersEx)(e) } -case class MouseWheelMoved(val source: Component, point: Point, val modifiers: Key.Modifiers, rotation: Int)(val peer: java.awt.event.MouseEvent) +case class MouseWheelMoved(source: Component, point: Point, modifiers: Key.Modifiers, rotation: Int)(val peer: java.awt.event.MouseEvent) extends MouseEvent { def this(e: java.awt.event.MouseWheelEvent) = this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), diff --git a/src/main/scala/scala/swing/package.scala b/src/main/scala/scala/swing/package.scala index 45497665..cbfd0ded 100644 --- a/src/main/scala/scala/swing/package.scala +++ b/src/main/scala/scala/swing/package.scala @@ -4,15 +4,15 @@ package scala * Useful imports that don't have wrappers. */ package object swing { - type Point = java.awt.Point - type Dimension = java.awt.Dimension - type Rectangle = java.awt.Rectangle - type Insets = java.awt.Insets + type Point = java.awt.Point + type Dimension = java.awt.Dimension + type Rectangle = java.awt.Rectangle + type Insets = java.awt.Insets type Graphics2D = java.awt.Graphics2D - type Color = java.awt.Color - type Image = java.awt.Image - type Font = java.awt.Font + type Color = java.awt.Color + type Image = java.awt.Image + type Font = java.awt.Font implicit lazy val reflectiveCalls = scala.language.reflectiveCalls implicit lazy val implicitConversions = scala.language.implicitConversions diff --git a/uitest/src/main/scala/scala/swing/uitest/SI7597.scala b/uitest/src/main/scala/scala/swing/uitest/SI7597.scala index c37e25a7..7377f66d 100644 --- a/uitest/src/main/scala/scala/swing/uitest/SI7597.scala +++ b/uitest/src/main/scala/scala/swing/uitest/SI7597.scala @@ -24,7 +24,7 @@ object SI7597 extends SimpleSwingApplication { title = "SI7597 showXXXDialog tests" size = new Dimension(900, 200) - lazy val dialog = aDialog + lazy val dialog: Dialog = aDialog val fileChooserDialog = new FileChooser val colorChooser = new ColorChooser @@ -37,7 +37,7 @@ object SI7597 extends SimpleSwingApplication { ) } - def fileChooserStyles(rowTitle : String, parent : => PeerContainer) = new FlowPanel { + def fileChooserStyles(rowTitle : String, parent : => PeerContainer): FlowPanel = new FlowPanel { contents ++= Seq(new Label(s"Parent is $rowTitle")) contents ++= Seq(