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

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

/*******************************************************************************
* 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.GxtModelTest;
import com.google.gdt.eclipse.designer.model.widgets.WidgetInfo;
import com.google.gdt.eclipse.designer.model.widgets.panels.ComplexPanelInfo;

import org.eclipse.wb.core.model.association.Association;
import org.eclipse.wb.core.model.association.InvocationChildEllipsisAssociation;
import org.eclipse.wb.internal.core.model.creation.ConstructorCreationSupport;
import org.eclipse.wb.internal.core.model.util.ScriptUtils;

import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Statement;
import org.eclipse.swt.graphics.Image;

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

import java.util.List;

/**
* Test for <code>Grid</code>.
*
* @author scheglov_ke
*/
public class GridTest extends GxtModelTest {
  ////////////////////////////////////////////////////////////////////////////
  //
  // Exit zone :-) XXX
  //
  ////////////////////////////////////////////////////////////////////////////
  public void _test_exit() throws Exception {
    System.exit(0);
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Tests
  //
  ////////////////////////////////////////////////////////////////////////////
  public void test_parse() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
            "      add(grid);",
            "      grid.setBorders(true);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()))/ /add(grid)/ /grid.setBorders(true)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
  }

  /**
   * Search for columns only for {@link ConstructorCreationSupport}.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.php?44824
   */
  public void test_withExposed() throws Exception {
    dontUseSharedGWTState();
    setFileContentSrc(
        "test/client/MyPanel.java",
        getTestSource(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class MyPanel extends ContentPanel {",
            "  protected Grid grid;",
            "  public MyPanel() {",
            "    grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
            "    add(grid);",
            "  }",
            "}"));
    waitForAutoBuild();
    //
    WidgetInfo panel =
        parseJavaInfo(
            "// filler filler filler",
            "public class Test extends MyPanel {",
            "  public Test() {",
            "  }",
            "}");
    assertHierarchy(
        "{this: test.client.MyPanel} {this} {}",
        "  {implicit-layout: default} {implicit-layout} {}",
        "  {field: com.extjs.gxt.ui.client.widget.grid.Grid} {grid} {}");
    //
    panel.refresh();
    assertNoErrors(panel);
  }

  /**
   * If <code>Grid</code> was replaced with placeholder, we should not call its methods.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.asp?47945
   */
  public void test_whenPlaceholder() throws Exception {
    dontUseSharedGWTState();
    setFileContentSrc(
        "test/client/MyGrid.java",
        getTestSource(
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class MyGrid extends Grid {",
            "  public MyGrid() {",
            "    throw new IllegalStateException();",
            "  }",
            "}"));
    waitForAutoBuild();
    //
    parseJavaInfo(
        "// filler filler filler",
        "public class Test extends ContentPanel {",
        "  public Test() {",
        "    MyGrid grid = new MyGrid();",
        "    add(grid);",
        "  }",
        "}");
    refresh();
    WidgetInfo grid = getJavaInfoByName("grid");
    assertTrue(grid.isPlaceholder());
  }

  /**
   * If we can not evaluate <code>ColumnModel</code>, so replace it with <code>null</code>, we
   * should replace it with empty, because <code>GridView</code> does not like <code>null</code>.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.php?43315
   */
  public void test_null_ColumnModel() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(new ListStore(), null);",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), null)/ /add(grid)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
  }

  /**
   * User can create <code>ColumnModel</code> as external class, so we will not able to get its
   * <code>ColumnConfig</code> list.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.asp?48414
   */
  public void test_external_ColumnModel() throws Exception {
    dontUseSharedGWTState();
    m_waitForAutoBuild = true;
    parseJavaInfo(
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      Grid grid = new Grid(new ListStore(), new PersonColumnModel());",
        "      add(grid);",
        "    }",
        "  }",
        "}",
        "",
        "class PersonColumnModel extends ColumnModel {",
        "  public PersonColumnModel() {",
        "    super(new ArrayList<ColumnConfig>());",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new PersonColumnModel())/ /add(grid)/}");
  }

  /**
   * If we can not evaluate <code>ListStore</code>, so replace it with <code>null</code>, we should
   * replace it with empty, because <code>GridView</code> does not like <code>null</code>.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.php?44403
   */
  public void test_null_ListStore() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(null, null);",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(null, null)/ /add(grid)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
  }

  /**
   * If we can not evaluate <code>ListStore</code>, so replace it with <code>null</code>, we should
   * replace it with empty, because <code>GridView</code> does not like <code>null</code>.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.php?44403
   */
  public void test_null_ListStore_GroupingView() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(null, null);",
            "      grid.setView(new GroupingView());",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(null, null)/ /grid.setView(new GroupingView())/ /add(grid)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
  }

  public void test_CREATE() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "  }",
            "}");
    panel.refresh();
    // prepare new Grid
    WidgetInfo newGrid = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.Grid");
    // check "live image"
    {
      Image liveImage = newGrid.getImage();
      assertEquals(302, liveImage.getBounds().width);
      assertEquals(202, liveImage.getBounds().height);
    }
    // do create
    panel.command_CREATE2(newGrid, null);
    assertEditor(
        "import java.util.Collections;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
        "      add(grid);",
        "      grid.setBorders(true);",
        "    }",
        "  }",
        "}");
    panel.refresh();
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Columns: parsing
  //
  ////////////////////////////////////////////////////////////////////////////
  public void test_columns_parse_1() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig();",
            "        configs.add(column);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column} {/new ColumnConfig()/ /configs.add(column)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
    // check ColumnConfig_Info
    ColumnConfigInfo column = getJavaInfoByName("column");
    {
      ColumnConfigAssociation association = (ColumnConfigAssociation) column.getAssociation();
      assertTrue(association.canDelete());
      {
        MethodInvocation invocation = association.getInvocation();
        assertNotNull(invocation);
        assertEquals("configs.add(column)", m_lastEditor.getSource(invocation));
      }
      {
        Statement statement = association.getStatement();
        assertNotNull(statement);
        assertEquals("configs.add(column);", m_lastEditor.getSource(statement));
      }
    }
  }

  /**
   * <code>ColumnModel</code> in variable.
   */
  public void test_columns_parse_2() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig();",
            "        configs.add(column);",
            "      }",
            "      ColumnModel cm = new ColumnModel(configs);",
            "      Grid grid = new Grid(new ListStore(), cm);",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), cm)/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column} {/new ColumnConfig()/ /configs.add(column)/}");
    panel.refresh();
    assertNoErrors(panel);
  }

  public void test_columns_parse_ignoreAddNotInColumnList() throws Exception {
    parseJavaInfo(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig column = new ColumnConfig();",
        "        // ignored because not SimpleName",
        "        new ArrayList().add(column);",
        "        // ignored because not 'configs'",
        "        List justArrayList = new ArrayList();",
        "        justArrayList.add(column);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}");
  }

  /**
   * Two grids with <code>ColumnModel</code> in variable.
   */
  public void test_columns_parse_twoGrids() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column_1 = new ColumnConfig();",
            "        configs.add(column_1);",
            "      }",
            "      ColumnModel cm = new ColumnModel(configs);",
            "      Grid grid_1 = new Grid(new ListStore(), cm);",
            "      add(grid_1);",
            "    }",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column_2 = new ColumnConfig();",
            "        configs.add(column_2);",
            "      }",
            "      ColumnModel cm = new ColumnModel(configs);",
            "      Grid grid_2 = new Grid(new ListStore(), cm);",
            "      add(grid_2);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid_1)/ /add(grid_2)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid_1} {/new Grid(new ListStore(), cm)/ /add(grid_1)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column_1} {/new ColumnConfig()/ /configs.add(column_1)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid_2} {/new Grid(new ListStore(), cm)/ /add(grid_2)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column_2} {/new ColumnConfig()/ /configs.add(column_2)/}");
    panel.refresh();
    assertNoErrors(panel);
  }

  public void test_columns_parse_andRender() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig('id.1', 'First Column', 100);",
            "        configs.add(column);",
            "      }",
            "      {",
            "        ColumnConfig column = new ColumnConfig('id.2', 'Second Column', 200);",
            "        configs.add(column);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    List<?> columns =
        (List<?>) ScriptUtils.evaluate("getColumnModel().getColumns()", grid.getObject());
    assertThat(columns).hasSize(2);
    {
      Object column = columns.get(0);
      assertEquals("id.1", ScriptUtils.evaluate("getId()", column));
      assertEquals("First Column", ScriptUtils.evaluate("getHeader()", column));
      assertEquals(100, ScriptUtils.evaluate("getWidth()", column));
    }
    {
      Object column = columns.get(1);
      assertEquals("id.2", ScriptUtils.evaluate("getId()", column));
      assertEquals("Second Column", ScriptUtils.evaluate("getHeader()", column));
      assertEquals(200, ScriptUtils.evaluate("getWidth()", column));
    }
  }

  public void test_ColumnConfig_properties() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig();",
            "        configs.add(column);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    //
    ColumnConfigInfo column = getJavaInfoByName("column");
    column.setWidth(200);
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig column = new ColumnConfig();",
        "        column.setWidth(200);",
        "        configs.add(column);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
  }

  /**
   * We should not execute <code>ColumnConfig.setHidden(true)</code>, because it causes
   * {@link NullPointerException}.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.php?45078
   */
  public void test_ColumnConfig_setHidden() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig();",
            "        column.setHidden(true);",
            "        configs.add(column);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    assertNoErrors(panel);
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Columns: operations
  //
  ////////////////////////////////////////////////////////////////////////////
  public void test_columns_DELETE() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column = new ColumnConfig();",
            "        configs.add(column);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column} {/new ColumnConfig()/ /configs.add(column)/}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    //
    List<ColumnConfigInfo> columns = grid.getColumns();
    assertThat(columns).hasSize(1);
    ColumnConfigInfo column = columns.get(0);
    assertTrue(column.canDelete());
    column.delete();
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}");
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.asp?45668
   */
  public void test_columns_CREATE_nullColumnModel() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(new ListStore(), (ColumnModel) null);",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, null);
    assertEditor(
        "import java.util.Collections;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "import java.util.List;",
        "import java.util.ArrayList;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig columnConfig = new ColumnConfig('id', 'New Column', 150);",
        "        configs.add(columnConfig);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: columnConfig} {/new ColumnConfig('id', 'New Column', 150)/ /configs.add(columnConfig)/}");
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_CREATE_noColumnsList() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Collections;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, null);
    assertEditor(
        "import java.util.Collections;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "import java.util.List;",
        "import java.util.ArrayList;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig columnConfig = new ColumnConfig('id', 'New Column', 150);",
        "        configs.add(columnConfig);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: columnConfig} {/new ColumnConfig('id', 'New Column', 150)/ /configs.add(columnConfig)/}");
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_CREATE_noOtherColumns() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, null);
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig columnConfig = new ColumnConfig('id', 'New Column', 150);",
        "        configs.add(columnConfig);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: columnConfig} {/new ColumnConfig('id', 'New Column', 150)/ /configs.add(columnConfig)/}");
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_CREATE_beforeOtherColumns() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column_1 = new ColumnConfig();",
            "        configs.add(column_1);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column_1 = getJavaInfoByName("column_1");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, column_1);
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig columnConfig = new ColumnConfig('id', 'New Column', 150);",
        "        configs.add(columnConfig);",
        "      }",
        "      {",
        "        ColumnConfig column_1 = new ColumnConfig();",
        "        configs.add(column_1);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: columnConfig} {/new ColumnConfig('id', 'New Column', 150)/ /configs.add(columnConfig)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column_1} {/new ColumnConfig()/ /configs.add(column_1)/}");
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   * <p>
   * When <code>Grid</code> itself was just created.
   * <p>
   * http://fogbugz.instantiations.com/fogbugz/default.asp?47667
   */
  public void test_columns_CREATE_intoNewGrid() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "// filler filler filler filler filler",
            "// filler filler filler filler filler",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "  }",
            "}");
    panel.refresh();
    // create Grid
    GridInfo newGrid = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.Grid");
    flowContainer_CREATE(panel, newGrid, null);
    assertEditor(
        "import com.extjs.gxt.ui.client.widget.grid.Grid;",
        "import com.extjs.gxt.ui.client.store.ListStore;",
        "import com.extjs.gxt.ui.client.widget.grid.ColumnModel;",
        "import java.util.Collections;",
        "import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;",
        "// filler filler filler filler filler",
        "// filler filler filler filler filler",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
        "      add(grid);",
        "      grid.setBorders(true);",
        "    }",
        "  }",
        "}");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    newGrid.command_CREATE(newColumn, null);
    assertEditor(
        "import com.extjs.gxt.ui.client.widget.grid.Grid;",
        "import com.extjs.gxt.ui.client.store.ListStore;",
        "import com.extjs.gxt.ui.client.widget.grid.ColumnModel;",
        "import java.util.Collections;",
        "import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;",
        "import java.util.List;",
        "import java.util.ArrayList;",
        "// filler filler filler filler filler",
        "// filler filler filler filler filler",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig columnConfig = new ColumnConfig('id', 'New Column', 150);",
        "        configs.add(columnConfig);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "      grid.setBorders(true);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(configs))/ /grid.setBorders(true)/ /add(grid)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: columnConfig} {/new ColumnConfig('id', 'New Column', 150)/ /configs.add(columnConfig)/}");
  }

  /**
   * Test for {@link GridInfo#command_MOVE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_MOVE_beforeOtherColumns() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column_1 = new ColumnConfig();",
            "        configs.add(column_1);",
            "      }",
            "      {",
            "        ColumnConfig column_2 = new ColumnConfig();",
            "        configs.add(column_2);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column_1 = getJavaInfoByName("column_1");
    ColumnConfigInfo column_2 = getJavaInfoByName("column_2");
    //
    grid.command_MOVE(column_2, column_1);
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig column_2 = new ColumnConfig();",
        "        configs.add(column_2);",
        "      }",
        "      {",
        "        ColumnConfig column_1 = new ColumnConfig();",
        "        configs.add(column_1);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
  }

  /**
   * Test for {@link GridInfo#command_MOVE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_MOVE_toLast() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.List;",
            "import java.util.ArrayList;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
            "      {",
            "        ColumnConfig column_1 = new ColumnConfig();",
            "        configs.add(column_1);",
            "      }",
            "      {",
            "        ColumnConfig column_2 = new ColumnConfig();",
            "        configs.add(column_2);",
            "      }",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column_1 = getJavaInfoByName("column_1");
    //
    grid.command_MOVE(column_1, null);
    assertEditor(
        "import java.util.List;",
        "import java.util.ArrayList;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      List<ColumnConfig> configs = new ArrayList<ColumnConfig>();",
        "      {",
        "        ColumnConfig column_2 = new ColumnConfig();",
        "        configs.add(column_2);",
        "      }",
        "      {",
        "        ColumnConfig column_1 = new ColumnConfig();",
        "        configs.add(column_1);",
        "      }",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(configs));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
  }

  ////////////////////////////////////////////////////////////////////////////
  //
  // Arrays.asList() operations
  //
  ////////////////////////////////////////////////////////////////////////////
  /**
   * <code>ColumnModel</code> with Arrays.asList().
   */
  public void test_columns_parse_asArray() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Arrays;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      ColumnConfig column = new ColumnConfig();",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(column)));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(Arrays.asList(column)))/ /add(grid)/}",
        "    Arrays.asList []",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column} {/new ColumnConfig()/ /Arrays.asList(column)/}");
    //
    panel.refresh();
    assertNoErrors(panel);
    // check ColumnConfig_Info
    ColumnConfigInfo column = getJavaInfoByName("column");
    {
      Association association = column.getAssociation();
      assertThat(association).isInstanceOf(InvocationChildEllipsisAssociation.class);
      assertTrue(association.canDelete());
    }
  }

  /**
   * Test for {@link GridInfo#command_CREATE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_CREATE_asArray() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Arrays;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      ColumnConfig column_1 = new ColumnConfig();",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(column_1)));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column_1 = getJavaInfoByName("column_1");
    //
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, column_1);
    assertNoLoggedExceptions();
    assertNoErrors(grid);
    assertEditor(
        "import java.util.Arrays;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      ColumnConfig column_1 = new ColumnConfig();",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(new ColumnConfig('id', 'New Column', 150), column_1)));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    assertHierarchy(
        "{this: com.google.gwt.user.client.ui.HorizontalPanel} {this} {/add(grid)/}",
        "  {new: com.extjs.gxt.ui.client.widget.grid.Grid} {local-unique: grid} {/new Grid(new ListStore(), new ColumnModel(Arrays.asList(new ColumnConfig('id', 'New Column', 150), column_1)))/ /add(grid)/}",
        "    Arrays.asList []",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {empty} {/Arrays.asList(new ColumnConfig('id', 'New Column', 150), column_1)/}",
        "    {new: com.extjs.gxt.ui.client.widget.grid.ColumnConfig} {local-unique: column_1} {/new ColumnConfig()/ /Arrays.asList(new ColumnConfig('id', 'New Column', 150), column_1)/}");
  }

  /**
   * Test for {@link GridInfo#command_MOVE(ColumnConfigInfo, ColumnConfigInfo)}.
   */
  public void test_columns_MOVE_asArray() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Arrays;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      ColumnConfig column_1 = new ColumnConfig();",
            "      ColumnConfig column_2 = new ColumnConfig();",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(column_1, column_2)));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column_1 = getJavaInfoByName("column_1");
    //
    grid.command_MOVE(column_1, null);
    assertNoLoggedExceptions();
    assertNoErrors(grid);
    assertEditor(
        "import java.util.Arrays;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      ColumnConfig column_1 = new ColumnConfig();",
        "      ColumnConfig column_2 = new ColumnConfig();",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(column_2, column_1)));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
  }

  /**
   * Test for removing last column.
   */
  public void test_columns_DELETE_asArray() throws Exception {
    ComplexPanelInfo panel =
        parseJavaInfo(
            "import java.util.Arrays;",
            "import com.extjs.gxt.ui.client.store.*;",
            "import com.extjs.gxt.ui.client.widget.grid.*;",
            "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
            "  public Test() {",
            "    {",
            "      ColumnConfig column = new ColumnConfig();",
            "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(column)));",
            "      add(grid);",
            "    }",
            "  }",
            "}");
    panel.refresh();
    GridInfo grid = getJavaInfoByName("grid");
    ColumnConfigInfo column = getJavaInfoByName("column");
    //
    assertThat(column.canDelete()).isTrue();
    column.delete();
    panel.refresh();
    //
    assertNoLoggedExceptions();
    assertNoErrors(grid);
    assertEditor(
        "import java.util.Arrays;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "import java.util.Collections;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Collections.<ColumnConfig>emptyList()));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
    // and now add new column
    ColumnConfigInfo newColumn = createJavaInfo("com.extjs.gxt.ui.client.widget.grid.ColumnConfig");
    grid.command_CREATE(newColumn, null);
    assertNoLoggedExceptions();
    assertNoErrors(grid);
    assertEditor(
        "import java.util.Arrays;",
        "import com.extjs.gxt.ui.client.store.*;",
        "import com.extjs.gxt.ui.client.widget.grid.*;",
        "import java.util.Collections;",
        "public class Test extends com.google.gwt.user.client.ui.HorizontalPanel {",
        "  public Test() {",
        "    {",
        "      Grid grid = new Grid(new ListStore(), new ColumnModel(Arrays.asList(new ColumnConfig('id', 'New Column', 150))));",
        "      add(grid);",
        "    }",
        "  }",
        "}");
  }
}
TOP

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

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.