| /* |
| * Copyright 2009 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.examples; |
| |
| import static com.google.gwt.dom.client.Style.Unit.EM; |
| import static com.google.gwt.dom.client.Style.Unit.PCT; |
| import static com.google.gwt.dom.client.Style.Unit.PX; |
| |
| import com.google.gwt.core.client.EntryPoint; |
| import com.google.gwt.dom.client.Document; |
| import com.google.gwt.dom.client.Element; |
| import com.google.gwt.layout.client.Layout; |
| import com.google.gwt.layout.client.Layout.Layer; |
| |
| public class LayoutExample implements EntryPoint { |
| |
| public void onModuleLoad() { |
| // The following is a very simple example, which constructs a layout around |
| // a parent element, and attaches two child elements that split their |
| // parent's space vertically. It then goes on to animate from the first |
| // state to a horizontal stacking that uses EM units rather than |
| // percentages. |
| Document doc = Document.get(); |
| Element parent = doc.createDivElement(); |
| doc.getBody().appendChild(parent); |
| |
| Layout layout = new Layout(parent); |
| layout.onAttach(); |
| |
| Element topChild = doc.createDivElement(), bottomChild = doc |
| .createDivElement(); |
| Layer topLayer = layout.attachChild(topChild); |
| Layer bottomLayer = layout.attachChild(bottomChild); |
| |
| // Stack the two children vertically, meeting at 50%. |
| topLayer.setLeftRight(0, PX, 0, PX); |
| bottomLayer.setLeftRight(0, PX, 0, PX); |
| topLayer.setTopHeight(0, PCT, 50, PCT); |
| bottomLayer.setBottomHeight(0, PCT, 50, PCT); |
| layout.layout(); |
| |
| // Update the two children to stack horizontally, meeting at 10em. |
| // Also have them animate for 500ms. |
| topLayer.setTopBottom(0, PX, 0, PX); |
| bottomLayer.setTopBottom(0, PX, 0, PX); |
| topLayer.setLeftWidth(0, EM, 10, EM); |
| bottomLayer.setLeftRight(10, EM, 0, EM); |
| layout.layout(500); |
| } |
| } |