コード例 #1
0
        /// <summary>
        /// 一時保存ボタンのイベントハンドラ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void BtnCommitClick(object sender, EventArgs e)
        {
            string outputDir = ProjectSetting.getVO().projectPath;

            StreamWriter swe = null;

            try {
                //BOM無しのUTF8でテキストファイルを作成する
                swe = new StreamWriter(outputDir + @"\elements\" + myElement.guid.Substring(1, 36) + "_changed.xml");
                swe.WriteLine(@"<?xml version=""1.0"" encoding=""UTF-8""?> ");

                ElementXmlWriter.writeElementXml(myElement, 0, swe);
                btnCommit.Enabled = false;
            } catch (Exception exp) {
                MessageBox.Show(exp.Message);
            } finally {
                if (swe != null)
                {
                    swe.Close();
                }
            }

            savedElement = myElement;

            //メッセージボックスを表示する
            MessageBox.Show("クラスの変更内容をローカルファイルに記録しました",
                            "確認",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Information);

//			this.Close();
        }
コード例 #2
0
 /// <summary>
 /// マージXMLファイルの出力(要素)
 /// 2019年3月現在ではXMLの出力項目を統一するため、
 /// 共通処理の ElementXmlWriter を呼び出すようにしている
 /// </summary>
 /// <param name="elements"></param>
 /// <param name="depth"></param>
 /// <param name="sw"></param>
 private void outputElements(List <ElementVO> elements, int depth, StreamWriter sw)
 {
     foreach (ElementVO elem in elements)
     {
         ElementXmlWriter.writeElementXml(elem, depth, sw);
     }
 }
コード例 #3
0
 /// <summary>
 /// 要素毎のXMLを elements 配下に出力する
 /// </summary>
 public void doMakeElementFiles()
 {
     //
     foreach (ArtifactVO atf in this.allArtifacts.getArtifactsExcludeImplModel())
     {
         foreach (ElementVO elem in atf.getOwnElements())
         {
             ElementXmlWriter.outputElementXmlFile(elem);
             // outputCSharpCode(elem);
             // ElementAsciidocWriter.doWrite(outputDir, elem);
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 要素毎のXMLを elements 配下に出力する
        /// </summary>
        public void doMakeElementFiles()
        {
            // outputElementXmlFile メソッドの出力先は ProjectPath 限定になるため、
            // 先に作ったばかりのプロジェクトファイルをロードしておく
            string changedProjectFile = this.outputDir + "\\project.bdprj";

            ProjectSetting.load(changedProjectFile);

            //
            foreach (ArtifactVO atf in this.outArtifacts)
            {
                foreach (ElementVO elem in atf.getOwnElements())
                {
                    if (elem.changed != ' ')
                    {
                        ElementXmlWriter.outputElementXmlFile(elem);
                    }
                }
            }
        }
コード例 #5
0
        void ButtonRevertClick(object sender, EventArgs e)
        {
            EA.Repository repo = ProjectSetting.getVO().eaRepo;

            // 反映前のEAから取得した要素オブジェクトの情報を elements 配下のXMLに反映する
            ElementVO revertedElement = null;

            EA.Element eaElemObj = (EA.Element)repo.GetElementByGuid(mergedElement.guid);
            if (eaElemObj == null)
            {
                MessageBox.Show("EAから要素の取得に失敗しました。 異常終了しました。 GUID=" + mergedElement.guid);
                return;
            }
            else
            {
                revertedElement = ObjectEAConverter.getElementFromEAObject(eaElemObj);
            }


            // 反映後のEAから取得した要素オブジェクトの情報を elements 配下のXMLに反映する
            ArtifactXmlWriter writer       = new ArtifactXmlWriter();
            StreamWriter      elsw         = null;
            string            outputDir    = ProjectSetting.getVO().projectPath;
            string            elemFilePath = outputDir + @"\elements\" + revertedElement.guid.Substring(1, 1) + @"\" + revertedElement.guid.Substring(2, 1) + @"\" + revertedElement.guid.Substring(1, 36) + ".xml";

            try {
                //BOM無しのUTF8でテキストファイルを作成する
                elsw = new StreamWriter(elemFilePath);
                elsw.WriteLine(@"<?xml version=""1.0"" encoding=""UTF-8""?> ");
                ElementXmlWriter.writeElementXml(revertedElement, 0, elsw);
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            } finally {
                if (elsw != null)
                {
                    elsw.Close();
                }
            }

            // changedFile が存在したら削除する
            try {
                string changedElemFilePath = outputDir + @"\elements\" + revertedElement.guid.Substring(1, 1) + @"\" + revertedElement.guid.Substring(2, 1) + @"\" + revertedElement.guid.Substring(1, 36) + "_changed.xml";
                if (System.IO.File.Exists(changedElemFilePath))
                {
                    System.IO.File.Delete(changedElemFilePath);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }

            // 呼び出し元から受領した更新後ElementをRevert後の要素で置き換え
//			rightElement = revertedElement;

            // 親フォームの再描画を依頼
            ElementForm oya = (ElementForm)this.Owner;

            oya.repaint(revertedElement);

            // XMLファイルをコミットするためにTortoiseGitを起動する
            //string exename = @"TortoiseGitProc.exe";
            //string arguments = @"/command:commit /path:" + elemFilePath;

            //Process p = Process.Start( exename, arguments );

            // 自分をクローズ
            this.Close();
        }
コード例 #6
0
        void ButtonCommitCloseClick(object sender, EventArgs e)
        {
            EA.Repository repo = ProjectSetting.getVO().eaRepo;

            if (mergedElement == null)
            {
                MessageBox.Show("反映するべき差分が見つからなかったため、終了します");
                return;
            }

            // 変更のあったメソッドを順にEAに反映する
            foreach (MethodVO m in mergedElement.methods)
            {
                MethodVO updMth = searchMethodByGuid(rightElement.methods, m.guid);
                if (m.changed == 'U')
                {
                    execUpdateMethod(repo, updMth);
                }
            }

            // 反映後のEAから取得した要素オブジェクトの情報を elements 配下のXMLに反映する
            ElementVO refreshedElement = null;

            EA.Element eaElemObj = (EA.Element)repo.GetElementByGuid(mergedElement.guid);
            if (eaElemObj == null)
            {
                MessageBox.Show("EAから要素の取得に失敗しました。 異常終了しました。 GUID=" + mergedElement.guid);
                return;
            }
            else
            {
                refreshedElement = ObjectEAConverter.getElementFromEAObject(eaElemObj);
            }

            // 反映後のEAから取得した要素オブジェクトの情報を elements 配下のXMLに反映する
            StreamWriter elsw         = null;
            string       outputDir    = ProjectSetting.getVO().projectPath;
            string       elemFilePath = outputDir + @"\elements\" + refreshedElement.guid.Substring(1, 1) + @"\" + refreshedElement.guid.Substring(2, 1) + @"\" + refreshedElement.guid.Substring(1, 36) + ".xml";

            try {
                //BOM無しのUTF8でテキストファイルを作成する
                elsw = new StreamWriter(elemFilePath);
                elsw.WriteLine(@"<?xml version=""1.0"" encoding=""UTF-8""?> ");
                ElementXmlWriter.writeElementXml(refreshedElement, 0, elsw);
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            } finally {
                if (elsw != null)
                {
                    elsw.Close();
                }
            }

            // changedFile が存在したら削除する
            try {
                string changedElemFilePath = outputDir + @"\elements\" + refreshedElement.guid.Substring(1, 1) + @"\" + refreshedElement.guid.Substring(2, 1) + @"\" + refreshedElement.guid.Substring(1, 36) + "_changed.xml";
                if (System.IO.File.Exists(changedElemFilePath))
                {
                    System.IO.File.Delete(changedElemFilePath);
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }

            // 親フォームの再描画を依頼
            ElementForm oya = (ElementForm)this.Owner;

            oya.repaint(refreshedElement);

            // XMLファイルをコミットするためにTortoiseGitを起動する
            //string exename = @"TortoiseGitProc.exe";
            //string arguments = @"/command:commit /path:" + elemFilePath;
            //Process p = Process.Start( exename, arguments );

            // 自分をクローズ
            this.Close();
        }