/*******************************************************************************
* Copyright (c) 2009 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors.json12;
import java.util.List;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.jboss.tools.smooks.configuration.editors.AttributeFieldEditPart;
import org.jboss.tools.smooks.configuration.editors.ModelChildrenTablePanelCreator;
import org.jboss.tools.smooks.configuration.editors.PropertyUICreator;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.model.json12.Json12Factory;
import org.jboss.tools.smooks.model.json12.Json12Package;
import org.jboss.tools.smooks.model.json12.Json12Reader;
/**
* @author Dart Peng (dpeng@redhat.com) Date Apr 10, 2009
*/
public class Json12ReaderUICreator extends PropertyUICreator {
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.IPropertyUICreator#
* createPropertyUI(org.eclipse.ui.forms.widgets.FormToolkit,
* org.eclipse.swt.widgets.Composite,
* org.eclipse.emf.edit.provider.IItemPropertyDescriptor, java.lang.Object,
* org.eclipse.emf.ecore.EAttribute)
*/
public AttributeFieldEditPart createPropertyUI(FormToolkit toolkit, Composite parent,
IItemPropertyDescriptor propertyDescriptor, Object model, EAttribute feature,
ISmooksModelProvider formEditor, IEditorPart part) {
return super.createPropertyUI(toolkit, parent, propertyDescriptor, model, feature, formEditor, part);
}
@Override
public List<AttributeFieldEditPart> createExtendUIOnBottom(AdapterFactoryEditingDomain editingdomain,
FormToolkit toolkit, Composite parent, Object model, ISmooksModelProvider formEditor, IEditorPart editorPart) {
if (model instanceof Json12Reader) {
EObject keyMap = ((Json12Reader) model).getKeyMap();
if (keyMap != null) {
Group group = new Group(parent, SWT.NONE);
group.setText(Messages.Json12ReaderUICreator_KeyMapsLabel);
group.setBackground(ColorConstants.white);
FillLayout fl = new FillLayout();
group.setLayout(fl);
ModelChildrenTablePanelCreator creator = new ModelChildrenTablePanelCreator(formEditor, keyMap,
toolkit, editorPart) {
@Override
protected EStructuralFeature getChildrenFeature() {
return Json12Package.Literals.KEY_MAP__KEY;
}
@Override
protected EObject newChildModel() {
return Json12Factory.eINSTANCE.createKey();
}
};
creator.createChildrenTablePanel(group);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.heightHint = 200;
gd.horizontalSpan = 2;
group.setLayoutData(gd);
}
}
return super.createExtendUIOnBottom(editingdomain, toolkit, parent, model, formEditor, editorPart);
}
}