blob: ae1cc1ca13bec745143a2447167c2176bbba0a14 [file] [log] [blame]
/*
* Copyright 2008 Google Inc.
*
* 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 com.google.gwt.museum.client.defaultmuseum;
import com.google.gwt.museum.client.common.AbstractIssue;
import com.google.gwt.user.client.ui.Frame;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.VerticalSplitPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* If a {@link VerticalSplitPanel} contains a {@link Frame}, then the splitter
* will stop responding when the user drags it over the {@link Frame}. If the
* user releases the mouse over the frame, the splitter will continue to move
* when it emerges froo the {@link Frame}.
*/
public class Issue1772 extends AbstractIssue {
@Override
public Widget createIssue() {
// Create a heavy grid for top of the split panel
Grid topWidget = new Grid(10, 10);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
topWidget.setHTML(i, j, i + ":" + j);
}
}
// Create a frame for the bottom of the split panel
Frame bottomWidget = new Frame("http://www.google.com");
bottomWidget.setSize("100%", "100%");
// Create the split panel
VerticalSplitPanel splitPanel = new VerticalSplitPanel();
splitPanel.getElement().getStyle().setProperty("marginTop", "100px");
splitPanel.getElement().getStyle().setProperty("marginLeft", "200px");
splitPanel.getElement().getStyle().setProperty("border", "3px solid black");
splitPanel.setPixelSize(500, 500);
splitPanel.setTopWidget(topWidget);
splitPanel.setBottomWidget(bottomWidget);
return splitPanel;
}
@Override
public String getInstructions() {
return "Drag the splitter into the bottom half of the split panel very "
+ "quickly and release the mouse when it is no longer over the "
+ "splitter. The splitter should not continue to move after the mouse "
+ "button is released.";
}
@Override
public String getSummary() {
return "SplitPanel continues to drag after mouse is released";
}
@Override
public boolean hasCSS() {
return false;
}
}