using DataLoader.CS;
|
using DataLoader.Model;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.ComponentModel;
|
using System.IO;
|
using System.Linq;
|
using System.Threading;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
|
namespace DataLoader
|
{
|
public partial class MainWindow : Window
|
{
|
private bool isBusy;
|
|
public ResWin resWin;
|
|
private LoginWin loginWin;
|
|
private ObservableCollection<ViewData> viewDatas = new ObservableCollection<ViewData>();
|
|
public MainWindow()
|
{
|
InitializeComponent();
|
this.DataContext = this;
|
}
|
|
// 窗口加载完成
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
{
|
CommonProp.Owner = this;
|
CommonProp.Init();
|
|
this.btnLoad.IsEnabled = false;
|
this.btnDel.IsEnabled = false;
|
this.btnImport.IsEnabled = false;
|
|
lvView.DataContext = viewDatas;
|
lvView.SetBinding(ListView.ItemsSourceProperty, new Binding());
|
|
// string md5 = MD5Helper.GetMD5Hash("E:\\data\\mpt\\A4mpt20131125.mpt");
|
LogOut.Info("************ 应用程序启动成功! ************");
|
}
|
|
// 获取元数据类型
|
private List<MetaType> GetMetaTypes()
|
{
|
List<MetaType> list = new List<MetaType>();
|
list.Add(new MetaType("默认"));
|
list.Add(new MetaType("数字正射影像图"));
|
list.Add(new MetaType("数字高程模型"));
|
list.Add(new MetaType("单波段栅格数据"));
|
list.Add(new MetaType("多光谱栅格数据"));
|
list.Add(new MetaType("高光谱栅格数据"));
|
list.Add(new MetaType("矢量图层"));
|
list.Add(new MetaType("三维模型"));
|
|
return list;
|
}
|
|
// 登录
|
private void Login_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
loginWin = new LoginWin();
|
this.Hide();
|
loginWin.Show();
|
}
|
|
// 设置登录信息
|
public void SetLoginInfo()
|
{
|
if (loginWin != null) loginWin.Close();
|
this.Show();
|
|
this.tbUid.Text = CommonProp.UserId.ToString();
|
this.tbUname.Text = CommonProp.Uname;
|
this.tbToken.Text = CommonProp.Token;
|
|
this.btnLoad.IsEnabled = true;
|
this.btnImport.IsEnabled = true;
|
}
|
|
// 资源目录
|
private void Dir_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
if (null == resWin) resWin = new ResWin();
|
this.Hide();
|
this.resWin.Show();
|
}
|
|
// 设置资源信息
|
public void SetRes(string dircode, string fullName)
|
{
|
this.Show();
|
|
if (!string.IsNullOrEmpty(dircode))
|
{
|
CommonProp.Dircode = dircode;
|
this.tbDir.Text = fullName;
|
}
|
}
|
|
// 数据目录
|
private void Source_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog();
|
if (!String.IsNullOrEmpty(CommonProp.SourcePath) && Directory.Exists(CommonProp.SourcePath)) dialog.SelectedPath = CommonProp.SourcePath;
|
|
System.Windows.Forms.DialogResult result = dialog.ShowDialog();
|
if (result == System.Windows.Forms.DialogResult.Cancel) return;
|
|
this.tbSource.Text = CommonProp.SourcePath = dialog.SelectedPath.Trim();
|
}
|
|
// 目标目录
|
private void Target_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog();
|
if (!String.IsNullOrEmpty(CommonProp.TargetPath) && Directory.Exists(CommonProp.TargetPath)) dialog.SelectedPath = CommonProp.TargetPath;
|
|
System.Windows.Forms.DialogResult result = dialog.ShowDialog();
|
if (result == System.Windows.Forms.DialogResult.Cancel) return;
|
|
this.tbTarget.Text = CommonProp.TargetPath = dialog.SelectedPath.Trim();
|
}
|
|
// 加载
|
private void Load_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
if (isBusy) return;
|
if (string.IsNullOrEmpty(CommonProp.Dircode))
|
{
|
MessageBox.Show("请选择资源目录!", "提示");
|
return;
|
}
|
|
CommonProp.SourcePath = this.tbSource.Text.Trim();
|
if (string.IsNullOrEmpty(CommonProp.SourcePath) || !Directory.Exists(CommonProp.SourcePath))
|
{
|
MessageBox.Show("请选择数据目录或数据目录不存在!", "提示");
|
return;
|
}
|
|
CommonProp.TargetPath = this.tbTarget.Text.Trim();
|
if (string.IsNullOrEmpty(CommonProp.TargetPath) || !Directory.Exists(CommonProp.TargetPath))
|
{
|
MessageBox.Show("请选择入库目录或入库目录不存在!", "提示");
|
return;
|
}
|
|
ContentControl ccSensor = this.tbSensorType.SelectedItem as ContentControl;
|
int.TryParse(ccSensor.Tag.ToString(), out CommonProp.SensorType);
|
|
ContentControl ccMeta = this.cbMetaType.SelectedItem as ContentControl;
|
int.TryParse(ccMeta.Tag.ToString(), out CommonProp.MetaType);
|
|
CommonProp.AcqTime = this.dpAcqTime.SelectedDate;
|
|
this.isBusy = true;
|
this.viewDatas.Clear();
|
Importor.Loading(viewDatas);
|
this.isBusy = false;
|
}
|
|
// 删除
|
private void Del_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
if (null == this.viewDatas || this.viewDatas.Count == 0) return;
|
|
int i = 0;
|
while (i < this.viewDatas.Count)
|
{
|
if (this.viewDatas[i] != null && this.viewDatas[i].Checked)
|
{
|
this.viewDatas.RemoveAt(i);
|
continue;
|
}
|
i++;
|
}
|
}
|
|
// 导入
|
private void Import_MouseLeftButtonDown(object sender, RoutedEventArgs e)
|
{
|
if (isBusy || viewDatas.Count == 0) return;
|
|
this.isBusy = true;
|
Thread thread = new Thread(new ThreadStart(() =>
|
{
|
Importor.ImportFiles(viewDatas);
|
|
lvView.Dispatcher.BeginInvoke((ThreadStart)delegate
|
{
|
ICollectionView view = CollectionViewSource.GetDefaultView(viewDatas);
|
view.Refresh();
|
});
|
|
isBusy = false;
|
MessageBox.Show("数据导入完成!", "提示");
|
}));
|
thread.Start();
|
}
|
|
// 窗口关闭中事件
|
private void Window_Closing(object sender, CancelEventArgs e)
|
{
|
if (isBusy)
|
{
|
MessageBox.Show("正在导入数据,请稍后~", "提示");
|
e.Cancel = true;
|
return;
|
}
|
}
|
}
|
}
|