Exemplo n.º 1
0
        /// <summary>
        /// 成果物リストの読み込みとAsciidoc出力
        /// </summary>
        /// <param name="elementMode"></param>
        /// <param name="repositoryVO"></param>
        private static void readArtifactsAndWriteAsciidocs(string projectFilePath, bool elementMode, string elementGuid)
        {
            // .bdprjファイルの読み込み
            ProjectSetting.load(projectFilePath);

            // Asciidocの出力モードによる分岐
            if (elementMode)
            {
                // 要素1つ分のAsciidoc出力
            }
            else
            {
                // 全成果物リストの読み込み
                string      artifactDir  = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath;
                ArtifactsVO allArtifacts = readAllArtifacts(artifactDir);

                // indexDb作成処理
                // (Asciidoc出力処理の中でElementSearcherやConnectorSearcherを利用するため、
                // indexDb未作成だとここでエラーになってしまっていた)
                makeIndexDbIfNotExist(allArtifacts);

                // 全成果物分のAsciidoc出力
                outputAllArtifactAsciidoc(allArtifacts);

                // asciidocFilePath をセットした結果を AllArtifacts.xml ファイルに記録
                AllArtifactsXmlWriter.outputAllArtifactsFile(artifactDir, allArtifacts);
            }
        }
Exemplo n.º 2
0
        private static void runOnLocalFileMode(string projectFile, string elemGuid)
        {
            // プロジェクトファイルの存在チェック
            if (System.IO.File.Exists(projectFile))
            {
                // プロジェクト設定ファイルのロード
                ProjectSetting.load(projectFile);
            }
            else
            {
                MessageBox.Show("指定されたプロジェクトファイルが見つかりません");
                return;
            }

            try
            {
                // 要素ファイルからGUIDで検索した結果を読み込む
                ElementVO elemvo = ElementsXmlReader.readElementFile(elemGuid);

                ElementForm elementForm = new ElementForm(ref elemvo);
                Application.Run(elementForm);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "エラー発生");
            }
        }
Exemplo n.º 3
0
        private static void Main(string[] args)
        {
            bool isAttribute;

            if (args != null && args.Length >= 5)
            {
                string prjfile = "project.bdprj";
                if (ProjectSetting.load(args[0] + "\\" + prjfile))
                {
                    ElementVO elem = new ElementVO();
                    elem.guid = args[3];

                    elem.attributes = new List <AttributeVO>();
                    elem.methods    = new List <MethodVO>();

                    if (args[1] == "a" || args[1] == "A")
                    {
                        isAttribute = true;
                    }
                    else
                    {
                        isAttribute = false;
                    }

                    char changed;
                    if (args[2] == "C" || args[2] == "U" || args[2] == "D")
                    {
                        changed = args[2][0];
                    }
                    else
                    {
                        MessageBox.Show("コマンド: DiffViewer <ArtifactPath> <属性:a/操作:m> <CUD> <ElementGuid> <MethodGuid>");
                        return;
                    }

                    if (isAttribute)
                    {
                        AttributeVO att = new AttributeVO();
                        att.guid    = args[4];
                        att.changed = changed;
                        elem.attributes.Add(att);
                    }
                    else
                    {
                        MethodVO mth = new MethodVO();
                        mth.guid    = args[4];
                        mth.changed = changed;
                        elem.methods.Add(mth);
                    }

                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new MainForm(elem));
                }
            }
            else
            {
                MessageBox.Show("コマンド: DiffViewer <ArtifactPath> <属性:a/操作:m> <CUD> <ElementGuid> <MethodGuid>");
            }
        }
        /// <summary>
        /// 比較元、比較先プロジェクトの全成果物リストを読み込み
        /// </summary>
        public void readBothArtifacts()
        {
            Console.WriteLine("readAllArtifacts(): from");
            ProjectSetting.load(this.fromProjectFile);
            this.fromArtifacts = readAllArtifacts(this.fromArtifactDir);

            Console.WriteLine("readAllArtifacts(): to");
            ProjectSetting.load(this.toProjectFile);
            this.toArtifacts = readAllArtifacts(this.toArtifactDir);
        }
Exemplo n.º 5
0
        /// <summary>
        /// メニュー - ファイル - 開く のメニュー項目のクリックイベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void OpenToolStripMenuItemClick(object sender, EventArgs e)
        {
            //OpenFileDialogクラスのインスタンスを作成
            OpenFileDialog dialog = new OpenFileDialog();

            //はじめに「ファイル名」で表示される文字列を指定する
            dialog.FileName = "project.bdprj";
            //はじめに表示されるフォルダを指定する
            //指定しない(空の文字列)の時は、現在のディレクトリが表示される
//			dialog.InitialDirectory = @"C:\";
            dialog.InitialDirectory = "";

            //[ファイルの種類]に表示される選択肢を指定する
            //指定しないとすべてのファイルが表示される
            dialog.Filter = "振る舞いプロジェクトファイル(*.bdprj)|*.bdprj|すべてのファイル(*.*)|*.*";
            //[ファイルの種類]ではじめに選択されるものを指定する
            //1番目の「すべてのファイル」が選択されているようにする
            dialog.FilterIndex = 1;
            //タイトルを設定する
            dialog.Title = "開くプロジェクトファイルを選択してください";
            //ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
            dialog.RestoreDirectory = true;
            //存在しないファイルの名前が指定されたとき警告を表示する
            //デフォルトでTrueなので指定する必要はない
            dialog.CheckFileExists = true;
            //存在しないパスが指定されたとき警告を表示する
            //デフォルトでTrueなので指定する必要はない
            dialog.CheckPathExists = true;

            //ダイアログを表示する
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                //OKボタンがクリックされたとき、選択されたファイル名を表示する
                Console.WriteLine(dialog.FileName);

                string prjfile = dialog.FileName;
                if (ProjectSetting.load(prjfile))
                {
                    // ProjectSetting.getVO().projectPath = Path.GetDirectoryName(prjfile);
                    this.Text = prjfile;

                    init();
                }
                else
                {
                    MessageBox.Show("プロジェクトファイル読み込みに失敗しました。 再度正しいファイルを選択して下さい。");
                    // projectPath = null;
                }
            }
        }
Exemplo n.º 6
0
 /// <summary>
 /// Index用データベース(SQLite)に、接続と要素(属性・操作)の情報を登録する
 /// </summary>
 public void doMakeIndex()
 {
     try
     {
         ProjectSetting.load(this.outputDir + "\\project.bdprj");
         IndexDbWriter dbWriter = new IndexDbWriter(this.outputDir, ProjectSetting.getVO().dbName);
         dbWriter.writeAllConnector(this.allconnectors);
         dbWriter.writeAllElements(this.allArtifacts);
         // dbWriter.writeAllBehaviors(this.allArtifacts);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Exemplo n.º 7
0
        public DatabaseWriter(string dir, string dbfile)
        {
//	        this.db_file = "C:\\Users\\ctc0065\\" + dbfile;
            this.db_file    = dbfile;
            this.projectDir = dir;


            try {
                Console.WriteLine("projectdir = " + this.projectDir);
                Console.WriteLine("dbfile = " + this.db_file);
                this.conn = new SQLiteConnection("Data Source=" + this.db_file);

                ProjectSetting.load(this.projectDir + "\\project.bdprj");
            } catch (Exception e) {
                throw e;
            }
        }
Exemplo n.º 8
0
        static void Main(string[] args)
        {
            if (args.Length >= 1)
            {
                string projectFile = args[0];

                // .bdprjファイルの読み込み
                ProjectSetting.load(projectFile);

                // エクスポーターを生成し、エクスポート処理実行
                GraphDataExporter export = new GraphDataExporter(ProjectSetting.getVO().projectPath);
                export.doExport();
            }
            else
            {
                Console.WriteLine("引数が足りません: ");
                Console.WriteLine("Usage:  ExportGraphData <projectFile(.bdprj)> <outputFile.txt>");
            }
        }
Exemplo n.º 9
0
        public MainForm(string prjfile)
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            this.artifacts = new List <ArtifactVO>();

            if (ProjectSetting.load(prjfile))
            {
                this.Text = prjfile;
            }
            else
            {
                MessageBox.Show("プロジェクトファイル読み込みに失敗しました。 再度正しいファイルを選択して下さい。");
                // projectPath = null;
            }
        }
        /// <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);
                    }
                }
            }
        }
Exemplo n.º 11
0
        static void Main(string[] args)
        {
            if (args.Length >= 1)
            {
                string projectFile = args[0];
                //string artifactFile = args[1];
                //string adocFile = args[2];

                // .bdprjファイルの読み込み
                ProjectSetting.load(projectFile);

                // 出力フォルダの存在チェック&無ければ作成
                string asciidocDir = ProjectSetting.getVO().projectPath + "\\" + "asciidocs";
                makeAsciidocDirIfNotExist(asciidocDir);

                // 成果物パッケージXMLファイル読み込み
                string            artifactDir = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath;
                ArtifactXmlReader atfReader   = new ArtifactXmlReader(artifactDir, true);

                // 成果物読み込み先の artifacts フォルダが存在する場合
                if (Directory.Exists(artifactDir))
                {
                    // その配下の成果物ファイルを取得
                    string[] atfFiles = Directory.GetFiles(artifactDir, "atf_*.xml");
                    Console.WriteLine("成果物Path=" + artifactDir);

                    for (var i = 0; i < atfFiles.Length; i++)
                    {
                        string adocfile = outputArtifactAsciidoc(atfReader, Path.GetFileName(atfFiles[i]), asciidocDir);

                        Console.WriteLine("({0}/{1})ドキュメント出力: {2}", i + 1, atfFiles.Length, adocfile);
                    }
                }
            }
            else
            {
                Console.WriteLine("引数が足りません: ");
                Console.WriteLine("Usage: AsciidocGenerator <.bdprj file> <artifactFile(.xml)> <outputFile(.adoc)>");
            }
        }
Exemplo n.º 12
0
        private static void runOnDependEaMode()
        {
            EA.App eaapp = null;
            try
            {
                eaapp = (EA.App)Microsoft.VisualBasic.Interaction.GetObject(null, "EA.App");
                EA.Repository repo = eaapp.Repository;

                // EA.Repository repo = new EA.Repository();
                //  repo.OpenFile2(@"C:\DesignHistory\staging\EAPBAK_cuvic_aswea_20190124_20181029.eap", "admin", "p@ssw0rd");
                // repo.OpenFile2(@"C:\DesignHistory\ea-artifact-manage\shortcut.eap", "admin", "p@ssw0rd");
                // repo.App.Visible = true;

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                if (eaapp != null)
                {
                    ProjectSetting.load(@"C:\DesignHistory\ea-artifact-manage\project.bdprj");
                    // projectsettingにEAリポジトリオブジェクトをセット
                    ProjectSetting.getVO().eaRepo = repo;

                    string connStr = repo.ConnectionString;
                    Console.WriteLine("EAへのアタッチ成功 EA接続先=" + connStr);

                    Application.Run(new MainForm());
                }
                else
                {
                    MessageBox.Show("EAにアタッチできなかったため、異常終了します");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("EAへの接続時に例外が発生しました。 msg=" + ex.Message);
                // Console.WriteLine("EAへの接続時に例外が発生しました。 msg=" + ex.Message);
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// 比較元、比較先プロジェクトの全成果物リストを読み込み
        /// </summary>
        public void readBothArtifacts()
        {
            Console.WriteLine("readAllArtifacts(): from");
            ProjectSetting.load(this.fromProjectFile);
            this.fromArtifacts = readAllArtifacts(this.fromArtifactDir);

            string            allPackagesFileName = this.fromProjectDir + "\\AllPackageTree.xml";
            PackagesXmlReader fromPacReader       = new PackagesXmlReader(allPackagesFileName);

            this.fromPackageList = fromPacReader.getAllPackages();
            this.fromPackageMap  = storePackageMapFromList(this.fromPackageList);


            Console.WriteLine("readAllArtifacts(): to");
            ProjectSetting.load(this.toProjectFile);
            this.toArtifacts = readAllArtifacts(this.toArtifactDir);

            allPackagesFileName = this.toProjectDir + "\\AllPackageTree.xml";
            PackagesXmlReader toPacReader = new PackagesXmlReader(allPackagesFileName);

            this.toPackageList = toPacReader.getAllPackages();
            this.toPackageMap  = storePackageMapFromList(this.toPackageList);
        }
Exemplo n.º 14
0
        static void Main(string[] args)
        {
            if (args.Length >= 2)
            {
                string impExp      = args[0];
                string projectFile = args[1];

                // .bdprjファイルの読み込み
                ProjectSetting.load(projectFile);

                if (impExp == "-exp")
                {
                    BehaviorTextExporter textExp = new BehaviorTextExporter();
                    textExp.exportBehaviorText();
                }
            }
            else
            {
                Console.WriteLine("引数が足りません: ");
                Console.WriteLine("Usage: BehaviorTextExportImport (-exp|-imp) <projectFile(.bdprj)>");
                Console.WriteLine("  エクスポートの例) BehaviorTextExportImport -exp <projectFile(.bdprj)>");
                Console.WriteLine("  インポートの例) BehaviorTextExportImport -imp <projectFile(.bdprj)> 対象テキスト");
            }
        }
Exemplo n.º 15
0
        private static void Main(string[] args)
        {
            DetailType detailType;

            if (args == null || args.Length < 5)
            {
                dispErrorMessage("引数が足りません");
                Application.Exit();
            }

            string prjfile = "project.bdprj";

            if (ProjectSetting.load(args[0] + "\\" + prjfile) == false)
            {
                dispErrorMessage("第1引数のプロジェクトパスが正しいかを確認ください");
                Application.Exit();
                return;
            }

            ElementVO elem = new ElementVO();

            elem.guid = args[3];

            elem.attributes   = new List <AttributeVO>();
            elem.methods      = new List <MethodVO>();
            elem.taggedValues = new List <TaggedValueVO>();

            switch (args[1])
            {
            case "a":
            case "A":
                detailType = DetailType.Attribute;
                break;

            case "m":
            case "M":
                detailType = DetailType.Method;
                break;

            case "t":
            case "T":
                detailType = DetailType.TaggedValue;
                break;

            default:
                dispErrorMessage("第2引数には a,m,t のいずれかを指定してください");
                Application.Exit();
                return;
            }

            char changed;

            if (args[2] == "C" || args[2] == "U" || args[2] == "D")
            {
                changed = args[2][0];
            }
            else
            {
                dispErrorMessage("第2引数には a,m,t のいずれかを指定してください");
                Application.Exit();
                return;
            }


            switch (detailType)
            {
            case DetailType.Attribute:
                AttributeVO att = new AttributeVO();
                att.guid    = args[4];
                att.changed = changed;
                elem.attributes.Add(att);
                break;

            case DetailType.Method:
                MethodVO mth = new MethodVO();
                mth.guid    = args[4];
                mth.changed = changed;
                elem.methods.Add(mth);
                break;

            case DetailType.TaggedValue:
                TaggedValueVO tgv = new TaggedValueVO();
                tgv.guid    = args[4];
                tgv.changed = changed;
                elem.taggedValues.Add(tgv);
                break;
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm(elem));
        }
Exemplo n.º 16
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);
                }
            }
        }
Exemplo n.º 17
0
        public void CloseOnLoadComplete(string projectPath, string dbfile)
        {
            if (!this.loaded)
            {
                Int32 count;
                for (count = 0; count < 1000; count++)
                {
                    if (this.loaded)
                    {
                        break;
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }

            // このプログラム(.exe)が置かれたフォルダを取得
            //string currentDir = System.Windows.Forms.Application.StartupPath ;

            //ファイルを開いて終わるまで待機する
            // Process p = Process.Start( currentDir + "\\ElementIndexer.exe", projectPath + " " + dbfile );
            //					MessageBox.Show("内部データベースを構築します。\n構築処理が完了後、OKボタンを押してください");

            try
            {
                ProjectSetting.load(projectPath + "\\project.bdprj");

                // 全成果物のリストを読み込み
                string            artifactsDir = projectPath + "\\" + ProjectSetting.getVO().artifactsPath;
                List <ArtifactVO> artifacts    = ArtifactsXmlReader.readArtifactList(artifactsDir, ProjectSetting.getVO().artifactsFile);

                // 全成果物リストの内容を成果物XMLファイルで埋める
                ArtifactXmlReader atfReader = new ArtifactXmlReader(artifactsDir);
                foreach (ArtifactVO atf in artifacts)
                {
                    // 成果物別のXMLファイルの内容読み込み
                    atfReader.readArtifactDesc(atf);
                }

                ArtifactsVO allArtifacts = new ArtifactsVO();
                allArtifacts.artifactList = artifacts;

                ConnectorXmlReader connReader    = new ConnectorXmlReader(projectPath);
                List <ConnectorVO> allConnectors = connReader.readConnectorAll();

                IndexDbWriter dbWriter = new IndexDbWriter(projectPath, ProjectSetting.getVO().dbName);

                // 全接続情報をDBに登録
                dbWriter.writeAllConnector(allConnectors);
                // 全要素情報をDBに登録
                dbWriter.writeAllElements(allArtifacts);
                // 全ふるまい情報をDBに登録
                dbWriter.writeAllBehaviors(allArtifacts);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


            // サブプロセスが終了後、必要なくなったところでCLOSE
//            p.WaitForExit();

            this.Close();
        }