- Timestamp:
- 08/14/09 11:13:52 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CEDMA-Exporter-715/tools/CedmaExporter/CedmaExporterForm.cs
r2228 r2286 7 7 using System.Text; 8 8 using System.Windows.Forms; 9 using System.IO; 10 using SemWeb; 11 using HeuristicLab.Core; 12 using HeuristicLab.DataAnalysis; 9 13 10 14 namespace CedmaExporter { 11 15 public partial class CedmaExporterForm : Form { 12 16 private BackgroundWorker worker; 13 17 public CedmaExporterForm() { 14 18 InitializeComponent(); 19 } 15 20 21 private void exportButton_Click(object sender, EventArgs e) { 16 22 var dialog = new OpenFileDialog(); 17 23 DialogResult result; 18 do { 19 result = dialog.ShowDialog(); 20 if (result == DialogResult.OK) { 21 string fileName = dialog.FileName; 22 CedmaExporter.Export(fileName, fileName.Replace(".db3", "") + ".txt"); 24 result = dialog.ShowDialog(); 25 if (result == DialogResult.OK) { 26 string fileName = dialog.FileName; 27 exportButton.Enabled = false; 28 cancelButton.Enabled = true; 29 worker = new BackgroundWorker(); 30 worker.WorkerReportsProgress = true; 31 worker.WorkerSupportsCancellation = true; 32 worker.DoWork += CreateWorkerDelegate(worker, fileName); 33 worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged); 34 worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); 35 worker.RunWorkerAsync(); 36 } 37 } 38 39 private DoWorkEventHandler CreateWorkerDelegate(BackgroundWorker worker, string fileName) { 40 return (sender, args) => { 41 string inputFileName = fileName; 42 string outputFileName = fileName.Replace(".db3", "") + ".txt"; 43 string rdfConnectionString = "sqlite:rdf:Data Source=\"" + inputFileName + "\""; 44 using (StreamWriter writer = File.CreateText(outputFileName)) { 45 using (Store store = Store.Create(rdfConnectionString)) { 46 var dsEntities = store.SelectSubjects(Ontology.InstanceOf, Ontology.TypeDataSet); 47 HeuristicLab.CEDMA.Core.Problem prob = (HeuristicLab.CEDMA.Core.Problem)PersistenceManager.RestoreFromGZip(Convert.FromBase64String(((Literal)store.SelectObjects(dsEntities[0], Ontology.SerializedData)[0]).Value)); 48 Dataset ds = prob.Dataset; 49 CedmaExporter.WriteColumnHeaders(writer); 50 List<string> inputVariables = CedmaExporter.WriteVariableImpactHeaders(store, writer); 51 writer.WriteLine(); 52 var subjects = store.SelectSubjects(new Entity(Ontology.InstanceOf.Uri), new Entity(Ontology.TypeModel.Uri)); 53 int i = 0; 54 var exporter = new ModelExporter(ds, Path.GetDirectoryName(outputFileName), false); 55 foreach (var model in subjects) { 56 CedmaExporter.WriteModel(model, ++i, store, writer, inputVariables, exporter); 57 worker.ReportProgress((i * 100) / subjects.Count()); 58 if (worker.CancellationPending) return; 59 } 60 } 23 61 } 24 } while (result != DialogResult.Cancel); 25 Application.Exit(); 62 }; 63 } 64 65 void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { 66 exportButton.Enabled = true; 67 cancelButton.Enabled = false; 68 progressBar.Value = 0; 69 } 70 71 void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { 72 progressBar.Value = e.ProgressPercentage; 73 } 74 75 private void cancelButton_Click(object sender, EventArgs e) { 76 worker.CancelAsync(); 26 77 } 27 78 }
Note: See TracChangeset
for help on using the changeset viewer.