Example #1
0
        /// <summary>
        /// Returns the offset of the starting of the
        /// previous paragraph
        /// </summary>
        /// <returns>the offset, -1 on error</returns>
        private int getStartOfPrevPara()
        {
            if (WordApp == null)
            {
                return(-1);
            }

            int caretPos  = getCaretPos();
            int paraStart = WordApp.Selection.Range.Paragraphs[1].Range.Start;

            Log.Debug("caretPos: " + caretPos + ", paraStart = " + paraStart);

            if (caretPos != paraStart)
            {
                return(paraStart);
            }

            Word.Paragraph para         = WordApp.Selection.Range.Paragraphs[1];
            int            start        = para.Range.Start;
            int            prevStart    = start;
            bool           flag         = false;
            int            iteration    = 0;
            bool           breakOnFirst = false;

            while (true)
            {
                Word.Paragraph prev = para.Previous();
                if (prev == null)
                {
                    break;
                }

                start = prev.Range.Start;

                Log.Debug("start: " + start + ", prevStart: " + prevStart);

                if (prevStart - start == 1)
                {
                    if (iteration == 0)
                    {
                        breakOnFirst = true;
                    }
                }
                else if (prevStart - start > 1)
                {
                    if (breakOnFirst || flag)
                    {
                        return(start);
                    }

                    flag = true;
                }

                para      = prev;
                prevStart = start;
                iteration++;
            }

            return(-1);
        }
Example #2
0
        /*   private String dajWymaganiaXXXStaraPrezentacja(Package wymPckg,String warunekIF,String warunekIF2)
         * {
         *     String w = "";
         *     Wordy.Table tab = word.wstawTabele("Rozdzial1b", new string[] { "Nazwa", "Opis realizacji", "Nadrzędne wygmaganie biznesowe" });
         *     tab.Columns[1].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *     tab.Columns[2].SetWidth(200f, Wordy.WdRulerStyle.wdAdjustNone);
         *     tab.Columns[3].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *     w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
         *     int i = 1;
         *     foreach (Element elem in wymPckg.Elements)
         *     {
         *         String typ = "konfiguracja/development";
         *         String nadrzedne = "";
         *         if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue;
         *         foreach (Connector con in elem.Connectors)
         *         {
         *
         *             if (con.Type == "Realisation")
         *             {
         *                 Element e2 = Repo.GetElementByID(con.SupplierID);
         *                 if (e2.Type == "Requirement")
         *                 {
         *                     nadrzedne += e2.Name + "<br>\n";
         *                 }
         *             }
         *         }
         *         w += "<tr><td>" + elem.Name + "</td><td>" + elem.Notes + "</td><td>" + nadrzedne + "</td></tr>\n";
         *         word.wstawWierszDoTabeli("", tab, i + 1, new string[] { elem.Name, elem.Notes, nadrzedne });
         *         i++;
         *     }
         *     return w;
         * }*/
        private String dajWymaganiaXXXNowaPrezentacja3(Package wymPckg, String [] stereotypy, bool systemowe = false)
        {
            String w = "";

            w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
            Stopwatch st = new Stopwatch();

            st.Start();
            foreach (Element elem in wymPckg.Elements)
            {
                st.Restart();
                //  String typ = "konfiguracja/development";
                String nadrzedne = "";
                String stat      = "";
                bool   analiza   = false;
                //   Element e2 = null;
                /// bo ficzery systemowe to pozostałe
                if (systemowe)
                {
                    if (CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy))
                    {
                        continue;
                    }
                }
                else
                {
                    if (!CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy))
                    {
                        continue;
                    }
                }
                okno.Log(Statystyki.LogMsgType.Info, "--Wymaganie: " + elem.Name + "\n ");
                okno.Log(Statystyki.LogMsgType.cd, "----- czy=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                String sql = "select ore.object_id from t_object ore,t_object ofi, t_connector c where ofi.object_id=" + elem.ElementID + " and " +
                             "((c.start_object_id=ofi.object_id and c.end_object_id=ore.object_id) or " +
                             "(c.start_object_id=ore.object_id and c.end_object_id=ofi.object_id)) and " +
                             " ore.object_type='Requirement' and c.connector_type='Realisation'";
                int ile_req = 0;
                foreach (Element e2 in modelProjektu.Repozytorium.GetElementSet(sql, 2))
                {
                    ile_req++;
                    nadrzedne += e2.Name + "\n";
                    stat      += e2.Status + "\n";

                    if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe))
                    {
                        analiza = true;
                    }
                }
                okno.Log(Statystyki.LogMsgType.cd, ", req=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                /* przejscie na sql
                 * foreach (Connector con in elem.Connectors)
                 * {
                 *
                 *  if (con.Type == "Realisation")
                 *  {
                 *      e2 = modelProjektu.Repozytorium.GetElementByID(con.SupplierID);
                 *
                 *      if (e2.Type == "Requirement")
                 *      {
                 *          nadrzedne += e2.Name + "\n";
                 *          stat += e2.Status + "\n";
                 *
                 *          if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe))
                 *          {
                 *              analiza = true;
                 *          }
                 *      }
                 *  }
                 * }
                 * */
                Wordy.Paragraph paragr = word.wstawParagraf(elem.Name, 0);
                okno.Log(Statystyki.LogMsgType.cd, ", name=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                paragr                 = paragr.Previous();
                paragr.Range.Bold      = 1;
                paragr.Range.Underline = Wordy.WdUnderline.wdUnderlineThick;
                paragr                 = word.wstawParagraf("Status: " + elem.Status, 0);
                paragr                 = paragr.Previous();
                Wordy.Range r = paragr.Range;
                r.End  = r.Start + 7;
                r.Bold = 1;

                okno.Log(Statystyki.LogMsgType.cd, ", status=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                //if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO")
                if (!CmodelKonfigurator.czyZawiera(elem.Status, CmodelKonfigurator.statusyFeatureGotowe))
                {
                    paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["SRQanalysis"]);
                }
                if (jezykPolski)
                {
                    paragr = word.wstawParagraf("Nadrzędne wymaganie biznesowe:", 0);
                }
                else
                {
                    paragr = word.wstawParagraf("Parent business requirement:", 0);
                }
                paragr            = paragr.Previous();
                paragr.Range.Bold = 1;
                okno.Log(Statystyki.LogMsgType.cd, ", nadrzedne=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                if (ile_req == 0)
                {
                    if (jezykPolski)
                    {
                        paragr = word.wstawParagraf("Brak", 0);
                    }
                    else
                    {
                        paragr = word.wstawParagraf("None", 0);
                    }
                }
                else
                {
                    word.wstawParagraf(nadrzedne, 0);

                    paragr = paragr.Previous();
                    paragr = paragr.Previous();
                    r      = paragr.Range;
                    r.End  = r.Start + 29;
                    r.Select();
                    r.Bold = 1;
                    if (analiza)
                    {
                        paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["BRQ_SRQanalysis"]);
                    }
                }
                okno.Log(Statystyki.LogMsgType.cd, " nadrzTresc=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                if (jezykPolski)
                {
                    paragr = word.wstawParagraf("Szczegóły:", 0);
                }
                else
                {
                    paragr = word.wstawParagraf("Details:", 0);
                }
                paragr            = paragr.Previous();
                paragr.Range.Bold = 1;

                //      word.wstawParagraf(elem.Notes, 0);
                word.wstawNotatkeEAtoRTF(modelProjektu.Repozytorium, elem);
                // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes});
                //tab.Cell(i, 1).Merge(tab.Cell(i, 2));
                word.wstawZalacznikRTF(elem);
                okno.Log(Statystyki.LogMsgType.cd, " opis=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                if (elem.Notes == "" && elem.GetLinkedDocument() == "")
                {
                    word.wstawParagraf("Wymaganie w trakcie analizy...", 0, "Brak opisu realizacji wymagania");
                }
                word.wstawParagraf("", 0);
                okno.Log(Statystyki.LogMsgType.cd, " koniec=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff") + "\n");
            }
            return(w);
        }