1 package org.simantics.xml.sax.ui.wizard;
\r
4 import java.io.IOException;
\r
6 import org.eclipse.jface.viewers.IStructuredSelection;
\r
7 import org.eclipse.jface.wizard.Wizard;
\r
8 import org.eclipse.swt.SWT;
\r
9 import org.eclipse.swt.widgets.Display;
\r
10 import org.eclipse.swt.widgets.FileDialog;
\r
11 import org.eclipse.ui.IImportWizard;
\r
12 import org.eclipse.ui.IWorkbench;
\r
13 import org.simantics.xml.sax.ManualSchemaFileImport;
\r
14 import org.simantics.xml.sax.SchemaConverter;
\r
16 public class SchemaConversionWizard extends Wizard implements IImportWizard {
\r
18 InputSelectionPage inputSelectionPage;
\r
19 ImportProcessPage importProcessPage;
\r
20 SchemaCombinationPage schemaCombinationPage;
\r
22 public SchemaConversionWizard() {
\r
23 setWindowTitle("XML Schema conversion");
\r
27 public void init(IWorkbench workbench, IStructuredSelection selection) {
\r
32 public boolean performFinish() {
\r
33 if (importProcessPage.isImporting())
\r
40 public void addPages() {
\r
41 addPage(inputSelectionPage = new InputSelectionPage());
\r
42 addPage(importProcessPage = new ImportProcessPage());
\r
43 addPage(schemaCombinationPage = new SchemaCombinationPage());
\r
46 public void doConversion() throws Exception {
\r
49 File inputFile = new File(inputSelectionPage.getSchemaFilename());
\r
50 File configurationFile = null;
\r
51 if (inputSelectionPage.getConfigurationFilename() != null)
\r
52 configurationFile = new File(inputSelectionPage.getConfigurationFilename());
\r
53 File outputPlugin = new File(inputSelectionPage.getPluginFilename());
\r
55 SchemaConverter converter = new SchemaConverter(inputFile,configurationFile,outputPlugin);
\r
56 converter.setCreateExporter(inputSelectionPage.createExporter);
\r
57 converter.setCreateImporter(inputSelectionPage.createImporter);
\r
58 converter.setCreatePGraph(inputSelectionPage.createPGraph);
\r
59 converter.setFileImport(new ManualSchemaFileImport() {
\r
63 public File getFileForLocation(final String location) throws IOException {
\r
64 if (Display.getCurrent() == null)
\r
65 Display.getDefault().syncExec(new Runnable() {
\r
68 showDialog(location);
\r
72 showDialog(location);
\r
74 if (filename == null)
\r
76 return new File(filename);
\r
79 protected void showDialog(String location) {
\r
80 FileDialog dialog = new FileDialog(SchemaConversionWizard.this.getShell(), SWT.OPEN);
\r
81 dialog.setText("Open schema file for " + location);
\r
82 filename = dialog.open();
\r
86 converter.convert();
\r
88 schemaCombinationPage.setOutputPlugin(outputPlugin);
\r