/******************************************************************************* * 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.shop.xtext.views; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.part.ViewPart; import com.google.inject.Module; import com.rcpcompany.uibindings.IValueBinding; import com.rcpcompany.uibindings.bindings.xtext.UIBXtextUtils; import com.rcpcompany.uibindings.tests.shop.ShopFactory; import com.rcpcompany.uibindings.tests.shop.ShopPackage; import com.rcpcompany.uibindings.utils.EditingDomainUtils; import com.rcpcompany.uibindings.utils.IBindingContextSelectionProvider; import com.rcpcompany.uibindings.utils.IDnDSupport; import com.rcpcompany.uibindings.utils.IFormCreator; import com.rcpcompany.uibindings.utils.ITableCreator; import com.rcpcompany.uibindings.xtext.tests.ui.SimpleDSLActivator; /** * The inventory view with XText support. * * @author Tonny Madsen, The RCP Company */ public class InventoryXTextView extends ViewPart { private Table myTable; private IFormCreator myForm; @Override public void createPartControl(Composite parent) { myForm = IFormCreator.Factory.createScrolledForm( ShopFactory.eINSTANCE.getShop(EditingDomainUtils.getEditingDomain()), parent, "Inventory"); final ITableCreator table = myForm.addTableCreator(ShopPackage.Literals.SHOP__SHOP_ITEMS, true, ITableCreator.FILTER | ITableCreator.RESIZE); table.addColumn("name(w=20em)"); table.addColumn("price(w=10em)"); final IFormCreator detailsForm = myForm.addSection("Details", table.getBinding().getSingleSelection()); detailsForm.addObjectMessages(); detailsForm.addField("name(w=20em)"); detailsForm.addField("price(w=10em)"); final IValueBinding advPriceBinding = UIBXtextUtils.createEditorBinding(detailsForm, "advancedPrice", getXTextInjectorModule()); myForm.finish(); IBindingContextSelectionProvider.Factory.adapt(myForm.getContext(), getSite()); IDnDSupport.Factory.installOn(myForm.getContext()); } private Module getXTextInjectorModule() { return SimpleDSLActivator.getInstance().getInjectorModule(); } @Override public void setFocus() { myForm.setFocus(); } }