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