summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Maier <ingo.maier@epfl.ch>2008-08-14 10:40:59 +0000
committerIngo Maier <ingo.maier@epfl.ch>2008-08-14 10:40:59 +0000
commit53bcf783da0541f4e2dbd4f1543c06ebb780df12 (patch)
tree6b245c27b8161e31805fb78543f813134a1a81db
parent0737e96229e710d81b29e1eb6e6daa449ed1eea2 (diff)
downloadscala-53bcf783da0541f4e2dbd4f1543c06ebb780df12.tar.gz
scala-53bcf783da0541f4e2dbd4f1543c06ebb780df12.tar.bz2
scala-53bcf783da0541f4e2dbd4f1543c06ebb780df12.zip
changed model for value changes again
-rw-r--r--src/swing/scala/swing/ListView.scala2
-rw-r--r--src/swing/scala/swing/Slider.scala9
-rw-r--r--src/swing/scala/swing/TextComponent.scala9
-rw-r--r--src/swing/scala/swing/TextField.scala4
-rw-r--r--src/swing/scala/swing/event/EditDone.scala3
-rw-r--r--src/swing/scala/swing/event/ValueChanged.scala2
-rw-r--r--src/swing/scala/swing/test/CelsiusConverter.scala5
-rw-r--r--src/swing/scala/swing/test/CelsiusConverter2.scala4
-rw-r--r--src/swing/scala/swing/test/UIDemo.scala6
9 files changed, 26 insertions, 18 deletions
diff --git a/src/swing/scala/swing/ListView.scala b/src/swing/scala/swing/ListView.scala
index 0460074dd9..6d9a6354bf 100644
--- a/src/swing/scala/swing/ListView.scala
+++ b/src/swing/scala/swing/ListView.scala
@@ -166,6 +166,8 @@ class ListView[A] extends Component {
publish(ListSelectionChanged(ListView.this, e.getFirstIndex to e.getLastIndex, e.getValueIsAdjusting))
}
})
+
+ def adjusting = peer.getSelectionModel.getValueIsAdjusting
}
def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getCellRenderer)
diff --git a/src/swing/scala/swing/Slider.scala b/src/swing/scala/swing/Slider.scala
index 348fdc0c4e..d03704f482 100644
--- a/src/swing/scala/swing/Slider.scala
+++ b/src/swing/scala/swing/Slider.scala
@@ -1,9 +1,12 @@
package scala.swing
import event._
-import Swing._
/**
+ *
+ * Fires a ValueChanged event whenever the slider's value changes and
+ * when the knob is released.
+ *
* @see javax.swing.JSlider
*/
class Slider extends Component with Orientable with Publisher {
@@ -33,6 +36,8 @@ class Slider extends Component with Orientable with Publisher {
def majorTickSpacing: Int = peer.getMajorTickSpacing
def majorTickSpacing_=(v: Int) { peer.setMajorTickSpacing(v) }
+ def adjusting = peer.getValueIsAdjusting
+
def labels: scala.collection.Map[Int, Label] =
new scala.collection.jcl.MapWrapper[Int, Label] { def underlying = peer.getLabelTable.asInstanceOf[java.util.Hashtable[Int, Label]] }
def labels_=(l: scala.collection.Map[Int, Label]) {
@@ -43,7 +48,7 @@ class Slider extends Component with Orientable with Publisher {
peer.addChangeListener(new javax.swing.event.ChangeListener {
def stateChanged(e: javax.swing.event.ChangeEvent) {
- publish(ValueChanged(Slider.this)(peer.getValueIsAdjusting))
+ publish(ValueChanged(Slider.this))
}
})
} \ No newline at end of file
diff --git a/src/swing/scala/swing/TextComponent.scala b/src/swing/scala/swing/TextComponent.scala
index 712c524978..3be31809d7 100644
--- a/src/swing/scala/swing/TextComponent.scala
+++ b/src/swing/scala/swing/TextComponent.scala
@@ -56,9 +56,8 @@ class TextComponent extends Component with Publisher {
def selectAll() { peer.selectAll() }
peer.getDocument.addDocumentListener(new DocumentListener {
- def changedUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)(true)) }
- def insertUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)(true)) }
- def removeUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)(true)) }
+ def changedUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
+ def insertUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
+ def removeUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
})
-}
-
+} \ No newline at end of file
diff --git a/src/swing/scala/swing/TextField.scala b/src/swing/scala/swing/TextField.scala
index d32aa8fa4d..3565f64b3f 100644
--- a/src/swing/scala/swing/TextField.scala
+++ b/src/swing/scala/swing/TextField.scala
@@ -29,11 +29,11 @@ class TextField(text0: String, columns0: Int) extends TextComponent with TextCom
def columns_=(n: Int) = peer.setColumns(n)
peer.addActionListener(Swing.ActionListener { e =>
- publish(ValueChanged(TextField.this)(false))
+ publish(EditDone(TextField.this))
})
peer.addFocusListener(new FocusAdapter {
- override def focusLost(e: java.awt.event.FocusEvent) { ValueChanged(TextField.this)(true) }
+ override def focusLost(e: java.awt.event.FocusEvent) { EditDone(TextField.this) }
})
def verifier: String => Boolean = s => peer.getInputVerifier.verify(peer)
diff --git a/src/swing/scala/swing/event/EditDone.scala b/src/swing/scala/swing/event/EditDone.scala
new file mode 100644
index 0000000000..b802a1a981
--- /dev/null
+++ b/src/swing/scala/swing/event/EditDone.scala
@@ -0,0 +1,3 @@
+package scala.swing.event
+
+case class EditDone(override val source: TextField) extends ValueChanged(source)
diff --git a/src/swing/scala/swing/event/ValueChanged.scala b/src/swing/scala/swing/event/ValueChanged.scala
index 991a6b6570..1097a52da2 100644
--- a/src/swing/scala/swing/event/ValueChanged.scala
+++ b/src/swing/scala/swing/event/ValueChanged.scala
@@ -1,3 +1,3 @@
package scala.swing.event
-case class ValueChanged(override val source: Component)(val adjusting: Boolean) extends ComponentEvent with AdjustingEvent
+case class ValueChanged(override val source: Component) extends ComponentEvent
diff --git a/src/swing/scala/swing/test/CelsiusConverter.scala b/src/swing/scala/swing/test/CelsiusConverter.scala
index a4c1921606..fc5c1e4553 100644
--- a/src/swing/scala/swing/test/CelsiusConverter.scala
+++ b/src/swing/scala/swing/test/CelsiusConverter.scala
@@ -29,15 +29,14 @@ object CelsiusConverter extends SimpleGUIApplication {
}
reactions += {
- case ButtonClicked(_) => convert()
- case v @ ValueChanged(_) if v.committed => convert()
+ case ButtonClicked(_) | EditDone(_) => convert()
}
}
contents = new GridPanel(2,2) {
contents.append(tempCelsius, celsiusLabel, convertButton, fahrenheitLabel)
border = Swing.EmptyBorder(10, 10, 10, 10)
}
- defaultButton = Some(convertButton)
+ //defaultButton = Some(convertButton)
}
}
diff --git a/src/swing/scala/swing/test/CelsiusConverter2.scala b/src/swing/scala/swing/test/CelsiusConverter2.scala
index 0b382ba96b..a7a6f427ee 100644
--- a/src/swing/scala/swing/test/CelsiusConverter2.scala
+++ b/src/swing/scala/swing/test/CelsiusConverter2.scala
@@ -13,11 +13,11 @@ object CelsiusConverter2 extends SimpleGUIApplication {
listenTo(Fahrenheit, Celsius)
reactions += {
- case v @ ValueChanged(Fahrenheit) if v.committed =>
+ case EditDone(Fahrenheit) =>
val f = Integer.parseInt(Fahrenheit.text)
val c = (f - 32) * 5 / 9
Celsius.text = c.toString
- case v @ ValueChanged(Celsius) if v.committed =>
+ case EditDone(Celsius) =>
val c = Integer.parseInt(Celsius.text)
val f = c * 9 / 5 + 32
Fahrenheit.text = f.toString
diff --git a/src/swing/scala/swing/test/UIDemo.scala b/src/swing/scala/swing/test/UIDemo.scala
index 8c94b94975..716bdd6694 100644
--- a/src/swing/scala/swing/test/UIDemo.scala
+++ b/src/swing/scala/swing/test/UIDemo.scala
@@ -85,7 +85,7 @@ object UIDemo extends SimpleGUIApplication {
contents += label
listenTo(field)
reactions += {
- case v @ ValueChanged(`field`) if v.committed => label.text = field.password.mkString
+ case EditDone(`field`) => label.text = field.password.mkString
}
}
@@ -116,8 +116,8 @@ object UIDemo extends SimpleGUIApplication {
listenTo(tabs.selection)
listenTo(list.selection)
reactions += {
- case v @ ValueChanged(`slider`) =>
- if(v.committed || reactLive) tabs.selection.index = slider.value
+ case ValueChanged(`slider`) =>
+ if(!slider.adjusting || reactLive) tabs.selection.index = slider.value
case SelectionChanged(`tabs`) =>
slider.value = tabs.selection.index
list.selection.selectIndices(tabs.selection.index)