org.simBio.sim.analyzer
Class VisualizeAnalyzer

java.lang.Object
  extended by org.simBio.core.Component
      extended by org.simBio.core.Parameter
          extended by org.simBio.core.Composite
              extended by org.simBio.core.Analyzer
                  extended by org.simBio.sim.analyzer.VisualizeAnalyzer
All Implemented Interfaces:
Node
Direct Known Subclasses:
AbstractGraph, Axis, Viewer

public abstract class VisualizeAnalyzer
extends Analyzer

base class for visualized Node(Viewer, Graph, Axis).
表示系のNode(Viewer, Graph, Axis)のベースとなるクラスです。
下記のような機能を実装します。

  1. 画面の再描画をサポートする機能
  2. 色やフォントなど、見栄えを表すパラメータを取得する機能
  3. 特殊なNodeの値を取得する機能

Author:
misaki

Field Summary
 
Fields inherited from class org.simBio.core.Parameter
value
 
Constructor Summary
VisualizeAnalyzer()
           
 
Method Summary
protected abstract  void analyze(double t)
          Please implements this Method to manipulate Nodes.
protected  void doRepaint()
          再描画を行う.
protected  java.awt.Color getColorParameter(java.lang.String nodeName, java.awt.Color defaultColor)
          Node名を指定して、Colorを取得します.
protected  double getDouble(Node node)
          get value from node.
protected  java.awt.Font getFontParameter(java.lang.String nodeNamePrefix, java.lang.String defaultStyle, java.lang.String defaultSize)
          nodeNamePrefixを指定して、Fontを取得します.
protected  Node getNodeHierarchically(java.lang.String name)
          serch the Node of the same name(or upper level node).
 Node getNodeRecursive(java.lang.String name)
          serch the Node of the same name.
protected  void prepareRepaint()
          再描画を準備する.
 void repaint()
          再描画パラメータの取り込みと、再描画を行う.
 void resetBuffer()
          画面状態をリセットする.
 
Methods inherited from class org.simBio.core.Composite
accept, getLink, getNode, getNodesIterator, getNodesSize
 
Methods inherited from class org.simBio.core.Parameter
addValue, getValue, getValueString, prepare, setInitializer, setValue, setValueString, setValueToField
 
Methods inherited from class org.simBio.core.Component
addDydt, end, getIndent, getIndentedShortName, getName, getName, getParent, getRoot, getShortName, getUnits, isNamed, isPrefixed, logIndented, quit, setLinks
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.simBio.core.Node
addDydt, addValue, getValue, setValue
 

Constructor Detail

VisualizeAnalyzer

public VisualizeAnalyzer()
Method Detail

analyze

protected abstract void analyze(double t)
Description copied from class: Analyzer
Please implements this Method to manipulate Nodes. This Method is called every time step from Conductor.

Specified by:
analyze in class Analyzer
Parameters:
t - time
See Also:
Conductor.integrate()

resetBuffer

public void resetBuffer()
画面状態をリセットする. 新しいmodelをロードしたり(setLinks())、 時刻を変更した後に計算処理を行ったり(org.simBio.sim.gui.GUI#getJMenuModel()) した際に、呼び出され、描画再描画用のバッファなど、各Nodeで持っている内部状態を リセットします。
下位のnodeを持つ場合については、明示的に呼び出してやるように、super() を 呼ぶようにしてください。


repaint

public void repaint()
再描画パラメータの取り込みと、再描画を行う. 表示位置、フォントサイズ等の画面パラメータが変更された際や、 計算終了時等の、画面の再描画を行う際に呼ばれます。
  1. 表示のTopになるViewerでは、Node間の関連があるために、下記の処理が行われます。
    1. 画面パラメータを取り込むために、 配下の全Node の prepareRepaint()が呼ばれます。
    2. 再描画を行うために、配下の全Node の doRepaint() が呼ばれます。
  2. 下位のNodeであるGraph, Axisでは、上位のNode(Viewer)に処理を任せます。


prepareRepaint

protected void prepareRepaint()
再描画を準備する. 指定したNodeおよび配下のNodeについて、再描画の準備を行います。 GUIからグラフ領域を更新する際、必ず、doRepaint() メソッドの前に呼び出すこと。
クラス実装上の扱い


doRepaint

protected void doRepaint()
再描画を行う. 指定したNodeおよび配下のNodeについて、再描画を行います。 GUIからグラフ領域を更新する際、prepareRepaint() メソッドの後に呼び出すこと。
クラス実装上の扱い


getNodeRecursive

public Node getNodeRecursive(java.lang.String name)
serch the Node of the same name. if the Node is Link, follow the Link.
受け取った文字列と同じ名前の、最初に見つかったNodeを返しますが、 見つかったNodeがLinkの場合は、Link先のNodeを返します。
getNode() との違いは、Link先のNodeを再帰的に検索することです。 (AxisX.min, AxisX.max の処理で使用します。)

Parameters:
name - 名前を指定
Returns:
指定された名前のNode, 見つからないときはnullを返します。

getNodeHierarchically

protected Node getNodeHierarchically(java.lang.String name)
serch the Node of the same name(or upper level node). if the Node is Link, follow the Link.
受け取った文字列と同じ名前の、上位Nodeを含めて最初に見つかったNodeを返します。 見つかったNodeがLinkの場合は、Link先のNodeを返します。
getNodeRecursive() との違いは、現在の階層にパラメータが無ければ、 上位階層に遡って検索を行うことです。 これにより、タイトルサイズ、フォントサイズ等、見栄えを表すパラメータについて、 Viewer や Graph 単位で、配下のパラメータを一括指定出来ます。 (色・フォント指定にて使用します。)

Parameters:
name - 名前を指定
Returns:
指定された名前のNode, 見つからないときはnullを返します。

getDouble

protected double getDouble(Node node)
get value from node. if node is null, return 0.0


getColorParameter

protected java.awt.Color getColorParameter(java.lang.String nodeName,
                                           java.awt.Color defaultColor)
Node名を指定して、Colorを取得します. propertyNameで指定されるNodeから、Colorオブジェクトを取得する。 現在の階層に無い場合は、再帰的に親階層のNodeを検索するが、無ければdefaultColorを返却する。

Parameters:
nodeName - 色情報を取得するノード名
defaultColor - 色情報が見つからない場合に適用するColorオブジェクト
Returns:
取得したColor

getFontParameter

protected java.awt.Font getFontParameter(java.lang.String nodeNamePrefix,
                                         java.lang.String defaultStyle,
                                         java.lang.String defaultSize)
nodeNamePrefixを指定して、Fontを取得します. 与えられたnodePrefixNameを元に、下記のようにnodenameを合成し、Fontオブジェクトを取得する。 現在の階層に無い場合は、再帰的に親階層のNodeを検索するが、無ければdefaultStyle, defaultSizeを元にFontを作成する。 今のところ、font familyは、"dialog" 固定としている。

Parameters:
nodeNamePrefix - フォント情報を取得するノード名(プレフィックス)
defaultStyle - スタイルが見つからない場合に適用するスタイル
defaultSize - サイズが見つからない場合に適用するサイズ(小数点以下は無視する)
Returns:
取得したフォント


Copyright © 2002-2008 Cell/Biodinamics simulation project. All Rights Reserved.