using System.Text;\r
\r
namespace Maestro {\r
+\r
+ delegate void SetTextCallback();\r
public partial class MaestroForm {\r
private ISource source;\r
private SourceInfo selectedSource;\r
private string startingName;\r
- private List<String> selectedSources = new List<string>();\r
+ private List<DataGridViewRow> selectedRows = new List<DataGridViewRow>();\r
\r
public IDTypes IDType { get; set; }\r
\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
+ this.selectedRows.Remove(actualRow);\r
else {\r
- if (!selectedSources.Contains(name))\r
- selectedSources.Add(name);\r
+ if (!this.selectedRows.Contains(actualRow))\r
+ this.selectedRows.Add(actualRow);\r
}\r
SetTextSelectedSourceTextFromCheckBoxes();\r
SetMetadataButtonEnabled((bool)checkBoxCell.Value);\r
\r
private void SetMetadataButtonEnabled(bool checkBox) {\r
SetStartingName(checkBox);\r
- if (selectedSources == null || selectedSources.Count == 0) {\r
+ if (selectedRows == null || selectedRows.Count == 0) {\r
buttonMetadata.Enabled = false;\r
IsSelectedFileAnID();\r
return;\r
}\r
- if (selectedSources.Count == 1) {\r
+ if (selectedRows.Count == 1) {\r
buttonMetadata.Enabled = true;\r
IsSelectedFileAnID();\r
return;\r
}\r
\r
- for (int i = 1; i < selectedSources.Count; i++) {\r
- string name = selectedSources[i];\r
+ foreach (DataGridViewRow actual in selectedRows) {\r
+ string name = actual.Cells[1].Value as string;\r
if (!name.StartsWith(String.Format("{0}-", startingName)) &&\r
!name.StartsWith(String.Format("{0}_", startingName)) &&\r
!name.StartsWith(String.Format("{0}.", startingName))) {\r
\r
private void SetStartingName(bool checkBox) {\r
if (!checkBox)\r
- if (selectedSources == null || selectedSources.Count == 0) {\r
+ if (selectedRows == null || selectedRows.Count == 0) {\r
startingName = null;\r
return;\r
}\r
- string query = selectedSources[0];\r
+ string query = selectedRows[0].Cells[1].Value as string;\r
int separatorPosition = query.IndexOf("-") < 0 ? query.IndexOf("_") : query.IndexOf("-");\r
int dotPosition = query.IndexOf(".");\r
if (separatorPosition > 0) {\r
\r
private void SetTextSelectedSourceTextFromCheckBoxes() {\r
String selectedNames = "";\r
- foreach (String actual in selectedSources)\r
- selectedNames += actual + " ";\r
+ foreach (DataGridViewRow actual in selectedRows)\r
+ selectedNames += actual.Cells[1].Value + " ";\r
SelectedSource = new SourceInfo() {\r
Name = selectedNames\r
};\r
SetSelectedSourceFileInfo(SelectedSource);\r
- ApplyProcessorButtonsLogic();\r
+ ApplyProcessorButtonsLogicWithoutArchiveMetadataButton();\r
}\r
\r
private void SetSelectedSourceFileInfo(SourceInfo selectedSource) {\r
if (Configuration.Source.GetType() == typeof(NEXIOSource))\r
selectedSource.FileInfo = null;\r
- else if (selectedSources.Count == 1) {\r
- Uri inputUri = new Uri(String.Format("{0}/{1}", Configuration.Source.Local.Address.LocalPath, selectedSources[0]));\r
+ else if (selectedRows.Count == 1) {\r
+ string name = selectedRows[0].Cells[1].Value as string;\r
+ Uri inputUri = new Uri(String.Format("{0}/{1}", Configuration.Source.Local.Address.LocalPath, name));\r
selectedSource.FileInfo = new System.IO.FileInfo(inputUri.LocalPath);\r
}\r
}\r
if (item.IsHighlighted) {\r
row.DefaultCellStyle.BackColor = Color.DarkGreen;\r
row.DefaultCellStyle.ForeColor = Color.White;\r
- } else {\r
+ } else\r
row.DefaultCellStyle = null;\r
- }\r
}\r
\r
private void dataGridSource_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {\r
var selectedRows = dataGridSource.SelectedRows;\r
SetSourceFromCheckBoxAction(selectedRows);\r
}\r
+\r
+ public void SourceDeleted(String fileName) {\r
+ foreach (DataGridViewRow actual in selectedRows) {\r
+ String actualName = actual.Cells[1].Value as string;\r
+ if (fileName.Equals(actualName)) {\r
+ selectedRows.Remove(actual);\r
+ if (textSelectedSource.InvokeRequired) {\r
+ SetTextCallback d = new SetTextCallback(SetTextSelectedSourceAndMetadataButtonEnabled);\r
+ Invoke(d);\r
+ } else\r
+ SetTextSelectedSourceAndMetadataButtonEnabled();\r
+ return;\r
+ }\r
+ }\r
+ }\r
+\r
+ private void SetTextSelectedSourceAndMetadataButtonEnabled() {\r
+ SetTextSelectedSourceTextFromCheckBoxes();\r
+ SetMetadataButtonEnabled(selectedRows.Count > 0);\r
+ }\r
}\r
}\r
checkBox.CheckStateChanged += (s, e) => {\r
if (checkBox.Checked) {\r
List<ITargetProcessor> processors = new List<ITargetProcessor>();\r
- foreach (String actual in selectedSources) {\r
+ foreach (DataGridViewRow actualRow in selectedRows) {\r
+ string fileName = actualRow.Cells[1].Value as string;\r
string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor);\r
Type type = Type.GetType(typeName);\r
- ISourceItem selectedFile = GetSourceItemFromBindingSource(actual);//bindingSource.Current as ISourceItem;\r
+ ISourceItem selectedFile = GetSourceItemFromBindingSource(fileName);//bindingSource.Current as ISourceItem;\r
string id = selectedMetadata.ID;\r
object[] parameters = new object[] { this, Configuration.Source, target, selectedFile.Name, id, segments, mediaCubeApi, model };\r
ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters);\r
processors.Add(processor);\r
}\r
+ //foreach (String actual in selectedSources) {\r
+ // string typeName = string.Format("{0}.{1}", typeof(ITargetProcessor).Namespace, target.Processor);\r
+ // Type type = Type.GetType(typeName);\r
+ // ISourceItem selectedFile = GetSourceItemFromBindingSource(actual);//bindingSource.Current as ISourceItem;\r
+ // string id = selectedMetadata.ID;\r
+ // object[] parameters = new object[] { this, Configuration.Source, target, selectedFile.Name, id, segments, mediaCubeApi, model };\r
+ // ITargetProcessor processor = (ITargetProcessor)Activator.CreateInstance(type, parameters);\r
+ // processors.Add(processor);\r
+ //}\r
currentProcessors.Add(checkBox, processors);\r
} else\r
currentProcessors.Remove(checkBox);\r
}\r
\r
private void ApplyMetaDataButtonLogic() {\r
- if (selectedSources.Count <= 0) {\r
+ if (selectedRows.Count <= 0) {\r
buttonMetadata.Enabled = false;\r
return;\r
}\r
- if (selectedSources.Count == 1)\r
+ if (selectedRows.Count == 1)\r
buttonMetadata.Enabled = true;\r
else {\r
- String calculatedHouseID = selectedSources[0];\r
- foreach (String actual in selectedSources)\r
- if (!actual.StartsWith(startingName))\r
+ String calculatedHouseID = selectedRows[0].Cells[1].Value as String;\r
+ foreach (DataGridViewRow actual in selectedRows) {\r
+ string actualName = actual.Cells[1].Value as string;\r
+ if (!actualName.StartsWith(startingName))\r
buttonMetadata.Enabled = false;\r
+ }\r
}\r
}\r
\r
\r
if (Configuration.Player != null)\r
ctxiDefineSegments.Enabled = SelectedSource?.FileInfo != null && Configuration.Player.SegmentEditor && MetadataType.Traffic.Equals(SelectedMetadata?.Kind);\r
- //todo\r
IsSelectedFileAnID();\r
EnableArchiveMetadataButtonAndCreateMetadataModel();\r
}\r
CreateJobsQueueWorker();\r
}\r
\r
+ private void ApplyProcessorButtonsLogicWithoutArchiveMetadataButton() {\r
+ ClearSelectedProcessors();\r
+ if (!String.IsNullOrEmpty(textSelectedMetadata.Text) && !String.IsNullOrEmpty(textSelectedMetadata.Text)) {\r
+ ChangeProcessButtonsState(true);\r
+ } else {\r
+ ChangeProcessButtonsState(false);\r
+ }\r
+\r
+ if (Configuration.Player != null)\r
+ ctxiDefineSegments.Enabled = SelectedSource?.FileInfo != null && Configuration.Player.SegmentEditor && MetadataType.Traffic.Equals(SelectedMetadata?.Kind);\r
+ }\r
+\r
}\r
}\r