git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Tue, 3 Oct 2017 12:41:27 +0000 (12:41 +0000)
committerBellai Ádám <USER\adam.bellai>
Tue, 3 Oct 2017 12:41:27 +0000 (12:41 +0000)
client/Maestro/MaestroForm.Source.cs

index c944991cc38ef375b6501fcd4d68f096127e4322..fcdf2146e2c116d84c92d60a8f5321465a1d0b95 100644 (file)
@@ -92,17 +92,18 @@ namespace Maestro {
         }\r
 \r
         private void sourceGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) {\r
-            var selectedItem = bindingSource.Current;\r
-            if (selectedItem == null) {\r
+            var selectedrows = dataGridSource.SelectedRows;\r
+            var selectedItems = bindingSource.Current;\r
+            if (selectedrows == null) {\r
                 return;\r
             }\r
             if (e.ColumnIndex == 0) {\r
-                SetSourceFromCheckBoxAction(sender, selectedItem);\r
+                SetSourceFromCheckBoxAction(selectedrows);\r
                 return;\r
             }\r
             if (e.ColumnIndex != 3)\r
                 return;\r
-            FileSourceItem fileSourceItem = selectedItem as FileSourceItem;\r
+            FileSourceItem fileSourceItem = selectedItems as FileSourceItem;\r
             if (fileSourceItem == null)\r
                 return;\r
             Cursor = Cursors.WaitCursor;\r
@@ -115,26 +116,42 @@ namespace Maestro {
             }));\r
         }\r
 \r
-        private void SetSourceFromCheckBoxAction(object sender, object selectedItem) {\r
+        private void SetSourceFromCheckBoxAction(DataGridViewSelectedRowCollection selectedRows) {\r
             String name;\r
-            NexioSourceItem n = selectedItem as NexioSourceItem;\r
-            if (n == null) {\r
-                FileSourceItem f = selectedItem as FileSourceItem;\r
-                name = f.Name;\r
-            } else name = n.Name;\r
+            bool valueOfCheckBoxes = GetValueOfCheckBoxes(selectedRows);\r
+            foreach (DataGridViewRow actualRow in selectedRows) {\r
+                var cells = actualRow.Cells;\r
+                if (cells.Count <= 0)\r
+                    return;\r
+                name = cells[1].Value as string;\r
+                if (String.IsNullOrEmpty(name))\r
+                    return;\r
+                DataGridViewCheckBoxCell checkBoxCell = cells[0] as DataGridViewCheckBoxCell;\r
+                if (selectedRows.Count > 1)\r
+                    checkBoxCell.Value = valueOfCheckBoxes;\r
+                else\r
+                    checkBoxCell.Value = (checkBoxCell.Value == null || checkBoxCell.Value.Equals(false)) ? true : false;\r
+                if (checkBoxCell.Value.Equals(false))\r
+                    selectedSources.Remove(name);\r
+                else {\r
+                    if (!selectedSources.Contains(name))\r
+                        selectedSources.Add(name);\r
+                }\r
+                SetTextSelectedSourceTextFromCheckBoxes();\r
+                SetMetadataButtonEnabled((bool)checkBoxCell.Value);\r
+            }\r
+        }\r
 \r
-            DataGridView gridView = sender as DataGridView;\r
-            var cells = gridView.SelectedCells;\r
-            if (cells.Count <= 0)\r
-                return;\r
-            DataGridViewCheckBoxCell checkBoxCell = cells[0] as DataGridViewCheckBoxCell;\r
-            checkBoxCell.Value = (checkBoxCell.Value == null || checkBoxCell.Value.Equals(false)) ? true : false;\r
-            if (checkBoxCell.Value.Equals(false))\r
-                selectedSources.Remove(name);\r
-            else\r
-                selectedSources.Add(name);\r
-            SetTextSelectedSourceTextFromCheckBoxes();\r
-            SetMetadataButtonEnabled((bool)checkBoxCell.Value);\r
+        private bool GetValueOfCheckBoxes(DataGridViewSelectedRowCollection selectedRows) {\r
+            bool result = true;\r
+            foreach (DataGridViewRow actualRow in selectedRows) {\r
+                var cells = actualRow.Cells;\r
+                DataGridViewCheckBoxCell checkBoxCell = cells[0] as DataGridViewCheckBoxCell;\r
+                if (checkBoxCell.Value != null && checkBoxCell.Value.Equals(true))\r
+                    result = false;\r
+                else { result = true; return result; }\r
+            }\r
+            return result;\r
         }\r
 \r
         private void SetMetadataButtonEnabled(bool checkBox) {\r
@@ -220,8 +237,8 @@ namespace Maestro {
         private void dataGridSource_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {\r
             if (e.RowIndex < 0)\r
                 return;\r
-            var selectedItem = bindingSource.Current;\r
-            SetSourceFromCheckBoxAction(sender, selectedItem);\r
+            var selectedRows = dataGridSource.SelectedRows;\r
+            SetSourceFromCheckBoxAction(selectedRows);\r
         }\r
     }\r
 }\r