3
* $Id: ivista.h 3763 2011-04-25 12:07:55Z carlos $
6
* Copyright 2008-10 MetaEmotion S.L. All rights reserved.
7
* http://ginkgo-cadx.com
9
* This file is licensed under LGPL v3 license.
10
* See License.txt for details
15
#include <api/globals.h>
16
#include <api/ilock.h>
19
#include <yasper/yasper.h>
22
//----------------------------------------------------------------------------------------------------
23
//region Forward Declarations
26
class vtkAlgorithmOutput;
31
class IControladorModulo;
32
class IContextoEstudio;
39
class IModeloIntegracion;
47
//----------------------------------------------------------------------------------------------------
48
//region Excepcion de tipo vista
49
class EXTAPI VistaException : public std::exception {
51
VistaException(const std::string& msg, const std::string& componente="Modelo", bool fatal = true) throw();
53
~VistaException() throw();
55
const std::string& GetComponent() const;
57
const std::string& GetCause() const;
59
std::string GetFullCause() const;
63
operator const std::string () const;
65
friend std::ostream& operator<<(std::ostream& out, const VistaException& ex);
67
friend std::ostream& operator<<(std::ostream& out, const VistaException* ex);
71
std::string component;
76
//----------------------------------------------------------------------------------------------------
77
//region Interfaz de vistas
79
class EXTAPI IVista : public GNC::GCS::ILockable {
83
IVista(const GnkPtr<GNC::GCS::IContextoEstudio>& estudio);
88
virtual std::string& GetTitulo();
90
virtual wxWindow* GetWindow() = 0;
92
virtual bool SoportaHerramienta(GNC::GCS::IHerramienta* pHerramienta);
94
virtual bool SoportaGuardar() = 0;
96
virtual bool SoportaExportar() = 0;
98
/* Notificacion de cambio en la configuracion */
99
virtual void OnConfiguracionCambiada();
101
virtual void Activar();
103
virtual void Desactivar();
105
/* Obtiene el identificador unico del modulo al que pertenece */
106
virtual const std::string& GetUIDModulo();
108
/* Obtiene el modulo al que pertenece */
109
virtual GNC::GCS::IControladorModulo* GetModulo();
111
GnkPtr<GNC::GCS::IContextoEstudio>& GetEstudio();
113
virtual bool EstaCargada();
115
virtual bool EstaModificada();
117
virtual void SetCargada(bool cargada = true);
119
virtual bool Guardar();
121
virtual const std::vector<std::string> GetRutasImagenes() const;
122
virtual const std::vector<std::string> GetRutasDiagnosticos() const;
124
virtual void ActivarRuta(const std::string& path);
126
//----------------------------------------------------------------------------------------------------
127
//region Interfaz de Carga
129
// Comienzo de carga. Metodo sincrono con la interfaz.
130
virtual void OnCargaIniciada() = 0;
132
// Paso 1: Cargar el estudio. Metodo NO sincrono con la interfaz.
133
virtual void CargarEstudio(GNC::GCS::IComando* pCmdInvocador) = 0;
135
// Finalizacion de la carga. Metodo sincrono con la interfaz.
136
virtual void OnCargaFinalizada() = 0;
138
// Paso 2: Inicializacion del pipeline. Metodo sincrono con la interfaz.
139
virtual void IniciarPipeline() = 0;
141
// Parada del pipeline. Metodo sincrono con la interfaz Se invoca en el caso de que ocurra un error de carga.
142
virtual void DetenerPipeline() = 0;
147
// Estudio is a pointer to GnkPtr to avoid circular dependencies.
148
GnkPtr<GNC::GCS::IContextoEstudio>* Estudio;
151
std::string m_Titulo;