Beispiel #1
0
        private void updateModel(object sender, System.EventArgs e)
        {
            if (lastUnitSystem != Canguro.Model.Model.Instance.UnitSystem)
            {
                foreach (DataGridViewColumn column in Columns)
                {
                    PropertyDescriptor pd        = (PropertyDescriptor)column.Tag;
                    UnitsAttribute     gridUnits = ((UnitsAttribute)pd.Attributes[typeof(UnitsAttribute)]);

                    string units = "";
                    if (gridUnits.Units != Canguro.Model.UnitSystem.Units.NoUnit)
                    {
                        units = " [" + Canguro.Model.Model.Instance.UnitSystem.UnitName(gridUnits.Units) + "]";
                    }

                    if (!string.IsNullOrEmpty(units))
                    {
                        //int i1;//, i2;
                        //i2 = column.HeaderText.LastIndexOf(']');

                        //i1 = column.HeaderText.LastIndexOf('[');
                        //column.HeaderText = column.HeaderText.Substring(0, i1) + units;
                        column.HeaderText = Culture.Get(pd.DisplayName) + units;
                    }
                }
                lastUnitSystem = Canguro.Model.Model.Instance.UnitSystem;
            }

            fillSelectedItems(null, false);
        }
Beispiel #2
0
 public GridView()
 {
     // Link updateModel to the eventHandler for Model.ModelChange
     enabled        = false;
     DoubleBuffered = true;
     lastUnitSystem = null;
     // Enable virtual mode.
     VirtualMode = true;
 }
Beispiel #3
0
        /// <summary>
        /// Create a temporary MDB file that will be send to SAP application
        /// </summary>
        /// <param name="m"></param>
        /// <param name="filePath"></param>
        internal void Export(Canguro.Model.Model m, string filePath)
        {
            OleDbConnection cn = null;

            Canguro.Model.UnitSystem.UnitSystem uSystem = m.UnitSystem;

            try
            {
                File.Copy(System.Windows.Forms.Application.StartupPath + "\\RuntimeData\\modelTransfer", filePath /*"tmp"*/, true);

                //Use a string variable to hold the ConnectionString.
                string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath;

                //Create an OleDbConnection object,
                //and then pass in the ConnectionString to the constructor.
                cn = new OleDbConnection(connectString);
                cn.Open();

                m.UnitSystem = Canguro.Model.UnitSystem.InternationalSystem.Instance;
                // Create store procedures for joint items
                store(cn, m.JointList);
                // Create store procedures for line itemes
                store(cn, m.LineList);
                // Create store procedures for materials
                foreach (Material mat in MaterialManager.Instance.Materials.AsReadOnly())
                {
                    if (mat != null)
                    {
                        store(cn, mat);
                    }
                }
                // Create store procedures for abstract case
                foreach (AbstractCase aCase in m.AbstractCases)
                {
                    if (aCase != null)
                    {
                        store(cn, aCase, m);
                    }
                }
                // Create store procedures for load cases
                foreach (LoadCase lCase in m.LoadCases.Values)
                {
                    if (lCase != null)
                    {
                        store(cn, lCase);
                    }
                }
                // Create store procedures for concrete material
                store(cn, m.ConcreteDesignOptions);
                // Create store procedures for steel materia
                store(cn, m.SteelDesignOptions);
                // Create store procedures for frame design
                storeFrameDesignProcedures(cn, m);
                // Create store procedures for spectrum analysis
                store(cn, m.ResponseSpectra, m.AbstractCases);
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show(Culture.Get("ErrorExporting"), Culture.Get("error"),
                                                     System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                throw;
            }
            finally
            {
                if (cn != null)
                {
                    cn.Close();
                }
                m.UnitSystem = uSystem;
            }
        }
Beispiel #4
0
        private void setDataSource(ItemList <Titem> source)
        {
            bool createColumns = true;

            //if (this.source != null) createColumns = false;

            this.source = source;

            if (createColumns)
            {
                Columns.Clear();
                propList.Clear();

                // Add columns to the DataGridView.
                Type theType = typeof(Titem);
                PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(theType).Sort(new GridPositionComparer());

                foreach (PropertyDescriptor pd in pdc)
                {
                    if (pd.IsBrowsable)
                    {
                        // Initialize and add a text box column.
                        DataGridViewColumn column;
                        if (pd.Name.Equals("Id"))
                        {
                            useIdAsRowHeader         = true;
                            RowHeadersWidth          = 23; // 56;
                            idStringFormat.Alignment = System.Drawing.StringAlignment.Far;
                        }
                        else
                        {
                            GridPositionAttribute gridPosition = ((GridPositionAttribute)pd.Attributes[typeof(GridPositionAttribute)]);
                            UnitsAttribute        gridUnits    = ((UnitsAttribute)pd.Attributes[typeof(UnitsAttribute)]);

                            if (gridPosition.Expand)
                            {
                                // Esto se debe modificar para soportar columnas expandibles a
                                // partir de metadatos. Está fijo con StraightFrameProps
                                // porque es la única propiedad que la necesita por el momento.
                                // Será necesario cuando aparezcan más tipos de LineProp's
                                column = new GridViewPopupColumn(new GridViewStraightFrameCell(), new StraightFrameControl());
                            }
                            else if (pd.PropertyType == typeof(JointDOF))
                            {
                                column = new GridViewPopupColumn(new JointDOFControl());
                            }
                            else if (pd.PropertyType == typeof(Joint))
                            {
                                column = new GridViewTextBoxCellTemplateColumn(
                                    new GridViewItemCell(), Canguro.Model.Model.Instance.JointList);
                            }
                            else if (pd.PropertyType == typeof(LineElement))
                            {
                                column = new GridViewTextBoxCellTemplateColumn(
                                    new GridViewItemCell(), Canguro.Model.Model.Instance.LineList);
                            }
                            else if (pd.PropertyType == typeof(AreaElement))
                            {
                                column = new GridViewTextBoxCellTemplateColumn(
                                    new GridViewItemCell(), Canguro.Model.Model.Instance.AreaList);
                            }
                            else if (pd.PropertyType == typeof(AssignedLoads))
                            {
                                column = new GridViewPopupColumn(new AssignedLoadsControl());
                            }
                            else if (pd.PropertyType.Name.Equals("Single[]"))
                            {
                                column = new GridViewSingleArrayColumn();
                            }
                            else if (pd.PropertyType == typeof(float))
                            {
                                column = new GridViewSingleColumn();
                            }
                            else if (pd.PropertyType == typeof(bool))
                            {
                                column = new DataGridViewCheckBoxColumn();
                            }
                            else if (pd.PropertyType == typeof(CardinalPoint))
                            {
                                column = new GridViewPopupColumn(new CardinalPointControl());
                            }
                            else if (pd.PropertyType == typeof(Model.Constraint))
                            {
                                column = new GridViewConstraintComboColumn();
                            }
                            else if (pd.PropertyType == typeof(LineEndOffsets))
                            {
                                column = new GridViewPopupColumn(new EndOffsetsControl());
                            }
                            //else if (pd.PropertyType == typeof(Joint.Bla))
                            //    column = new GridViewLocalizedEnumComboColumn<Joint.Bla>();
                            else
                            {
                                column = new DataGridViewTextBoxColumn();
                            }

                            string units = "";
                            if (gridUnits.Units != Canguro.Model.UnitSystem.Units.NoUnit)
                            {
                                units = " [" + Canguro.Model.Model.Instance.UnitSystem.UnitName(gridUnits.Units) + "]";
                            }
                            column.HeaderText = Culture.Get(pd.DisplayName) + units;
                            column.Name       = pd.Name;
                            //column.ReadOnly = pd.IsReadOnly;
                            column.ValueType = pd.PropertyType;
                            column.Width     = gridPosition.Width;
                            column.Tag       = pd;
                            Columns.Add(column);
                            propList.Add(pd);
                        }
                    }
                }

                AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
                lastUnitSystem      = Canguro.Model.Model.Instance.UnitSystem;
            }

            fillSelectedItems(null, true);
            Enabled = true;
        }