拡張タブを作る
astah*プラグインには拡張タブビューがあります。これを使うと、例えばクラス情報のサマリを一覧にしてastah*上で閲覧できるプラグインを作成できます。

課題
								
									”Hello World”という文字列を表示する拡張タブビューを作成してみましょう。
									 
								
							 
								拡張タブを実装してみましょう
拡張タブビューはIPluginExtraTabViewインタフェースの実装クラスとして定義します。次のソースコードは、IPluginExtraTabViewを実装したHelloWorldViewの例です。
/*
 * パッケージ名は、生成したプラグインのパッケージ名よりも
 * 下に移してください。
 * プラグインのパッケージ名=> com.example
 *   com.change_vision.astah.extension.plugin => X
 *   com.example                                     => O
 *   com.example.internal                          => O
 *   learning                                         => X
 */
package com.example.internal;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import com.change_vision.jude.api.inf.AstahAPI;
import com.change_vision.jude.api.inf.project.ProjectAccessor;
import com.change_vision.jude.api.inf.project.ProjectEvent;
import com.change_vision.jude.api.inf.project.ProjectEventListener;
import com.change_vision.jude.api.inf.ui.IPluginExtraTabView;
import com.change_vision.jude.api.inf.ui.ISelectionListener;
public class HelloWorldView extends JPanel
      implements IPluginExtraTabView, ProjectEventListener {
  public HelloWorldView() {
    initComponents();
  }
  private void initComponents() {
    setLayout(new BorderLayout());
    add(createLabelPane(), BorderLayout.CENTER);
    addProjectEventListener();
  }
  private void addProjectEventListener() {
  try {
    AstahAPI api = AstahAPI.getAstahAPI();
    ProjectAccessor projectAccessor = api.getProjectAccessor();
    projectAccessor.addProjectEventListener(this);
  } catch (ClassNotFoundException e) {
    e.getMessage();
  }
  }
  private Container createLabelPane() {
    JLabel label = new JLabel("hello world");
    JScrollPane pane = new JScrollPane(label);
    return pane;
  }
  @Override
  public void projectChanged(ProjectEvent e) {
  }
  @Override
  public void projectClosed(ProjectEvent e) {
  }
   @Override
  public void projectOpened(ProjectEvent e) {
  }
  @Override
  public void addSelectionListener(ISelectionListener listener) {
  }
  @Override
  public Component getComponent() {
    return this;
  }
  @Override
  public String getDescription() {
    return "Show Hello World here";
  }
  @Override
  public String getTitle() {
    return "Hello World View";
  }
  public void activated() {
  }
  public void deactivated() {
  }
}
						
							getComponent()は、表など拡張タブビュー上に表示されるコンテンツをastah*に返します。例では、拡張タブビュー上に”Hello World”を表示するHelloWorldViewインスタンスを返しています。拡張タブビューのタイトルはgetTitle()で定義します。
							ProjectEventListenerインタフェースを実装したクラスは、astah*が現在開いているモデルのオブザーバーです。クラスの追加や削除などモデルに変更があった場合、projectChangedメソッドが呼ばれます。
						
拡張タブビューをastah*に追加してみましょう
続いてplugin.xmlに拡張タブビューを追加しましょう。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension point="com.change_vision.astah.ui.view">
    <view
	      id="com.example.internal.HelloWorldView"
	      type="extraTab"
	      class="com.example.internal.HelloWorldView" />
  </extension>
</plugin>
						各タグの意味は下記のとおりです。
| Tag Name | Attribute | Required | Description | 
| extension | ○ | 拡張ポイントを指定します | |
| point | ○ | com.change_vision.astah.ui.viewを指定 | |
| view | ○ | ビューを指定します | |
| id | ○ | ビューのIDです | |
| type | ○ | 表示する場所を指定します | |
| 拡張ビューの場合、extraTabを指定します | |||
| class | ○ | 拡張タブに表示する実装クラスを指定します | 
これで拡張タブビューを追加できました。
 
					 
					 
					