Возможно ли, что в GWT был обработчик, который обнаруживает, что ручка pf SplitLayoutPanel была нажата или нажата?GWT Handler to SplitLayoutPanel drag
Спасибо за помощь.
Возможно ли, что в GWT был обработчик, который обнаруживает, что ручка pf SplitLayoutPanel была нажата или нажата?GWT Handler to SplitLayoutPanel drag
Спасибо за помощь.
Я думаю, вы можете сделать это с помощью переопределения onResize() унаследованного метода DockLayoutPanel:
SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel(){
@Override
public void onResize() {
super.onResize();
Window.alert("resized");
}
};
Вы можете сделать это путем добавления промежуточных ResizeLayoutPanels.
MyComposite.ui.xml :
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:my.custom.package.client">
<g:SplitLayoutPanel ui:field="splitLayoutPanel">
<g:west size="250">
<g:ResizeLayoutPanel ui:field="leftMenuOuterPanel">
<my:MenuWidget ui:field="menuWidget" />
</g:ResizeLayoutPanel>
</g:west>
<g:center>
<g:ResizeLayoutPanel ui:field="centerOuterPanel">
<my:AwesomeWidget ui:field="centerWidget" />
</g:ResizeLayoutPanel>
</g:center>
</g:SplitLayoutPanel>
</ui:UiBinder>
MyComposite.java :
class MyComposite extends Composite{
// fuss with ui binder interfaces
// other fuss to declare widgets as @UiField
public MyComposite(){
initWidget(uiBinder.createAndBindUi(this));
leftMenuOuterPanel.addResizeHandler(new ResizeHandler(){
public void onResize(ResizeEvent event){
// Here do what you want
}
});
}
}
Я бы рекомендовал использовать отложенную команду делать то, что вы хотите с этим событием изменения размера, потому что срабатывает много раз при перемещении сплиттер.
Я использую это, чтобы сохранить ширину панели меню в настройках пользователя.
эти советы также разрешают некоторые проблемы, когда изменение размера выглядит очень рывким (в моем случае с компонентом SmartGWT внутри)! splendide: D – Donatello
Это событие не запускается для панели разметки. Сама панель не изменяется при перетаскивании сплиттера. –
Я играл с идеей и придумал решение, которое я опубликовал в качестве ответа. –