| /** |
| * Copyright (c) 2005-2012 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v20.html |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| */ |
| package org.eclipse.xsd.ecore.importer.ui; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Event; |
| |
| import org.eclipse.emf.importer.ModelImporter; |
| import org.eclipse.emf.importer.ui.contribution.base.ModelImporterDetailPage; |
| import org.eclipse.jface.dialogs.MessageDialog; |
| |
| import org.eclipse.xsd.ecore.importer.XSDImporter; |
| import org.eclipse.xsd.ecore.importer.XSDImporterPlugin; |
| |
| |
| /** |
| * @since 2.1.0 |
| */ |
| public class XSDDetailPage extends ModelImporterDetailPage |
| { |
| protected Button createMapButton; |
| |
| /** |
| * @since 2.9 |
| */ |
| protected Button sortAttributesButton; |
| |
| public XSDDetailPage(ModelImporter modelImporter, String pageName) |
| { |
| super(modelImporter, pageName); |
| |
| setTitle(XSDImporterPlugin.INSTANCE.getString("_UI_XSDImport_title")); |
| setDescription(XSDImporterPlugin.INSTANCE.getString(showGenModel() ? |
| "_UI_XSDImportNewProject_description": "_UI_XSDImportFile_description" )); |
| } |
| |
| @Override |
| public void dispose() |
| { |
| if (createMapButton != null) |
| { |
| createMapButton.removeListener(SWT.Selection, this); |
| createMapButton = null; |
| } |
| if (sortAttributesButton != null) |
| { |
| sortAttributesButton.removeListener(SWT.Selection, this); |
| sortAttributesButton = null; |
| } |
| |
| super.dispose(); |
| } |
| |
| public XSDImporter getXSDImporter() |
| { |
| return (XSDImporter)getModelImporter(); |
| } |
| |
| @Override |
| protected void addDetailControl(Composite parent) |
| { |
| XSDImporter xsdImporter = getXSDImporter(); |
| if (xsdImporter.canCreateEcoreMap()) |
| { |
| createMapButton = new Button(parent, SWT.CHECK); |
| if (xsdImporter.createEcoreMap()) |
| { |
| createMapButton.setSelection(true); |
| } |
| createMapButton.setText(XSDImporterPlugin.INSTANCE.getString("_UI_Create_XML_Schema_to_Ecore_Map")); |
| { |
| GridData data = new GridData(); |
| data.horizontalSpan = 1; |
| createMapButton.setLayoutData(data); |
| } |
| createMapButton.addListener(SWT.Selection, this); |
| } |
| |
| sortAttributesButton = new Button(parent, SWT.CHECK); |
| if (xsdImporter.sortAttributes()) |
| { |
| sortAttributesButton.setSelection(true); |
| } |
| sortAttributesButton.setText(XSDImporterPlugin.INSTANCE.getString("_UI_Sort_Attributes")); |
| { |
| GridData data = new GridData(); |
| data.horizontalSpan = 1; |
| sortAttributesButton.setLayoutData(data); |
| } |
| sortAttributesButton.addListener(SWT.Selection, this); |
| } |
| |
| @Override |
| protected void doHandleEvent(Event event) |
| { |
| if (event.type == SWT.Selection && (event.widget == createMapButton || event.widget == sortAttributesButton)) |
| { |
| if (event.widget == createMapButton) |
| { |
| boolean enabled = createMapButton.getSelection(); |
| if (enabled) |
| { |
| MessageDialog.openWarning(getContainer().getShell(), XSDImporterPlugin.INSTANCE.getString("_UI_Create_XML_Schema_to_Ecore_Map").replace("&", ""), XSDImporterPlugin.INSTANCE.getString("_UI_Create_XML_Schema_to_Ecore_Map_message")); |
| } |
| getXSDImporter().setCreateEcoreMap(createMapButton.getSelection()); |
| } |
| else |
| { |
| getXSDImporter().setSortAttributes(sortAttributesButton.getSelection()); |
| } |
| if (uriText.getText().trim().length() > 0) |
| { |
| refreshModel(); |
| getContainer().updateButtons(); |
| } |
| } |
| else |
| { |
| super.doHandleEvent(event); |
| } |
| } |
| } |