Skip to content

Commit 17d869f

Browse files
committed
[SI7597] FileChooser parent to be Frame/Dialog
1 parent 7d7fba8 commit 17d869f

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/main/scala/scala/swing/FileChooser.scala

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,28 @@ class FileChooser(dir: File) {
4646
def this() = this(null)
4747

4848
import Swing._
49-
def showOpenDialog(over: Component): Result.Value = Result(peer.showOpenDialog(nullPeer(over)))
50-
def showSaveDialog(over: Component): Result.Value = Result(peer.showSaveDialog(nullPeer(over)))
51-
def showDialog(over: Component, approveText: String): Result.Value = Result(peer.showDialog(nullPeer(over), approveText))
49+
50+
/**
51+
* Display a dialog box to select a file.
52+
* @param over Parent container - Component, Frame or Dialog
53+
* @return Status of how the dialog was closed.
54+
*/
55+
def showOpenDialog[T <: PeerContainer](over: T): Result.Value = Result(peer.showOpenDialog(nullPeer(over)))
56+
57+
/**
58+
* Display a dialog box to select a file.
59+
* @param over Parent container - Component, Frame or Dialog
60+
* @return Parent container - Component, Frame or Dialog
61+
*/
62+
def showSaveDialog[T <: PeerContainer](over: T): Result.Value = Result(peer.showSaveDialog(nullPeer(over)))
63+
64+
/**
65+
* Display a dialog box to select a file.
66+
* @param over Parent container - Component, Frame or Dialog
67+
* @param approveText text for the 'ok' button
68+
* @return Parent container - Component, Frame or Dialog
69+
*/
70+
def showDialog[T <: PeerContainer](over: T, approveText: String): Result.Value = Result(peer.showDialog(nullPeer(over), approveText))
5271

5372
def controlButtonsAreShown: Boolean = peer.getControlButtonsAreShown
5473
def controlButtonsAreShown_=(b: Boolean) { peer.setControlButtonsAreShown(b) }

src/main/scala/scala/swing/Swing.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ import javax.swing.{JComponent, Icon, BorderFactory, SwingUtilities}
2020
* Helpers for this package.
2121
*/
2222
object Swing {
23+
protected[swing] type PeerContainer = {def peer:java.awt.Container}
24+
2325
protected[swing] def toNoIcon(i: Icon): Icon = if(i == null) EmptyIcon else i
2426
protected[swing] def toNullIcon(i: Icon): Icon = if(i == EmptyIcon) null else i
25-
protected[swing] def nullPeer(c: Component) = if (c != null) c.peer else null
27+
protected[swing] def nullPeer(c: PeerContainer) = if (c != null) c.peer else null
2628

2729
implicit def pair2Dimension(p: (Int, Int)): Dimension = new Dimension(p._1, p._2)
2830
implicit def pair2Point(p: (Int, Int)): Point = new Point(p._1, p._2)

0 commit comments

Comments
 (0)