2015-12-01 3 views
1

Я могу установить ширину левой стороны HorizontalSplitPanel в пикселях, как показано ниже.Vaadin HorizontalSplitPanel: установите ширину правой стороны в пикселях

splitter.setSplitPosition(40, Sizeable.Unit.PIXELS); 

С вышеуказанным, поскольку разделенное положение составляет 40 пикселей, левая сторона сплиттера составляет 40 пикселей по ширине. Существует определенный случай, когда я хочу указать ширину правой части разделителя в пикселях.

Но я не могу установить правую сторону сверху, потому что нет возможности найти полную ширину сплиттера. Если бы я мог получить полную ширину, я мог бы сделать это, как показано ниже.

splitter.setSplitPosition(splitter.totalWidth() - 40, Sizeable.Unit.PIXELS); 

Итак, есть ли способ определить ширину правой стороны в пикселях?

ответ

1

Вы можете «перевернуть» разделенное положение. См setSplitPosition(float pos, Sizeable.Unit unit, boolean reverse):

reverse - если установлено истинное положение раскол сплиттер измеряется второй областью еще она измеряется в первой области

т.д .:

// run with `spring run vaadin.groovy` 
@Grapes([ 
@Grab('org.vaadin.spring:spring-boot-vaadin:0.0.5.RELEASE'), 
@Grab('com.vaadin:vaadin-server:7.5.9'), 
@Grab('com.vaadin:vaadin-client-compiled:7.5.9'), 
@Grab('com.vaadin:vaadin-themes:7.5.9'), 
]) 
import org.vaadin.spring.annotation.VaadinUI 
import com.vaadin.server.VaadinRequest 
import com.vaadin.ui.* 
import com.vaadin.annotations.* 
import com.vaadin.server.Sizeable 

@VaadinUI 
@Theme("valo") 
class MyUI extends UI { 
     protected void init(VaadinRequest request) { 
       setContent(new HorizontalSplitPanel(new Label("A"), new Label("B")).with{ 
         setSplitPosition(40, Sizeable.Unit.PIXELS, true /*!*/) 
         it 
       }) 
     } 
} 
Смежные вопросы