Avances marchanod una de
parent
24e0cd9697
commit
a1d381ccbd
|
|
@ -21,6 +21,7 @@ using OliviaAddInPro.Model;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using OliviaAddInPro.View;
|
using OliviaAddInPro.View;
|
||||||
|
using OliviaAddInPro.Model.contract;
|
||||||
|
|
||||||
namespace OliviaAddInPro.Helper
|
namespace OliviaAddInPro.Helper
|
||||||
{
|
{
|
||||||
|
|
@ -816,7 +817,7 @@ namespace OliviaAddInPro.Helper
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ExportShp2(string pathLayerIn, SpatialQueryFilter filter, string nameShp, string outpath, CancelableProgressorSource cps, int incmax=100)
|
public static bool ExportShp2(string pathLayerIn, SpatialQueryFilter filter, string nameShp, string outpath, IprocessManager cps, int incmax=100)
|
||||||
{
|
{
|
||||||
if (!System.IO.Directory.Exists(outpath))
|
if (!System.IO.Directory.Exists(outpath))
|
||||||
System.IO.Directory.CreateDirectory(outpath);
|
System.IO.Directory.CreateDirectory(outpath);
|
||||||
|
|
@ -858,9 +859,9 @@ namespace OliviaAddInPro.Helper
|
||||||
///Exporta
|
///Exporta
|
||||||
string[] args = { pathLayerIn, outpath, nameShp, whereClause };
|
string[] args = { pathLayerIn, outpath, nameShp, whereClause };
|
||||||
// execute the tool
|
// execute the tool
|
||||||
uint valini = cps.Value;
|
double valini = cps.GetProgress(); ;
|
||||||
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args,
|
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args,
|
||||||
null, cps.CancellationTokenSource.Token,
|
null, null,
|
||||||
|
|
||||||
(event_name, o) => // implement delegate and handle events
|
(event_name, o) => // implement delegate and handle events
|
||||||
{
|
{
|
||||||
|
|
@ -885,7 +886,7 @@ namespace OliviaAddInPro.Helper
|
||||||
var av = (int)o;
|
var av = (int)o;
|
||||||
if (av > 0)
|
if (av > 0)
|
||||||
{
|
{
|
||||||
cps.Value += (uint)((float)av/100*Math.Min(incmax, cps.Max-valini));
|
cps.SetProgress( cps.GetProgress()+ ((double)av/100*Math.Min(incmax, 100-valini)));
|
||||||
}
|
}
|
||||||
// if ((int)o < 0)
|
// if ((int)o < 0)
|
||||||
//System.Windows.MessageBox.Show(msg2);
|
//System.Windows.MessageBox.Show(msg2);
|
||||||
|
|
@ -897,7 +898,7 @@ namespace OliviaAddInPro.Helper
|
||||||
|
|
||||||
if (gpResult.IsCanceled)
|
if (gpResult.IsCanceled)
|
||||||
{
|
{
|
||||||
cps.CancellationTokenSource.Cancel();
|
cps.Setcancelled();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(gpResult.IsFailed)
|
if(gpResult.IsFailed)
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ using ArcGIS.Desktop.Framework.Dialogs;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
||||||
|
using OliviaAddInPro.Model.contract;
|
||||||
|
|
||||||
namespace OliviaAddInPro.Helper
|
namespace OliviaAddInPro.Helper
|
||||||
{
|
{
|
||||||
|
|
@ -85,22 +86,23 @@ namespace OliviaAddInPro.Helper
|
||||||
|
|
||||||
public class MyCancelableProgressorSource
|
public class MyCancelableProgressorSource
|
||||||
{
|
{
|
||||||
public CancelableProgressorSource _ProgrSrc;
|
public IprocessManager _ProgrSrc;
|
||||||
public MyCancelableProgressorSource(ProgressDialog prodlg)
|
public MyCancelableProgressorSource(IprocessManager prodlg)
|
||||||
{
|
{
|
||||||
_ProgrSrc = new CancelableProgressorSource(prodlg);
|
_ProgrSrc = prodlg;
|
||||||
_ProgrSrc.Max = 100;
|
|
||||||
}
|
}
|
||||||
public void Init(string stat)
|
public void Init(string stat)
|
||||||
{
|
{
|
||||||
_ProgrSrc.Value = 0;
|
_ProgrSrc.SetProgress(0);
|
||||||
_ProgrSrc.Status = stat;
|
_ProgrSrc.SetProceso(stat);
|
||||||
}
|
}
|
||||||
public void IncMessage(uint inc, string mes)
|
public void IncMessage(uint inc, string mes)
|
||||||
{
|
{
|
||||||
if ((_ProgrSrc.Value + inc) < _ProgrSrc.Max)
|
var prog = _ProgrSrc.GetProgress() + inc;
|
||||||
_ProgrSrc.Value += inc;
|
if (prog > 100)
|
||||||
_ProgrSrc.Message = mes;
|
prog = 100;
|
||||||
|
_ProgrSrc.SetProgress(prog);
|
||||||
|
_ProgrSrc.SetEstado(mes);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ namespace OliviaAddInPro.Model
|
||||||
Serv = new LimpiezaServ(this);
|
Serv = new LimpiezaServ(this);
|
||||||
LanzaSrv = new LanzaLimpSrv();
|
LanzaSrv = new LanzaLimpSrv();
|
||||||
ProceSrv = new ProcesoEjecServ();
|
ProceSrv = new ProcesoEjecServ();
|
||||||
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
|
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog.GetViewModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
public TareaRes Ejecuta(ModosEjec modo)
|
public TareaRes Ejecuta(ModosEjec modo)
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ namespace OliviaAddInPro.Model
|
||||||
//ya al menos una primera vez
|
//ya al menos una primera vez
|
||||||
//se pone este estado cuando ha terminado ya la primera vez
|
//se pone este estado cuando ha terminado ya la primera vez
|
||||||
}
|
}
|
||||||
|
|
||||||
static class OliviaGlob
|
static class OliviaGlob
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
@ -102,7 +103,7 @@ namespace OliviaAddInPro.Model
|
||||||
}
|
}
|
||||||
public static EjecServ Serv { get; } = new EjecServ();
|
public static EjecServ Serv { get; } = new EjecServ();
|
||||||
public static SpatialReference SpatRef { get; set; } = null;
|
public static SpatialReference SpatRef { get; set; } = null;
|
||||||
public static ProgressDialog progrDialog { get; set; } = null;
|
public static MarchandoUnaDe progrDialog { get; set; } = null;
|
||||||
#endregion Properties
|
#endregion Properties
|
||||||
|
|
||||||
public static void Inicia()
|
public static void Inicia()
|
||||||
|
|
@ -111,7 +112,7 @@ namespace OliviaAddInPro.Model
|
||||||
IniDefault();
|
IniDefault();
|
||||||
LimpiezaDef.iniciaLimpDef();
|
LimpiezaDef.iniciaLimpDef();
|
||||||
RecogidaDef.iniciaRecoDef();
|
RecogidaDef.iniciaRecoDef();
|
||||||
progrDialog = new ProgressDialog("Procesando", Resource1.String_cancel_progreso, 100, false);
|
progrDialog = new MarchandoUnaDe();
|
||||||
limp = new Limpieza();
|
limp = new Limpieza();
|
||||||
reco = new Recogida();
|
reco = new Recogida();
|
||||||
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ namespace OliviaAddInPro.Model
|
||||||
public Recogida()
|
public Recogida()
|
||||||
{
|
{
|
||||||
Serv = new RecogidaServ(this);
|
Serv = new RecogidaServ(this);
|
||||||
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
|
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog.GetViewModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace OliviaAddInPro.Model.contract
|
||||||
|
{
|
||||||
|
public interface IprocessManager
|
||||||
|
{
|
||||||
|
void SetProceso(string proceso);
|
||||||
|
void SetEstado(string estado);//estado del proceso
|
||||||
|
void SetProgress(double progresPorcent);
|
||||||
|
double GetProgress();
|
||||||
|
bool Getcancelled();
|
||||||
|
void Setcancelled();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -140,6 +140,7 @@
|
||||||
<Compile Include="Helper\HelperGdb.cs" />
|
<Compile Include="Helper\HelperGdb.cs" />
|
||||||
<Compile Include="Helper\HelperGlobal.cs" />
|
<Compile Include="Helper\HelperGlobal.cs" />
|
||||||
<Compile Include="Model\ComunDef.cs" />
|
<Compile Include="Model\ComunDef.cs" />
|
||||||
|
<Compile Include="Model\contract\IprocessManager.cs" />
|
||||||
<Compile Include="Model\ESRI.ArcGIS.Geometry.esriSRProjCS4Type.cs" />
|
<Compile Include="Model\ESRI.ArcGIS.Geometry.esriSRProjCS4Type.cs" />
|
||||||
<Compile Include="Model\Recogida.cs" />
|
<Compile Include="Model\Recogida.cs" />
|
||||||
<Compile Include="Model\RecogidaDef.cs" />
|
<Compile Include="Model\RecogidaDef.cs" />
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ namespace OliviaAddInPro.Services
|
||||||
ErrStr = "Error al exportar los ámbitos: " + HelperGdb.OutStr;
|
ErrStr = "Error al exportar los ámbitos: " + HelperGdb.OutStr;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (com.ProgrSrc._ProgrSrc.CancellationTokenSource.IsCancellationRequested)
|
if (com.ProgrSrc._ProgrSrc.Getcancelled())
|
||||||
{
|
{
|
||||||
ErrStr = Resource1.String_cancel_progreso;
|
ErrStr = Resource1.String_cancel_progreso;
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -211,7 +211,7 @@ namespace OliviaAddInPro.Services
|
||||||
}
|
}
|
||||||
//guarda los nombres del shape
|
//guarda los nombres del shape
|
||||||
OliviaGlob.Paths.PathNW = OliviaGlob.Paths.DirData + com.NombreShpExportNw;
|
OliviaGlob.Paths.PathNW = OliviaGlob.Paths.DirData + com.NombreShpExportNw;
|
||||||
if (com.ProgrSrc._ProgrSrc.CancellationTokenSource.IsCancellationRequested)
|
if (com.ProgrSrc._ProgrSrc.Getcancelled())
|
||||||
{
|
{
|
||||||
ErrStr = Resource1.String_cancel_progreso;
|
ErrStr = Resource1.String_cancel_progreso;
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
||||||
using OliviaAddIn;
|
using OliviaAddIn;
|
||||||
using OliviaAddInPro.Model;
|
using OliviaAddInPro.Model;
|
||||||
|
using OliviaAddInPro.Model.contract;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -28,7 +29,7 @@ namespace OliviaAddInPro.Services
|
||||||
string tarea = "";
|
string tarea = "";
|
||||||
public string err_str = "";
|
public string err_str = "";
|
||||||
double x, y;
|
double x, y;
|
||||||
CancelableProgressorSource cps;
|
IprocessManager cps;
|
||||||
enum TiposActu
|
enum TiposActu
|
||||||
{
|
{
|
||||||
ActuMal,
|
ActuMal,
|
||||||
|
|
@ -50,7 +51,7 @@ namespace OliviaAddInPro.Services
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
public Respuesta<bool> start(string cfg, CancelableProgressorSource cps)
|
public Respuesta<bool> start(string cfg, IprocessManager cps)
|
||||||
{
|
{
|
||||||
this.cps = cps;
|
this.cps = cps;
|
||||||
soc = new Cstr_socket();
|
soc = new Cstr_socket();
|
||||||
|
|
@ -99,7 +100,7 @@ namespace OliviaAddInPro.Services
|
||||||
first_send_cfg = false;
|
first_send_cfg = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cps.Progressor.CancellationToken.IsCancellationRequested) //mira a ver si ha cancelado el usuario
|
if (cps.Getcancelled()) //mira a ver si ha cancelado el usuario
|
||||||
{
|
{
|
||||||
//se ha cancelado, lo envía al OliviaTask
|
//se ha cancelado, lo envía al OliviaTask
|
||||||
envia_cancel();
|
envia_cancel();
|
||||||
|
|
@ -441,7 +442,7 @@ namespace OliviaAddInPro.Services
|
||||||
*/
|
*/
|
||||||
private void pon_texto(String txt)
|
private void pon_texto(String txt)
|
||||||
{
|
{
|
||||||
cps.Message = txt;
|
cps.SetEstado(txt);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Para poder actualizar la barra de progreso hay que llamar a invoke
|
* Para poder actualizar la barra de progreso hay que llamar a invoke
|
||||||
|
|
@ -463,14 +464,14 @@ namespace OliviaAddInPro.Services
|
||||||
|
|
||||||
|
|
||||||
if ((actu == TiposActu.ActuMal) || (actu == TiposActu.ActuFinNOk))
|
if ((actu == TiposActu.ActuMal) || (actu == TiposActu.ActuFinNOk))
|
||||||
cps.Status = "Proceso Finalizado con errores.";
|
cps.SetProceso("Proceso Finalizado con errores.");
|
||||||
else if(actu == TiposActu.ActuFinOk)
|
else if(actu == TiposActu.ActuFinOk)
|
||||||
cps.Status = "Proceso Finalizado.";
|
cps.SetProceso("Proceso Finalizado.");
|
||||||
|
|
||||||
if (actu > TiposActu.ActuFinOk)
|
if (actu > TiposActu.ActuFinOk)
|
||||||
cps.Status = "Calculando...";
|
cps.SetEstado("Calculando...");
|
||||||
if ((actu == TiposActu.ActuPermu) && !cancela)
|
if ((actu == TiposActu.ActuPermu) && !cancela)
|
||||||
cps.Status = "Calculando Permutaciones..."; ;
|
cps.SetEstado("Calculando Permutaciones...");
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Para poder actualizar la barra de progreso hay que llamar a invoke
|
* Para poder actualizar la barra de progreso hay que llamar a invoke
|
||||||
|
|
@ -479,7 +480,7 @@ namespace OliviaAddInPro.Services
|
||||||
*/
|
*/
|
||||||
private void pon_progr(int pro)
|
private void pon_progr(int pro)
|
||||||
{
|
{
|
||||||
cps.Value = (uint)pro;
|
cps.SetProgress( pro);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using ArcGIS.Desktop.Framework.Contracts;
|
using ArcGIS.Desktop.Framework.Contracts;
|
||||||
|
using OliviaAddInPro.Model.contract;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -7,7 +8,7 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OliviaAddInPro
|
namespace OliviaAddInPro
|
||||||
{
|
{
|
||||||
public class MarchandoUnaDeViewModel : PropertyChangedBase
|
public class MarchandoUnaDeViewModel : PropertyChangedBase, IprocessManager
|
||||||
{
|
{
|
||||||
|
|
||||||
private string textProceso;
|
private string textProceso;
|
||||||
|
|
@ -31,5 +32,34 @@ namespace OliviaAddInPro
|
||||||
set { base.SetProperty(ref progreso, value, () => Progreso); }
|
set { base.SetProperty(ref progreso, value, () => Progreso); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IprocessManager.SetProceso(string proceso)
|
||||||
|
{
|
||||||
|
TextProceso = proceso;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IprocessManager.SetEstado(string estado)
|
||||||
|
{
|
||||||
|
TextEstado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IprocessManager.SetProgress(double progresPorcent)
|
||||||
|
{
|
||||||
|
Progreso = progresPorcent;
|
||||||
|
}
|
||||||
|
|
||||||
|
double IprocessManager.GetProgress()
|
||||||
|
{
|
||||||
|
return Progreso;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IprocessManager.Getcancelled()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IprocessManager.Setcancelled()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -177,18 +177,10 @@ namespace OliviaAddInPro
|
||||||
public void Ejecuta(OliviaAddInPro.Services.ModosEjec modo)
|
public void Ejecuta(OliviaAddInPro.Services.ModosEjec modo)
|
||||||
{
|
{
|
||||||
string err = "";
|
string err = "";
|
||||||
marchando = new MarchandoUnaDe();
|
|
||||||
marchando.Show();
|
|
||||||
var vm= marchando.GetViewModel();
|
|
||||||
//marchando
|
//marchando
|
||||||
|
|
||||||
vm.Progreso = 50.0;
|
|
||||||
vm.TextProceso = "Proceso";
|
OliviaGlob.Limp.ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog.GetViewModel());
|
||||||
vm.TextEstado = "Estado";
|
|
||||||
using (var prog = new ProgressDialog("Procesando", Resource1.String_cancel_progreso, 100, false))
|
|
||||||
{
|
|
||||||
OliviaGlob.progrDialog = prog;
|
|
||||||
OliviaGlob.Limp.ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
|
|
||||||
OliviaGlob.progrDialog.Show();
|
OliviaGlob.progrDialog.Show();
|
||||||
|
|
||||||
//oculta la ventana
|
//oculta la ventana
|
||||||
|
|
@ -201,8 +193,8 @@ namespace OliviaAddInPro
|
||||||
}
|
}
|
||||||
|
|
||||||
Action<TareaRes> ac = OliviaGlob.finEjecuta;
|
Action<TareaRes> ac = OliviaGlob.finEjecuta;
|
||||||
OliviaGlob.Limp.EjecutaAsync2(modo, ac);
|
OliviaGlob.Limp.EjecutaAsync(modo, ac);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue