//--------------------------------------------------------------------- private void Init( CConfigWndMapView config, CObjetPourSousProprietes objetEdite, IFournisseurProprietesDynamiques fournisseurProprietes) { m_configEditee = config; m_fournisseurProprietes = fournisseurProprietes; m_objetEdite = objetEdite; m_txtFormuleLatitude.Init(FournisseurProprietes, ObjetEdite); m_txtFormuleLongitude.Init(FournisseurProprietes, ObjetEdite); m_txtFormuleZoom.Init(FournisseurProprietes, ObjetEdite); m_txtFormuleKeepState.Init(FournisseurProprietes, ObjetEdite); m_txtFormuleLatitude.Formule = m_configEditee.FormuleLatitude; m_txtFormuleLongitude.Formule = m_configEditee.FormuleLongitude; m_txtFormuleZoom.Formule = m_configEditee.FormuleZoomFactor; m_txtFormuleKeepState.Formule = m_configEditee.FormulePreserveStateKey; m_chkPreserveCenter.Checked = m_configEditee.PreserveCenter; m_chkPreserveLayers.Checked = m_configEditee.PreserveLayers; m_chkPreserveMapMode.Checked = m_configEditee.PreserveMapMode; m_chkPreserveZoom.Checked = m_configEditee.PreserveZoom; m_rbtnViewMap.Checked = config.MapMode == EWndMapMode.Map; m_rbtnAerial.Checked = config.MapMode == EWndMapMode.Aerial; m_rbtnHybride.Checked = config.MapMode == EWndMapMode.Hybrid; CListeObjetDonneeGenerique <CConfigMapDatabase> lstConfigs = CConfigMapDatabase.GetConfigsFor( CContexteDonneeSysteme.GetInstance(), objetEdite); m_wndListeCalques.BeginUpdate(); foreach (CConfigMapDatabase configDB in lstConfigs) { bool bIsChecked = false; //TESTDBKEYOK CConfigCalqueMap configCalque = m_configEditee.GetConfigForCalque(configDB.DbKey); if (configCalque == null) { configCalque = new CConfigCalqueMap(); //TESTDBKEYOK configCalque.KeyConfigMapDatabase = configDB.DbKey; } else { bIsChecked = true; } configCalque.generator = configDB.MapGenerator; ListViewItem item = new ListViewItem(configDB.Libelle); item.Tag = configCalque; item.Checked = bIsChecked; m_wndListeCalques.Items.Add(item); } m_wndListeCalques.EndUpdate(); }
//------------------------------------------------- public static CRuntimeConfigMapView CreateFromConfig(CConfigMapDatabase config) { if (config == null) { return(null); } CRuntimeConfigMapView runtime = new CRuntimeConfigMapView(); //TESTDBKEYTOK runtime.m_keyConfigMapDatabase = config.DbKey; runtime.m_generator = config.MapGenerator; return(runtime); }
//----------------------------------------------------------- private CRuntimeConfigMapView GetOrCreateRuntimeConfig(CConfigMapDatabase config) { if (config == null) { return(null); } //TESTDBKEYOK CRuntimeConfigMapView runtime = GetRuntimeConfig(config.DbKey); if (runtime == null) { //TESTDBKEYOK runtime = CRuntimeConfigMapView.CreateFromConfig(config); m_dicRuntimes[config.DbKey] = runtime; } return(runtime); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CConfigMapDatabase config = (CConfigMapDatabase)objet; if (config.Libelle == "") { result.EmpileErreur(I.T("Map setup should not be empty|20000")); } if (!CObjetDonneeAIdNumerique.IsUnique(config, CConfigMapDatabase.c_champLibelle, config.Libelle)) { result.EmpileErreur(I.T("Map setup '@1' already exist|20001", config.Libelle)); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//----------------------------------------------------------- private void FillMenuCalques() { CListeObjetDonneeGenerique <CConfigMapDatabase> liste = CConfigMapDatabase.GetConfigsFor( m_objetSource is IObjetAContexteDonnee?((IObjetAContexteDonnee)m_objetSource).ContexteDonnee:CContexteDonneeSysteme.GetInstance(), m_objetSource == null ? null : m_objetSource.GetType()); foreach (CConfigMapDatabase config in liste) { ToolStripMenuItem item = new ToolStripMenuItem(config.Libelle); CRuntimeConfigMapView runtime = null; //TESTDBKEYOK m_dicRuntimes.TryGetValue(config.DbKey, out runtime); if (runtime == null) { runtime = GetOrCreateRuntimeConfig(config); } item.Tag = runtime; item.CheckedChanged += new EventHandler(item_CheckedChanged); item.MouseUp += new MouseEventHandler(item_MouseUp); item.ToolTipText = I.T("Right click to setup|20013"); m_menuCalques.Items.Add(item); } }
//------------------------------------------------------------------------- public CFormEditionConfigMapDataBase(CConfigMapDatabase ConfigMap, CListeObjetsDonnees liste) : base(ConfigMap, liste) { // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); }
//------------------------------------------------------------------------- public CFormEditionConfigMapDataBase(CConfigMapDatabase ConfigMap) : base(ConfigMap) { // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); }
//---------------------------------------------------------- public CResultAErreur Serialize(C2iSerializer serializer) { int nVersion = GetNumVersion(); CResultAErreur result = serializer.TraiteVersion(ref nVersion); if (!result) { return(result); } //TESTDBKEYOK if (nVersion < 1) { serializer.ReadDbKeyFromOldId(ref m_keyConfigMapDatabase, typeof(CConfigMapDatabase)); } else { serializer.TraiteDbKey(ref m_keyConfigMapDatabase); } if (serializer.Mode == ModeSerialisation.Lecture) { CConfigMapDatabase db = new CConfigMapDatabase(CContexteDonneeSysteme.GetInstance()); //TESTDBKEYOK if (!db.ReadIfExists(m_keyConfigMapDatabase)) { m_generator = null; } else { m_generator = db.MapGenerator; } } serializer.TraiteInt(ref m_nZOrder); serializer.TraiteBool(ref m_bIsVisible); List <KeyValuePair <string, object> > valeurs = new List <KeyValuePair <string, object> >(); if (m_generator != null) { foreach (KeyValuePair <string, object> kv in m_generator.ValeursVariables) { if (kv.Value != null && C2iSerializer.GetTypeSimple(kv.Value.GetType()) != C2iSerializer.EnumTypeSimple.Inconnu) { valeurs.Add(kv); } } } int nNbValeurs = valeurs.Count(); serializer.TraiteInt(ref nNbValeurs); switch (serializer.Mode) { case ModeSerialisation.Ecriture: foreach (KeyValuePair <string, object> kv in valeurs) { string strIdVar = kv.Key; object value = kv.Value; //TESTDBKEYOK serializer.TraiteString(ref strIdVar); result = serializer.TraiteObjetSimple(ref value); if (!result) { return(result); } } break; case ModeSerialisation.Lecture: if (m_generator != null) { m_generator.ClearVariables(); } for (int nVar = 0; nVar < nNbValeurs; nVar++) { string strIdVar = ""; object value = null; if (nVersion < 1) { int nIdTemp = -1; serializer.TraiteInt(ref nIdTemp); strIdVar = nIdTemp.ToString(); } else { serializer.TraiteString(ref strIdVar); } result = serializer.TraiteObjetSimple(ref value); if (!result) { return(result); } if (m_generator != null) { m_generator.SetValeurChamp(strIdVar, value); } } break; } return(result); }
//----------------------------------------------------------- public void ApplyConfig( CConfigWndMapView config, object source) { m_configAppliquee = config; CResultAErreur result = CResultAErreur.True; m_objetSource = source; CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(source); if (config.FormuleLatitude != null) { result = config.FormuleLatitude.Eval(contexteEval); if (result && result.Data is double || result.Data is int) { CenterLatitude = Convert.ToDouble(result.Data); } } if (config.FormuleLongitude != null) { result = config.FormuleLongitude.Eval(contexteEval); if (result && result.Data is double || result.Data is int) { CenterLongitude = Convert.ToDouble(result.Data); } } if (config.FormuleZoomFactor != null) { result = config.FormuleZoomFactor.Eval(contexteEval); if (result && result.Data is double || result.Data is int) { Zoom = Convert.ToDouble(result.Data); } } m_strPreserveStateKey = ""; if (config.FormulePreserveStateKey != null) { result = config.FormulePreserveStateKey.Eval(contexteEval); if (result && result.Data != null) { m_strPreserveStateKey = result.Data.ToString(); } } foreach (CConfigCalqueMap calqueConf in config.ConfigsCalques) { CRuntimeConfigMapView runtime = null; //TESTDBKEYOK m_dicRuntimes.TryGetValue(calqueConf.KeyConfigMapDatabase, out runtime); if (runtime == null) { runtime = new CRuntimeConfigMapView(); //TESTDBKEYOK runtime.KeyConfigMapDatabase = calqueConf.KeyConfigMapDatabase; } if (runtime.Generator == null) { CConfigMapDatabase configInDb = new CConfigMapDatabase(CContexteDonneeSysteme.GetInstance()); //TESTDBKEYOK if (!configInDb.ReadIfExists(calqueConf.KeyConfigMapDatabase)) { continue;//bizarre, mais ça peut arriver } runtime.Generator = configInDb.MapGenerator; } //TESTDBKEYOK m_dicRuntimes[runtime.KeyConfigMapDatabase] = runtime; runtime.IsVisible = true; runtime.Generator.ClearVariables(); foreach (CFormuleNommee formule in calqueConf.ValeursVariablesFiltre) { if (formule.Formule != null) { try { string strVal = formule.Id; // TESTDBKEYOK if (runtime.Generator.GetVariable(strVal) != null) { result = formule.Formule.Eval(contexteEval); if (result) { runtime.Generator.SetValeurChamp(strVal, result.Data); } } } catch { } } } runtime.IsCalculated = false; } if (m_strPreserveStateKey != null && m_configAppliquee != null) { string strState = C2iRegistre.GetValueInRegistreApplication(c_strCleRegistre, m_strPreserveStateKey, ""); if (strState != "") { CStringSerializer serializer = new CStringSerializer(strState, ModeSerialisation.Lecture); SerializeState(serializer); } } ShowLayers(); if (config.FormuleLatitude == null || config.FormuleLongitude == null || config.FormuleZoomFactor == null) { AutoZoomAndCenter(); } }