From 8b89af611a67daa6cc063bbd70460e1de4891abd Mon Sep 17 00:00:00 2001 From: Hanns Holger Rutz Date: Fri, 1 Dec 2017 14:41:58 +0100 Subject: [PATCH] clean up: remove procedure syntax, add return types - deprecated procedure syntax has been removed - where return types are unambiguous, they have been explicitly added - where structural types are returned or overridden methods return more explicit return type, return type is not annotated (checking these would be work for another pull request), to avoid possible problems with binary compatibility - demo and example files have not been touched, yet --- build.sbt | 2 +- .../scala/scala/swing/AbstractButton.scala | 50 +-- src/main/scala/scala/swing/Action.scala | 40 +- src/main/scala/scala/swing/Adjustable.scala | 36 +- src/main/scala/scala/swing/Alignment.scala | 17 +- src/main/scala/scala/swing/Applet.scala | 16 +- src/main/scala/scala/swing/BorderPanel.scala | 33 +- .../scala/scala/swing/BufferWrapper.scala | 19 +- src/main/scala/scala/swing/Button.scala | 2 +- src/main/scala/scala/swing/ButtonGroup.scala | 10 +- src/main/scala/scala/swing/CheckBox.scala | 2 +- src/main/scala/scala/swing/ColorChooser.scala | 9 +- src/main/scala/scala/swing/ComboBox.scala | 85 ++-- src/main/scala/scala/swing/Component.scala | 171 ++++---- src/main/scala/scala/swing/Container.scala | 18 +- src/main/scala/scala/swing/EditorPane.scala | 4 +- src/main/scala/scala/swing/FileChooser.scala | 44 +- src/main/scala/scala/swing/FlowPanel.scala | 15 +- .../scala/swing/FormattedTextField.scala | 13 +- src/main/scala/scala/swing/GridBagPanel.scala | 70 +-- src/main/scala/scala/swing/GridPanel.scala | 8 +- src/main/scala/scala/swing/Label.scala | 22 +- .../scala/scala/swing/LayoutContainer.scala | 10 +- src/main/scala/scala/swing/ListView.scala | 86 ++-- src/main/scala/scala/swing/MainFrame.scala | 2 +- src/main/scala/scala/swing/Orientable.scala | 4 +- src/main/scala/scala/swing/Orientation.scala | 9 +- src/main/scala/scala/swing/Oriented.scala | 2 +- .../scala/scala/swing/PasswordField.scala | 4 +- src/main/scala/scala/swing/PopupMenu.scala | 13 +- src/main/scala/scala/swing/ProgressBar.scala | 14 +- src/main/scala/scala/swing/Publisher.scala | 80 ++-- src/main/scala/scala/swing/Reactions.scala | 17 +- src/main/scala/scala/swing/Reactor.scala | 4 +- src/main/scala/scala/swing/RichWindow.scala | 63 +-- src/main/scala/scala/swing/RootPanel.scala | 2 +- src/main/scala/scala/swing/ScrollBar.scala | 7 +- src/main/scala/scala/swing/ScrollPane.scala | 37 +- src/main/scala/scala/swing/Scrollable.scala | 2 +- .../scala/swing/SequentialContainer.scala | 6 +- .../scala/swing/SimpleSwingApplication.scala | 2 +- src/main/scala/scala/swing/Slider.scala | 27 +- src/main/scala/scala/swing/SplitPane.scala | 24 +- src/main/scala/scala/swing/Swing.scala | 66 +-- .../scala/scala/swing/SwingApplication.scala | 8 +- src/main/scala/scala/swing/TabbedPane.scala | 50 +-- src/main/scala/scala/swing/Table.scala | 123 +++--- src/main/scala/scala/swing/TextArea.scala | 14 +- .../scala/scala/swing/TextComponent.scala | 40 +- src/main/scala/scala/swing/TextField.scala | 28 +- src/main/scala/scala/swing/TextPane.scala | 2 +- src/main/scala/scala/swing/UIElement.scala | 75 ++-- src/main/scala/scala/swing/Window.scala | 42 +- .../scala/scala/swing/event/InputEvent.scala | 2 +- src/main/scala/scala/swing/event/Key.scala | 406 +++++++++--------- .../scala/scala/swing/event/KeyEvent.scala | 10 +- .../scala/scala/swing/event/MouseEvent.scala | 20 +- src/main/scala/scala/swing/package.scala | 14 +- .../scala/scala/swing/uitest/SI7597.scala | 4 +- 59 files changed, 1006 insertions(+), 999 deletions(-) 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(