| | |
| | | using SimuTools.Tools; |
| | | using SimuTools.Domain; |
| | | using SimuTools.Tools; |
| | | using System; |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Windows.Forms; |
| | | |
| | |
| | | { |
| | | public partial class FrmMain : Form |
| | | { |
| | | private bool flag; |
| | | |
| | | public FrmMain() |
| | | { |
| | | InitializeComponent(); |
| | |
| | | private void FrmMain_Load(object sender, EventArgs e) |
| | | { |
| | | LogOut.Info("启动程序..."); |
| | | try |
| | | { |
| | | GdalHelper gdal = GdalHelper.Instance; |
| | | LogOut.Info("> 初始化GDAL完成 <"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogOut.Error(ex.StackTrace); |
| | | ShowErr("GDAL初始化出错:" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) |
| | |
| | | |
| | | private void btnTerrainPath_Click(object sender, EventArgs e) |
| | | { |
| | | selectFile(this.txtTerrainPath); |
| | | } |
| | | |
| | | private void btnBuildingPath_Click(object sender, EventArgs e) |
| | | { |
| | | selectFile(this.txtBuildingPath); |
| | | } |
| | | |
| | | private void selectFile(TextBox tb) |
| | | { |
| | | OpenFileDialog dialog = new OpenFileDialog(); |
| | | dialog.Filter = "Tif files(*.tif)|*.tif|Tiff files (*.tiff)|*.tiff"; |
| | | dialog.RestoreDirectory = true; |
| | | |
| | | string path = this.txtTerrainPath.Text.Trim(); |
| | | string path = tb.Text.Trim(); |
| | | if (File.Exists(path)) |
| | | { |
| | | dialog.InitialDirectory = Path.GetDirectoryName(path); |
| | |
| | | |
| | | if (dialog.ShowDialog() == DialogResult.OK) |
| | | { |
| | | this.txtTerrainPath.Text = dialog.FileName; |
| | | tb.Text = dialog.FileName; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | private void btnRun_Click(object sender, EventArgs e) |
| | | { |
| | | string serviceName = this.txtServiceName.Text.Trim(); |
| | | string terrainFile = this.txtTerrainPath.Text.Trim(); |
| | | string buildingFile = this.txtBuildingPath.Text.Trim(); |
| | | string waterPath = this.txtWaterPath.Text.Trim(); |
| | | string flowPath = this.txtFlowPath.Text.Trim(); |
| | | string outPath = this.txtOutPath.Text.Trim(); |
| | | |
| | | if (!File.Exists(terrainFile)) |
| | | if (string.IsNullOrEmpty(serviceName)) |
| | | { |
| | | ShowErr("地形文件,要求必须存在!"); |
| | | ShowErr("服务名称,要求必填!"); |
| | | return; |
| | | } |
| | | if (!File.Exists(terrainFile) || !File.Exists(buildingFile)) |
| | | { |
| | | ShowErr("地形和建筑文件,要求必须存在!"); |
| | | return; |
| | | } |
| | | if (!Directory.Exists(waterPath) || !Directory.Exists(flowPath) || !Directory.Exists(outPath)) |
| | |
| | | return; |
| | | } |
| | | |
| | | if (flag) return; |
| | | try |
| | | { |
| | | flag = true; |
| | | this.btnRun.Enabled = false; |
| | | LogOut.Info("开始运行 >>"); |
| | | Tools.Handle.Run(terrainFile, waterPath, flowPath, outPath); |
| | | LogOut.Info("运行结束 >>"); |
| | | flag = false; |
| | | |
| | | Stopwatch stopWatch = new Stopwatch(); |
| | | stopWatch.Start(); |
| | | Tools.Handle.Run(new Args(serviceName, terrainFile, buildingFile, waterPath, flowPath, outPath)); |
| | | stopWatch.Stop(); |
| | | |
| | | this.btnRun.Enabled = true; |
| | | LogOut.Info("运行结束 <<"); |
| | | MessageBox.Show("运行结束!\n耗时:" + GetSeconds(stopWatch.ElapsedMilliseconds) + " 秒", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | flag = false; |
| | | this.btnRun.Enabled = true; |
| | | LogOut.Error(ex.StackTrace); |
| | | ShowErr("运行出错:" + ex.Message); |
| | | } |
| | |
| | | { |
| | | MessageBox.Show(message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | } |
| | | |
| | | private string GetSeconds(long milliseconds) |
| | | { |
| | | return (milliseconds / 1000.0).ToString(); |
| | | } |
| | | } |
| | | } |