private void EquipmentView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) {

			if ( e.Column.Index == EquipmentView_Name.Index ) {

				int id1 = (int)EquipmentView[EquipmentView_ID.Index, e.RowIndex1].Value;
				int id2 = (int)EquipmentView[EquipmentView_ID.Index, e.RowIndex2].Value;

				e.SortResult =
					KCDatabase.Instance.MasterEquipments[id1].CategoryType -
					KCDatabase.Instance.MasterEquipments[id2].CategoryType;

				if ( e.SortResult == 0 ) {
					e.SortResult = id1 - id2;
				}

			} else {

				e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 );

			}


			if ( e.SortResult == 0 ) {
				e.SortResult = ( EquipmentView.Rows[e.RowIndex1].Tag as int? ?? 0 ) - ( EquipmentView.Rows[e.RowIndex2].Tag as int? ?? 0 );
			}

			e.Handled = true;

		}
 void DataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     //verifica se é a mesma coluna, se não for... ignora
     if(e.Column.Index == this.Index)
     {
         double cellValue1 = Double.Parse(Unimake.Utilities.OnlyNumbers(e.CellValue1).ToString());
         double cellValue2 = Double.Parse(Unimake.Utilities.OnlyNumbers(e.CellValue2).ToString());
         e.SortResult = cellValue1.CompareTo(cellValue2);
         e.Handled = true;
     }
 }
Beispiel #3
0
 private void dgvWirelessNetworks_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     if (e.Column.Index == 4)
     {
         int a = int.Parse(e.CellValue1.ToString());
         int b = int.Parse(e.CellValue2.ToString());
         // If the cell value is already an integer, just cast it instead of parsing
         e.SortResult = a.CompareTo(b);
         e.Handled = true;
     }
 }
Beispiel #4
0
 private void dataGridSymbols_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     if (e.Column.Index > 0)
     {
         e.Handled = true;
         int val1;
         int val2;
         Int32.TryParse(e.CellValue1.ToString(), out val1);
         Int32.TryParse(e.CellValue2.ToString(), out val2);
         e.SortResult = val1 - val2;
     }
 }
Beispiel #5
0
        void dataGridViewStorage_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            if (e.Column == ColumnDevicePosition)
            {
                e.SortResult = StringUtility.NaturalCompare(e.CellValue1.ToString(), e.CellValue2.ToString());

                e.Handled = true;
            }
            else
            {
                e.Handled = false;
            }
        }
        /// <summary>
        /// manejador del evento SortCompare de la grilla
        /// </summary>
        /// <param name="sender">Objeto donde se generó el evento --> la grilla</param>
        /// <param name="e">Argumento del evento que contiene información sobre las filas y columnas que se comparan</param>
        private void dgrid_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            // si la columna es de tipo int, entonces realiza el ordenamiento de números enteros
            if (e.Column.ValueType == typeof(int))
            {
                // obtiene el valor entero de cada celda
                int value1 = int.Parse(e.CellValue1.ToString());
                int value2 = int.Parse(e.CellValue2.ToString());

                // compara dichos valores usando el método CompareTo de la clase int. La clase int implemente IComparable<int>
                e.SortResult = value1.CompareTo(value2);

                // indica que se realizó el manejo del evento
                e.Handled = true;
            }
            // si la columna es de tipo decimal, entonces realiza el ordenamiento de números decimales
            else if (e.Column.ValueType == typeof(decimal))
            {
                // obtiene el valor decimal de cada celda
                decimal value1 = decimal.Parse(e.CellValue1.ToString());
                decimal value2 = decimal.Parse(e.CellValue2.ToString());

                // compara dichos valores usando el método CompareTo de la clase decimal. La clase decimal implemente IComparable<decimal>
                e.SortResult = value1.CompareTo(value2);

                // indica que se realizó el manejo del evento
                e.Handled = true;
            }
            // si la columna es de tipo DateTime, entonces realiza el ordenamiento de fechas
            else if (e.Column.ValueType == typeof(DateTime))
            {
                // obtiene el valor fecha de cada celda
                DateTime value1 = DateTime.Parse(e.CellValue1.ToString());
                DateTime value2 = DateTime.Parse(e.CellValue2.ToString());

                // compara dichos valores usando el método CompareTo de la clase DateTime. La clase DateTime implemente IComparable<DateTime>
                e.SortResult = value1.CompareTo(value2);

                // indica que se realizó el manejo del evento
                e.Handled = true;
            }
        }
Beispiel #7
0
        private void dgvLeases_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            string val1 = e.CellValue1?.ToString() ?? "";
            string val2 = e.CellValue2?.ToString() ?? "";

            //TODO: This is inefficient, requires potentially processing the same IPAddress or Date values over and over again
            //       It doesn't seem to cause noticable delays, so low priority, but I'd still like to refactor
            //       this to re-use parsed values.
            int result = 0;
            if (val1 == "" && val2 != "")
            {
                result = -1;
            }
            else if (val1 != "" && val2 == "")
            {
                result = 1;
            }
            else if (val1 == "" && val2 == "")
            {
                result = 0;
            }
            //neither value is empty. Now we can process special columns
            else if (e.Column.HeaderText == "IP Address")
            {
                uint v1 = (uint)System.Net.IPAddress.NetworkToHostOrder((int)System.Net.IPAddress.Parse(val1).Address);
                uint v2 = (uint)System.Net.IPAddress.NetworkToHostOrder((int)System.Net.IPAddress.Parse(val2).Address);
                result = v1.CompareTo(v2);
            }
            else if (e.Column.HeaderText == "Expires")
            {
                DateTime v1 = DateTime.Parse(val1);
                DateTime v2 = DateTime.Parse(val2);
                result = v1.CompareTo(v2);
            }
            //default
            else
            {
                result = val1.CompareTo(val2);
            }
            e.SortResult = result;
            e.Handled = true;
        }
        private void ShipView_SortCompare( object sender, DataGridViewSortCompareEventArgs e )
        {
            if ( e.Column.Index == ShipView_Name.Index ) {
                e.SortResult =
                    KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex1].Cells[e.Column.Index].Tag].AlbumNo -
                    KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex2].Cells[e.Column.Index].Tag].AlbumNo;

            } else if ( e.Column.Index == ShipView_Exp.Index ) {
                e.SortResult = (int)e.CellValue1 - (int)e.CellValue2;
                if ( e.SortResult == 0 )	//for Lv.99-100
                    e.SortResult = (int)ShipView[ShipView_Level.Index, e.RowIndex1].Value - (int)ShipView[ShipView_Level.Index, e.RowIndex2].Value;

            } else if (
                e.Column.Index == ShipView_HP.Index ||
                e.Column.Index == ShipView_Fuel.Index ||
                e.Column.Index == ShipView_Ammo.Index ||
                e.Column.Index == ShipView_Aircraft1.Index ||
                e.Column.Index == ShipView_Aircraft2.Index ||
                e.Column.Index == ShipView_Aircraft3.Index ||
                e.Column.Index == ShipView_Aircraft4.Index ||
                e.Column.Index == ShipView_Aircraft5.Index ||
                e.Column.Index == ShipView_AircraftTotal.Index
                ) {
                Fraction frac1 = (Fraction)e.CellValue1, frac2 = (Fraction)e.CellValue2;

                double rate = frac1.Rate - frac2.Rate;

                if ( rate > 0.0 )
                    e.SortResult = 1;
                else if ( rate < 0.0 )
                    e.SortResult = -1;
                else
                    e.SortResult = frac1.Current - frac2.Current;

            } else if ( e.Column.Index == ShipView_Fleet.Index ) {
                if ( (string)e.CellValue1 == "" ) {
                    if ( (string)e.CellValue2 == "" )
                        e.SortResult = 0;
                    else
                        e.SortResult = 1;
                } else {
                    if ( (string)e.CellValue2 == "" )
                        e.SortResult = -1;
                    else
                        e.SortResult = ( (string)e.CellValue1 ).CompareTo( e.CellValue2 );
                }

            } else {
                e.SortResult = (int)e.CellValue1 - (int)e.CellValue2;
            }

            if ( e.SortResult == 0 ) {
                e.SortResult = (int)ShipView.Rows[e.RowIndex1].Tag - (int)ShipView.Rows[e.RowIndex2].Tag;

                if ( ShipView.SortOrder == SortOrder.Descending )
                    e.SortResult = -e.SortResult;
            }

            e.Handled = true;
        }
Beispiel #9
0
 void DataGridViewObject_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     if (e.Column.Index == sizeColumn.Index)
     {
         VDI vdi1 = ((VDIRow)dataGridViewVDIs.Rows[e.RowIndex1]).VDI;
         VDI vdi2 = ((VDIRow)dataGridViewVDIs.Rows[e.RowIndex2]).VDI;
         long diff = vdi1.virtual_size - vdi2.virtual_size;
         e.SortResult =
             diff > 0 ? 1 :
             diff < 0 ? -1 :
                        0;
         e.Handled = true;
     }
 }
Beispiel #10
0
		protected virtual void OnSortCompare (DataGridViewSortCompareEventArgs e) {
			DataGridViewSortCompareEventHandler eh = (DataGridViewSortCompareEventHandler)(Events [SortCompareEvent]);
			if (eh != null) eh (this, e);
		}
        private void sharedFilesDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            switch (e.Column.Name)
            {
                case "RatingIcon":
                    e.SortResult = ((byte)sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((byte)sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    e.Handled = true;
                    break;
                case "FileSize":
                    // 2007-05-17 T.Norad: fix for big files
                    e.SortResult = ((long)sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    e.Handled = true;
                    break;
                case "lastRequest":
                    // get the first value to compare from grid
                    object date1 = sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag;
                    // second value from grid
                    object date2 = sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag;

                    e.SortResult = SortHelper.compareDates(date1, date2);
                    // if the datetime equal we use the sort tag to prevent flickering sort results
                    if (e.SortResult == 0)
                    {
                        e.SortResult = ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag.CompareTo(((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    }
                    e.Handled = true;
                    break;
            }
        }
Beispiel #12
0
 private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     try {
         if (e.Column.Name.Equals("CSize")) {
             //if (e.CellValue1.Equals(e.CellValue2)) {
             //    e.SortResult = -1;
             //    e.Handled = true;
             //}
             String[] data1 = MyReg.Reg_GetFirstMutiString(e.CellValue1.ToString(), "(\\d+\\.?\\d*)+\\s*(GB|MB)");
             String[] data2 = MyReg.Reg_GetFirstMutiString(e.CellValue2.ToString(), "(\\d+\\.?\\d*)+\\s*(GB|MB)");
             double ddata1 = double.Parse(data1[0]); int flag1 = data1[1].Equals("MB") ? 0 : 1;
             double ddata2 = double.Parse(data2[0]); int flag2 = data2[1].Equals("MB") ? 0 : 1;
             int flag = flag1 - flag2;
             if (flag == 0) { //单位相同比大小
                 flag = (ddata1 - ddata2) >= 0 ? 1 : -1;
             }
             e.SortResult = flag;
             e.Handled = true;
         } else if (e.Column.Name.Equals("CHot") || e.Column.Name.Equals("CNum")) {//热度排序和index排序
             int data1 = MyReg.Reg_GetFirstNum(e.CellValue1.ToString(), "(\\d+)");
             int data2 = MyReg.Reg_GetFirstNum(e.CellValue2.ToString(), "(\\d+)");
             e.SortResult = data1 - data2;
             e.Handled = true; //不要会炸
         }
     }
     catch (Exception ee) {
         Console.WriteLine("我日了狗"+ee.Message);
     }
     //   如果是学号或成绩列,则按浮点数处理
     //if (e.Column.Name == "大小")
     //{
     //    if(data1.)
     //    e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0;
     //    e.Handled = true;
     //}
     ////否则,按字符串比较
     //else
     //{
     //    return;
     //}
 }
 private void connectionsDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     switch (e.Column.Name)
     {
         case "IPAddress":
             e.SortResult = ((uint)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((uint)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
         case "EnqueuedCommands":
             e.SortResult = ((int)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
         case "Port":
         case "Sent":
         case "Received":
         case "SentCommands":
         case "ReceivedCommands":
             e.SortResult = ((long)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
     }
 }
Beispiel #14
0
        private void dataGridViewUpdates_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            Alert alert1 = (Alert)dataGridViewUpdates.Rows[e.RowIndex1].Tag;
            Alert alert2 = (Alert)dataGridViewUpdates.Rows[e.RowIndex2].Tag;

            if (e.Column.Index == ColumnMessage.Index)
            {
                e.SortResult = Alert.CompareOnTitle(alert1, alert2);
                e.Handled = true;
            }
            else if (e.Column.Index == ColumnReleaseDate.Index)
            {
                e.SortResult = Alert.CompareOnDate(alert1, alert2);
                e.Handled = true;
            }
            else if (e.Column.Index == ColumnWebPage.Index)
            {
                e.SortResult = Alert.CompareOnWebPage(alert1, alert2);
                e.Handled = true;
            }
            else if (e.Column.Index == ColumnAppliesTo.Index)
            {
                e.SortResult = Alert.CompareOnAppliesTo(alert1, alert2);
                e.Handled = true;
            }
        }
 private void dgvMethod_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     if (e.CellValue1 != null && e.CellValue2 != null)
     {
         string valueString1 = e.CellValue1.ToString();
         string valueString2 = e.CellValue2.ToString();
         if (e.Column.Name.Equals("ColCodeNum"))
         {
             float value1 = 0f;
             float value2 = 0f;
             float.TryParse(valueString1, out value1);
             float.TryParse(valueString2, out value2);
             e.SortResult = Comparer.DefaultInvariant.Compare(value1, value2);
         }
         else
         {
             e.SortResult = string.Compare(valueString1, valueString2);
         }
     }
     e.Handled = true;
 }
Beispiel #16
0
        private void customSortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            int temp;
            bool isNumeric = int.TryParse(e.CellValue1.ToString(), out temp);
            if (!isNumeric)
                return;
            int a = int.Parse(e.CellValue1.ToString()), b = int.Parse(e.CellValue2.ToString());

            // If the cell value is already an integer, just cast it instead of parsing

            e.SortResult = a.CompareTo(b);

            e.Handled = true;
        }
        private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            //sort the numeric column
            if (!e.Column.Name.Equals("Name") && !e.Column.Name.Equals("Image"))
            {
                e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0;
            }

            // if the value is same, then sort by IV
            if (e.SortResult == 0 && e.Column.Name.Equals("IV %"))
            {
                e.SortResult = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex1].Cells["IV %"].Value.ToString()) -
                        Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex2].Cells["IV %"].Value.ToString());
            }

            e.Handled = true;
        }
        private void downloadsDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            switch (e.Column.Name)
            {
                case "RatingIcon":
                    e.SortResult = ((byte)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((byte)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    e.Handled = true;
                    break;
                case "FileSize":
                case "Completed":
                case "Remaining":
                    // 2007-05-20 T.Norad
                    // fix for big files
                    e.SortResult = ((long)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    e.Handled = true;
                    break;
                case "Status": // 2008-03-20 Nochbaer
                case "Sources":
                case "lastReception":
                    // 2007-06-10 T.Norad
                    // fix: Sources are int-values
                    e.SortResult = ((int)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    e.Handled = true;
                    break;
                case "ProgressImage":
                    e.SortResult = ((float)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag / 100).CompareTo((float)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag / 100);
                    e.Handled = true;
                    break;
                case "lastSeen":
                    // get the first value to compare from grid
                    object date1 = downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag;
                    // second value from grid
                    object date2 = downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag;

                    e.SortResult = SortHelper.compareDates(date1, date2);
                    // if the datetime equal we use the sort tag to prevent flickering sort results
                    if (e.SortResult == 0)
                    {
                        e.SortResult = ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag.CompareTo(((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag);
                    }
                    e.Handled = true;
                    break;
            }
        }
Beispiel #19
0
 /// <summary>
 /// Handles the automatic sorting of the AlertsGridView for the non-string columns
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void GridViewAlerts_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     Alert alert1 = (Alert)GridViewAlerts.Rows[e.RowIndex1].Tag;
     Alert alert2 = (Alert)GridViewAlerts.Rows[e.RowIndex2].Tag;
     if (e.Column.Index == ColumnDate.Index)
     {
         int SortResult = DateTime.Compare(alert1.Timestamp, alert2.Timestamp);
         e.SortResult = (GridViewAlerts.SortOrder == SortOrder.Descending) ? SortResult *= -1 : SortResult;
         e.Handled = true;
     }
     else if (e.Column.Index == ColumnSeverity.Index)
     {
         e.SortResult = Alert.CompareOnPriority(alert1, alert2);
         e.Handled = true;
     }
 }
 private void sourcesDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     switch (e.Column.Name)
     {
         case "TypeIcon":
             e.SortResult = ((int)DateTime.Now.Subtract((DateTime)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag).TotalMinutes + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)DateTime.Now.Subtract((DateTime)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag).TotalMinutes + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
         case "Queue":
         case "Type":
             e.SortResult = ((int)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
         case "SentCommands":
         case "ReceivedCommands":
             e.SortResult = ((long)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag);
             e.Handled = true;
             break;
     }
 }
 private void ServerDataGrid_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     //e.SortResult = 0;
     if (e.Column.Name == "Server")
     {
         e.SortResult = System.String.Compare(Convert.ToString(e.CellValue1), Convert.ToString(e.CellValue2));
         e.Handled = true;
     }
     else if (e.Column.Name == "ID"
         || e.Column.Name == "TotalConnect"
         || e.Column.Name == "Connecting"
         || e.Column.Name == "ConnectError"
         || e.Column.Name == "ConnectTimeout"
         || e.Column.Name == "Continuous"
         )
     {
         Int32 v1 = Convert.ToInt32(e.CellValue1);
         Int32 v2 = Convert.ToInt32(e.CellValue2);
         e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1));
     }
     else if (e.Column.Name == "ErrorPercent")
     {
         String s1 = Convert.ToString(e.CellValue1);
         String s2 = Convert.ToString(e.CellValue2);
         Int32 v1 = s1.Length <= 1 ? 0 : Convert.ToInt32(Convert.ToDouble(s1.Substring(0, s1.Length - 1)) * 100);
         Int32 v2 = s2.Length <= 1 ? 0 : Convert.ToInt32(Convert.ToDouble(s2.Substring(0, s2.Length - 1)) * 100);
         e.SortResult = v1 == v2 ? 0 : v1 < v2 ? -1 : 1;
     }
     else if (e.Column.Name == "AvgLatency"
         || e.Column.Name == "AvgSpeed"
         || e.Column.Name == "MaxSpeed"
         || e.Column.Name == "Upload"
         || e.Column.Name == "Download"
         )
     {
         String s1 = Convert.ToString(e.CellValue1);
         String s2 = Convert.ToString(e.CellValue2);
         long v1 = Str2Long(s1);
         long v2 = Str2Long(s2);
         e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1));
     }
     if (e.SortResult == 0)
     {
         int v1 = listOrder[Convert.ToInt32(ServerDataGrid[0, e.RowIndex1].Value)];
         int v2 = listOrder[Convert.ToInt32(ServerDataGrid[0, e.RowIndex2].Value)];
         e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1));
         if (e.SortResult != 0 && ServerDataGrid.SortOrder == SortOrder.Descending)
         {
             e.SortResult = -e.SortResult;
         }
     }
     if (e.SortResult != 0)
     {
         e.Handled = true;
     }
 }
Beispiel #22
0
        //          Ajout nouveau
        private void gridEmploye_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            if (e.Column == gridEmploye.Columns[0])
            {
                int a = int.Parse(e.CellValue1.ToString()), b = int.Parse(e.CellValue2.ToString());

                // If the cell value is already an integer, just cast it instead of parsing

                e.SortResult = a.CompareTo(b);

                e.Handled = true;
            }
        }
		private void ShipView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) {

			if ( e.Column.Name == ShipView_ShipType.Name ) {
				e.SortResult =
					KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex1].Cells[0].Value].ShipType -
					KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex2].Cells[0].Value].ShipType;
			} else {
				e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 );
			}

			if ( e.SortResult == 0 ) {
				e.SortResult = (int)( ShipView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( ShipView.Rows[e.RowIndex2].Tag ?? 0 );
			}

			e.Handled = true;
		}
		private void RecordView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) {

			object tag1 = RecordView[e.Column.Index, e.RowIndex1].Tag;
			object tag2 = RecordView[e.Column.Index, e.RowIndex2].Tag;

			if ( tag1 != null && ( tag1 is double || tag1 is int ) && e.CellValue1 is int ) {
				double c1 = 0 , c2 = 0;

				if ( tag1 is double ) {
					c1 = (double)tag1;
					c2 = (double)tag2;
				} else if ( tag1 is int ) {
					c1 = (double)(int)e.CellValue1 / Math.Max( (int)tag1, 1 );
					c2 = (double)(int)e.CellValue2 / Math.Max( (int)tag2, 1 );
				}


				if ( Math.Abs( c1 - c2 ) < 0.000001 )
					e.SortResult = (int)e.CellValue1 - (int)e.CellValue2;
				else if ( c1 < c2 )
					e.SortResult = -1;
				else
					e.SortResult = 1;
				e.Handled = true;

			} else if ( tag1 is string ) {
				e.SortResult = ( (IComparable)tag1 ).CompareTo( tag2 );
				e.Handled = true;
			} else if ( tag1 is int ) {
				e.SortResult = (int)tag1 - (int)tag2;
				e.Handled = true;
			}


			if ( !e.Handled ) {
				e.SortResult = ( (IComparable)e.CellValue1 ?? 0 ).CompareTo( e.CellValue2 ?? 0 );
				e.Handled = true;
			}

			if ( e.SortResult == 0 ) {
				e.SortResult = (int)( RecordView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( RecordView.Rows[e.RowIndex2].Tag ?? 0 );
			}
		}
Beispiel #25
0
        /// <summary>
        /// Handles the automatic sorting of the AlertsGridView for the non-string columns
        /// </summary>
        private void dataGridViewUpdates_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            Alert alert1 = (Alert)dataGridViewUpdates.Rows[e.RowIndex1].Tag;
            Alert alert2 = (Alert)dataGridViewUpdates.Rows[e.RowIndex2].Tag;

            if (e.Column.Index == ColumnDate.Index)
            {
                int sortResult = DateTime.Compare(alert1.Timestamp, alert2.Timestamp);
                e.SortResult = (dataGridViewUpdates.SortOrder == SortOrder.Descending) ? sortResult *= -1 : sortResult;
                e.Handled = true;
            }
        }
        private void QuestView_SortCompare( object sender, DataGridViewSortCompareEventArgs e )
        {
            if ( e.Column.Index == QuestView_State.Index ) {
                e.SortResult = ( e.CellValue1 == null ? 2 : ( (bool)e.CellValue1 ? 1 : 0 ) ) -
                    ( e.CellValue2 == null ? 2 : ( (bool)e.CellValue2 ? 1 : 0 ) );
            } else {
                e.SortResult = ( e.CellValue1 as int? ?? 99999999 ) - ( e.CellValue2 as int? ?? 99999999 );
            }

            if ( e.SortResult == 0 ) {
                e.SortResult = ( QuestView.Rows[e.RowIndex1].Tag as int? ?? 0 ) - ( QuestView.Rows[e.RowIndex2].Tag as int? ?? 0 );
            }

            e.Handled = true;
        }
Beispiel #27
0
        private void scannerView_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            //scannerGrid.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
            //Sort numeric columns like numbers
            if (e.Column == scannerGrid.Columns["maxrateColumn"] || e.Column == scannerGrid.Columns["channelColumn"])
            {
                //Remove anything after a space
                string value1 = e.CellValue1.ToString();
                if (value1.IndexOf(' ') > 0)
                    value1 = value1.Remove(value1.IndexOf(' '));

                string value2 = e.CellValue2.ToString();
                if (value2.IndexOf(' ') > 0)
                    value2 = value2.Remove(value2.IndexOf(' '));

                if (Convert.ToInt32(value1) > Convert.ToInt32(value2)) { e.SortResult = 1; }
                else if (Convert.ToInt32(value1) < Convert.ToInt32(value2)) { e.SortResult = -1; }
                else { e.SortResult = 0; }
                e.Handled = true;
            }
            else if (e.Column == scannerGrid.Columns["rssiColumn"])
            {
                var cell1 = e.CellValue1 as int[];
                var cell2 = e.CellValue2 as int[];

                if (cell1 != null && cell1.Length > 0 && cell2 != null && cell2.Length > 0)
                {
                    if (cell1[cell1.Length - 1] > cell2[cell2.Length - 1]) e.SortResult = 1;
                    else if (cell1[cell1.Length - 1] < cell2[cell2.Length - 1]) e.SortResult = -1;
                    else e.SortResult = 0;
                    e.Handled = true;
                }
            }
            //else if (e.Column == scannerGrid.Columns["channelColumn"])
            //{
            //    string c1 = e.CellValue1.ToString(), c2 = e.CellValue2.ToString();
            //    //Channel may have a + in it
            //    if (c1.Contains("+"))
            //    {
            //        c1 = c1.Remove(c1.LastIndexOf(" + "));
            //    }

            //    if (c2.Contains("+"))
            //    {
            //        c2 = c2.Remove(c2.LastIndexOf(" + "));
            //    }
            //    if (Convert.ToInt32(c1) > Convert.ToInt32(c2)) { e.SortResult = 1; }
            //    else if (Convert.ToInt32(c1) < Convert.ToInt32(c2)) { e.SortResult = -1; }
            //    else { e.SortResult = 0; }
            //    e.Handled = true;

            //}
            //Location sorting, they are doubles, not ints
            else if (e.Column == scannerGrid.Columns["latColumn"] || e.Column == scannerGrid.Columns["lonColumn"])
            {
                if (Convert.ToDouble(e.CellValue1) > Convert.ToDouble(e.CellValue2)) { e.SortResult = 1; }
                else if (Convert.ToDouble(e.CellValue1) < Convert.ToDouble(e.CellValue2)) { e.SortResult = -1; }
                else { e.SortResult = 0; }
                e.Handled = true;
            }
        }
		private void EquipmentView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) {

			if ( e.Column.Name == EquipmentView_Type.Name ) {
				e.SortResult =
					KCDatabase.Instance.MasterEquipments[(int)EquipmentView.Rows[e.RowIndex1].Cells[0].Value].EquipmentType[2] -
					KCDatabase.Instance.MasterEquipments[(int)EquipmentView.Rows[e.RowIndex2].Cells[0].Value].EquipmentType[2];
			} else {
				e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 );
			}

			if ( e.SortResult == 0 ) {
				e.SortResult = (int)( EquipmentView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( EquipmentView.Rows[e.RowIndex2].Tag ?? 0 );
			}

			e.Handled = true;
		}
Beispiel #29
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Occurs when the DataGridView compares two cell values to perform a sort operation.
		/// </summary>
		/// <param name="sender">The sender.</param>
		/// <param name="e">The <see cref="T:System.Windows.Forms.DataGridViewSortCompareEventArgs"/>
		/// instance containing the event data.</param>
		/// ------------------------------------------------------------------------------------
		private void OnSortCompare(object sender, DataGridViewSortCompareEventArgs e)
		{
			if (e.CellValue1 is ITsString && e.CellValue2 is ITsString)
			{
				if (m_cache != null)
				{
					IWritingSystem ws = GetWritingSystem(e.RowIndex1);
					Debug.Assert(ws == GetWritingSystem(e.RowIndex2));
					e.SortResult = ws.Collator.Compare(((ITsString)e.CellValue1).Text, ((ITsString)e.CellValue2).Text);
					e.Handled = true;
					return;
				}

				e.SortResult = ((ITsString)e.CellValue1).Text.CompareTo(
					((ITsString)e.CellValue2).Text);

				e.Handled = true;
				return;
			}

			e.Handled = false;
		}
Beispiel #30
0
 private void dgvArmor_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
 {
     if (e.Column.Index != 1)
         return;
     else
     {
         try
         {
             int intResult;
             if (Convert.ToInt32(e.CellValue1) < Convert.ToInt32(e.CellValue2))
                 intResult = -1;
             else
                 intResult = 1;
             e.SortResult = intResult;
             e.Handled = true;
         }
         catch { }
         return;
     }
 }