List of usage examples for com.google.gwt.user.client.ui SplitterBeforeResizeHandler SplitterBeforeResizeHandler
SplitterBeforeResizeHandler
From source file:org.rstudio.core.client.layout.DualWindowLayoutPanel.java
License:Open Source License
public DualWindowLayoutPanel(final EventBus eventBus, final LogicalWindow windowA, final LogicalWindow windowB, Session session, String clientStateKeyName, final WindowState topWindowDefaultState, final int defaultSplitterPos) { windowA_ = windowA;// w w w. ja v a 2s . c om windowB_ = windowB; session_ = session; setSize("100%", "100%"); layout_ = new BinarySplitLayoutPanel(new Widget[] { windowA.getNormal(), windowA.getMinimized(), windowB.getNormal(), windowB.getMinimized() }, 3); layout_.setSize("100%", "100%"); topWindowStateChangeManager_ = new WindowStateChangeManager(session); bottomWindowStateChangeManager_ = new WindowStateChangeHandler() { public void onWindowStateChange(WindowStateChangeEvent event) { WindowState topState; switch (event.getNewState()) { case NORMAL: topState = NORMAL; break; case MAXIMIZE: topState = MINIMIZE; break; case MINIMIZE: topState = MAXIMIZE; break; case HIDE: topState = EXCLUSIVE; break; case EXCLUSIVE: topState = HIDE; break; default: throw new IllegalArgumentException("Unknown WindowState " + event.getNewState()); } windowA_.onWindowStateChange(new WindowStateChangeEvent(topState)); } }; hookEvents(); new WindowLayoutStateValue(session.getSessionInfo().getClientState(), clientStateKeyName, topWindowDefaultState, defaultSplitterPos); setWidget(layout_); if (eventBus != null) { layout_.addSplitterBeforeResizeHandler(new SplitterBeforeResizeHandler() { public void onSplitterBeforeResize(SplitterBeforeResizeEvent event) { // If the splitter ends up causing a minimize operation, then // we'll need to have saved the normal height for when the // user decides to restore the panel. snapMinimizeNormalHeight_ = new NormalHeight(layout_.getSplitterBottom(), layout_.getOffsetHeight(), Window.getClientHeight()); eventBus.fireEvent(new GlassVisibilityEvent(true)); } }); layout_.addSplitterResizedHandler(new SplitterResizedHandler() { public void onSplitterResized(SplitterResizedEvent event) { WindowState topState = resizePanes(layout_.getSplitterBottom()); // we're already in normal if the splitter is being invoked if (topState != WindowState.NORMAL) { topWindowStateChangeManager_.onWindowStateChange(new WindowStateChangeEvent(topState)); } eventBus.fireEvent(new GlassVisibilityEvent(false)); } }); } }
From source file:org.rstudio.studio.client.common.NotifyingSplitLayoutPanel.java
License:Open Source License
@Inject public NotifyingSplitLayoutPanel(int splitterSize, EventBus events) { super(splitterSize); events_ = events;/*from www. j a va 2 s. c om*/ addSplitterBeforeResizeHandler(new SplitterBeforeResizeHandler() { public void onSplitterBeforeResize(SplitterBeforeResizeEvent event) { events_.fireEvent(new GlassVisibilityEvent(true)); } }); addSplitterResizedHandler(new SplitterResizedHandler() { public void onSplitterResized(SplitterResizedEvent event) { events_.fireEvent(new GlassVisibilityEvent(false)); } }); }