From dabf2c23ef61092adb3490100442b684611e3c93 Mon Sep 17 00:00:00 2001 From: Ingo Maier Date: Wed, 5 May 2010 09:59:25 +0000 Subject: Fixed #3358. --- src/swing/scala/swing/Component.scala | 12 ++++---- src/swing/scala/swing/Container.scala | 6 ++-- src/swing/scala/swing/FileChooser.scala | 2 +- src/swing/scala/swing/ScrollPane.scala | 11 +++++--- src/swing/scala/swing/SplitPane.scala | 6 ++-- src/swing/scala/swing/TabbedPane.scala | 4 +-- src/swing/scala/swing/UIElement.scala | 7 ++--- src/swing/scala/swing/Window.scala | 2 ++ src/swing/scala/swing/event/KeyEvent.scala | 17 +++++++----- src/swing/scala/swing/event/MouseEvent.scala | 40 ++++++++++++++++----------- src/swing/scala/swing/test/LinePainting.scala | 2 +- 11 files changed, 62 insertions(+), 47 deletions(-) diff --git a/src/swing/scala/swing/Component.scala b/src/swing/scala/swing/Component.scala index 1f1a646db5..851192843d 100644 --- a/src/swing/scala/swing/Component.scala +++ b/src/swing/scala/swing/Component.scala @@ -103,12 +103,12 @@ abstract class Component extends UIElement { def tooltip: String = peer.getToolTipText def tooltip_=(t: String) = peer.setToolTipText(t) - def inputVerifier: this.type => Boolean = { a => - peer.getInputVerifier().verify(a.peer) + def inputVerifier: Component => Boolean = { a => + peer.getInputVerifier.verify(a.peer) } - def inputVerifier_=(v: this.type => Boolean) { + def inputVerifier_=(v: Component => Boolean) { peer.setInputVerifier(new javax.swing.InputVerifier { - def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper(c)) + def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper[Component](c)) }) } @@ -117,7 +117,7 @@ abstract class Component extends UIElement { } def verifyOnTraversal_=(v: (Component, Component) => Boolean) { peer.setInputVerifier(new javax.swing.InputVerifier { - def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper(c)) + def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper[Component](c)) }) }*/ @@ -221,7 +221,7 @@ abstract class Component extends UIElement { peer.addFocusListener(new java.awt.event.FocusListener { def other(e: java.awt.event.FocusEvent) = e.getOppositeComponent match { - case c: JComponent => Some(UIElement.cachedWrapper(c)) + case c: JComponent => Some(UIElement.cachedWrapper[Component](c)) case _ => None } diff --git a/src/swing/scala/swing/Container.scala b/src/swing/scala/swing/Container.scala index 67ef9986f7..82de2e92a2 100644 --- a/src/swing/scala/swing/Container.scala +++ b/src/swing/scala/swing/Container.scala @@ -30,7 +30,7 @@ object Container { override def remove(n: Int): Component = { val c = peer.getComponent(n) peer.remove(n) - UIElement.cachedWrapper(c) + UIElement.cachedWrapper[Component](c) } protected def insertAt(n: Int, c: Component) { peer.add(c.peer, n) } def +=(c: Component): this.type = { peer.add(c.peer) ; this } @@ -41,11 +41,11 @@ object Container { peer.addContainerListener(new java.awt.event.ContainerListener { def componentAdded(e: java.awt.event.ContainerEvent) { publish(ComponentAdded(Wrapper.this, - UIElement.cachedWrapper(e.getChild.asInstanceOf[javax.swing.JComponent]))) + UIElement.cachedWrapper[Component](e.getChild.asInstanceOf[javax.swing.JComponent]))) } def componentRemoved(e: java.awt.event.ContainerEvent) { publish(ComponentRemoved(Wrapper.this, - UIElement.cachedWrapper(e.getChild.asInstanceOf[javax.swing.JComponent]))) + UIElement.cachedWrapper[Component](e.getChild.asInstanceOf[javax.swing.JComponent]))) } }) } diff --git a/src/swing/scala/swing/FileChooser.scala b/src/swing/scala/swing/FileChooser.scala index e221826ba8..7e13dff7e4 100644 --- a/src/swing/scala/swing/FileChooser.scala +++ b/src/swing/scala/swing/FileChooser.scala @@ -59,7 +59,7 @@ class FileChooser(dir: File) { def title: String = peer.getDialogTitle def title_=(t: String) { peer.setDialogTitle(t) } - def accessory: Component = UIElement.cachedWrapper(peer.getAccessory) + def accessory: Component = UIElement.cachedWrapper[Component](peer.getAccessory) def accessory_=(c: Component) { peer.setAccessory(c.peer) } def fileHidingEnabled: Boolean = peer.isFileHidingEnabled diff --git a/src/swing/scala/swing/ScrollPane.scala b/src/swing/scala/swing/ScrollPane.scala index 16c4130671..41d00045e5 100644 --- a/src/swing/scala/swing/ScrollPane.scala +++ b/src/swing/scala/swing/ScrollPane.scala @@ -49,7 +49,7 @@ class ScrollPane extends Component with Container { contents = c } def contents: Seq[Component] = - List(UIElement.cachedWrapper(peer.getViewport.getView.asInstanceOf[javax.swing.JComponent])) + List(UIElement.cachedWrapper[Component](peer.getViewport.getView.asInstanceOf[javax.swing.JComponent])) /** * Sets the single child. @@ -63,15 +63,18 @@ class ScrollPane extends Component with Container { * want to let the row header be a list view with the same row height as * the viewport component. */ - def rowHeaderView: Option[Component] = Option(peer.getRowHeader.getView) map UIElement.cachedWrapper + 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 columnHeaderView: Option[Component] = Option(peer.getColumnHeader.getView) map UIElement.cachedWrapper + 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 viewportView: Option[Component] = Option(peer.getViewport.getView) map UIElement.cachedWrapper + 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) diff --git a/src/swing/scala/swing/SplitPane.scala b/src/swing/scala/swing/SplitPane.scala index bad3f32bed..fc090e2a6d 100644 --- a/src/swing/scala/swing/SplitPane.scala +++ b/src/swing/scala/swing/SplitPane.scala @@ -33,9 +33,11 @@ class SplitPane(o: Orientation.Value, left: Component, right: Component) extends peer.setRightComponent(right.peer) } - def topComponent: Component = UIElement.cachedWrapper(peer.getTopComponent.asInstanceOf[javax.swing.JComponent]) + def topComponent: Component = + UIElement.cachedWrapper[Component](peer.getTopComponent.asInstanceOf[javax.swing.JComponent]) def topComponent_=(c: Component) { peer.setTopComponent(c.peer) } - def bottomComponent: Component = UIElement.cachedWrapper(peer.getBottomComponent.asInstanceOf[javax.swing.JComponent]) + def bottomComponent: Component = + UIElement.cachedWrapper[Component](peer.getBottomComponent.asInstanceOf[javax.swing.JComponent]) def bottomComponent_=(c: Component) { peer.setBottomComponent(c.peer) } def leftComponent: Component = topComponent diff --git a/src/swing/scala/swing/TabbedPane.scala b/src/swing/scala/swing/TabbedPane.scala index ec688a0cf0..21671e9da8 100644 --- a/src/swing/scala/swing/TabbedPane.scala +++ b/src/swing/scala/swing/TabbedPane.scala @@ -99,8 +99,8 @@ class TabbedPane extends Component with Publisher { 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 apply(n: Int) = new Page(TabbedPane.this, peer.getTitleAt(n), - UIElement.cachedWrapper(peer.getComponentAt(n).asInstanceOf[javax.swing.JComponent]), - peer.getToolTipTextAt(n)) + UIElement.cachedWrapper[Component](peer.getComponentAt(n).asInstanceOf[javax.swing.JComponent]), + peer.getToolTipTextAt(n)) } def tabLayoutPolicy: Layout.Value = Layout(peer.getTabLayoutPolicy) diff --git a/src/swing/scala/swing/UIElement.scala b/src/swing/scala/swing/UIElement.scala index 0d15e12979..737833dc95 100644 --- a/src/swing/scala/swing/UIElement.scala +++ b/src/swing/scala/swing/UIElement.scala @@ -93,9 +93,6 @@ trait UIElement extends Proxy with LazyPublisher { def preferredSize = peer.getPreferredSize def preferredSize_=(x: Dimension) = peer.setPreferredSize(x) - @deprecated("Use implicit conversion from Swing object instead") - def preferredSize_=(xy: (Int, Int)) { peer.setPreferredSize(new Dimension(xy._1, xy._2)) } - def font: Font = peer.getFont def font_=(f: Font) = peer.setFont(f) @@ -103,10 +100,10 @@ trait UIElement extends Proxy with LazyPublisher { def location = peer.getLocation def bounds = peer.getBounds def size = peer.getSize + @deprecated("Explicit size assignement for UIElements is not supported anymore. " + + "Use a layout manager or subclass Window.") def size_=(dim: Dimension) = peer.setSize(dim) - @deprecated("Use implicit conversion from Swing object instead") - def size_=(xy: (Int, Int)) { peer.setSize(new Dimension(xy._1, xy._2)) } def locale = peer.getLocale def toolkit = peer.getToolkit diff --git a/src/swing/scala/swing/Window.scala b/src/swing/scala/swing/Window.scala index 4e8f687a71..dab2ad6b94 100644 --- a/src/swing/scala/swing/Window.scala +++ b/src/swing/scala/swing/Window.scala @@ -54,6 +54,8 @@ abstract class Window extends UIElement with RootPanel with Publisher { outer => def setLocationRelativeTo(c: UIElement) { peer.setLocationRelativeTo(c.peer) } def centerOnScreen() { peer.setLocationRelativeTo(null) } def location_=(p: Point) { peer.setLocation(p) } + override def size_=(size: Dimension) { peer.setSize(size) } + def bounds_=(rect: Rectangle) { peer.setBounds(rect) } def owner: Window = UIElement.cachedWrapper[Window](peer.getOwner) diff --git a/src/swing/scala/swing/event/KeyEvent.scala b/src/swing/scala/swing/event/KeyEvent.scala index ae6676cf12..4e47e43a8d 100644 --- a/src/swing/scala/swing/event/KeyEvent.scala +++ b/src/swing/scala/swing/event/KeyEvent.scala @@ -21,21 +21,24 @@ sealed abstract class KeyEvent extends InputEvent { case class KeyTyped(val source: Component, char: Char, val 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(e.getSource.asInstanceOf[JComponent]), - e.getKeyChar, e.getModifiersEx, - Key.Location(e.getKeyLocation))(e) + def this(e: java.awt.event.KeyEvent) = + this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), + e.getKeyChar, e.getModifiersEx, + Key.Location(e.getKeyLocation))(e) } case class KeyPressed(val source: Component, key: Key.Value, val 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(e.getSource.asInstanceOf[JComponent]), - Key(e.getKeyCode), e.getModifiersEx, Key.Location(e.getKeyLocation))(e) + 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) (val peer: java.awt.event.KeyEvent) extends KeyEvent { - def this(e: java.awt.event.KeyEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - Key(e.getKeyCode), e.getModifiersEx, Key.Location(e.getKeyLocation))(e) + 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) } diff --git a/src/swing/scala/swing/event/MouseEvent.scala b/src/swing/scala/swing/event/MouseEvent.scala index 554f6dfacf..ebacf2e7b4 100644 --- a/src/swing/scala/swing/event/MouseEvent.scala +++ b/src/swing/scala/swing/event/MouseEvent.scala @@ -27,46 +27,54 @@ sealed abstract class MouseButtonEvent extends MouseEvent { case class MouseClicked(val source: Component, point: Point, val 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(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) + 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, clicks: Int, triggersPopup: Boolean)(val peer: java.awt.event.MouseEvent) extends MouseButtonEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) + 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) extends MouseButtonEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) + def this(e: java.awt.event.MouseEvent) = + this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), + e.getPoint, e.getModifiersEx, e.getClickCount, e.isPopupTrigger)(e) } sealed abstract class MouseMotionEvent extends MouseEvent case class MouseMoved(val source: Component, point: Point, val modifiers: Key.Modifiers)(val peer: java.awt.event.MouseEvent) extends MouseMotionEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx)(e) + 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) extends MouseMotionEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx)(e) + 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) extends MouseMotionEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx)(e) + 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) extends MouseMotionEvent { - def this(e: java.awt.event.MouseEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx)(e) + 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) extends MouseEvent { - def this(e: java.awt.event.MouseWheelEvent) = this(UIElement.cachedWrapper(e.getSource.asInstanceOf[JComponent]), - e.getPoint, e.getModifiersEx, e.getWheelRotation)(e) + def this(e: java.awt.event.MouseWheelEvent) = + this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]), + e.getPoint, e.getModifiersEx, e.getWheelRotation)(e) } diff --git a/src/swing/scala/swing/test/LinePainting.scala b/src/swing/scala/swing/test/LinePainting.scala index 7c47647dd4..78a94dbab7 100644 --- a/src/swing/scala/swing/test/LinePainting.scala +++ b/src/swing/scala/swing/test/LinePainting.scala @@ -13,7 +13,7 @@ import java.awt.{Color, Dimension, Graphics, Graphics2D, Point, geom} object LinePainting extends SimpleSwingApplication { lazy val ui = new Panel { background = Color.white - preferredSize = ((200,200): Dimension) + preferredSize = (200,200) focusable = true listenTo(mouse.clicks, mouse.moves, keys) -- cgit v1.2.3