Java tutorial
/******************************************************************************* * Copyright (c) 2006-2013 The RCP Company and others. * 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 * * Contributors: * The RCP Company - initial API and implementation *******************************************************************************/ package com.rcpcompany.uibindings.extests.trees; import static com.rcpcompany.test.utils.ui.UITestUtils.*; import static org.junit.Assert.*; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.list.WritableList; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.rcpcompany.uibindings.IBindingContext; import com.rcpcompany.uibindings.IColumnBinding; import com.rcpcompany.uibindings.IConstantTreeItem; import com.rcpcompany.uibindings.IManager; import com.rcpcompany.uibindings.IViewerBinding; import com.rcpcompany.uibindings.SpecialBinding; import com.rcpcompany.uibindings.tests.shop.Contact; import com.rcpcompany.uibindings.tests.shop.Shop; import com.rcpcompany.uibindings.tests.shop.ShopFactory; import com.rcpcompany.uibindings.tests.shop.ShopItem; import com.rcpcompany.uibindings.tests.shop.ShopPackage; import com.rcpcompany.uibindings.tests.utils.BaseUIBTestUtils; import com.rcpcompany.uibindings.tests.utils.views.UIBTestView; import com.rcpcompany.uibindings.utils.IBindingContextSelectionProvider; import com.rcpcompany.uibindings.utils.IDnDSupport; public class TreeContentTest { private Shop myShop; private ShopItem myShopItem; private Contact myContact1; private Contact myContact2; private UIBTestView myView; private IBindingContext myContext; private Tree myTree; private TreeColumn myTreeColumn; private IViewerBinding myTreeBinding; private IColumnBinding myTreeColumnBinding; @Before public void before() { BaseUIBTestUtils.resetAll(); IManager.Factory.getManager().setEditCellSingleClick(false); createModel(); createView(); myView.getSite().getPage().activate(myView); } private void createModel() { myShop = ShopFactory.eINSTANCE.createShop(); myShop.setName("my shop"); myShopItem = ShopFactory.eINSTANCE.createShopItem(); myShopItem.setName("Wellknown dummy"); myShopItem.setShop(myShop); myContact1 = ShopFactory.eINSTANCE.createContact(); myContact1.setName("John Doe"); myContact1.setShop(myShop); myContact2 = ShopFactory.eINSTANCE.createContact(); myContact2.setName("Doe John"); myContact2.setShop(myShop); } /** * Creates the view */ public void createView() { myView = BaseUIBTestUtils.createUIBTestView(this); myContext = IBindingContext.Factory.createContext(myView.getBody()); myTree = new Tree(myView.getBody(), SWT.SINGLE | SWT.FULL_SELECTION); myTree.setHeaderVisible(true); myTreeColumn = new TreeColumn(myTree, SWT.LEAD); myTreeColumn.setWidth(300); // TODO: use listener to make this column 100% final IObservableList list = WritableList.withElementType(ShopPackage.Literals.SHOP); list.add(myShop); myTreeBinding = myContext.addViewer().viewer(myTree).model(list); myTreeColumnBinding = myTreeBinding.addColumn().column(myTreeColumn).model(SpecialBinding.TREE_ITEM); myContext.finish(); IBindingContextSelectionProvider.Factory.adapt(myContext, myView.getSite()); IDnDSupport.Factory.installOn(myContext); myView.getBody().layout(); } @After public void disposeView() { if (myView != null) { myView.getSite().getPage().hideView(myView); } } @Test public void testContent() { final TreeViewer viewer = (TreeViewer) myTreeBinding.getViewer(); /* * Make sure the tree is properly shown */ viewer.expandAll(); // TODO SWTB yield(); TreeItem[] items = myTree.getItems(); assertEquals(1, items.length); assertEquals(myShop, items[0].getData()); assertEquals(myShop.getName(), items[0].getText(0)); items = items[0].getItems(); assertEquals(2, items.length); assertTrue(items[0].getData() instanceof IConstantTreeItem); assertEquals("Contacts", items[0].getText(0)); assertEquals(myShopItem, items[1].getData()); assertEquals(myShopItem.getName(), items[1].getText(0)); items = items[0].getItems(); assertEquals(2, items.length); assertEquals(myContact1, items[0].getData()); assertEquals(myContact1.getName(), items[0].getText(0)); assertEquals(myContact2, items[1].getData()); assertEquals(myContact2.getName(), items[1].getText(0)); } }