astah* API 利用ガイド


【図の作成/削除】

  1. 各図の作成
  2. 各図の削除
各インターフェース、メソッドの詳細についてはastah* API JavaDocをご覧ください。
astah* APIの図の作成/編集/削除機能は、astah* UML, professionalでサポートしています。

【トランザクション操作】

図を作成/編集/削除する際、トランザクション操作が必要です。
トランザクション操作(モデル/図/プレゼンテーションの作成・編集・削除時)をご覧ください。

【各図の作成】

・クラス図/オブジェクト図:ClassDiagramEditorのcreateClassDiagramメソッドを使用します
・ユースケース図:UseCaseDiagramEditorのcreateUseCaseDiagramメソッドを使用します
・ステートマシン図:StateMachineDiagramEditorのcreateStatemachineDiagramメソッドを使用します
・アクティビティ図:ActivityDiagramEditorのcreateActivityDiagramメソッドを使用します
・シーケンス図:SequenceDiagramEditorのcreateSequenceDiagramメソッドを使用します
・合成構造図:CompositeStructureDiagramEditorのcreateCompositeStructureDiagramメソッドを使用します
・ER図(professionalのみ):ERDiagramEditorのcreateERDiagramメソッドを使用します
・マインドマップ:MindmapEditorのcreateMindmapDiagramメソッドを使用します
・要求図:RequirementDiagramEditorのcreateRequirementDiagramメソッドを使用します

(例)クラス図/オブジェクト図の作成

public IDiagram createClassDiagram(IModel project, String diagramName) 
        throws InvalidUsingException, ClassNotFoundException {
    ProjectAccessor projectAccessor =  AstahAPI.getAstahAPI().getProjectAccessor();
    ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
    try {
        TransactionManager.beginTransaction();
        IDiagram iClassDiagram = cde.createClassDiagram(project, diagramName);
        TransactionManager.endTransaction();
        return iClassDiagram;
    } catch (InvalidEditingException e) {
        e.printStackTrace();
        TransactionManager.abortTransaction();
    }
}

【各図の削除】

deleteメソッドで、図を指定してプロジェクトから削除します。

(例1)図の削除

public void deleteDiagram(IDiagram diagram) 
        throws ClassNotFoundException, InvalidUsingException {
    ProjectAccessor projectAccessor =  AstahAPI.getAstahAPI().getProjectAccessor();
    ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
    try {
        TransactionManager.beginTransaction();
        cde.setDiagram(diagram);
        cde.deleteDiagram();
        TransactionManager.endTransaction();
    } catch (InvalidEditingException e) {
        e.printStackTrace();
        TransactionManager.abortTransaction();
    }
}

(例2)図の削除

public void deleteDiagram(IDiagram diagram) 
        throws ClassNotFoundException, InvalidUsingException {
    ProjectAccessor projectAccessor =  AstahAPI.getAstahAPI().getProjectAccessor();
    ClassDiagramEditor cde = projectAccessor.getDiagramEditorFactory().getClassDiagramEditor();
    try {
        TransactionManager.beginTransaction();
        cde.delete(diagram);
        TransactionManager.endTransaction();
    } catch (InvalidEditingException e) {
        e.printStackTrace();
        TransactionManager.abortTransaction();
    }
}


HOME