Package com.google.gdt.eclipse.designer.smartgwt.model.widgets

Source Code of com.google.gdt.eclipse.designer.smartgwt.model.widgets.TabSetTest

/*******************************************************************************
* Copyright 2011 Google Inc. All Rights Reserved.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* 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.gdt.eclipse.designer.smartgwt.model.widgets;

import com.google.gdt.eclipse.designer.model.widgets.panels.RootPanelInfo;
import com.google.gdt.eclipse.designer.smart.model.CanvasInfo;
import com.google.gdt.eclipse.designer.smart.model.TabInfo;
import com.google.gdt.eclipse.designer.smart.model.TabSetInfo;
import com.google.gdt.eclipse.designer.smartgwt.model.SmartGwtModelTest;

import org.eclipse.wb.draw2d.geometry.Insets;
import org.eclipse.wb.draw2d.geometry.Rectangle;
import org.eclipse.wb.internal.core.model.generic.FlowContainer;
import org.eclipse.wb.internal.core.model.generic.FlowContainerFactory;
import org.eclipse.wb.internal.core.model.generic.SimpleContainer;
import org.eclipse.wb.internal.core.model.generic.SimpleContainerFactory;
import org.eclipse.wb.internal.core.model.nonvisual.AbstractArrayObjectInfo;

import static org.fest.assertions.Assertions.assertThat;

import java.util.List;

/**
* Test for {@link TabSetInfo}.
*
* @author sablin_aa
*/
public class TabSetTest extends SmartGwtModelTest {
  ////////////////////////////////////////////////////////////////////////////
  //
  // Exit zone :-) XXX
  //
  ////////////////////////////////////////////////////////////////////////////
  public void _test_exit() throws Exception {
    System.exit(0);
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Tests
  //
  ////////////////////////////////////////////////////////////////////////////
  public void test_parse() throws Exception {
    TabSetInfo tabSet =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    TabSet tabSet = new TabSet();",
            "    tabSet.addTab(new Tab('Tab_1'));",
            "    tabSet.setTabs(new Tab('Tab_2'));",
            "    tabSet.draw();",
            "  }",
            "}"});
    tabSet.refresh();
    check_parse(tabSet);
  }

  public void test_parse_this() throws Exception {
    TabSetInfo tabSet =
        parseJavaInfo(new String[]{
            "public class Test extends TabSet {",
            "  public Test() {",
            "    addTab(new Tab('Tab_1'));",
            "    setTabs(new Tab('Tab_2'));",
            "  }",
            "}"});
    //tabSet.getTopBoundsSupport().setSize(270, 240);
    tabSet.refresh();
    check_parse(tabSet);
  }

  private void check_parse(TabSetInfo tabSet) {
    assertThat(tabSet.getWidgets()).isEmpty();
    assertThat(tabSet.getTabs().size()).isEqualTo(2);
    // check bounds
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    Rectangle tabSetBounds = tabSet.getModelBounds();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(insets.left, barThickness + insets.right, tabSetBounds.width
            - insets.getWidth(), tabSetBounds.height - barThickness - insets.getHeight()));
    //
    AbstractArrayObjectInfo objectTabsInfo =
        tabSet.getChildren(AbstractArrayObjectInfo.class).get(0);
    assertThat(objectTabsInfo.getItems().size()).isEqualTo(1);
    assertThat(objectTabsInfo.getChildren(TabInfo.class).size()).isEqualTo(0);
  }

  /**
   * {@link TabInfo} added before {@link TabSetInfo} association.
   */
  public void test_tab_ADD() throws Exception {
    dontUseSharedGWTState();
    RootPanelInfo rootPanel =
        parseJavaInfo(
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    RootPanel rootPanel = RootPanel.get();",
            "    TabSet tabSet = new TabSet();",
            "    rootPanel.add(tabSet, 10, 10);",
            "    tabSet.setSize('250px', '200px');",
            "  }",
            "}");
    rootPanel.refresh();
    //
    TabSetInfo tabSet = (TabSetInfo) rootPanel.getChildrenWidgets().get(0);
    assertThat(tabSet.getChildrenJava()).isEmpty();
    // create new Tab
    TabInfo newTab = createJavaInfo("com.smartgwt.client.widgets.tab.Tab");
    {
      FlowContainer flowContainer = new FlowContainerFactory(tabSet, false).get().get(0);
      assertTrue(flowContainer.validateComponent(newTab));
      flowContainer.command_CREATE(newTab, null);
    }
    assertEditor(
        "public class Test implements EntryPoint {",
        "  public void onModuleLoad() {",
        "    RootPanel rootPanel = RootPanel.get();",
        "    TabSet tabSet = new TabSet();",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      tabSet.addTab(tab);",
        "    }",
        "    rootPanel.add(tabSet, 10, 10);",
        "    tabSet.setSize('250px', '200px');",
        "  }",
        "}");
    // place Button on Tab
    CanvasInfo newButton = createJavaInfo("com.smartgwt.client.widgets.Button");
    {
      SimpleContainer simpleContainer = new SimpleContainerFactory(newTab, false).get().get(1);
      assertTrue(simpleContainer.validateComponent(newButton));
      simpleContainer.command_CREATE(newButton);
    }
    assertEditor(
        "public class Test implements EntryPoint {",
        "  public void onModuleLoad() {",
        "    RootPanel rootPanel = RootPanel.get();",
        "    TabSet tabSet = new TabSet();",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      {",
        "        Button button = new Button('New Button');",
        "        tab.setPane(button);",
        "      }",
        "      tabSet.addTab(tab);",
        "    }",
        "    rootPanel.add(tabSet, 10, 10);",
        "    tabSet.setSize('250px', '200px');",
        "  }",
        "}");
  }

  /**
   * Add {@link CanvasInfo}.
   */
  public void test_canvas_ADD() throws Exception {
    dontUseSharedGWTState();
    RootPanelInfo rootPanel =
        parseJavaInfo(
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    RootPanel rootPanel = RootPanel.get();",
            "    TabSet tabSet = new TabSet();",
            "    rootPanel.add(tabSet, 10, 10);",
            "    tabSet.setSize('250px', '200px');",
            "  }",
            "}");
    rootPanel.refresh();
    //
    TabSetInfo tabSet = (TabSetInfo) rootPanel.getChildrenWidgets().get(0);
    assertThat(tabSet.getChildrenJava()).isEmpty();
    // create new Tab
    CanvasInfo newCanvas = createJavaInfo("com.smartgwt.client.widgets.Button");
    {
      FlowContainer flowContainer = new FlowContainerFactory(tabSet, false).get().get(1);
      assertTrue(flowContainer.validateComponent(newCanvas));
      flowContainer.command_CREATE(newCanvas, null);
    }
    assertEditor(
        "public class Test implements EntryPoint {",
        "  public void onModuleLoad() {",
        "    RootPanel rootPanel = RootPanel.get();",
        "    TabSet tabSet = new TabSet();",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      {",
        "        Button button = new Button('New Button');",
        "        tab.setPane(button);",
        "      }",
        "      tabSet.addTab(tab);",
        "    }",
        "    rootPanel.add(tabSet, 10, 10);",
        "    tabSet.setSize('250px', '200px');",
        "  }",
        "}");
  }

  public void test_canvas_MOVE() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    {",
            "      Tab tab = new Tab('newTab');",
            "      Button button = new Button('New Button');",
            "      tab.setPane(button);",
            "      tabSet.addTab(tab);",
            "    }",
            "    canvas.addChild(tabSet);",
            "    com.smartgwt.client.widgets.Label label = new com.smartgwt.client.widgets.Label();",
            "    canvas.addChild(label);",
            "    canvas.draw();",
            "  }",
            "}");
    canvas.refresh();
    List<CanvasInfo> children = canvas.getChildren(CanvasInfo.class);
    //
    TabSetInfo tabSet = (TabSetInfo) children.get(0);
    assertThat(tabSet.getTabs().size()).isEqualTo(1);
    CanvasInfo label = children.get(1);
    // add label to TabSet
    tabSet.command_MOVE(label, null);
    assertEditor(
        "public class Test implements EntryPoint {",
        "  public void onModuleLoad() {",
        "    Canvas canvas = new Canvas();",
        "    TabSet tabSet = new TabSet();",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      Button button = new Button('New Button');",
        "      tab.setPane(button);",
        "      tabSet.addTab(tab);",
        "    }",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      com.smartgwt.client.widgets.Label label = new com.smartgwt.client.widgets.Label();",
        "      tab.setPane(label);",
        "      tabSet.addTab(tab);",
        "    }",
        "    canvas.addChild(tabSet);",
        "    canvas.draw();",
        "  }",
        "}");
    // move label to first position
    tabSet.command_MOVE(label, tabSet.getTabs().get(0));
    assertEditor(
        "public class Test implements EntryPoint {",
        "  public void onModuleLoad() {",
        "    Canvas canvas = new Canvas();",
        "    TabSet tabSet = new TabSet();",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      com.smartgwt.client.widgets.Label label = new com.smartgwt.client.widgets.Label();",
        "      tab.setPane(label);",
        "      tabSet.addTab(tab);",
        "    }",
        "    {",
        "      Tab tab = new Tab('newTab');",
        "      Button button = new Button('New Button');",
        "      tab.setPane(button);",
        "      tabSet.addTab(tab);",
        "    }",
        "    canvas.addChild(tabSet);",
        "    canvas.draw();",
        "  }",
        "}");
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Test {@link Tab_Info} bounds.
  //
  ////////////////////////////////////////////////////////////////////////////
  public void test_tabBounds_top() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    tabSet.addTab(new Tab('Tab_1'));",
            "    canvas.addChild(tabSet);",
            "    tabSet.moveTo(30, 20);",
            "    canvas.draw();",
            "  }",
            "}"});
    canvas.refresh();
    //
    TabSetInfo tabSet = canvas.getChildren(TabSetInfo.class).get(0);
    // check bounds
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    Rectangle tabSetBounds = tabSet.getModelBounds();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(insets.left, barThickness + insets.right, tabSetBounds.width
            - insets.getWidth(), tabSetBounds.height - barThickness - insets.getHeight()));
  }

  public void test_tabBounds_left() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    tabSet.setTabBarPosition(Side.LEFT);",
            "    tabSet.addTab(new Tab('Tab_1'));",
            "    canvas.addChild(tabSet);",
            "    tabSet.moveTo(30, 20);",
            "    canvas.draw();",
            "  }",
            "}"});
    canvas.refresh();
    //
    TabSetInfo tabSet = canvas.getChildren(TabSetInfo.class).get(0);
    // check bounds
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    Rectangle tabSetBounds = tabSet.getModelBounds();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(barThickness + insets.left, insets.right, tabSetBounds.width
            - barThickness
            - insets.getWidth(), tabSetBounds.height - insets.getHeight()));
  }

  public void test_tabBounds_bottom() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    tabSet.setTabBarPosition(Side.BOTTOM);",
            "    tabSet.addTab(new Tab('Tab_1'));",
            "    canvas.addChild(tabSet);",
            "    tabSet.moveTo(30, 20);",
            "    canvas.draw();",
            "  }",
            "}"});
    canvas.refresh();
    //
    TabSetInfo tabSet = canvas.getChildren(TabSetInfo.class).get(0);
    // check bounds
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    Rectangle tabSetBounds = tabSet.getModelBounds();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(insets.left,
            insets.right,
            tabSetBounds.width - insets.getWidth(),
            tabSetBounds.height - barThickness - insets.getHeight()));
  }

  public void test_tabBounds_right() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    tabSet.setTabBarPosition(Side.RIGHT);",
            "    tabSet.addTab(new Tab('Tab_1'));",
            "    canvas.addChild(tabSet);",
            "    tabSet.moveTo(30, 20);",
            "    canvas.draw();",
            "  }",
            "}"});
    canvas.refresh();
    //
    TabSetInfo tabSet = canvas.getChildren(TabSetInfo.class).get(0);
    // check bounds
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    Rectangle tabSetBounds = tabSet.getModelBounds();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(insets.left, insets.right, tabSetBounds.width
            - barThickness
            - insets.getWidth(), tabSetBounds.height - insets.getHeight()));
  }

  public void test_tabBounds_button() throws Exception {
    CanvasInfo canvas =
        parseJavaInfo(new String[]{
            "public class Test implements EntryPoint {",
            "  public void onModuleLoad() {",
            "    Canvas canvas = new Canvas();",
            "    TabSet tabSet = new TabSet();",
            "    Tab tab = new Tab('Tab');",
            "    tab.setPane(new Button('Button'));",
            "    tabSet.addTab(tab);",
            "    canvas.addChild(tabSet);",
            "    tabSet.moveTo(30, 20);",
            "    canvas.draw();",
            "  }",
            "}"});
    canvas.refresh();
    //
    TabSetInfo tabSet = canvas.getChildren(TabSetInfo.class).get(0);
    // check bounds
    Rectangle tabSetBounds = tabSet.getModelBounds();
    Insets insets = tabSet.getTabInsets();
    int barThickness = tabSet.getTabBarThickness();
    TabInfo selectedTab = tabSet.getSelectedTab();
    assertThat(selectedTab.getModelBounds()).isEqualTo(
        new Rectangle(insets.left, barThickness + insets.right, tabSetBounds.width
            - insets.getWidth(),//Canvas_Test.BUTTON_WIDTH,
            tabSetBounds.height - barThickness - insets.getHeight()//Canvas_Test.BUTTON_HEIGHT
        ));
  }
}
TOP

Related Classes of com.google.gdt.eclipse.designer.smartgwt.model.widgets.TabSetTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.