Esempio n. 1
0
        /// <summary>
        /// Edits the resource files.
        /// </summary>
        internal void EditResourceFiles(
            IGridEditableData gridEditableData,
            ILanguageColumnFilter filter)
        {
            var editorControl = checkGetAddEditorControl(gridEditableData, out var isNew);

            if (!isNew)
            {
                editorControl.DoLoadFiles(gridEditableData, filter);

                // --

                var files = string.Empty;

                foreach (var fileInfo in gridEditableData.GetFileInformationsSorted())
                {
                    if (files.Length > 0)
                    {
                        files += @";";
                    }

                    files += fileInfo.File.FullName;
                }

                // Immediately stores.
                MainForm.AddMruFiles(files);

                //if (gridEditableData.Project != null)
                //{
                //    gridEditableData.Project.AddMruElement(gridEditableData);
                //}
            }
        }
Esempio n. 2
0
        // ------------------------------------------------------------------
        #endregion

        #region Private implementation.
        // ------------------------------------------------------------------

        private static void doGetBaseName(
            IGridEditableData fileGroup,
            out string baseName,
            out string extension,
            out string removedType)
        {
            if (fileGroup == null || fileGroup.FilePaths.Length <= 0)
            {
                baseName    = null;
                extension   = null;
                removedType = null;
            }
            else
            {
                var fileName = ZlpPathHelper.GetFileNameFromFilePath(fileGroup.FilePaths[0]);

                var removedTypes = new List <string>();

                fileName = removeOptionalDefaultTypes(fileGroup.ParentSettings, fileName, removedTypes);
                //CHANGED: using new common method. Extract all names by reverse pattern resolve
                baseName    = GetBaseName(fileGroup.ParentSettings, fileName);
                extension   = extractBlock(fileGroup.ParentSettings, fileName, PhExtension);
                removedType = (removedTypes.Count > 0 ? removedTypes[0] : null) ?? string.Empty;
            }
        }
        private void doTakeSnapshot(
            IGridEditableData fileGroup,
            IEnumerable <string> languageCodes,
            BackgroundWorker bw)
        {
            //var fgi = fileGroup.GetFileByLanguageCode(Project, languageCode);

            var table = new DataProcessing(fileGroup).GetDataTableFromResxFiles(Project, true);

            var lcs = new List <string>(languageCodes);

            for (var i = 0; i < lcs.Count; i++)
            {
                lcs[i] = lcs[i].ToLowerInvariant();
            }

            var rowIndex = 0;

            foreach (DataRow row in table.Rows)
            {
                if (rowIndex % 25 == 0)
                {
                    if (bw.CancellationPending)
                    {
                        throw new OperationCanceledException();
                    }
                }

                // Column 0=FileGroup checksum, column 1=Tag name.
                var baseKey = MakeBaseKey(row[0], row[1]);

                for (var sourceColumnIndex = 2;
                     sourceColumnIndex < table.Columns.Count - 1;                    // Subtract 1, because last column is ALWAYS the comment.
                     ++sourceColumnIndex)
                {
                    var languageValue = row[sourceColumnIndex] as string;
                    var languageCode  =
                        ExcelExportController.IsFileName(table.Columns[sourceColumnIndex].ColumnName)
                                                        ? new LanguageCodeDetection(Project)
                        .DetectLanguageCodeFromFileName(
                            fileGroup.ParentSettings,
                            table.Columns[sourceColumnIndex].ColumnName)
                                                        : table.Columns[sourceColumnIndex].ColumnName;
                    languageCode = languageCode.ToLowerInvariant();

                    if (                    /*lcs.Contains(languageCode.Substring(0, 2))||*/
                        lcs.Contains(languageCode))
                    {
                        var key = MakeFullKey(baseKey, languageCode);
                        PutSettingValue(key, languageValue);
                    }
                }

                rowIndex++;
            }
        }
        private void doTakeSnapshot(
            InMemoryTranslationSnapshot imss,
            Project project,
            IGridEditableData fileGroup,
            IEnumerable <string> languageCodes,
            BackgroundWorker bw)
        {
            //var fgi = fileGroup.GetFileByLanguageCode(Project, languageCode);

            var table = new DataProcessing(fileGroup).GetDataTableFromResxFiles(project, true);

            var lcs = new List <string>(languageCodes);

            for (var i = 0; i < lcs.Count; i++)
            {
                lcs[i] = lcs[i].ToLowerInvariant();
            }

            var rowIndex = 0;

            foreach (DataRow row in table.Rows)
            {
                if (rowIndex % 25 == 0 && (bw?.CancellationPending ?? false))
                {
                    throw new OperationCanceledException();
                }

                var dic = new Dictionary <string, string>();

                for (var sourceColumnIndex = 2;
                     sourceColumnIndex <
                     table.Columns.Count - 1; // Subtract 1, because last column is ALWAYS the comment.
                     ++sourceColumnIndex)
                {
                    var languageValue = row[sourceColumnIndex] as string;
                    var languageCode  =
                        ExcelExportController.IsFileName(table.Columns[sourceColumnIndex].ColumnName)
                            ? new LanguageCodeDetection(project)
                        .DetectLanguageCodeFromFileName(
                            fileGroup.ParentSettings,
                            table.Columns[sourceColumnIndex].ColumnName)
                            : table.Columns[sourceColumnIndex].ColumnName;
                    languageCode = languageCode.ToLowerInvariant();

                    if (lcs.Contains(languageCode))
                    {
                        dic[languageCode] = languageValue;
                    }
                }

                imss.AddBatchTranslation(dic);

                rowIndex++;
            }
        }
		private void doTakeSnapshot(
			IGridEditableData fileGroup,
			IEnumerable<string> languageCodes,
			BackgroundWorker bw)
		{
			//var fgi = fileGroup.GetFileByLanguageCode(Project, languageCode);

			var table = new DataProcessing(fileGroup).GetDataTableFromResxFiles(Project, true);

			var lcs = new List<string>(languageCodes);
			for (var i = 0; i < lcs.Count; i++)
			{
				lcs[i] = lcs[i].ToLowerInvariant();
			}

			var rowIndex = 0;
			foreach (DataRow row in table.Rows)
			{
				if (rowIndex % 25 == 0)
				{
					if (bw.CancellationPending)
					{
						throw new OperationCanceledException();
					}
				}

				// Column 0=FileGroup checksum, column 1=Tag name.
				var baseKey = MakeBaseKey(row[0], row[1]);

				for (var sourceColumnIndex = 2;
					sourceColumnIndex < table.Columns.Count - 1; // Subtract 1, because last column is ALWAYS the comment.
					++sourceColumnIndex)
				{
					var languageValue = row[sourceColumnIndex] as string;
					var languageCode =
						ExcelExportController.IsFileName(table.Columns[sourceColumnIndex].ColumnName)
							? new LanguageCodeDetection(Project)
								.DetectLanguageCodeFromFileName(
									fileGroup.ParentSettings,
									table.Columns[sourceColumnIndex].ColumnName)
							: table.Columns[sourceColumnIndex].ColumnName;
					languageCode = languageCode.ToLowerInvariant();

					if (/*lcs.Contains(languageCode.Substring(0, 2))||*/
						lcs.Contains(languageCode))
					{
						var key = MakeFullKey(baseKey, languageCode);
						PutSettingValue(key, languageValue);
					}
				}

				rowIndex++;
			}
		}
Esempio n. 6
0
        /// <summary>
        /// Does the load files.
        /// </summary>
        internal void DoLoadFiles(
            IGridEditableData gridEditableData,
            ILanguageColumnFilter filter)
        {
            var editorControl =
                checkGetAddEditorControl(gridEditableData, out var isNew);

            if (!isNew)
            {
                editorControl.DoLoadFiles(gridEditableData, filter);
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Checks the get add editor control.
        /// </summary>
        /// <param name="gridEditableData">The file group.</param>
        /// <param name="isNew">if set to <c>true</c> [is new].</param>
        /// <returns></returns>
        private ResourceEditorUserControl checkGetAddEditorControl(
            IGridEditableData gridEditableData,
            out bool isNew)
        {
            var checksum = gridEditableData.GetChecksum(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty);

            //FileGroup.BuildChecksum(
            //MainForm.Current.ProjectFilesControl.Project,
            //gridEditableData);

            foreach (XtraTabPage tabPage in mainTabControl.TabPages)
            {
                if (ConvertHelper.ToInt64(tabPage.Tag) == checksum)
                {
                    mainTabControl.SelectedTabPage = tabPage;
                    isNew = true;
                    return((ResourceEditorUserControl)tabPage.Controls[0]);
                }
            }

            // --
            // Not found, add new.

            var newTabPage =
                new XtraTabPage
            {
                Text       = gridEditableData.GetNameIntelligent(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty),
                Tooltip    = gridEditableData.GetFullNameIntelligent(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty),
                ImageIndex = (int)gridEditableData.SourceType,
                Tag        = checksum
            };

            var editorControl =
                new ResourceEditorUserControl
            {
                Dock = DockStyle.Fill
            };

            newTabPage.Controls.Add(editorControl);

            mainTabControl.TabPages.Add(newTabPage);
            mainTabControl.Visible         = true;
            mainTabControl.SelectedTabPage = newTabPage;

            isNew = false;
            return(editorControl);
        }
		// ------------------------------------------------------------------
		#endregion

		#region Public methods.
		// ------------------------------------------------------------------

		public DataProcessing(
			IGridEditableData gridEditableData)
		{
			_gridEditableData = gridEditableData;
		}
 public void NotifyFileGroupStateChanged(IGridEditableData gridEditableData)
 {
     FileGroupStateChanged.Raise(this, new FileGroupStateChangedEventArgs(gridEditableData));
 }
Esempio n. 10
0
		public void NotifyFileGroupStateChanged(IGridEditableData gridEditableData)
		{
			FileGroupStateChanged.Raise(this, new FileGroupStateChangedEventArgs(gridEditableData));
		}
 public DataProcessing(
     IGridEditableData gridEditableData)
 {
     _gridEditableData = gridEditableData;
 }
 public FileGroupStateChangedEventArgs(
     IGridEditableData gridEditableData)
 {
     GridEditableData = gridEditableData;
 }
		/// <summary>
		/// Does the load files.
		/// </summary>
		internal void DoLoadFiles(
			IGridEditableData gridEditableData,
			ILanguageColumnFilter filter)
		{
			closeDataGrid();

			GridEditableData = gridEditableData;
			_data = new DataProcessing(gridEditableData);

			// ReSharper disable ConvertIfStatementToConditionalTernaryExpression
			if (gridEditableData.GetFileInformationsSorted().Length > 0)
			// ReSharper restore ConvertIfStatementToConditionalTernaryExpression
			{
				fileNameTextEdit.Text = gridEditableData.FolderPath.FullName;
			}
			else
			{
				fileNameTextEdit.Text = null;
			}

			tabControl1.TabPages.Clear();

			var table = _data.GetDataTableFromResxFiles(gridEditableData.Project);

			if (table == null)
			{
				CloseAndSaveDataGrid();
			}
			else
			{
				// Column 0=FileGroup checksum, column 1=Tag name.
				for (var i = 2; i < table.Columns.Count; ++i)
				{
					var imageIndex =
						DataProcessing.CommentsAreVisible(
							gridEditableData.Project,
							table,
							CommentVisibilityScope.VisualGrid) &&
						i == table.Columns.Count - 1
							? 1
							: 0;

					addDetailTabPage(
						filter,
						imageIndex,
						imageIndex == 1
							? Resources.SR_ColumnCaption_Comment
							: table.Columns[i].Caption,
						imageIndex == 1
							? string.Empty
							: DataProcessing.ExtractCultureNameFromColumnCaption(table.Columns[i].Caption));
				}
			}

			// --

			mainDataGrid.DataSource = table;
			mainDataGrid.MainView.PopulateColumns();
			filterColumns(
				filter,
				DataProcessing.CommentsAreVisible(
					gridEditableData.Project,
					table,
					CommentVisibilityScope.VisualGrid));
			postpareStructure();

			FormBase.RestoreState(tabControl1);

			UpdateUI();

			restoreGridLayout();
			restoreSplitterState();

			// Initially.
			markGridContentAsUnmodified();
			markDetailsContentAsUnmodified();
			_currentRowIndex = -1;
			_canSaveGridLayout = true;

			// --

			updateStateImage();
		}
		private TreeListNode locateNode(IGridEditableData fileGroup)
		{
			TreeListNode result = null;

			treeView.NodesIterator.DoOperation(
				n =>
				{
					if (result == null)
					{
						var fg = n.Tag as IGridEditableData;

						if (fg != null && fg.GetChecksum(Project) == fileGroup.GetChecksum(Project))
						{
							result = n;
						}
					}
				});

			return result;
		}
		/// <summary>
		/// Edits the resource files.
		/// </summary>
		internal void EditResourceFiles(
			IGridEditableData gridEditableData,
			ILanguageColumnFilter filter)
		{
			bool isNew;
			var editorControl = checkGetAddEditorControl(gridEditableData, out isNew);

			if (!isNew)
			{
				editorControl.DoLoadFiles(gridEditableData, filter);

				// --

				var files = string.Empty;

				foreach (var fileInfo in gridEditableData.GetFileInformationsSorted())
				{
					if (files.Length > 0)
					{
						files += @";";
					}

					files += fileInfo.File.FullName;
				}

				// Immediately stores.
				MainForm.AddMruFiles(files);

				//if (gridEditableData.Project != null)
				//{
				//    gridEditableData.Project.AddMruElement(gridEditableData);
				//}
			}
		}
		/// <summary>
		/// Does the load files.
		/// </summary>
		internal void DoLoadFiles(
			IGridEditableData gridEditableData,
			ILanguageColumnFilter filter)
		{
			bool isNew;
			var editorControl =
				checkGetAddEditorControl(gridEditableData, out isNew);

			if (!isNew)
			{
				editorControl.DoLoadFiles(gridEditableData, filter);
			}
		}
		/// <summary>
		/// Checks the get add editor control.
		/// </summary>
		/// <param name="gridEditableData">The file group.</param>
		/// <param name="isNew">if set to <c>true</c> [is new].</param>
		/// <returns></returns>
		private ResourceEditorUserControl checkGetAddEditorControl(
			IGridEditableData gridEditableData,
			out bool isNew)
		{
			var checksum = gridEditableData.GetChecksum(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty);
			//FileGroup.BuildChecksum(
			//MainForm.Current.ProjectFilesControl.Project,
			//gridEditableData);

			foreach (XtraTabPage tabPage in mainTabControl.TabPages)
			{
				if (ConvertHelper.ToInt64(tabPage.Tag) == checksum)
				{
					mainTabControl.SelectedTabPage = tabPage;
					isNew = true;
					return (ResourceEditorUserControl)tabPage.Controls[0];
				}
			}

			// --
			// Not found, add new.

			var newTabPage =
				new XtraTabPage
				{
					Text = gridEditableData.GetNameIntelligent(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty),
					Tooltip = gridEditableData.GetFullNameIntelligent(MainForm.Current.ProjectFilesControl.Project ?? Project.Empty),
					ImageIndex = (int)gridEditableData.SourceType,
					Tag = checksum
				};

			var editorControl =
				new ResourceEditorUserControl
				{
					Dock = DockStyle.Fill
				};

			newTabPage.Controls.Add(editorControl);

			mainTabControl.TabPages.Add(newTabPage);
			mainTabControl.Visible = true;
			mainTabControl.SelectedTabPage = newTabPage;

			isNew = false;
			return editorControl;
		}
		// ------------------------------------------------------------------
		#endregion

		#region Private implementation.
		// ------------------------------------------------------------------

		private static void doGetBaseName(
			IGridEditableData fileGroup,
			out string baseName,
			out string extension,
			out string removedType)
		{
			if (fileGroup == null || fileGroup.FilePaths.Length <= 0)
			{
				baseName = null;
				extension = null;
				removedType = null;
			}
			else
			{
				var fileName = ZlpPathHelper.GetFileNameFromFilePath(fileGroup.FilePaths[0]);

				var removedTypes = new List<string>();

				fileName = removeOptionalDefaultTypes(fileGroup.ParentSettings, fileName, removedTypes);
				//CHANGED: using new common method. Extract all names by reverse pattern resolve
				baseName = GetBaseName(fileGroup.ParentSettings, fileName);
				extension = extractBlock(fileGroup.ParentSettings, fileName, PhExtension);
				removedType = (removedTypes.Count > 0 ? removedTypes[0] : null) ?? string.Empty;
			}
		}
		public FileGroupStateChangedEventArgs(
			IGridEditableData gridEditableData)
		{
			_gridEditableData = gridEditableData;
		}