# HG changeset patch # User Tomas Zeman # Date 1334903182 -7200 # Node ID 90a44ee46732118c36a41a520ec8ee230e894f39 # Parent 9d1ee662c7366121f6d22410d8c57ea03318c903 Select field diff -r 9d1ee662c736 -r 90a44ee46732 src/main/scala/fis/base/model/SelectField.scala --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/scala/fis/base/model/SelectField.scala Fri Apr 20 08:26:22 2012 +0200 @@ -0,0 +1,41 @@ +/* + * Copyright 2012 Tomas Zeman + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package fis.base.model + +import net.liftweb.common._ +import net.liftweb.http._ +import net.liftweb.record._ +import net.liftweb.util.Helpers._ +import net.tz.lift.model._ +import scala.xml.Elem + +trait SelectField[T] extends TypedField[T] { + + protected def buildDisplayList: Seq[(Box[T], String)] + + protected def elem: Elem = SHtml.selectObj[Box[T]]( + optional_?.box((Empty, emptyLabel)).toSeq ++ buildDisplayList, + Full(valueBox), setBox(_)) % ("tabindex" -> tabIndex.toString) + + protected def emptyLabel: String = "------" + + override def toForm = uniqueFieldId match { + case Full(id) => Full(elem % ("id" -> id)) + case _ => Full(elem) + } +} + +// vim: set ts=2 sw=2 et: