/*******************************************************************************
* 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.views;
import org.eclipse.nebula.widgets.radiogroup.RadioGroup;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import com.rcpcompany.uibindings.Constants;
import com.rcpcompany.uibindings.SpecialBinding;
import com.rcpcompany.uibindings.tests.shop.Shop;
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;
/**
* The customer view of the shop application.
*
* @author Tonny Madsen, The RCP Company
*/
public class CustomersView extends ViewPart {
private IFormCreator myForm;
@Override
public void createPartControl(Composite parent) {
final Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(1, false));
final Shop shop = ShopFactory.eINSTANCE.getShop(EditingDomainUtils.getEditingDomain());
myForm = IFormCreator.Factory.createScrolledForm(shop, composite, "Customers");
final ITableCreator table = myForm.addTableCreator(ShopPackage.Literals.SHOP__CUSTOMERS, true,
ITableCreator.FILTER);
table.addColumn(SpecialBinding.ROW_NO, 40);
table.addColumn("contact(w=100)");
table.addColumn("contact.country(w=100)");
table.addColumn("contact.newsletter(w=50)");
table.addColumn("loyalty(w=100)");
table.addColumn("logoFileName(w=200)");
final IFormCreator detailsSection = myForm.addSection("Details", table.getBinding().getSingleSelection());
detailsSection.addObjectMessages();
detailsSection.addField("contact.name(w=200)");
detailsSection.addField("contact.address(w=200)");
detailsSection.addField("contact.country(w=200)");
detailsSection.addField("contact.newsletter(w=50)");
detailsSection.addField("logoFileName(w=200)");
detailsSection.addField("loyalty").arg(Constants.ARG_PREFERRED_CONTROL, RadioGroup.class.getName());
final IFormCreator ordersSection = myForm.addSection("Orders", table.getBinding().getSingleSelection());
final ITableCreator ordersTable = ordersSection.addTableCreator(ShopPackage.Literals.CUSTOMER__ORDERS, true,
SWT.NONE);
ordersSection.addObjectMessages();
ordersTable.addColumn("no(w=40)");
ordersTable.addColumn("price(w=100)");
myForm.finish();
IBindingContextSelectionProvider.Factory.adapt(myForm.getContext(), getSite());
IDnDSupport.Factory.installOn(myForm.getContext());
// form.getScrolledForm().reflow(true);
// final Listener l = new Listener() {
// @Override
// public void handleEvent(Event event) {
// LogUtils.debug(this, ToStringUtils.toString(event));
// }
// };
// for (int i = SWT.None; i < SWT.ImeComposition; i++) {
// Display.getCurrent().addFilter(i, l);
// }
}
@Override
public void setFocus() {
myForm.setFocus();
}
}