Ejemplo n.º 1
0
        /// <summary>
        /// ツリービューのコンテキストメニュー-「この成果物をEAから取得」のクリック時イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void UpdateArtifactByEAToolStripMenuItemClick(object sender, EventArgs e)
        {
            TreeNode node = treeView1.SelectedNode;

            EA.Repository repo = ProjectSetting.getEARepo();

            if (node != null && node.Tag != null)
            {
                ArtifactVO atfvo = (ArtifactVO)node.Tag;

                try {
                    // 確認メッセージを表示
                    MessageBox.Show("選択されたパッケージの内容をEAから取得しローカルを更新します");

                    // マウスカーソルを待機状態にする
                    Cursor.Current = Cursors.WaitCursor;

                    EA.Package atfPacObj = repo.GetPackageByGuid(atfvo.guid);

                    EAArtifactXmlMaker maker       = new EAArtifactXmlMaker(atfPacObj);
                    ArtifactVO         newArtifact = maker.makeArtifactXml();

                    // 現在読み込まれている成果物の内容を今読んだもので置き換え
                    atfvo.package = newArtifact.package;

                    // elements配下の要素XMLファイルを今読んだもので置き換え
                    ArtifactXmlWriter writer = new ArtifactXmlWriter();
                    writer.rewriteElementXmlFiles(atfvo);

                    // 標準に戻す
                    Cursor.Current = Cursors.Default;

                    MessageBox.Show("EAの最新情報をローカルに取り込みました");
                } catch (Exception ex) {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("フォルダツリーから成果物パッケージを選択して下さい");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  メニュー - 編集 - (全)成果物を更新 メニュークリックイベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void EditRefreshArtifactToolStripMenuItemClick(object sender, EventArgs e)
        {
            EA.Repository repo = ProjectSetting.getEARepo();

            try {
                // 確認メッセージを表示
                MessageBox.Show("全ての成果物パッケージの内容をEAから取得しローカルを更新します");

                // マウスカーソルを待機状態にする
                Cursor.Current = Cursors.WaitCursor;

                // 全成果物をなめ、それぞれの成果物パッケージをEAから取得してローカルを更新
                foreach (ArtifactVO atfvo in artifacts)
                {
                    try {
                        EA.Package atfPacObj = repo.GetPackageByGuid(atfvo.guid);

                        EAArtifactXmlMaker maker       = new EAArtifactXmlMaker(atfPacObj);
                        ArtifactVO         newArtifact = maker.makeArtifactXml();

                        // 現在読み込まれている成果物の内容を今読んだもので置き換え
                        atfvo.package = newArtifact.package;

                        // elements配下の要素XMLファイルを今読んだもので置き換え
                        ArtifactXmlWriter writer = new ArtifactXmlWriter();
                        writer.rewriteElementXmlFiles(atfvo);
                    } catch (Exception ex) {
                        MessageBox.Show(ex.Message);
                    }
                }

                // マウスカーソルを標準に戻す
                Cursor.Current = Cursors.Default;

                MessageBox.Show("EAの最新情報をローカルに取り込みました");
            } catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
            //コマンドライン引数を配列で取得する
            string[] cmds = System.Environment.GetCommandLineArgs();

            string prjfile, projectPath;

            if (cmds != null && cmds.Length > 1)
            {
                prjfile = cmds[1];
            }
            else
            {
                Console.WriteLine("引数が足りません");
                Console.WriteLine("Usage: EAArtifactLoader.exe <projectFilePath>");
                return;
            }

            if (ProjectSetting.load(prjfile))
            {
                projectPath = Path.GetDirectoryName(prjfile);
                Console.WriteLine("プロジェクトファイルを読み込み : " + prjfile);
            }
            else
            {
                Console.WriteLine("プロジェクトファイル読み込みに失敗しました。 再度正しいファイルを選択して下さい。");
                return;
            }

            EA.App        eaapp = (EA.App)Microsoft.VisualBasic.Interaction.GetObject(null, "EA.App");
            EA.Repository repo;

            if (eaapp != null)
            {
                repo = eaapp.Repository;
                ProjectSetting.getVO().eaRepo = repo;
                Console.WriteLine("EAにアタッチ成功 : 接続文字列 = " + repo.ConnectionString);
            }
            else
            {
                Console.WriteLine("EAにアタッチできないため処理できません。終了します。");
                return;
            }

            // All_Artifact.xml から全成果物リストを取得
            Console.WriteLine("全成果物XMLファイルを読み込み :");
            string            artifactsFileName = ProjectSetting.getVO().artifactsFile;
            List <ArtifactVO> artifacts         = ArtifactsXmlReader.readArtifactList(projectPath, artifactsFileName);

            Console.WriteLine("成果物パッケージの件数: " + artifacts.Count);

            // 全成果物をなめ、それぞれの成果物パッケージをEAから取得してローカルを更新
            for (int i = 0; i < artifacts.Count; i++)
            {
                ArtifactVO atfvo = artifacts[i];
                Console.WriteLine(i + ": guid=" + atfvo.guid + ", name=" + atfvo.name);

                try {
                    EA.Package atfPacObj = repo.GetPackageByGuid(atfvo.guid);

                    EAArtifactXmlMaker maker       = new EAArtifactXmlMaker(atfPacObj);
                    ArtifactVO         newArtifact = maker.makeArtifactXml();

                    // 現在読み込まれている成果物の内容を今読んだもので置き換え
                    atfvo.package = newArtifact.package;

                    // elements配下の要素XMLファイルを今読んだもので置き換え
                    ArtifactXmlWriter writer = new ArtifactXmlWriter();
                    writer.rewriteElementXmlFiles(atfvo);
                } catch (Exception ex) {
                    Console.WriteLine(ex.Message);
                }
            }
        }