コード例 #1
0
        //---------------------------------------------------------------------
        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();
        }
コード例 #2
0
        //-------------------------------------------------
        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);
        }
コード例 #3
0
        //-----------------------------------------------------------
        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);
        }
コード例 #4
0
        //-------------------------------------------------------------------
        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);
        }
コード例 #5
0
        //-----------------------------------------------------------
        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);
            }
        }
コード例 #6
0
 //-------------------------------------------------------------------------
 public CFormEditionConfigMapDataBase(CConfigMapDatabase ConfigMap, CListeObjetsDonnees liste)
     : base(ConfigMap, liste)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
コード例 #7
0
 //-------------------------------------------------------------------------
 public CFormEditionConfigMapDataBase(CConfigMapDatabase ConfigMap)
     : base(ConfigMap)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
コード例 #8
0
        //----------------------------------------------------------
        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);
        }
コード例 #9
0
        //-----------------------------------------------------------
        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();
            }
        }