2013-02-13 9 views
3

Я пытаюсь сделать встроенное редактирование в Ваадине. Я думаю, что хорошим способом добиться этого является стилизация текстовых полей, чтобы они выглядели как ярлыки и переключались на стиль текстового поля при фокусировке.CSS стиль этикетки Vaadin

Можно ли нарисовать текстовое поле, чтобы он выглядел как ярлык? Как я могу это сделать, если это возможно?

+0

У вас есть пример того, что вы хотите, чтобы он выглядел? Я бы предположил, что это возможно, но «ярлык» довольно широк, если вы не говорите о HTML » ' – 2013-02-13 15:05:38

+0

Да, какой вы выглядите? – dezman

+0

У меня есть поля сетки, такие как: «имя», «фамилия», «телефон» и т. Д. И их значения, я хочу щелкнуть по тексту, например «Джон» и «Джон» должны стать редактируемыми текстовыми полями, после фокусируясь на другом, «Джон» должен быть простым текстом – akuzma

ответ

5

Вы можете переопределить стили Vaadin в своей собственной теме. Если у вас еще нет темы, создайте каталог в директории VAADIN с именем themes и создайте поддиректорию в темах по имени вашей темы, например. MyTheme.

Vaadin 6:

  1. Вызов setTheme("mytheme") в прикладном классе
  2. вызовов myTextField.setStyleName("labelstyle"); в коде
  3. Создать styles.css в новом каталоге темы.
  4. Добавьте следующее в styles.css:

styles.css:

@import "../reindeer/styles.css"; 

.v-textfield-labelstyle { 
    background: none repeat scroll 0 0 #F5F5F5; 
    border-color: #F5F5F5; 
    border-image: none; 
    border-left: 1px solid #F5F5F5; 
    border-radius: 3px 3px 3px 3px; 
    border-right: 1px solid #F5F5F5; 
    border-style: solid; 
    border-width: 1px; 
} 

Vaadin 7:

  1. Добавить @Theme("mytheme") аннотаций в классе UI
  2. Вызовите myTextField.setStyleName("labelstyle"); в своем коде
  3. Создать стили. scss в вашем новом каталоге тем.
  4. Добавьте следующие стили. СКС

styles.css:

@import "../reindeer/reindeer.scss"; 

.mytheme { 
    @include reindeer; 

    .v-textfield-labelstyle { 
     background: none repeat scroll 0 0 #F5F5F5; 
     border-color: #F5F5F5; 
     border-image: none; 
     border-left: 1px solid #F5F5F5; 
     border-radius: 3px 3px 3px 3px; 
     border-right: 1px solid #F5F5F5; 
     border-style: solid; 
     border-width: 1px; 
    } 
} 
  1. Компиляция вашу тему по телефону java -cp '../../../WEB-INF/lib/*' com.vaadin.sass.SassCompiler styles.scss styles.css в каталоге темы

Этот маленький трюк даст вам этикетки типа TextField который при фокусировке превращается в обычный TextField.

Обратите внимание, что это будет работать только при использовании темы «Оленевод» и цвета фона по умолчанию # F5F5F5. Вам придется немного подкорректировать его, если вы используете какую-либо другую тему или цвет фона отличается от оригинала.