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

Source Code of com.google.gdt.eclipse.designer.gxt.model.widgets.MenuGefTest

/*******************************************************************************
* 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.gxt.model.widgets;

import com.google.gdt.eclipse.designer.gxt.model.GxtGefTest;
import com.google.gdt.eclipse.designer.gxt.model.widgets.menu.MenuBarInfo;
import com.google.gdt.eclipse.designer.gxt.model.widgets.menu.MenuBarItemInfo;
import com.google.gdt.eclipse.designer.gxt.model.widgets.menu.MenuInfo;
import com.google.gdt.eclipse.designer.gxt.model.widgets.menu.MenuItemInfo;

import org.eclipse.wb.core.model.JavaInfo;

/**
* Test for {@link MenuInfo} and related in GEF.
*
* @author scheglov_ke
*/
public class MenuGefTest extends GxtGefTest {
  ////////////////////////////////////////////////////////////////////////////
  //
  // Exit zone :-) XXX
  //
  ////////////////////////////////////////////////////////////////////////////
  public void _test_exit() throws Exception {
    System.exit(0);
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Tests
  //
  ////////////////////////////////////////////////////////////////////////////
  /**
   * <code>MenuBarItem</code> can not be dropped on anything except <code>MenuBar</code>.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.asp?46201
   */
  public void test_MenuBarItem_CREATE() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "// filler filler filler filler filler",
            "public class Test extends HorizontalPanel {",
            "  public Test() {",
            "  }",
            "}");
    // load MenuBarItem
    loadCreationTool("com.extjs.gxt.ui.client.widget.menu.MenuBarItem");
    // can not drop on "canvas"
    {
      canvas.moveTo(container, 10, 10);
      canvas.assertCommandNull();
    }
    // can not drop on "tree"
    {
      tree.moveOn(container);
      tree.assertCommandNull();
    }
  }

  /**
   * Test for dropping new <code>MenuBarItem</code> on <code>MenuBar</code>.
   */
  public void test_MenuBar_CREATE_item() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    {",
            "      MenuBar bar = new MenuBar();",
            "      add(bar);",
            "    }",
            "  }",
            "}");
    MenuBarInfo bar = (MenuBarInfo) container.getWidgets().get(0);
    // drop MenuBarItem
    loadCreationTool("com.extjs.gxt.ui.client.widget.menu.MenuBarItem");
    canvas.moveTo(bar, 10, 10);
    canvas.click();
    assertEditor(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      {",
        "        MenuBarItem menuBarItem = new MenuBarItem('New MenuBarItem', new Menu());",
        "        bar.add(menuBarItem);",
        "      }",
        "      add(bar);",
        "    }",
        "  }",
        "}");
  }

  /**
   * Test for dropping new <code>MenuItem</code> on <code>Menu</code>.
   */
  public void test_Menu_CREATE_item_onCanvas() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    {",
            "      MenuBar bar = new MenuBar();",
            "      {",
            "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', new Menu());",
            "        bar.add(menuBarItem);",
            "      }",
            "      add(bar);",
            "    }",
            "  }",
            "}");
    MenuBarInfo bar = (MenuBarInfo) container.getWidgets().get(0);
    MenuBarItemInfo barItem = bar.getItems().get(0);
    MenuInfo menu = barItem.getSubMenu();
    // drop MenuItem
    JavaInfo newItem = loadCreationTool("com.extjs.gxt.ui.client.widget.menu.MenuItem");
    // "menu" not open
    canvas.assertNullEditPart(menu);
    // open "menu"
    canvas.target(barItem).in(0.5, 0.5).move();
    canvas.assertNotNullEditPart(menu);
    // drop into "menu"
    canvas.moveTo(menu, 10, 10);
    canvas.click();
    assertEditor(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      {",
        "        Menu menu = new Menu();",
        "        {",
        "          MenuItem menuItem = new MenuItem('New MenuItem');",
        "          menu.add(menuItem);",
        "        }",
        "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', menu);",
        "        bar.add(menuBarItem);",
        "      }",
        "      add(bar);",
        "    }",
        "  }",
        "}");
    // "newItem" should be selected and "menu" still open
    canvas.assertNotNullEditPart(menu);
    canvas.assertNotNullEditPart(newItem);
    canvas.assertPrimarySelected(newItem);
  }

  /**
   * Test for dropping new <code>MenuItem</code> on <code>Menu</code>.
   */
  public void test_Menu_CREATE_item_inTree() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    {",
            "      MenuBar bar = new MenuBar();",
            "      {",
            "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', new Menu());",
            "        bar.add(menuBarItem);",
            "      }",
            "      add(bar);",
            "    }",
            "  }",
            "}");
    MenuBarInfo bar = (MenuBarInfo) container.getWidgets().get(0);
    MenuBarItemInfo barItem = bar.getItems().get(0);
    MenuInfo menu = barItem.getSubMenu();
    // drop MenuItem
    JavaInfo newItem = loadCreationTool("com.extjs.gxt.ui.client.widget.menu.MenuItem");
    m_viewerTree.expandAll();
    tree.moveOn(menu);
    tree.assertFeedback_on(menu);
    tree.click();
    assertEditor(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      {",
        "        Menu menu = new Menu();",
        "        {",
        "          MenuItem menuItem = new MenuItem('New MenuItem');",
        "          menu.add(menuItem);",
        "        }",
        "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', menu);",
        "        bar.add(menuBarItem);",
        "      }",
        "      add(bar);",
        "    }",
        "  }",
        "}");
    // "newItem" should be selected and "menu" still open
    canvas.assertNotNullEditPart(menu);
    canvas.assertNotNullEditPart(newItem);
    canvas.assertPrimarySelected(newItem);
  }

  /**
   * We should be able to move <code>MenuBar</code> on container.
   */
  public void test_MOVEonAbsoluteLayout_MenuBar() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    setLayout(new AbsoluteLayout());",
            "    {",
            "      MenuBar bar = new MenuBar();",
            "      add(bar);",
            "    }",
            "  }",
            "}");
    MenuBarInfo bar = getJavaInfoByName("bar");
    //
    canvas.beginDrag(bar).dragTo(container, 100, 50).endDrag();
    assertEditor(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    setLayout(new AbsoluteLayout());",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      add(bar, new AbsoluteData(100, 50));",
        "    }",
        "  }",
        "}");
  }

  /**
   * Inner <code>Menu</code> is <code>Component</code>, however we should not move it.
   */
  public void test_MOVEonAbsoluteLayout_innerMenu() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    {",
            "      MenuBar bar = new MenuBar();",
            "      {",
            "        MenuBarItem item = new MenuBarItem('MenuBarItem', new Menu());",
            "        bar.add(item);",
            "      }",
            "      add(bar);",
            "    }",
            "  }",
            "}");
    String source = m_lastEditor.getSource();
    MenuBarItemInfo item = getJavaInfoByName("item");
    MenuInfo menu = item.getSubMenu();
    //
    canvas.click(item);
    canvas.beginDrag(menu).dragTo(container, 100, 150).endDrag();
    // no changes
    assertEditor(source, m_lastEditor);
  }

  public void test_dropMenu_asContextMenu() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "// filler filler filler",
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "  }",
            "}");
    //
    loadCreationTool("com.extjs.gxt.ui.client.widget.menu.Menu");
    canvas.create().moveTo(container, 100, 100).click();
    assertEditor(
        "// filler filler filler",
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      Menu menu = new Menu();",
        "      setContextMenu(menu);",
        "    }",
        "  }",
        "}");
  }

  public void test_dontMoveContextMenu() throws Exception {
    ContainerInfo container =
        openLayoutContainer(
            "// filler filler filler",
            "public class Test extends LayoutContainer {",
            "  public Test() {",
            "    setLayout(new AbsoluteLayout());",
            "    {",
            "      Menu menu = new Menu();",
            "      setContextMenu(menu);",
            "    }",
            "  }",
            "}");
    MenuInfo menu = getJavaInfoByName("menu");
    //
    String source = m_lastEditor.getSource();
    canvas.beginDrag(menu).dragTo(container, 100, 100).endDrag();
    assertEditor(source, m_lastEditor);
  }

  /**
   * Test for dropping sub-<code>Menu</code> on <code>MenuItem</code>.
   */
  public void test_MenuItem_CREATE_dropSubMenu() throws Exception {
    openLayoutContainer(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      {",
        "        Menu menu = new Menu();",
        "        {",
        "          MenuItem menuItem = new MenuItem('New MenuItem');",
        "          menu.add(menuItem);",
        "        }",
        "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', menu);",
        "        bar.add(menuBarItem);",
        "      }",
        "      add(bar);",
        "    }",
        "  }",
        "}");
    MenuItemInfo menuItem = getJavaInfoByName("menuItem");
    //
    tree.select(menuItem);
    loadCreationTool("com.extjs.gxt.ui.client.widget.menu.Menu");
    canvas.moveTo(menuItem, 20, 10).click();
    assertEditor(
        "public class Test extends LayoutContainer {",
        "  public Test() {",
        "    {",
        "      MenuBar bar = new MenuBar();",
        "      {",
        "        Menu menu = new Menu();",
        "        {",
        "          MenuItem menuItem = new MenuItem('New MenuItem');",
        "          menu.add(menuItem);",
        "          {",
        "            Menu menu_1 = new Menu();",
        "            menuItem.setSubMenu(menu_1);",
        "          }",
        "        }",
        "        MenuBarItem menuBarItem = new MenuBarItem('MenuBarItem', menu);",
        "        bar.add(menuBarItem);",
        "      }",
        "      add(bar);",
        "    }",
        "  }",
        "}");
  }
}
TOP

Related Classes of com.google.gdt.eclipse.designer.gxt.model.widgets.MenuGefTest

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.