Esempio n. 1
0
 private void removeEmptyDescriptions(AlternateContentProperty altProp)
 {
     foreach (AlternateContent altContent in altProp.AlternateContents.ContentsAs_ListCopy)
     {
         if (altContent.IsEmpty ||
             altContent.Text == null
             &&
             altContent.Image == null
             &&
             altContent.Audio == null
             &&
             !Daisy3_Export.AltContentHasSignificantMetadata(altContent)
             )
         {
             m_ViewModel.RemoveDescription(altContent);
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Export the project as DAISY to an export directory.
        /// </summary>
        public void ExportToZ(string exportPath, string xukPath, Daisy3_Export DAISYExport)
        {
            UpdatePublicationMetadata();
            DAISYExport.DoWork();

            /*
             * if (format == Obi.ImportExport.ExportFormat.DAISY3_0)
             * {
             *  Obi.ImportExport.DAISY3_ObiExport daisy3Export = new Obi.ImportExport.DAISY3_ObiExport(this, exportPath, null, encodeToMP3, AudioLib.SampleRate.Hz44100, false, audioFileSectionLevel);
             *  daisy3Export.BitRate_Mp3 = mp3BitRate;
             *      daisy3Export.DoWork();
             *  }
             * else
             * {
             *  ImportExport.DAISY202Export export202 = new Obi.ImportExport.DAISY202Export(this, exportPath, encodeToMP3, AudioLib.SampleRate.Hz44100, audioFileSectionLevel);
             *  export202.BitRate_Mp3 = mp3BitRate;
             *  export202.DoWork();
             *
             *
             *  ChannelsManager.RemoveManagedObject(publishChannel);
             *
             * }
             */
        }
        private bool getValidationText_BasicImage(ref string message)
        {
            bool first = true;

            AlternateContent altContent = GetAltContent(DiagramContentModelHelper.D_SimplifiedImage);

            if (altContent != null)
            {
                if (altContent.Image != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- It is recommended to specify a tour for the simplified image.";
                    }
                }

                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null &&
                    (
                        altContent.Text != null ||
                        otherDataInAdvancedMode
                    )
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified image is missing.";
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data, see advanced editor)";
                        }
                    }
                }
                //if (altContent.Image == null && altContent.Text != null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- A tour is specified without its associated simplified image.";
                //    }
                //}
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified image has audio but no corresponding tour.";
                    }
                }
            }
            altContent = GetAltContent(DiagramContentModelHelper.D_Tactile);
            if (altContent != null)
            {
                if (altContent.Image != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- It is recommended to specify a tour for the tactile image.";
                    }
                }
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null &&
                    (
                        altContent.Text != null ||
                        otherDataInAdvancedMode
                    )
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The tactile image is missing.";
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data, see advanced editor)";
                        }
                    }
                }
                //if (altContent.Image == null && altContent.Text != null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- A tour is specified without its associated tactile image.";
                //    }
                //}
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The tactile image has audio but no corresponding tour.";
                    }
                }
            }

            bool hasMessages = !first;

            return(hasMessages);
        }
        private bool getValidationText_BasicText(ref string message)
        {
            bool first = true;

            AlternateContent altContent = GetAltContent(DiagramContentModelHelper.D_LondDesc);

            if (altContent == null
                ||
                altContent.Text == null
                ||
                string.IsNullOrEmpty(altContent.Text.Text)
                )
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- A long description must be specified.";
                }
            }
            else
            {
                //bool otherDataInAdvancedMode = altContent.Audio != null
                //                               || Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                //if (altContent.Text == null
                //    && otherDataInAdvancedMode
                //    )
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- The long description has no text.";
                //        if (otherDataInAdvancedMode)
                //        {
                //            message += " (has other data, see advanced editor)";
                //        }
                //    }
                //}

                //if (altContent.Audio != null && altContent.Text == null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- The long description has audio but no corresponding text.";
                //    }
                //}
            }

            altContent = GetAltContent(DiagramContentModelHelper.D_Summary);
            if (altContent != null)
            {
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Text == null &&
                    otherDataInAdvancedMode
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The summary has no text.";
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data, see advanced editor)";
                        }
                    }
                }

                //if (altContent.Audio != null && altContent.Text == null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- The summary has audio but no corresponding text.";
                //    }
                //}
            }

            altContent = GetAltContent(DiagramContentModelHelper.D_SimplifiedLanguageDescription);
            if (altContent != null)
            {
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Text == null &&
                    otherDataInAdvancedMode
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified language has no text.";
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data, see advanced editor)";
                        }
                    }
                }

                //if (altContent.Audio != null && altContent.Text == null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- The simplified language has audio but no corresponding text.";
                //    }
                //}
            }

            bool hasMessages = !first;

            return(hasMessages);
        }
Esempio n. 5
0
        private bool getValidationText_Descriptions(ref string message)
        {
            bool first = true;

            int count = 0;

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                count++;
            }
            if (count == 0)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- No long description is specified.";
                }
            }
            else if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- There are more than one long description (";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The long description has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The long description text is missing.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data)";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The long description shouldn't have an image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }
            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                count++;
            }
            if (count == 0)
            {
                //if (!first)
                //{
                //    if (message != null)
                //    {
                //        message += "\n";
                //    }
                //}
                //first = false;
                //if (message != null)
                //{
                //    message += "- Specifying a summary is recommended.";
                //}
            }
            else if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- There are more than one summary (";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The summary has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The summary text is missing.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data)";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The summary shouldn't have an image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- There are more than one simplified language (";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The simplified language has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified language text is missing.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data)";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified language shouldn't have an image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- There are more than one simplified image (";
                    message += count;
                    message += "), which will be grouped if they have the same identifier and share the same tour.";
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The simplified image has audio but no corresponding tour.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Image == null)
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   altContent.Text != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- Image is missing for simplified image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data)";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Image != null &&
                    (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text)))
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- Tour text is recommended for simplified image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- There are more than one tactile image (";
                    message += count;
                    message += "), which will be grouped if they have the same identifier and share the same tour.";
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- The tactile image has audio but no corresponding tour.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               altContent.Text != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- Image is missing for tactile image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " (has other data)";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                if (altContent.Image != null &&
                    (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text)))
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += "- Tour text is recommended for tactile image.";

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            string strUnknownDIAGRAMs = "";

            foreach (var id in GetUnknownDIAGRAMnames())
            {
                strUnknownDIAGRAMs += "[";
                strUnknownDIAGRAMs += id;
                strUnknownDIAGRAMs += "]";
            }

            if (!string.IsNullOrEmpty(strUnknownDIAGRAMs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Unknown DIAGRAM elements: ";
                    message += strUnknownDIAGRAMs;
                }
            }

            string strInvalidDIAGRAMs = "";

            foreach (var id in GetInvalidDIAGRAMnames())
            {
                strInvalidDIAGRAMs += "[";
                strInvalidDIAGRAMs += id;
                strInvalidDIAGRAMs += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidDIAGRAMs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Invalid syntax for DIAGRAM elements: ";
                    message += strInvalidDIAGRAMs;
                }
            }

            string strInvalidIDS = "";

            foreach (var id in GetInvalidIDs(false, true))
            {
                strInvalidIDS += "[";
                strInvalidIDS += id;
                strInvalidIDS += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Some identifiers are invalid: ";
                    message += strInvalidIDS;
                }
            }

            string strDupIDS = "";

            foreach (var id in GetDuplicatedIDs(false, true))
            {
                strDupIDS += "[";
                strDupIDS += id;
                strDupIDS += "]";
            }

            if (!string.IsNullOrEmpty(strDupIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Some identifiers are duplicated (this may be valid if used for grouping image objects): ";
                    message += strDupIDS;
                }
            }

            string strMissingIDS = "";

            foreach (var id in GetReferencedMissingIDs(false, true))
            {
                strMissingIDS += "[";
                strMissingIDS += id;
                strMissingIDS += "]";
            }

            if (!string.IsNullOrEmpty(strMissingIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Some identifiers are referenced, but are missing: ";
                    message += strMissingIDS;
                }
            }

            string strInvalidLangs = "";

            foreach (var id in GetInvalidLanguageTags(false, true))
            {
                strInvalidLangs += "[";
                strInvalidLangs += id;
                strInvalidLangs += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidLangs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += "- Some language tags are invalid: ";
                    message += strInvalidLangs;
                }
            }

            bool hasMessages = !first;

            return(hasMessages);
        }
Esempio n. 6
0
        private void OnClick_ButtonExport(object sender, RoutedEventArgs e)
        {
            m_Logger.Log("DescriptionView.OnClick_ButtonExport", Category.Debug, Priority.Medium);

            Tuple <TreeNode, TreeNode> selection = m_Session.GetTreeNodeSelection();
            TreeNode node = selection.Item2 ?? selection.Item1;

            if (node == null ||
                node.GetAlternateContentProperty() == null ||
                node.GetImageMedia() == null ||
                !(node.GetImageMedia() is ManagedImageMedia))
            {
                return;
            }


            SampleRate sampleRate = SampleRate.Hz22050;

            sampleRate = Urakawa.Settings.Default.AudioExportSampleRate;


            bool encodeToMp3 = true;

            encodeToMp3 = Urakawa.Settings.Default.AudioExportEncodeToMp3;


            var combo = new ComboBox
            {
                Margin = new Thickness(0, 0, 0, 12)
            };

            ComboBoxItem item1 = new ComboBoxItem();

            item1.Content = AudioLib.SampleRate.Hz11025.ToString();
            combo.Items.Add(item1);

            ComboBoxItem item2 = new ComboBoxItem();

            item2.Content = AudioLib.SampleRate.Hz22050.ToString();
            combo.Items.Add(item2);

            ComboBoxItem item3 = new ComboBoxItem();

            item3.Content = AudioLib.SampleRate.Hz44100.ToString();
            combo.Items.Add(item3);

            switch (sampleRate)
            {
            case AudioLib.SampleRate.Hz11025:
            {
                combo.SelectedItem = item1;
                combo.Text         = item1.Content.ToString();
                break;
            }

            case AudioLib.SampleRate.Hz22050:
            {
                combo.SelectedItem = item2;
                combo.Text         = item2.Content.ToString();
                break;
            }

            case AudioLib.SampleRate.Hz44100:
            {
                combo.SelectedItem = item3;
                combo.Text         = item3.Content.ToString();
                break;
            }
            }

            var checkBox = new CheckBox
            {
                IsThreeState        = false,
                IsChecked           = encodeToMp3,
                HorizontalAlignment = System.Windows.HorizontalAlignment.Right,
                VerticalAlignment   = VerticalAlignment.Center,
            };

            var label_ = new TextBlock
            {
                Text   = Tobi_Plugin_Urakawa_Lang.ExportEncodeMp3,
                Margin = new Thickness(8, 0, 8, 0),
                HorizontalAlignment = System.Windows.HorizontalAlignment.Right,
                VerticalAlignment   = VerticalAlignment.Center,
                Focusable           = true,
                TextWrapping        = TextWrapping.Wrap
            };


            var panel__ = new StackPanel
            {
                Orientation         = System.Windows.Controls.Orientation.Horizontal,
                HorizontalAlignment = System.Windows.HorizontalAlignment.Right,
                VerticalAlignment   = VerticalAlignment.Center,
            };

            panel__.Children.Add(label_);
            panel__.Children.Add(checkBox);

            var panel_ = new StackPanel
            {
                Orientation         = System.Windows.Controls.Orientation.Vertical,
                HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Center,
            };

            panel_.Children.Add(combo);
            panel_.Children.Add(panel__);

            var windowPopup_ = new PopupModalWindow(m_ShellView,
                                                    UserInterfaceStrings.EscapeMnemonic(Tobi_Plugin_Urakawa_Lang.ExportSettings),
                                                    panel_,
                                                    PopupModalWindow.DialogButtonsSet.OkCancel,
                                                    PopupModalWindow.DialogButton.Ok,
                                                    false, 300, 180, null, 40, m_DescriptionPopupModalWindow);

            windowPopup_.EnableEnterKeyDefault = true;

            windowPopup_.ShowModal();

            if (!PopupModalWindow.IsButtonOkYesApply(windowPopup_.ClickedDialogButton))
            {
                return;
            }

            encodeToMp3 = checkBox.IsChecked.Value;
            Urakawa.Settings.Default.AudioExportEncodeToMp3 = checkBox.IsChecked.Value;

            if (combo.SelectedItem == item1)
            {
                sampleRate = SampleRate.Hz11025;
                Urakawa.Settings.Default.AudioExportSampleRate = sampleRate;
            }
            else if (combo.SelectedItem == item2)
            {
                sampleRate = SampleRate.Hz22050;
                Urakawa.Settings.Default.AudioExportSampleRate = sampleRate;
            }
            else if (combo.SelectedItem == item3)
            {
                sampleRate = SampleRate.Hz44100;
                Urakawa.Settings.Default.AudioExportSampleRate = sampleRate;
            }



            string rootFolder = Path.GetDirectoryName(m_Session.DocumentFilePath);

            var dlg = new FolderBrowserDialog
            {
                RootFolder          = Environment.SpecialFolder.MyComputer,
                SelectedPath        = rootFolder,
                ShowNewFolderButton = true,
                Description         = @"Tobi: " + UserInterfaceStrings.EscapeMnemonic("Export DIAGRAM XML")
            };

            DialogResult result = DialogResult.Abort;

            m_ShellView.DimBackgroundWhile(() => { result = dlg.ShowDialog(); });

            if (result != DialogResult.OK && result != DialogResult.Yes)
            {
                return;
            }
            if (!Directory.Exists(dlg.SelectedPath))
            {
                return;
            }


            ManagedImageMedia managedImage = (ManagedImageMedia)node.GetImageMedia();

            string exportImageName =
                //Path.GetFileName
                FileDataProvider.EliminateForbiddenFileNameCharacters
                    (managedImage.ImageMediaData.OriginalRelativePath)
            ;
            string imageDescriptionDirectoryPath = Daisy3_Export.GetAndCreateImageDescriptionDirectoryPath(false, exportImageName, dlg.SelectedPath);

            if (Directory.Exists(imageDescriptionDirectoryPath))
            {
                if (!m_Session.askUserConfirmOverwriteFileFolder(imageDescriptionDirectoryPath, true, m_DescriptionPopupModalWindow))
                {
                    return;
                }

                FileDataProvider.TryDeleteDirectory(imageDescriptionDirectoryPath, true);
            }

            FileDataProvider.CreateDirectory(imageDescriptionDirectoryPath);



            PCMFormatInfo     audioFormat = node.Presentation.MediaDataManager.DefaultPCMFormat;
            AudioLibPCMFormat pcmFormat   = audioFormat.Data;

            if ((ushort)sampleRate != pcmFormat.SampleRate)
            {
                pcmFormat.SampleRate = (ushort)sampleRate;
            }


            Application.Current.MainWindow.Cursor = Cursors.Wait;
            this.Cursor = Cursors.Wait; //m_ShellView

            try
            {
                string descriptionFile = Daisy3_Export.CreateImageDescription(
                    Urakawa.Settings.Default.AudioCodecDisableACM,
                    pcmFormat, encodeToMp3, 0,
                    imageDescriptionDirectoryPath, exportImageName,
                    node.GetAlternateContentProperty(),
                    null,
                    null,
                    null);
            }
            finally
            {
                Application.Current.MainWindow.Cursor = Cursors.Arrow;
                this.Cursor = Cursors.Arrow; //m_ShellView
            }


            m_ShellView.ExecuteShellProcess(imageDescriptionDirectoryPath);
        }
        private bool getValidationText_BasicImage(ref string message)
        {
            bool first = true;

            AlternateContent altContent = GetAltContent(DiagramContentModelHelper.D_SimplifiedImage);

            if (altContent != null)
            {
                if (altContent.Image != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageTourRecommended;
                    }
                }

                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null &&
                    (
                        altContent.Text != null ||
                        otherDataInAdvancedMode
                    )
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageMissing;
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherDataAdvanced;
                        }
                    }
                }
                //if (altContent.Image == null && altContent.Text != null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- A tour is specified without its associated simplified image.";
                //    }
                //}
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageAudioNoTour;
                    }
                }
            }
            altContent = GetAltContent(DiagramContentModelHelper.D_Tactile);
            if (altContent != null)
            {
                if (altContent.Image != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageTourRecommended;
                    }
                }
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null &&
                    (
                        altContent.Text != null ||
                        otherDataInAdvancedMode
                    )
                    )
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageMissing;
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherDataAdvanced;
                        }
                    }
                }
                //if (altContent.Image == null && altContent.Text != null)
                //{
                //    if (!first)
                //    {
                //        if (message != null)
                //        {
                //            message += "\n";
                //        }
                //    }
                //    first = false;
                //    if (message != null)
                //    {
                //        message += "- A tour is specified without its associated tactile image.";
                //    }
                //}
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageAudioNoTour;
                    }
                }
            }

            bool hasMessages = !first;

            return(hasMessages);
        }
        private bool getValidationText_Descriptions(ref string message)
        {
            bool first = true;

            int count = 0;

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                count++;
            }
            if (count == 0)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.LongDescMissing;
                }
            }
            else if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.LongDescMoreThanOne;
                    message += "(";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The long description has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.LongDescTextMissing;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherData;
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_LondDesc))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.LongDescNoImage;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }
            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                count++;
            }
            if (count == 0)
            {
                //if (!first)
                //{
                //    if (message != null)
                //    {
                //        message += "\n";
                //    }
                //}
                //first = false;
                //if (message != null)
                //{
                //    message += "- Specifying a summary is recommended.";
                //}
            }
            else if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.SummaryMoreThanOne;
                    message += " (";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The summary has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SummaryTextMissing;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherData;
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Summary))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SummaryNoImage;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.SimplifiedLanguageMoreThanOne;
                    message += " (";
                    message += count;
                    message += ")";
                }
            }

            //foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            //{
            //    if (altContent.Audio != null && altContent.Text == null)
            //    {
            //        if (!first)
            //        {
            //            if (message != null)
            //            {
            //                message += "\n";
            //            }
            //        }
            //        first = false;
            //        if (message != null)
            //        {
            //            message += "- The simplified language has audio but no corresponding text.";
            //        }

            //        break;
            //    }
            //}

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                if (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text))
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedLanguageTextMissing;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherData;
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedLanguageDescription))
            {
                if (altContent.Image != null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedLanguageNoImage;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageMoreThanOne;
                    message += " (";
                    message += count;
                    message += "), ";
                    message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageGroupID;
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageAudioNoTour;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Image == null)
                {
                    bool otherDataInAdvancedMode = altContent.Audio != null ||
                                                   altContent.Text != null ||
                                                   Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageMissingImage;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherData;
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_SimplifiedImage))
            {
                if (altContent.Image != null &&
                    (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text)))
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageTourRecommended;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            count = 0;
            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                count++;
            }
            if (count > 1)
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.TactileImageMoreThanOne;
                    message += " (";
                    message += count;
                    message += "), ";
                    message += Tobi_Plugin_Descriptions_Lang.SimplifiedImageGroupID;
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                if (altContent.Audio != null && altContent.Text == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageAudioNoTour;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                bool otherDataInAdvancedMode = altContent.Audio != null ||
                                               altContent.Text != null ||
                                               Daisy3_Export.AltContentHasSignificantMetadata(altContent);
                if (altContent.Image == null)
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageMissingImage;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "] ";
                        }
                        if (otherDataInAdvancedMode)
                        {
                            message += " ";
                            message += Tobi_Plugin_Descriptions_Lang.LongDescHasOtherData;
                        }
                    }
                }
            }

            foreach (var altContent in GetAltContents(DiagramContentModelHelper.D_Tactile))
            {
                if (altContent.Image != null &&
                    (altContent.Text == null || string.IsNullOrEmpty(altContent.Text.Text)))
                {
                    if (!first)
                    {
                        if (message != null)
                        {
                            message += "\n";
                        }
                    }
                    first = false;
                    if (message != null)
                    {
                        message += Tobi_Plugin_Descriptions_Lang.TactileImageTourRecommended;

                        string xmlId = GetXmlID(altContent);
                        if (!String.IsNullOrEmpty(xmlId))
                        {
                            message += " [" + xmlId + "]";
                        }
                    }
                }
            }

            string strUnknownDIAGRAMs = "";

            foreach (var id in GetUnknownDIAGRAMnames())
            {
                strUnknownDIAGRAMs += "[";
                strUnknownDIAGRAMs += id;
                strUnknownDIAGRAMs += "]";
            }

            if (!string.IsNullOrEmpty(strUnknownDIAGRAMs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.DiagramUnknownElements;
                    message += " ";
                    message += strUnknownDIAGRAMs;
                }
            }

            string strInvalidDIAGRAMs = "";

            foreach (var id in GetInvalidDIAGRAMnames())
            {
                strInvalidDIAGRAMs += "[";
                strInvalidDIAGRAMs += id;
                strInvalidDIAGRAMs += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidDIAGRAMs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.DiagramElementsInvalidSyntax;
                    message += " ";
                    message += strInvalidDIAGRAMs;
                }
            }

            string strInvalidIDS = "";

            foreach (var id in GetInvalidIDs(false, true))
            {
                strInvalidIDS += "[";
                strInvalidIDS += id;
                strInvalidIDS += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.InvalidIDs;
                    message += " ";
                    message += strInvalidIDS;
                }
            }

            string strDupIDS = "";

            foreach (var id in GetDuplicatedIDs(false, true))
            {
                strDupIDS += "[";
                strDupIDS += id;
                strDupIDS += "]";
            }

            if (!string.IsNullOrEmpty(strDupIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.DuplicatedIDs;
                    message += " ";
                    message += strDupIDS;
                }
            }

            string strMissingIDS = "";

            foreach (var id in GetReferencedMissingIDs(false, true))
            {
                strMissingIDS += "[";
                strMissingIDS += id;
                strMissingIDS += "]";
            }

            if (!string.IsNullOrEmpty(strMissingIDS))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.MissingIDs;
                    message += " ";
                    message += strMissingIDS;
                }
            }

            string strInvalidLangs = "";

            foreach (var id in GetInvalidLanguageTags(false, true))
            {
                strInvalidLangs += "[";
                strInvalidLangs += id;
                strInvalidLangs += "]";
            }

            if (!string.IsNullOrEmpty(strInvalidLangs))
            {
                if (!first)
                {
                    if (message != null)
                    {
                        message += "\n";
                    }
                }
                first = false;
                if (message != null)
                {
                    message += Tobi_Plugin_Descriptions_Lang.InvalidLanguageTags;
                    message += " ";
                    message += strInvalidLangs;
                }
            }

            bool hasMessages = !first;

            return(hasMessages);
        }