Exemple #1
0
        public Form1()
        {
            InitializeComponent();
            // MyWSIM = new WaterSimManager_DB(".", ".");
            SQLServer ServerType         = SQLServer.stText;
            string    TheDefaultDatabase = Path.GetDirectoryName(Application.ExecutablePath);

            MyWSIM = new WaterSimManager_DB(ServerType, ".", ".", TheDefaultDatabase, "", "", "", "");
            //            MyWSIM = new WaterSimManager_SIO(".", ".");
            //UnitData TheData = null;
            //TheData = MyWSIM.TheCRFNetwork.CRFUnitData;

            // This add some groups for the west data
            WaterSimDCDC.WestTools.AddWestParameterGroups(MyWSIM);

            SetupPhrasesAndColors();

            foreach (string name in MyWSIM.WaterSimWestModel.UnitModelNames)
            {
                DisplaySankeyMenuItem.DropDownItems.Add(name);
                SanKeyGraphcomboBox.Items.Add(name);
            }

            parameterTreeView1.ParameterManager = MyWSIM.ParamManager;

            // Set al;l Industry to purple, default is red
            foreach (WaterSimCRFModel WSM in MyWSIM.WaterSimWestModel.WaterSimCRFModels)
            {
                WSM.TheCRFNetwork.Industrial.Color = Color.Purple;
            }
            // Reset Size of Sankey Graph
            sankeyGraphUnit.Width = SankeyGraphPanel.Width - 2;
            sankeyGraphUnit.Invalidate();
            Application.DoEvents();
            // Ok, reset the graph
            ResetSanKeyGraphUnit(ModelUnitName);
            // Create the chart manager
            MyCM = new ChartManager(chart1, "MyCHart");
            // Setup Input Tree
            treeViewInput.CheckBoxes = true;
            foreach (int emp in MyWSIM.ParamManager.eModelParameters())
            {
                ModelParameterClass MP = MyWSIM.ParamManager.Model_Parameter(emp);
                if (MP.isInputParam)
                {
                    treeViewInput.Nodes.Add(new ParameterTreeNode(MP));
                }
            }
            // Setup MultiSankey Window
            MyMultiSankey = new ShowMultipleSankeyV1(MyWSIM);
            MyMultiSankey.Hide();
            //regionTreeViewClass1.WaterSim = MyWSIM;
            regionTreeViewClass1.WaterSim        = MyWSIM;
            regionTreeViewClass1.CallBackHandler = RegionTreeViewCallback;


            // LoadParameterDropDown();
        }
Exemple #2
0
        private void toolStripMenuItem2_Click(object sender, EventArgs e)
        {
            openFileDialog1.DefaultExt       = "csv";
            openFileDialog1.Filter           = "csv files|*.csv";
            openFileDialog1.InitialDirectory = MyWSIM.DbConnection.Database;
            bool   OkToUse = false;
            string errMsg  = "";

            openFileDialog1.ShowDialog();
            string TempFilename = openFileDialog1.FileName;

            try
            {
                // THis is tedious, UNIDB Text server expects files to be in the Database ie the directory of the database,
                // and it expects the filename to be like a tablename, ie no path, just relative to teh database/directory,
                //  but text files can be open anywhere and have a path associated with them.
                // So we need to check for this, strip off the directory of the file and change the database if different
                string TempDir       = Path.GetDirectoryName(TempFilename);
                string TempTableName = Path.GetFileName(TempFilename);
                if (MyWSIM.DbConnection.Database.ToUpper() != TempDir.ToUpper())
                {
                    MyWSIM.DbConnection.ChangeDatabase(TempDir);
                }
                bool      isErr = false;
                DataTable Temp  = MyWSIM.LoadWaterSimTable(TempTableName);
                OkToUse = WaterSimManager_DB.Valid_DataTable(Temp);
                if (OkToUse)
                {
                    TheFileNameForData = TempTableName;
                }
                else
                {
                    errMsg = "File does not contain the required fieldnames : ";
                    foreach (string str in WaterSimManager_DB.RequiredFields)
                    {
                        errMsg += str + "  ";
                    }
                }
            }
            catch (Exception ex)
            {
                errMsg  = ex.Message;
                OkToUse = false;
            }
            if (!OkToUse)
            {
                MessageBox.Show("Unable to Use " + TempFilename + " - " + errMsg);
            }
            else
            {
                string JustFIle = Path.GetFileName(TheFileNameForData);
                toolStripStatusLabel1.Text = JustFIle;
            }
        }
Exemple #3
0
        //----------------------------------------

        private void MapTableListComboBox_TextChanged(object sender, EventArgs e)
        {
            try
            {
                string tablename = MapTableListComboBox.Text;
                if (tablename != "")
                {
                    MapParameterListBox.Items.Clear();

                    MapDataTable = new DataTable();

                    ClearMapLayers();
                    OleDbDataAdapter NewRawTableAdapter = new OleDbDataAdapter("Select * from " + '[' + tablename + ']', WSim.DbConnection);
                    NewRawTableAdapter.Fill(MapDataTable);

                    AddProviderShapeFileLayers();
                    foreach (ModelParameterClass mpc in WSim.ParamManager.ProviderOutputs())
                    {
                        if (MapDataTable.Columns.Contains(mpc.Fieldname))
                        {
                            MapParameterListBox.Items.Add(mpc.Fieldname);
                        }
                    }
                    foreach (ModelParameterClass mpc in WSim.ParamManager.ProviderInputs())
                    {
                        if (MapDataTable.Columns.Contains(mpc.Fieldname))
                        {
                            MapParameterListBox.Items.Add(mpc.Fieldname);
                        }
                    }
                    List <string> temp = WaterSimManager_DB.YearsInTable(MapDataTable);
                    YearComboBox.Items.Clear();
                    foreach (string str in temp)
                    {
                        YearComboBox.Items.Add(str);
                    }
                    YearComboBox.SelectedIndex = YearComboBox.Items.Count - 1;
                    MapTargetYear = YearComboBox.Items[YearComboBox.Items.Count - 1].ToString().Trim();
                }
            }
            catch
            {
            }
        }
Exemple #4
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary> Sets a tablename. </summary>
        ///

        /// <param name="tablename">  The tablename. </param>
        /// <param name="errMessage"> [in,out] Message describing the error. </param>
        ///
        /// <returns> true if it succeeds, false if it fails. </returns>
        ///-------------------------------------------------------------------------------------------------

        public bool SetTablename(string tablename, ref string errMessage)
        {
            bool   iserror   = true;
            string errString = "";

            // Fetch the Parameters and Names for this table
            DataTable SelectedTable;

            SelectedTable = UniDB.Tools.LoadTable(FDbConnection, tablename, 1, ref iserror, ref errString);

            parameterTreeView1.ParameterManager = FPM;
            parameterTreeView1.Clear();
            if (!iserror)
            {
                //parameterTreeView1.Items.Clear();

                // get all the different paramters in order
                List <string> parmlist = WaterSimManager_DB.ParameterFieldsInTable(SelectedTable, FPM, false, false, false, modelParamtype.mptUnknown);
                parameterTreeView1.SetFieldsActive(parmlist);

                //    parmlist = WaterSimManager_DB.ParameterFieldsInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptOutputProvider);
                //    foreach (string str in parmlist)
                //    {
                //        //parameterTreeView1.Items.Add(str);
                //    }
                //    parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptInputBase);
                //    foreach (string str in parmlist)
                //    {
                //        //parameterTreeView1.Items.Add(str);
                //    }
                //    parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptInputProvider);
                //    foreach (string str in parmlist)
                //    {
                //        //parameterTreeView1.Items.Add(str);
                //    }
                //    parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, false, true, false, 0);
                //    foreach (string str in parmlist)
                //    {
                //        //parameterTreeView1.Items.Add(str);
                //    }
            }

            char stringquote = Tools.SQLStringQuote(FDbConnection.SQLServerType);
            // get the year
            string ScnName       = SelectedTable.Rows[0][WaterSimManager_DB.rdbfScenarioName].ToString();
            string firstyear     = SelectedTable.Rows[0][WaterSimManager_DB.rdbfSimYear].ToString();            // ok get the provider codes in the table
            string JustFirstYear = WaterSimManager_DB.rdbfSimYear + " = " + firstyear + " AND " + WaterSimManager_DB.rdbfScenarioName + " = " + stringquote + ScnName + stringquote;

            SelectedTable = UniDB.Tools.LoadTable(FDbConnection, tablename, JustFirstYear, ref iserror, ref errString);
            if (!iserror)
            {
                List <string> ProvList = WaterSimManager_DB.ProvidersInTable(SelectedTable);
                ProvidernamesComboBox.Items.Clear();
                foreach (string str in ProvList)
                {
                    ProvidernamesComboBox.Items.Add(str);
                }
            }

            // get the scenarios. load table with just the required fields which all is need to fethc scenario names
            List <string> GetTheseFields = WaterSimManager_DB.RequiredFieldsList();

            SelectedTable = UniDB.Tools.LoadTable(FDbConnection, tablename, GetTheseFields, ref iserror, ref errString);
            // Get the scenario names, if they are there
            if (!iserror)
            {
                List <string> ScnList = WaterSimManager_DB.ScenarioNamesInTable(SelectedTable);
                ScenarioNamesComboBox.Items.Clear();
                if (ScnList.Count > 0)
                {
                    ScenarioNamesComboBox.Items.Add(FIRSTSCENARIO);
                    foreach (string str in ScnList)
                    {
                        ScenarioNamesComboBox.Items.Add(str);
                    }
                }
                else
                {
                    ScenarioNamesComboBox.Items.Add(NOSCENARIOS);
                }
            }

            // OK, if no error so far, then load the whole table
            if (!iserror)
            {
                FDataTable = UniDB.Tools.LoadTable(FDbConnection, tablename, ref iserror, ref errString);
            }
            return(!iserror);
        }
        private bool SetTablename(string tablename, ref string errString)
        {
            char stringquote = Tools.SQLStringQuote(FDbConnection.SQLServerType);
            bool iserror     = true;
            // Fetch the Parameters and Names for this table
            DataTable SelectedTable;

            SelectedTable = UniDB.Tools.LoadTable(FDbConnection, tablename, ref iserror, ref errString);

            if (!iserror)
            {
                ParmComboBox.Items.Clear();

                // get all the different paramters in order
                List <string> parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptOutputBase);
                foreach (string str in parmlist)
                {
                    ParmComboBox.Items.Add(str);
                }

                parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptOutputProvider);
                foreach (string str in parmlist)
                {
                    ParmComboBox.Items.Add(str);
                }
                parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptInputBase);
                foreach (string str in parmlist)
                {
                    ParmComboBox.Items.Add(str);
                }
                parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, true, false, true, modelParamtype.mptInputProvider);
                foreach (string str in parmlist)
                {
                    ParmComboBox.Items.Add(str);
                }
                parmlist = WaterSimManager_DB.ParamtersInTable(SelectedTable, FPM, false, true, false, 0);
                foreach (string str in parmlist)
                {
                    ParmComboBox.Items.Add(str);
                }

                List <string> Scnlist = WaterSimManager_DB.ScenarioNamesInTable(SelectedTable);

                string ScnName       = SelectedTable.Rows[0][WaterSimManager_DB.rdbfScenarioName].ToString();
                string firstyear     = SelectedTable.Rows[0][WaterSimManager_DB.rdbfSimYear].ToString();            // ok get the provider codes in the table
                string JustFirstYear = WaterSimManager_DB.rdbfSimYear + " = " + firstyear + " AND " + WaterSimManager_DB.rdbfScenarioName + " = " + stringquote + ScnName + stringquote;
                SelectedTable = UniDB.Tools.LoadTable(FDbConnection, tablename, JustFirstYear, ref iserror, ref errString);
                if (!iserror)
                {               // ok get the provider codes in the table
                    ProviderCheckedListBox.Items.Clear();
                    List <string> Provlist = WaterSimManager_DB.ProvidersInTable(SelectedTable);
                    foreach (string str in Provlist)
                    {
                        ProviderCheckedListBox.Items.Add(str);
                    }


                    // Get the scenario names, if they are there
                    ScenarioNamesComboBox.Items.Clear();
                    if (Scnlist.Count > 0)
                    {
                        ScenarioNamesComboBox.Enabled = true;
                        ScenarioNamesComboBox.Items.Add(FIRSTSCENARIO);
                        foreach (string str in Scnlist)
                        {
                            ScenarioNamesComboBox.Items.Add(str);
                        }
                    }
                    else
                    {
                        ScenarioNamesComboBox.Items.Add(NOSCENARIOS);
                        ScenarioNamesComboBox.Text    = NOSCENARIOS;
                        ScenarioNamesComboBox.Enabled = false;
                    }
                }
                else
                {
                    errString = "Error Finding Providers in Datatable";
                }
            }
            else
            {
                errString = "Error Finding WaterSim Parameters in DataTable";
            }

            if (!iserror)
            {
                FTablename = tablename;
                FDataTable = UniDB.Tools.LoadTable(FDbConnection, tablename, ref iserror, ref errString);
            }
            return(!iserror);
        }