alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Scala example source code file (FileChooser.scala)

This example Scala source code file (FileChooser.scala) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Scala tags/keywords

boolean, boolean, component, component, enumeration, error, file, file, filechooser, filechooser, filefilter, gui, io, jfilechooser, seq, string, string, swing

The Scala FileChooser.scala source code

/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2007-2011, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */



package scala.swing

import java.io.File
import javax.swing._
import javax.swing.filechooser._

object FileChooser {
  /**
   * The result of a file dialog. The precise meaning of the <code>Approve
   * result depends on the specific dialog type. Could be "save" or "open" for 
   * example.
   */
  object Result extends Enumeration {
    val Cancel = Value(JFileChooser.CANCEL_OPTION)
    val Approve = Value(JFileChooser.APPROVE_OPTION)
    val Error = Value(JFileChooser.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)
  }
}

/**
 * Used to open file dialogs.
 *
 * @see javax.swing.JFileChooser
 */
class FileChooser(dir: File) {
  import FileChooser._
  lazy val peer: JFileChooser = new JFileChooser(dir)
  
  def this() = this(null)
  
  import Swing._
  def showOpenDialog(over: Component): Result.Value = Result(peer.showOpenDialog(nullPeer(over)))
  def showSaveDialog(over: Component): Result.Value = Result(peer.showSaveDialog(nullPeer(over)))
  def showDialog(over: Component, approveText: String): Result.Value = Result(peer.showDialog(nullPeer(over), approveText))
  
  def controlButtonsAreShown: Boolean = peer.getControlButtonsAreShown
  def controlButtonsAreShown_=(b: Boolean) { peer.setControlButtonsAreShown(b) }
  
  def title: String = peer.getDialogTitle
  def title_=(t: String) { peer.setDialogTitle(t) }
  
  def accessory: Component = UIElement.cachedWrapper[Component](peer.getAccessory)
  def accessory_=(c: Component) { peer.setAccessory(c.peer) }
  
  def fileHidingEnabled: Boolean = peer.isFileHidingEnabled
  def fileHidingEnabled_=(b: Boolean) { peer.setFileHidingEnabled(b) }
  def fileSelectionMode: SelectionMode.Value = SelectionMode(peer.getFileSelectionMode)
  def fileSelectionMode_=(s: SelectionMode.Value) { peer.setFileSelectionMode(s.id) }
  def fileFilter: FileFilter = peer.getFileFilter
  def fileFilter_=(f: FileFilter) { peer.setFileFilter(f) }
    
  def selectedFile: File = peer.getSelectedFile
  def selectedFile_=(file: File) { peer.setSelectedFile(file) }
  def selectedFiles: Seq[File] = peer.getSelectedFiles
  def selectedFiles_=(files: File*) { peer.setSelectedFiles(files.toArray) }
  
  def multiSelectionEnabled: Boolean = peer.isMultiSelectionEnabled  
  def multiSelectionEnabled_=(b: Boolean) { 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 acceptAllFileFilter = peer.getAcceptAllFileFilter
  
  /*peer.addPropertyChangeListener(new java.beans.PropertyChangeListener {
    def propertyChange(e: java.beans.PropertyChangeEvent) {
      import JFileChooser._
      e.getPropertyName match {
        case APPROVE_BUTTON_TEXT_CHANGED_PROPERTY =>
        case ACCESSORY_CHANGED_PROPERTY =>
        case APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY =>
        case APPROVE_BUTTON_TEXT_CHANGED_PROPERTY =>
        case APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY =>
        case CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY =>
        case CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY =>
        case DIALOG_TITLE_CHANGED_PROPERTY =>
        case DIALOG_TYPE_CHANGED_PROPERTY =>
        case DIRECTORY_CHANGED_PROPERTY =>
        case FILE_FILTER_CHANGED_PROPERTY =>
        case FILE_HIDING_CHANGED_PROPERTY =>
        case FILE_SELECTION_MODE_CHANGED_PROPERTY =>
        case FILE_SYSTEM_VIEW_CHANGED_PROPERTY =>
        case FILE_VIEW_CHANGED_PROPERTY =>
        case MULTI_SELECTION_ENABLED_CHANGED_PROPERTY =>
        case SELECTED_FILE_CHANGED_PROPERTY =>
        case SELECTED_FILES_CHANGED_PROPERTY =>
        case _ => 
      }
    }
  })*/
}

Other Scala examples (source code examples)

Here is a short list of links related to this Scala FileChooser.scala source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.