/// <summary> /// プロジェクト内の全成果物の読み込み /// ALL_Artifacts.xml → atf_xxxx.xml ファイルを読み、全ての成果物パッケージの内容をメモリに読み込む /// </summary> /// <param name="projectDir_"></param> /// <returns>全成果物のリスト</returns> private List <ArtifactVO> readAllArtifacts(string projectDir_) { List <ArtifactVO> retList = ArtifactsXmlReader.readArtifactList(projectDir_); ArtifactXmlReader atfReader = new ArtifactXmlReader(projectDir_); foreach (ArtifactVO atf in retList) { // 成果物パッケージ別のXMLファイル読み込み atfReader.readArtifactDesc(atf); } // 成果物リストをソートする。 ソートキー=GUID(自然順序付け)see: BehaviorDevelop.vo.ArtifactVO#compareTo retList.Sort(); return(retList); }
/// <summary> /// プロジェクト内の全成果物の読み込み /// AllArtifacts.xml → atf_xxxx.xml ファイルを読み、全ての成果物パッケージの内容をメモリに読み込む /// </summary> /// <param name="projectDir"></param> /// <returns>全成果物のリスト</returns> private List <ArtifactVO> readAllArtifacts(string artifactsDir) { List <ArtifactVO> retList = ArtifactsXmlReader.readArtifactList(artifactsDir, ProjectSetting.getVO().artifactsFile); ArtifactXmlReader atfReader = new ArtifactXmlReader(artifactsDir); foreach (ArtifactVO atf in retList) { // 成果物パッケージ別のXMLファイル読み込み atfReader.readArtifactDesc(atf); // 成果物配下の子ノードをGUIDでソート atf.sortChildNodesGuid(); } // 成果物リストをソートする。 ソートキー=GUID(自然順序付け)see: BehaviorDevelop.vo.ArtifactVO#compareTo retList.Sort(); return(retList); }
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(); }
/// <summary> /// 成果物パネルのアクティベート。 /// 主にパッケージツリーで成果物PKGを選択した時に呼び出され、新たに成果物情報をファイルから読んで成果物パネルを表示する。 /// あるいは既に成果物パネルの開いているタブ内で表示されている場合はそのタブをアクティベートして終了する。 /// </summary> /// <param name="atf"></param> /// <returns></returns> public ArtifactVO activateArtifactPanel(ArtifactVO atf) { // 既にタブページで対象の成果物を開いていないかをチェックする foreach (TabPage page in tabControl1.TabPages) { // 開こうとしている成果物のGUIDとページで記憶しているGUIDが一致したら string guid = (string)(page.Tag); if (atf.guid.Equals(guid)) { // 該当のタブページを選択状態にし、終了 tabControl1.SelectedTab = page; return(atf); } } string artifactDir = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath; ArtifactXmlReader atfReader = new ArtifactXmlReader(artifactDir, true); // 成果物パッケージ別のXMLファイル読み込み atfReader.readArtifactDesc(atf); // 新しく開くアーティファクト内のフォルダツリーを作成 TreeView folderTree = new TreeView(); folderTree.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); folderTree.ImageIndex = 0; folderTree.ImageList = this.imageList1; folderTree.Nodes.Add(makePackageNode(null, atf.package, true)); folderTree.ExpandAll(); // アーティファクト内の要素リストを作成 FlowLayoutPanel elemPanel = new FlowLayoutPanel(); elemPanel.Anchor = ((System.Windows.Forms.AnchorStyles) ((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); elemPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; elemPanel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; elemPanel.WrapContents = false; elemPanel.AutoScroll = true; makeElementsPanelContents(elemPanel, atf.package); TabPage atfPage = new TabPage(); atfPage.Controls.Add(elemPanel); // atfPage.Text = ((atf.package.stereoType != null) ? "<<" + atf.package.stereoType + ">> " : "" ) + atf.name ; atfPage.Text = atf.name; atfPage.Tag = atf.guid; // タブクローズ用のコンテキストメニューをTabPageに登録 atfPage.ContextMenuStrip = tabContextMenuStrip; // 作成したタブページをタブコントロールに追加し、そのタブを選択状態にする tabControl1.TabPages.Add(atfPage); tabControl1.SelectedTab = atfPage; return(atf); }