| 

.NET C# Java Javascript Exception

Swingbuilder bind

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Swingbuilder bind

koeberle - 01.10.2010 13:59
Ich habe ein kleine Programm gebaut, wo der Nutzer einen Ordner auswählen kann und dann wird der Inhalt des Ordners verarbeitet.
swing = new SwingBuilder()

fileChooser = swing.fileChooser(dialogTitle:"Ordner Wählen",
                                 id:"folderOpen", fileSelectionMode : JFileChooser.DIRECTORIES_ONLY,
                                  selectedFile: new File('/path/home')
) {}

class MyModel {
   @Bindable String text = "Bitte Ordner wählen"
}

def model = new MyModel()
swing.edt {
  frame(title: "Test", size: [200, 200], locationRelativeTo: null, show: true) {
    gridLayout(cols: 1, rows: 2)
    messageLabel = label(text: bind( source: model, sourceProperty: 'text' ))
  }
  fileChooser.showOpenDialog()
  def dir = fileChooser.selectedFile
  dir.eachFile{model.text = file.name}
}
Das läuft soweit auch. Ich würde dem Nutzer gerne noch mitteilen was gerade passiert. Aber 'model.text = file.name' wird ignorriert.
Vielleicht kann mir ja eine(r) von euch verraten was ich hier falsch mache.

Christian


Re: Swingbuilder bind

Wicki - 01.10.2010 16:19
Hallo,

ich würde das etwas vereinfachter so lösen:
import groovy.swing.*
import javax.swing.JFileChooser
//import groovy.beans.Bindable

swing = new SwingBuilder()

fileChooser = swing.fileChooser(dialogTitle:"Ordner Wählen",
                                 id:"folderOpen", fileSelectionMode : JFileChooser.DIRECTORIES_ONLY,
                                  selectedFile: new File('.')
) {}

/*
class MyModel {
   @Bindable String text = "Bitte Ordner wählen"
}

def model = new MyModel()
*/
swing.edt {
  frame(title: "Test", size: [500, 100], locationRelativeTo: null, show: true) {
    gridLayout(cols: 1, rows: 2)
//    messageLabel = label(text: bind( source: model, sourceProperty: 'text' ))
    label(id:'messageLabel')
  }
  fileChooser.showOpenDialog()
  def dir = fileChooser.selectedFile
//  dir.eachFile{model.text = file.name}
  dir.eachFile{swing.messageLabel.text = fileChooser.selectedFile.name}
}

Gruß Wicki


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Swingbuilder bind" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.