Project

General

Profile

« Previous | Next » 

Revision 058a92f1

Added by Andreas Müller over 1 year ago

ref #10189 split CdmApplicationController into repository and application part in TaxEditor

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
23 23
import org.eclipse.core.runtime.Status;
24 24
import org.eclipse.core.runtime.jobs.Job;
25 25
import org.eclipse.swt.widgets.Display;
26
import org.eclipse.ui.PlatformUI;
27 26

  
28 27
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
29 28
import eu.etaxonomy.cdm.api.application.ICdmRepository;
30 29
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
31
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
32 30
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
33 31
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
34 32
import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
......
49 47
import eu.etaxonomy.taxeditor.event.EventUtility;
50 48
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
51 49
import eu.etaxonomy.taxeditor.model.AbstractUtility;
52
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
53 50
import eu.etaxonomy.taxeditor.model.MessagingUtils;
54 51
import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
55 52
import eu.etaxonomy.taxeditor.store.CdmStore;
56 53
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
57
import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
58 54

  
59 55
/**
60 56
 * @author n.hoffmann
......
74 70
		return new ImportManager(applicationConfiguration);
75 71
	}
76 72

  
77
	/**
78
	 * Use when importing data into the current application context
79
	 *
80
	 * @param configurator
81
	 *            a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
82
	 *            object.
83
	 * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
84
	 */
85
	@Override
86
	protected Job createIOJob(final IImportConfigurator configurator) {
87
		Assert.isNotNull(configurator, "Configuration may not be null");
88

  
89
		final Display display = Display.getDefault();
90

  
91
		Job job = new Job("Import: " + configurator.getClass().getSimpleName()) {
92

  
93
			@Override
94
			protected IStatus run(IProgressMonitor monitor) {
95
				monitor.beginTask("Importing data", 100);
96
				configurator.setProgressMonitor(CdmProgressMonitorAdapter
97
						.CreateSubMonitor(monitor, 70));
98

  
99
				monitor.worked(5);
100

  
101
				CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<>();
102
				importer.setCdmAppController(applicationConfiguration);
103
				monitor.worked(5);
104
				ImportResult importResult = null;
105
				try {
106
					importResult = importer.invoke(configurator);
107

  
108
					monitor.worked(80);
109
				} catch (RuntimeException e) {
110
					MessagingUtils.messageDialog(
111
							"Error importing data",
112
							this,
113
							"An error occurred while"
114
									+ "importing from source '"
115
									+ configurator.getSourceNameString()
116
									+ "'.\n"
117
									+ "Please check error log for details.", e);
118
				}
119

  
120
				monitor.worked(5);
121
				monitor.done();
122

  
123

  
124
				final StringBuilder reportText = new StringBuilder();
125
				if(importResult!=null){
126
				    List<byte[]> reports = importResult.getReports();
127
				    for (byte[] bs : reports) {
128
                        reportText.append(new String(bs));
129
                    }
130
				}
131
				display.asyncExec(new Runnable() {
132

  
133
					@Override
134
					public void run() {
135
                        // display reports with possibility to save
136
                        ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
137
                        dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
138
                        dialog.setReportText(reportText.toString());
139
                        dialog.open();
140

  
141
						CdmStore.getContextManager().notifyContextRefresh();
142

  
143
					}
144
				});
145

  
146
				return Status.OK_STATUS;
147
			}
148
		};
149

  
150
		return job;
151

  
152
	}
73
//	/**
74
//	 * Use when importing data into the current application context
75
//	 *
76
//	 * @param configurator
77
//	 *            a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
78
//	 *            object.
79
//	 * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
80
//	 */
81
//	@Override
82
//	protected Job createIOJob(final IImportConfigurator configurator) {
83
//		Assert.isNotNull(configurator, "Configuration may not be null");
84
//
85
//		final Display display = Display.getDefault();
86
//
87
//		Job job = new Job("Import: " + configurator.getClass().getSimpleName()) {
88
//
89
//			@Override
90
//			protected IStatus run(IProgressMonitor monitor) {
91
//				monitor.beginTask("Importing data", 100);
92
//				configurator.setProgressMonitor(CdmProgressMonitorAdapter
93
//						.CreateSubMonitor(monitor, 70));
94
//
95
//				monitor.worked(5);
96
//
97
//				CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<>();
98
//				importer.setCdmAppController(applicationConfiguration);
99
//				monitor.worked(5);
100
//				ImportResult importResult = null;
101
//				try {
102
//					importResult = importer.invoke(configurator);
103
//
104
//					monitor.worked(80);
105
//				} catch (RuntimeException e) {
106
//					MessagingUtils.messageDialog(
107
//							"Error importing data",
108
//							this,
109
//							"An error occurred while"
110
//									+ "importing from source '"
111
//									+ configurator.getSourceNameString()
112
//									+ "'.\n"
113
//									+ "Please check error log for details.", e);
114
//				}
115
//
116
//				monitor.worked(5);
117
//				monitor.done();
118
//
119
//
120
//				final StringBuilder reportText = new StringBuilder();
121
//				if(importResult!=null){
122
//				    List<byte[]> reports = importResult.getReports();
123
//				    for (byte[] bs : reports) {
124
//                        reportText.append(new String(bs));
125
//                    }
126
//				}
127
//				display.asyncExec(new Runnable() {
128
//
129
//					@Override
130
//					public void run() {
131
//                        // display reports with possibility to save
132
//                        ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
133
//                        dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
134
//                        dialog.setReportText(reportText.toString());
135
//                        dialog.open();
136
//
137
//						CdmStore.getContextManager().notifyContextRefresh();
138
//
139
//					}
140
//				});
141
//
142
//				return Status.OK_STATUS;
143
//			}
144
//		};
145
//
146
//		return job;
147
//
148
//	}
153 149

  
154 150
	public Job createIOServiceJob(IImportConfigurator configurator, InputStream is, SOURCE_TYPE type) {
155 151

  

Also available in: Unified diff