コード例 #1
0
ファイル: PathMaker.cs プロジェクト: btuny/pathmaker_os_files
 public static ChangeLogShadow LookupChangeLogShadow()
 {
     foreach (Shadow shadow in shadowShapeMap.Values)
     {
         ChangeLogShadow changeLogShadow = shadow as ChangeLogShadow;
         if (changeLogShadow != null)
         {
             return(shadow as ChangeLogShadow);
         }
     }
     return(null);
 }
コード例 #2
0
        //JDK killed this one for the highlight fixes

        /*public static System.Drawing.Color? GetHighlightColor(string dateString) {
         *  DateTime date;
         *  if (DateTime.TryParse(dateString, out date))
         *      return GetHighlightColor(date);
         *  else
         *      return null;
         * }
         * */

        /**
         * Returns the highlight color to be used given a change date.
         * If no highlight is needed, it will return the DefaultHighlightColor
         */
        public static System.Drawing.Color?GetHighlightColor(DateTime date)
        {
            ChangeLogShadow shadow = PathMaker.LookupChangeLogShadow();

            if (shadow == null)
            {
                return(null);
            }

            string color = shadow.GetColorStringForChange(date);

            return(ConvertColorStringToColor(color));
        }
コード例 #3
0
        /**
         * Returns the highlight color to be used given a change version stamp.
         * If no highlight is needed, it will return the DefaultHighlightColor
         */
        public static System.Drawing.Color?GetHighlightColor(string versionLabel)
        {
            ChangeLogShadow shadow = PathMaker.LookupChangeLogShadow();

            if (shadow == null)
            {
                return(null);
            }

            String color = Strings.HighlightColorNone;

            if (versionLabel == null || versionLabel == "")
            {
                versionLabel = Strings.DefaultVersionStamp;
            }
            else
            {
                color = shadow.GetColorStringForChange(versionLabel);
            }

            return(ConvertColorStringToColor(color));
        }
コード例 #4
0
        // Creates a shadow from a shape.  Should only be called from PathMaker
        // event handlers when things are loaded, added, etc.
        public static Shadow MakeShapeShadow(Shape shape)
        {
            ShapeTypes shapeType = Common.GetShapeType(shape);
            Shadow shadow = null;

            switch (shapeType) {
                case ShapeTypes.CallSubDialog:
                    shadow = new CallSubDialogShadow(shape);
                    break;
                case ShapeTypes.ChangeLog:
                    shadow = new ChangeLogShadow(shape);
                    break;
                case ShapeTypes.AppDesc:
                    shadow = new AppDescShadow(shape);
                    break;
                case ShapeTypes.PrefixList:
                    shadow = new PrefixListShadow(shape);
                    break;
                case ShapeTypes.Comment:
                    shadow = new IgnoredShadow(shape);
                    break;
                case ShapeTypes.Connector:
                    shadow = new ConnectorShadow(shape);
                    break;
                case ShapeTypes.Data:
                    shadow = new DataShadow(shape);
                    break;
                case ShapeTypes.Decision:
                    shadow = new DecisionShadow(shape);
                    break;
                case ShapeTypes.DocTitle:
                    shadow = new DocTitleShadow(shape);
                    break;
                case ShapeTypes.HangUp:
                    shadow = new HangUpShadow(shape);
                    break;
                case ShapeTypes.Interaction:
                    shadow = new InteractionShadow(shape);
                    break;
                case ShapeTypes.None:
                    break;
                case ShapeTypes.OffPageRef:
                    shadow = new OffPageRefShadow(shape);
                    break;
                case ShapeTypes.OnPageRefIn:
                    shadow = new OnPageRefInShadow(shape);
                    break;
                case ShapeTypes.OnPageRefOut:
                    shadow = new OnPageRefOutShadow(shape);
                    break;
                case ShapeTypes.Page:
                    break;
                case ShapeTypes.Placeholder:
                    shadow = new IgnoredShadow(shape);
                    break;
                case ShapeTypes.Play:
                    shadow = new PlayShadow(shape);
                    break;
                case ShapeTypes.Return:
                    shadow = new ReturnShadow(shape);
                    break;
                case ShapeTypes.Start:
                    shadow = new StartShadow(shape);
                    break;
                case ShapeTypes.SubDialog:
                    shadow = new SubDialogShadow(shape);
                    break;
                case ShapeTypes.Transfer:
                    shadow = new TransferShadow(shape);
                    break;
            }
            return shadow;
        }
コード例 #5
0
        internal static string ExportFastPathXML(AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl visioControl, bool useTmpFile)
        {
            DocTitleShadow docTitleShadow = PathMaker.LookupDocTitleShadow();

            if (docTitleShadow == null)
            {
                Common.ErrorMessage("Missing Document Title shape");
                return(null);
            }
            StartShadow startShadow = PathMaker.LookupStartShadow();

            if (startShadow == null)
            {
                Common.ErrorMessage("Missing Start shape");
                return(null);
            }

            changeLogShadow = PathMaker.LookupChangeLogShadow();
            if (changeLogShadow == null)
            {
                Common.ErrorMessage("Missing Change Log shape");
                return(null);
            }

            if (saveFileDialog == null)
            {
                saveFileDialog             = new SaveFileDialog();
                saveFileDialog.Title       = Common.GetResourceString(Strings.SaveFastPathXMLTitleRes);
                saveFileDialog.Filter      = Common.GetResourceString(Strings.SaveFastPathXMLFilterRes);
                saveFileDialog.FilterIndex = 1;
            }

            saveFileDialog.InitialDirectory = PathMaker.getCurrentFileDirectory(visioControl);
            saveFileDialog.RestoreDirectory = true;

            targetFilename          = visioControl.Src;
            currentFileName         = System.IO.Path.GetFileName(targetFilename);
            saveFileDialog.FileName = Common.StripExtensionFileName(currentFileName) + ".xml";

            if (!useTmpFile)
            {
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    targetFilename = saveFileDialog.FileName;
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                targetFilename = saveFileDialog.FileName + ".tmp";
            }

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.XmlResolver = null;
            xmlDoc.LoadXml(xmlStrings.Header);
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Project, docTitleShadow.GetProjectName());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Client, docTitleShadow.GetClientName());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.LastModified, changeLogShadow.GetLastLogChangeDate());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Version, changeLogShadow.GetLastChangeVersion());

            AddStartElement(xmlDoc, startShadow);

            List <Shadow> shadowList = PathMaker.LookupAllShadows();
            // sorting them here helps the Missed statements in PathRunner come out in order
            string stateSortOrder = startShadow.GetDefaultSetting(Strings.DefaultSettingsStateSortOrder);

            if (stateSortOrder.Equals(Strings.StateSortOrderAlphaNumerical))
            {
                shadowList.Sort(Common.StateIdShadowSorterAlphaNumerical);
            }
            else if (stateSortOrder.Equals(Strings.StateSortOrderNumericalOnly))
            {
                shadowList.Sort(Common.StateIdShadowSorterNumericalAlpha);
            }
            else
            {
                Common.StateIdShadowSorterVisioHeuristic(shadowList, visioControl.Document, startShadow);
            }

            foreach (Shadow shadow in shadowList)
            {
                switch (shadow.GetShapeType())
                {
                case ShapeTypes.Interaction:
                    AddInteractionElement(xmlDoc, shadow as InteractionShadow);
                    break;

                case ShapeTypes.Play:
                    AddPlayElement(xmlDoc, shadow as PlayShadow);
                    break;

                case ShapeTypes.Decision:
                    AddDecisionElement(xmlDoc, shadow as DecisionShadow);
                    break;

                case ShapeTypes.Data:
                    AddDataElement(xmlDoc, shadow as DataShadow);
                    break;

                case ShapeTypes.SubDialog:
                    AddSubDialogElement(xmlDoc, shadow as SubDialogShadow);
                    break;

                default:
                    break;
                }
            }

            xmlDoc.Save(targetFilename);
            return(targetFilename);
        }
コード例 #6
0
        internal static void ExportHighLevelDesignDoc(AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl visioControl)
        {
            DocTitleShadow docTitleShadow = PathMaker.LookupDocTitleShadow();
            if (docTitleShadow == null) {
                Common.ErrorMessage("Missing Document Title shape");
                return;
            }
            changeLogShadow = PathMaker.LookupChangeLogShadow();
            if (changeLogShadow == null) {
                Common.ErrorMessage("Missing Change Log shape");
                return;
            }
            StartShadow startShadow = PathMaker.LookupStartShadow();
            if (startShadow == null) {
                Common.ErrorMessage("Missing Start shape");
                return;
            }

            string targetFilename;
            string currentFileName;

            if (saveFileDialog == null)
                saveFileDialog = new SaveFileDialog();
            saveFileDialog.InitialDirectory = PathMaker.getCurrentFileDirectory(visioControl);
            saveFileDialog.Title = Common.GetResourceString(Strings.SaveHLDSpecTitleRes);
            saveFileDialog.Filter = Common.GetResourceString(Strings.SaveHLDSpecFilterRes);
            saveFileDialog.FilterIndex = 1;

            targetFilename = visioControl.Src;
            currentFileName = System.IO.Path.GetFileName(targetFilename);
            saveFileDialog.FileName = Common.StripExtensionFileName(currentFileName) + "_HLD.docx";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
                targetFilename = saveFileDialog.FileName;
            else
                return;

            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            wordApp.Visible = false;

            string templateFilename = System.Windows.Forms.Application.StartupPath + @"\" + Common.GetResourceString(Strings.HLDTemplateFileNameRes);
            Document doc = wordApp.Documents.Add(templateFilename);

            doc.BuiltInDocumentProperties["Author"] = "Convergys PathMaker";

            bool saved = visioControl.Document.Saved;

            // output visio
            Selection content = wordApp.Selection;
            content.GoTo(What: WdGoToItem.wdGoToBookmark, Name: "CallFlowDiagram");
            content.ClearFormatting();
            content.set_Style("Normal");
            content.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;

            InlineShape shp = null;

            foreach (Microsoft.Office.Interop.Visio.Page page in visioControl.Document.Pages) {
                if (!page.Name.StartsWith("Background-") &&
                    !page.Name.Equals("Title") &&
                    !page.Name.Equals("App Description") &&
                    !page.Name.Equals("Revision History")) {
                    string tmpFileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".jpg";
                    page.Export(tmpFileName);
                    shp = content.InlineShapes.AddPicture(tmpFileName);
                    shp.ScaleHeight = 90;//set to 90% to handle minor differences
                    content.InsertBreak(WdBreakType.wdPageBreak);
                }
            }

            visioControl.Document.Saved = saved;

            AddTitleAndLogo(doc, docTitleShadow);
            AddChangeLog(doc, changeLogShadow, "HLD");

            doc.Fields.Update();

            doc.SaveAs(targetFilename);
            ((_Application)wordApp).Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);
            wordApp = null;
        }
コード例 #7
0
        private static void AddChangeLog(Document doc, ChangeLogShadow changeLogShadow, String label)
        {
            Microsoft.Office.Interop.Word.Table changeLogTable = null;
            if (label.Contains("VUI"))
            {
                changeLogTable = doc.Tables[Templates.ChangeLog];
            }
            else
            {
                changeLogTable = doc.Tables[Templates.ChangeLogHLD];
            }
            Table table = changeLogShadow.GetChangeLog();
            InsertWordTableRows(changeLogTable, 2, table.GetNumRows() - 1);

            int wordRow = 2;
            for (int row = 0; row < table.GetNumRows(); row++) {
                changeLogTable.Cell(wordRow, 1).Range.InsertAfter(table.GetData(row, (int)TableColumns.ChangeLog.Date));
                changeLogTable.Cell(wordRow, 2).Range.InsertAfter(table.GetData(row, (int)TableColumns.ChangeLog.Version));
                changeLogTable.Cell(wordRow, 3).Range.InsertAfter(table.GetData(row, (int)TableColumns.ChangeLog.Details));
                changeLogTable.Cell(wordRow, 4).Range.InsertAfter(table.GetData(row, (int)TableColumns.ChangeLog.Author));

                string color = table.GetData(row, (int)TableColumns.ChangeLog.Highlight);
                WdColorIndex colorIndex = ConvertStringToColorIndex(color);
                for (int i = 1; i <= 4; i++)
                    changeLogTable.Cell(wordRow, i).Range.Font.Shading.BackgroundPatternColorIndex = colorIndex;
                wordRow++;
            }

            Selection content = doc.Application.Selection;
            content.GoTo(What: WdGoToItem.wdGoToBookmark, Name: "TitleVersion");
            content.TypeText("Version " + changeLogShadow.GetLastChangeVersion());
            content.GoTo(What: WdGoToItem.wdGoToBookmark, Name: "TitleLastModifiedDate");
            DateTime date;
            if (DateTime.TryParse(changeLogShadow.GetLastLogChangeDate(), out date))
                content.TypeText(date.ToString("MMMM dd, yyyy"));
        }
コード例 #8
0
        internal static void ExportUserInterfaceSpec(AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl visioControl, Boolean skipDiagramExport)
        {
            ParamCache paramCache = new ParamCache();

            paramCache.visioControl = visioControl;
            paramCache.skipDiagramExport = skipDiagramExport;//JDK recent feature enhancement

            paramCache.docTitleShadow = PathMaker.LookupDocTitleShadow();
            if (paramCache.docTitleShadow == null) {
                Common.ErrorMessage("Missing Document Title shape");
                return;
            }

            paramCache.startShadow = PathMaker.LookupStartShadow();
            if (paramCache.startShadow == null) {
                Common.ErrorMessage("Missing Start shape");
                return;
            }

            //Get changeLogShawdow to get version and date information
            changeLogShadow = PathMaker.LookupChangeLogShadow();
            if (changeLogShadow == null)
            {
                Common.ErrorMessage("Missing Change Log shape");
                return;
            }

            //Get appDescShadow to get detailed information
            //using text box GUID for this new field
            appDescShadow = PathMaker.LookupAppDescShadow();
            if (appDescShadow == null)
            {
                //Common.ErrorMessage("Missing App Description shape");//JDK removed check for compatibility
                //return;
            }

            //Get prefixListShadow to get detailed information
            //using text box GUID for this new field
            prefixListShadow = PathMaker.LookupPrefixListShadow();
            if (prefixListShadow == null)
            {
                //Common.ErrorMessage("Missing Prefix List shape");//JDK removed check for compatibility
                //return;
            }

            if (saveFileDialog == null)
                saveFileDialog = new SaveFileDialog();

            saveFileDialog.InitialDirectory = PathMaker.getCurrentFileDirectory(visioControl);
            saveFileDialog.Title = Common.GetResourceString(Strings.SaveUISpecTitleRes);
            saveFileDialog.Filter = Common.GetResourceString(Strings.SaveUISpecFilterRes);
            saveFileDialog.FilterIndex = 1;

            paramCache.targetFilename = paramCache.visioControl.Src;
            paramCache.currentFileName = System.IO.Path.GetFileName(paramCache.targetFilename);
            saveFileDialog.FileName = Common.StripExtensionFileName(paramCache.currentFileName) + ".docx";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
                paramCache.targetFilename = saveFileDialog.FileName;
            else
                return;

            ProgressBarForm progressBarForm = new ProgressBarForm("Exporting UI", ExportUserInterfaceSpecWorker, paramCache);
            progressBarForm.ShowDialog();
        }
コード例 #9
0
 public DialogResult ShowDialog(ChangeLogShadow shadow)
 {
     this.shadow = shadow;
     return ShowDialog();
 }
コード例 #10
0
        public static void RedoAllHiddenPromptMarkers()
        {
            //the start step has globals and default confirmation prompts that must be modified as well
            Shadow          startStep       = PathMaker.LookupStartShadow();
            ChangeLogShadow changeLogShadow = PathMaker.LookupChangeLogShadow();
            DateTime        triggerDate;

            DateTime.TryParse(Strings.StampFormatChangeDate, out triggerDate);

            //Common.WarningMessage("changeLogShadow.GetLastChangeDate() = " + changeLogShadow.GetLastChangeDate());

            if ((startStep != null) && (changeLogShadow.GetLastChangeDate() <= triggerDate))
            {
                string tmpAlertMsg = "* * * ALERT - CHANGE TRACKING FORMATS WILL BE UPDATED! * * *" +
                                     "\r\n\r\nHidden date stamps will now use version numbers instead." +
                                     "\r\n\r\nThis makes it INCOMPATIBLE with older versions of PathMaker." +
                                     "\r\n\r\nAdd a new Revision History line for this file update process with NO HIGHLIGHT COLOR." +
                                     "  Then select SAVE AS and create a new .VUI file once the table update is complete." +
                                     "  You may then add a new Revision Histroy record to begin documenting your design changes with highlights." +
                                     "  Old colors should be fine if left on during this update process.";

                Common.WarningMessage(tmpAlertMsg);

                //scrub the version stamps in the ChangeLogShadow before any other processing takes place - we do not want any aplhas in the version strings for float comparisons later
                Table   table                = changeLogShadow.GetChangeLog();
                String  lastVersionStamp     = "";
                string  tempScrubbedVer      = "";
                Boolean versionStampsUpdated = false;
                for (int r = 0; r < table.GetNumRows(); r++)
                {
                    lastVersionStamp = table.GetData(r, (int)TableColumns.ChangeLog.Version);
                    tempScrubbedVer  = Common.CleanupVersionLabel(lastVersionStamp);
                    if (!tempScrubbedVer.Equals(lastVersionStamp))
                    {
                        table.SetData(r, (int)TableColumns.ChangeLog.Version, tempScrubbedVer);
                        versionStampsUpdated = true;
                    }
                }
                if (versionStampsUpdated)
                {
                    changeLogShadow.SetChangeLog(table);
                }

                startStep.RedoHiddenDateMarkers();

                List <Shadow> shadowList = PathMaker.LookupAllShadows();
                //JDK added this to update old diagrams with hidden date stamps to new version stamp format
                foreach (Shadow s in shadowList)
                {
                    StateShadow stateShadow = s as StateShadow;
                    if (stateShadow != null && (stateShadow.GetShapeType().Equals(ShapeTypes.Play) || stateShadow.GetShapeType().Equals(ShapeTypes.Interaction)))
                    {
                        stateShadow.RedoHiddenDateMarkers(stateShadow);
                        //Common.WarningMessage("Skipping RedoHiddenDateMarkers");
                    }

                    if (stateShadow != null && (stateShadow.GetShapeType().Equals(ShapeTypes.Decision) || stateShadow.GetShapeType().Equals(ShapeTypes.Data)))
                    {
                        StateWithTransitionShadow stateTranShadow = s as StateWithTransitionShadow;
                        //Common.WarningMessage("Starting RedoHiddenDateMarkers for Decision or Data State:" + stateTranShadow.GetStateId());
                        stateTranShadow.RedoHiddenDateMarkers(stateTranShadow);
                    }
                }
            }
        }
コード例 #11
0
        // Creates a shadow from a shape.  Should only be called from PathMaker
        // event handlers when things are loaded, added, etc.
        public static Shadow MakeShapeShadow(Shape shape)
        {
            ShapeTypes shapeType = Common.GetShapeType(shape);
            Shadow     shadow    = null;

            switch (shapeType)
            {
            case ShapeTypes.CallSubDialog:
                shadow = new CallSubDialogShadow(shape);
                break;

            case ShapeTypes.ChangeLog:
                shadow = new ChangeLogShadow(shape);
                break;

            case ShapeTypes.AppDesc:
                shadow = new AppDescShadow(shape);
                break;

            case ShapeTypes.PrefixList:
                shadow = new PrefixListShadow(shape);
                break;

            case ShapeTypes.Comment:
                shadow = new IgnoredShadow(shape);
                break;

            case ShapeTypes.Connector:
                shadow = new ConnectorShadow(shape);
                break;

            case ShapeTypes.Data:
                shadow = new DataShadow(shape);
                break;

            case ShapeTypes.Decision:
                shadow = new DecisionShadow(shape);
                break;

            case ShapeTypes.DocTitle:
                shadow = new DocTitleShadow(shape);
                break;

            case ShapeTypes.HangUp:
                shadow = new HangUpShadow(shape);
                break;

            case ShapeTypes.Interaction:
                shadow = new InteractionShadow(shape);
                break;

            case ShapeTypes.None:
                break;

            case ShapeTypes.OffPageRef:
                shadow = new OffPageRefShadow(shape);
                break;

            case ShapeTypes.OnPageRefIn:
                shadow = new OnPageRefInShadow(shape);
                break;

            case ShapeTypes.OnPageRefOut:
                shadow = new OnPageRefOutShadow(shape);
                break;

            case ShapeTypes.Page:
                break;

            case ShapeTypes.Placeholder:
                shadow = new IgnoredShadow(shape);
                break;

            case ShapeTypes.Play:
                shadow = new PlayShadow(shape);
                break;

            case ShapeTypes.Return:
                shadow = new ReturnShadow(shape);
                break;

            case ShapeTypes.Start:
                shadow = new StartShadow(shape);
                break;

            case ShapeTypes.SubDialog:
                shadow = new SubDialogShadow(shape);
                break;

            case ShapeTypes.Transfer:
                shadow = new TransferShadow(shape);
                break;
            }
            return(shadow);
        }
コード例 #12
0
        internal static string ExportFastPathXML(AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl visioControl, bool useTmpFile)
        {
            DocTitleShadow docTitleShadow = PathMaker.LookupDocTitleShadow();

            if (docTitleShadow == null) {
                Common.ErrorMessage("Missing Document Title shape");
                return null;
            }
            StartShadow startShadow = PathMaker.LookupStartShadow();
            if (startShadow == null) {
                Common.ErrorMessage("Missing Start shape");
                return null;
            }

            changeLogShadow = PathMaker.LookupChangeLogShadow();
            if (changeLogShadow == null) {
                Common.ErrorMessage("Missing Change Log shape");
                return null;
            }

            if (saveFileDialog == null) {
                saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title = Common.GetResourceString(Strings.SaveFastPathXMLTitleRes);
                saveFileDialog.Filter = Common.GetResourceString(Strings.SaveFastPathXMLFilterRes);
                saveFileDialog.FilterIndex = 1;
            }

            saveFileDialog.InitialDirectory = PathMaker.getCurrentFileDirectory(visioControl);
            saveFileDialog.RestoreDirectory = true;

            targetFilename = visioControl.Src;
            currentFileName = System.IO.Path.GetFileName(targetFilename);
            saveFileDialog.FileName = Common.StripExtensionFileName(currentFileName) + ".xml";

            if (!useTmpFile) {
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                    targetFilename = saveFileDialog.FileName;
                else
                    return null;
            }
            else
                targetFilename = saveFileDialog.FileName + ".tmp";

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.XmlResolver = null;
            xmlDoc.LoadXml(xmlStrings.Header);
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Project, docTitleShadow.GetProjectName());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Client, docTitleShadow.GetClientName());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.LastModified, changeLogShadow.GetLastLogChangeDate());
            xmlDoc.DocumentElement.SetAttribute(xmlStrings.Version, changeLogShadow.GetLastChangeVersion());

            AddStartElement(xmlDoc, startShadow);

            List<Shadow> shadowList = PathMaker.LookupAllShadows();
            // sorting them here helps the Missed statements in PathRunner come out in order
            string stateSortOrder = startShadow.GetDefaultSetting(Strings.DefaultSettingsStateSortOrder);
            if (stateSortOrder.Equals(Strings.StateSortOrderAlphaNumerical))
                shadowList.Sort(Common.StateIdShadowSorterAlphaNumerical);
            else if (stateSortOrder.Equals(Strings.StateSortOrderNumericalOnly))
                shadowList.Sort(Common.StateIdShadowSorterNumericalAlpha);
            else
                Common.StateIdShadowSorterVisioHeuristic(shadowList, visioControl.Document, startShadow);

            foreach (Shadow shadow in shadowList) {
                switch (shadow.GetShapeType()) {
                    case ShapeTypes.Interaction:
                        AddInteractionElement(xmlDoc, shadow as InteractionShadow);
                        break;
                    case ShapeTypes.Play:
                        AddPlayElement(xmlDoc, shadow as PlayShadow);
                        break;
                    case ShapeTypes.Decision:
                        AddDecisionElement(xmlDoc, shadow as DecisionShadow);
                        break;
                    case ShapeTypes.Data:
                        AddDataElement(xmlDoc, shadow as DataShadow);
                        break;
                    case ShapeTypes.SubDialog:
                        AddSubDialogElement(xmlDoc, shadow as SubDialogShadow);
                        break;
                    default:
                        break;
                }
            }

            xmlDoc.Save(targetFilename);
            return targetFilename;
        }
コード例 #13
0
 public DialogResult ShowDialog(ChangeLogShadow shadow)
 {
     this.shadow = shadow;
     return(ShowDialog());
 }
コード例 #14
0
        internal static void ExportUserInterfaceSpec(AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl visioControl)
        {
            ParamCache paramCache = new ParamCache();

            paramCache.visioControl = visioControl;
            paramCache.docTitleShadow = PathMaker.LookupDocTitleShadow();
            if (paramCache.docTitleShadow == null) {
                Common.ErrorMessage("Missing Document Title shape");
                return;
            }

            paramCache.startShadow = PathMaker.LookupStartShadow();
            if (paramCache.startShadow == null) {
                Common.ErrorMessage("Missing Start shape");
                return;
            }

            //Get changeLogShawdow to get version and date information
            changeLogShadow = PathMaker.LookupChangeLogShadow();
            if (changeLogShadow == null)
            {
                Common.ErrorMessage("Missing Change Log shape");
                return;
            }

            if (saveFileDialog == null)
                saveFileDialog = new SaveFileDialog();
            saveFileDialog.InitialDirectory = PathMaker.getCurrentFileDirectory(visioControl);
            saveFileDialog.Title = Common.GetResourceString(Strings.SaveUISpecTitleRes);
            saveFileDialog.Filter = Common.GetResourceString(Strings.SaveUISpecFilterRes);
            saveFileDialog.FilterIndex = 1;

            paramCache.targetFilename = paramCache.visioControl.Src;
            paramCache.currentFileName = System.IO.Path.GetFileName(paramCache.targetFilename);
            saveFileDialog.FileName = Common.StripExtensionFileName(paramCache.currentFileName) + ".docx";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
                paramCache.targetFilename = saveFileDialog.FileName;
            else
                return;

            ProgressBarForm progressBarForm = new ProgressBarForm("Exporting UI", ExportUserInterfaceSpecWorker, paramCache);
            progressBarForm.ShowDialog();
        }