async private Task RefreshList() { //if (listView.InvokeRequired) //{ // RefreshListCallback d = new RefreshListCallback(RefreshList); // this.BeginInvoke(d); //} //else { CancelRefreshList(); listView.Items.Clear(); _itemCollection.Clear(); if (_exObject == null) { return; } var instatnce = await _exObject.GetInstanceAsync(); if (instatnce is SqlFDBImageCatalogClass) { SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)instatnce; _cancelWorker = false; _gui_worker.RunWorkerAsync(await layer.ImageList()); } else if (instatnce is IRasterCatalogClass) { IRasterCatalogClass layer = (IRasterCatalogClass)instatnce; _cancelWorker = false; //_gui_worker.RunWorkerAsync(layer.ImageList); // // Wirft eine Fehler beim Lesen, wenn List in einem // Workerthread ausgeführt wird... // funzt nur bei SQL Server!! // await worker_DoWork(_gui_worker, new DoWorkEventArgs(await layer.ImageList())); } else if (instatnce is pgImageCatalogClass) { pgImageCatalogClass layer = (pgImageCatalogClass)instatnce; _cancelWorker = false; _gui_worker.RunWorkerAsync(await layer.ImageList()); } else if (instatnce is SQLiteFDBImageCatalogClass) { SQLiteFDBImageCatalogClass layer = (SQLiteFDBImageCatalogClass)instatnce; _cancelWorker = false; _gui_worker.RunWorkerAsync(await layer.ImageList()); } } }
async private void updateImageToolStripMenuItem_Click(object sender, EventArgs e) { if (_exObject == null || _contextItem == null) { return; } FDBImageDataset iDataset = null; var instance = await _exObject?.GetInstanceAsync(); if (instance is SqlFDBImageCatalogClass) { SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)instance; iDataset = new FDBImageDataset(layer._fdb, layer.Name); } else if (instance is IRasterCatalogClass) { IRasterCatalogClass layer = (IRasterCatalogClass)instance; iDataset = new FDBImageDataset((IImageDB)layer.Dataset.Database, layer.Name); } if (iDataset == null) { return; } int ID = await iDataset.GetImageDatasetItemID(_contextItem.Text); if (ID == -1) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } if (!await iDataset.UpdateImageDatasetBitmap(ID)) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } _contextItem.ImageIndex = 0; }
async private void removeImageFromDatasetToolStripMenuItem_Click(object sender, EventArgs e) { if (_exObject == null || _contextItem == null) { return; } FDBImageDataset iDataset = null; var instatnce = await _exObject.GetInstanceAsync(); if (instatnce is SqlFDBImageCatalogClass) { SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)instatnce; iDataset = new FDBImageDataset(layer._fdb, layer.Name); } else if (instatnce is IRasterCatalogClass) { IRasterCatalogClass layer = (IRasterCatalogClass)instatnce; iDataset = new FDBImageDataset((IImageDB)layer.Dataset.Database, layer.Name); } if (iDataset == null) { return; } if (listView.SelectedItems.Contains(_contextItem)) { foreach (ListViewItem item in listView.SelectedItems) { int ID = await iDataset.GetImageDatasetItemID(item.Text); if (ID == -1) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } if (!await iDataset.DeleteImageDatasetItem(ID, false)) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } listView.Items.Remove(item); } } else { int ID = await iDataset.GetImageDatasetItemID(_contextItem.Text); if (ID == -1) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } if (!await iDataset.DeleteImageDatasetItem(ID, false)) { MessageBox.Show(iDataset.lastErrorMessage, "ERROR"); return; } listView.Items.Remove(_contextItem); } SetStatusLabel1Text(listView.Items.Count + " Items..."); }
async private Task Script(DragEventArgs e) { try { if (_exAppl == null) { return; } if (e.Data == null) { return; } string[] data = (string[])e.Data.GetData(DataFormats.FileDrop); if (data == null || data.Length == 0) { return; } StringBuilder sb = new StringBuilder(); foreach (string filename in data) { DirectoryInfo di = new DirectoryInfo(filename); var instance = await _exObject?.GetInstanceAsync(); if (instance is SqlFDBImageCatalogClass) { SqlFDBImageCatalogClass layer = (SqlFDBImageCatalogClass)instance; if (layer._fdb == null) { return; } if (di.Exists) { sb.Append("\r\nCreateRasterCatalog -connectionstring \"" + layer._fdb.ConnectionString + "\" -ds \"" + layer.Name + "\" -root \"" + filename + "\" -managed"); } else { //gView.Raster.File.RasterFileClass rLayer = new gView.Raster.File.RasterFileClass(null, filename); //if (!rLayer.isValid) continue; RasterFileDataset rDataset = new RasterFileDataset(); IRasterLayer rLayer = rDataset.AddRasterFile(filename); if (rLayer != null) { sb.Append("\r\nCreateRasterCatalog -connectionstring \"" + layer._fdb.ConnectionString + "\" -ds \"" + layer.Name + "\" -append \"" + filename + "\" -managed"); } } } else if (instance is IRasterCatalogClass) { IRasterCatalogClass layer = (IRasterCatalogClass)instance; if (layer.Dataset == null) { return; } if (di.Exists) { sb.Append("\r\nCreateRasterCatalog -mdb \"" + ConfigTextStream.ExtractValue(layer.Dataset.ConnectionString, "mdb") + "\" -ds \"" + layer.Name + "\" -root \"" + filename + "\" -managed"); } else { //gView.Raster.File.RasterFileClass rLayer = new gView.Raster.File.RasterFileClass(null, filename); //if (!rLayer.isValid) continue; RasterFileDataset rDataset = new RasterFileDataset(); IRasterLayer rLayer = rDataset.AddRasterFile(filename); if (rLayer != null) { sb.Append("\r\nCreateRasterCatalog -mdb \"" + ConfigTextStream.ExtractValue(layer.Dataset.ConnectionString, "mdb") + "\" -ds \"" + layer.Name + "\" -append \"" + filename + "\" -managed"); } } } } if (sb.ToString() != "") { sb.Append(" -recalcspatialindex\r\n"); await _exAppl.ExecuteBatch(sb.ToString(), new ExplorerExecuteBatchCallback(this.RefreshList)); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }