1 package org.simantics.xml.sax.ui.datawizard;
3 import java.lang.reflect.InvocationTargetException;
5 import org.eclipse.core.runtime.IProgressMonitor;
6 import org.eclipse.jface.layout.GridDataFactory;
7 import org.eclipse.jface.operation.IRunnableWithProgress;
8 import org.eclipse.jface.wizard.WizardPage;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.events.SelectionAdapter;
11 import org.eclipse.swt.events.SelectionEvent;
12 import org.eclipse.swt.layout.GridLayout;
13 import org.eclipse.swt.widgets.Button;
14 import org.eclipse.swt.widgets.Composite;
15 import org.eclipse.swt.widgets.Label;
16 import org.simantics.utils.ui.ErrorLogger;
19 public class ImportProcessPage extends WizardPage {
20 private Composite composite;
22 private Button button;
25 private boolean doneImport = false;
26 private boolean importing = false;
28 public ImportProcessPage() {
29 super("XML Data conversion","Conversion Summary", null);
30 setPageComplete(false);
34 public boolean isDoneImport() {
39 public void createControl(Composite parent) {
40 composite = new Composite(parent, SWT.NONE);
41 composite.setLayout(new GridLayout(1,true));
43 Label fileLabel = new Label(composite, SWT.NONE);
44 fileLabel.setText("File: ");
46 label = new Label(composite, SWT.NONE);
47 label.setText("Import has not been started.");
48 GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BOTTOM).grab(true, false).applyTo(label);
49 button = new Button(composite, SWT.PUSH);
50 button.setText("Import");
51 GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(button);
52 button.addSelectionListener(new SelectionAdapter() {
54 public void widgetSelected(SelectionEvent e) {
59 setControl(composite);
62 private Exception exception;
64 private void doImport() {
65 button.setEnabled(false);
66 label.setText("Import started.");
69 getWizard().getContainer().run(true, true, new IRunnableWithProgress() {
72 public void run(final IProgressMonitor monitor) throws InvocationTargetException,
73 InterruptedException {
76 monitor.beginTask("XML Data conversion", IProgressMonitor.UNKNOWN);
77 final DataConversionWizard wizard = (DataConversionWizard)getWizard();
78 wizard.doConversion();
81 } catch (final Exception err) {
87 } catch (InvocationTargetException err) {
89 } catch (InterruptedException err) {
92 if (exception != null) {
93 setErrorMessage("Conversion failed: " + exception.getMessage());
94 ErrorLogger.defaultLogError("XML data conversion failed.",exception);
95 label.setText("Schema conversion failed.");
97 label.setText("Schema conversion done.");
101 setPreviousPage(null);
102 setPageComplete(true);
103 getContainer().updateButtons();
107 public boolean isImporting() {