//----------------------------------------------------------- private CRuntimeConfigMapView GetRuntimeConfig(CDbKey keyConfig) { //TESTDBKEYOK CRuntimeConfigMapView runtime = null; m_dicRuntimes.TryGetValue(keyConfig, out runtime); return(runtime); }
//----------------------------------------------- private void PutInFront(CRuntimeConfigMapView runtime) { IEnumerable <CRuntimeConfigMapView> lst = GetRuntimesOrdered(); if (lst.Count() > 0) { runtime.ZOrder = lst.ElementAt(lst.Count() - 1).ZOrder + 1; } }
//------------------------------------------------- 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 void m_menuCalques_Opening(object sender, CancelEventArgs e) { m_bIsUpdatingMenu = true; foreach (ToolStripMenuItem item in m_menuCalques.Items) { CRuntimeConfigMapView runtime = item.Tag as CRuntimeConfigMapView; if (runtime != null) { item.Checked = runtime.IsVisible; } } m_bIsUpdatingMenu = false; }
//------------------------------------------------------------- private void SetupRuntime(CRuntimeConfigMapView runtime) { if (runtime == null) { return; } if (CFormFormulairePopup.EditeElement(runtime.Generator.Formulaire, runtime.Generator, I.T("Setup layer|20014"))) { runtime.IsCalculated = false; ShowLayers(); } }
void item_CheckedChanged(object sender, EventArgs e) { if (m_bIsUpdatingMenu) { return; } ToolStripMenuItem item = sender as ToolStripMenuItem; CRuntimeConfigMapView runtime = item != null ? item.Tag as CRuntimeConfigMapView : null; if (runtime != null) { runtime.IsVisible = item.Checked; PutInFront(runtime); ShowLayers(); } }
//----------------------------------------------------------- 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); }
//----------------------------------------------------------- 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 CResultAErreur SerializeState(C2iSerializer serializer) { int nVersion = GetNumVersionForState; CResultAErreur result = serializer.TraiteVersion(ref nVersion); double fLat = 0; double fLong = 0; double fZoom = 4; int nMapMode = (int)EMapStyle.Road; if (serializer.Mode == ModeSerialisation.Ecriture && m_gMap != null) { fLat = m_gMap.Position.Lat; fLong = m_gMap.Position.Lng; fZoom = m_gMap.Zoom; nMapMode = (int)MapStyle; } serializer.TraiteDouble(ref fLat); serializer.TraiteDouble(ref fLong); serializer.TraiteDouble(ref fZoom); serializer.TraiteInt(ref nMapMode); int nNbRuntimes = m_dicRuntimes.Count(); serializer.TraiteInt(ref nNbRuntimes); switch (serializer.Mode) { case ModeSerialisation.Ecriture: foreach (CRuntimeConfigMapView runtime in m_dicRuntimes.Values) { result = runtime.Serialize(serializer); if (!result) { return(result); } } break; case ModeSerialisation.Lecture: for (int nRuntime = 0; nRuntime < nNbRuntimes; nRuntime++) { CRuntimeConfigMapView runtime = new CRuntimeConfigMapView(); result = runtime.Serialize(serializer); if (!result) { return(result); } if (m_configAppliquee.PreserveLayers) { //si le runtime existe, il est mis à jour //TESTDBKEYOK CRuntimeConfigMapView existant = GetRuntimeConfig(runtime.KeyConfigMapDatabase); if (existant != null && existant.Generator != null) { existant.Generator.ClearVariables(); foreach (KeyValuePair <string, object> kv in runtime.Generator.ValeursVariables) { existant.Generator.SetValeurChamp(kv.Key, kv.Value); } existant.IsVisible = runtime.IsVisible; existant.ZOrder = runtime.ZOrder; } else if (runtime.Generator != null) { //TESTDBKEYOK m_dicRuntimes[runtime.KeyConfigMapDatabase] = runtime; } } } break; } if (serializer.Mode == ModeSerialisation.Lecture) { if (m_configAppliquee.PreserveCenter) { CenterLatitude = fLat; CenterLongitude = fLong; } if (m_configAppliquee.PreserveZoom) { Zoom = fZoom; } if (m_configAppliquee.PreserveMapMode) { MapStyle = (EMapStyle)nMapMode; } } 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(); } }