Enums in Scala with multiple constructor parameters

enums, scala

Solution

You could do this which matches how enums are used:

sealed abstract class ControlTextBase
case class ControlText(controlText: String, toolTipText: String)
object OkButton extends ControlText("OK", "Save changes and dismiss")
object CancelButton extends ControlText("Cancel", "Bail!")

Problem

I am writing my first large Scala program. In the Java equivalent, I have an enum that contains labels and tooltips for my UI controls: ``` public enum ControlText { CANCEL_BUTTON("Cancel", "Cancel the changes and dismiss the dialog"), OK_BUTTON("OK", "Save the changes and dismiss the dialog"), // ... ; private final String controlText; private final String toolTipText; ControlText(String controlText, String toolTipText) { this.controlText = controlText; this.toolTipText = toolTipText; } public String getControlText() { return controlText; } public String getToolTipText() { return toolTipText; } } ``` Never mind the wisdom of using enums for this. There are other places that I want to do similar things. How can I do this in Scala using scala.Enumeration? The Enumeration.Value class takes only one String as a parameter. Do I need to subclass it? Thanks.

Original source