kinugasa.ui
クラス SelectableMessageWindow

java.lang.Object
  上位を拡張 kinugasa.object.Sprite
      上位を拡張 kinugasa.object.BasicSprite
          上位を拡張 kinugasa.ui.MessageWindow
              上位を拡張 kinugasa.ui.SelectableMessageWindow
すべての実装されたインタフェース:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Sprite>, Controllable, Drawable, Shapeable
直系の既知のサブクラス:
ConfirmMessageWindow

public class SelectableMessageWindow
extends MessageWindow

1つ以上の選択肢から内容を選ばせることができるメッセージウインドウの拡張クラスです.
選択メッセージウインドウは1つの質問文と0こ以上の選択肢を持ちます。
質問文は改行"\n"を利用可能です。選択肢は改行できません。
選択中の選択肢を指し示すにはCHoiceEffectクラスを使用します。
ChoiceEffectはメッセージウインドウ内のラベルの選択中インデックスの要素に適用されます。
選択された選択肢は選択肢のテキストやラベル配列のインデックスを取得することで 区別することができます。

このメッセージウインドウは選択エフェクトがnullの場合は、選択エフェクトを表示しません。
したがって、選択肢のない普通のメッセージであっても表示可能です。
これを利用して、途中で選択肢を与える会話イベントをこの選択メッセージウインドウを使用して 作成することで、ウインドウを切り替えずに選択イベントを発生させることができます。

このウインドウの実装では、すべてのラベルが表示されるまで選択エフェクトが描画されません。
これは一部のメソッドによる選択された値を取得に影響します。

バージョン:
1.0.0 - 2012/11/23_21:19:46.
作成者:
Dra0211

関連項目:
直列化された形式

フィールドの概要
private  ChoiceEffect choiceEffect
          この選択メッセージウインドウが使用する選択エフェクトです.
private  int maxIndex
          選択可能な最大のインデックスです.
private  int minIndex
          選択可能な最少のインデックスです.
static int NOT_YET_SELECTED
          全てのラベルが表示されていないために、何も選択されていない状態を表すインデックスの定数です.
private  int selectedIndex
          現在選択中のラベルのインデックスです.
private static long serialVersionUID
           
 
クラス kinugasa.ui.MessageWindow から継承されたフィールド
labels
 
コンストラクタの概要
SelectableMessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, java.lang.String text, int initialIdx, int minIdx, int maxIdx, ChoiceEffect choiceEffect)
          新しい選択メッセージウインドウを作成します.
SelectableMessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, TimeCounter tc, java.lang.String text, int initialIdx, int minIdx, int maxIdx, ChoiceEffect choiceEffect)
          新しい選択メッセージウインドウを作成します.
 
メソッドの概要
protected  void clamp()
          インデックスを有効範囲内に切り詰めます.
 SelectableMessageWindow clone()
          このスプライトの複製を作成します.
 void draw(java.awt.Graphics2D g)
          メッセージウインドウを描画します.
 ChoiceEffect getChoiceEffect()
          この選択メッセージウインドウに設定されているエフェクトを取得します.
 int getMaxIndex()
          選択可能な最大のインデックスを取得します.
 int getMinIndex()
          選択可能な最少のインデックスを取得します.
 int getSelectedIndex()
          現在選択されているラベルのインデックスを取得します.
 TextLabel getSelectedLabel()
          現在選択されているラベルを取得します.
 void nextChoice()
          選択中の選択肢を1つ次の選択肢へと移します.
 void nextChoiceLoop()
          選択中の選択肢を1つ次の選択肢へと移します.
 void prevChoice()
          選択中の選択肢を1つ前の選択肢へと移します.
 void prevChoiceLoop()
          選択中の選択肢を1つ前の選択肢へと移します.
 void select(int idx)
          あるインデックスの選択肢を選択状態にします.
 void setChoiceEffect(ChoiceEffect choiceEffect)
          この選択メッセージウインドウに新しい選択エフェクトを設定します.
 void setMaxIndex(int maxIndex)
          選択可能な最大のインデックスを設定します.
 void setMinIndex(int minIndex)
          選択可能な最少のインデックスを設定します.
 
クラス kinugasa.ui.MessageWindow から継承されたメソッド
allText, getIcon, getLabel, getLabels, getSeparator, getWindowModel, isAllTextVisible, move, move, move, move, setIcon, setLabels, setSeparator, setSound, setText, setText, setText, setText, setWindowModel, skip
 
クラス kinugasa.object.BasicSprite から継承されたメソッド
getAngle, getMovingModel, getMovingModel, getNextCenter, getNextLocation, getSpeed, getVector, setAngle, setMovingModel, setSpeed, setVector, toString
 
クラス kinugasa.object.Sprite から継承されたメソッド
compareTo, contains, getBounds, getCenter, getCenterX, getCenterY, getHeight, getHitBounds, getLocation, getPersonalCenter, getPersonalCenterX, getPersonalCenterY, getSize, getStatus, getWidth, getX, getY, getZ, isExist, isVisible, setBounds, setBounds, setBounds, setExist, setHeight, setLocation, setLocation, setSize, setSize, setStatus, setVisible, setWidth, setX, setY, setZ, update, updateCenter, updatePersonalCenter
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

serialVersionUID

private static final long serialVersionUID
関連項目:
定数フィールド値

choiceEffect

private ChoiceEffect choiceEffect
この選択メッセージウインドウが使用する選択エフェクトです.


selectedIndex

private int selectedIndex
現在選択中のラベルのインデックスです.


minIndex

private int minIndex
選択可能な最少のインデックスです.


maxIndex

private int maxIndex
選択可能な最大のインデックスです.


NOT_YET_SELECTED

public static final int NOT_YET_SELECTED
全てのラベルが表示されていないために、何も選択されていない状態を表すインデックスの定数です.

関連項目:
定数フィールド値
コンストラクタの詳細

SelectableMessageWindow

public SelectableMessageWindow(float x,
                               float y,
                               float width,
                               float height,
                               MessageWindowModel wm,
                               LabelModel lm,
                               java.lang.String text,
                               int initialIdx,
                               int minIdx,
                               int maxIdx,
                               ChoiceEffect choiceEffect)
                        throws java.lang.NullPointerException,
                               java.lang.IllegalArgumentException
新しい選択メッセージウインドウを作成します. インデックスは配列のインデックスです。通常は、質問文が0番目となり、初期値は1、最少も1、最大は 選択肢の数になります。
ただし、選択肢のインデックスは質問文の行数の影響を受けます。質問文が2行ある場合は初期値は2となります。
このコンストラクタではラベルの表示遅延時間は0に設定されます。したがって、すべてのラベルが最初から表示されます。

パラメータ:
x - ウインドウのX座標を指定します。
y - ウインドウのY座標を指定します。
width - ウインドウの幅を指定します。
height - ウインドウの高さを指定します。
wm - ウインドウの表示モデルを指定します。
lm - ウインドウ内のラベルに適用されるラベルモデルを指定します。
text - 質問文です。改行"\n"を利用できます。
initialIdx - 最初に選択されている選択肢のインデックスを指定します。
minIdx - 選択可能なインデックスの最小値を指定します。
maxIdx - 選択可能なインデックスの最小値を指定します。
choiceEffect - 選択エフェクトを指定します。nullを許容します。
例外:
java.lang.NullPointerException - テキストがnullである場合に投げられます。
java.lang.IllegalArgumentException - minIdx > maxIdxのときに投げられます。

SelectableMessageWindow

public SelectableMessageWindow(float x,
                               float y,
                               float width,
                               float height,
                               MessageWindowModel wm,
                               LabelModel lm,
                               TimeCounter tc,
                               java.lang.String text,
                               int initialIdx,
                               int minIdx,
                               int maxIdx,
                               ChoiceEffect choiceEffect)
                        throws java.lang.NullPointerException,
                               java.lang.IllegalArgumentException
新しい選択メッセージウインドウを作成します. インデックスは配列のインデックスです。通常は、質問文が0番目となり、初期値は1、最少も1、最大は 選択肢の数になります。
ただし、選択肢のインデックスは質問文の行数の影響を受けます。質問文が2行ある場合は初期値は2となります。

パラメータ:
x - ウインドウのX座標を指定します。
y - ウインドウのY座標を指定します。
width - ウインドウの幅を指定します。
height - ウインドウの高さを指定します。
wm - ウインドウの表示モデルを指定します。
lm - ウインドウ内のラベルに適用されるラベルモデルを指定します。
tc - ラベルに適用するタイムカウンタを指定します。実際はクローンが使用されます。
text - 質問文です。改行"\n"を利用できます。
initialIdx - 最初に選択されている選択肢のインデックスを指定します。
minIdx - 選択可能なインデックスの最小値を指定します。
maxIdx - 選択可能なインデックスの最小値を指定します。
choiceEffect - 選択エフェクトを指定します。nullを許容します。
例外:
java.lang.NullPointerException - テキストがnullである場合に投げられます。
java.lang.IllegalArgumentException - minIdx > maxIdxのときに投げられます。
メソッドの詳細

getMinIndex

public int getMinIndex()
選択可能な最少のインデックスを取得します.

戻り値:
選択可能な最少のインデックスを返します。

setMinIndex

public void setMinIndex(int minIndex)
選択可能な最少のインデックスを設定します.

パラメータ:
minIndex - 選択可能な最少のインデックスを返します。

getMaxIndex

public int getMaxIndex()
選択可能な最大のインデックスを取得します.

戻り値:
選択可能な最大のインデックスを返します。

setMaxIndex

public void setMaxIndex(int maxIndex)
選択可能な最大のインデックスを設定します.

パラメータ:
maxIndex - 選択可能な最大のインデックスを返します。

setChoiceEffect

public void setChoiceEffect(ChoiceEffect choiceEffect)
この選択メッセージウインドウに新しい選択エフェクトを設定します.

パラメータ:
choiceEffect - 選択エフェクトの実装を送信します。nullを許容します。

getChoiceEffect

public ChoiceEffect getChoiceEffect()
この選択メッセージウインドウに設定されているエフェクトを取得します.

戻り値:
設定されている選択エフェクトの実装を返します。設定されていない場合は nullが設定されている場合は、nullをを返します。

nextChoice

public void nextChoice()
選択中の選択肢を1つ次の選択肢へと移します. このメソッドは現在選択されている選択肢が最後の(最大のインデックスを持つ)選択肢である場合は 何も行いません。


nextChoiceLoop

public void nextChoiceLoop()
選択中の選択肢を1つ次の選択肢へと移します. このメソッドは現在選択されている選択肢が最後の(最大のインデックスを持つ)選択肢である場合は 最初の(最少のインデックスを持つ)選択肢を選択します。


prevChoice

public void prevChoice()
選択中の選択肢を1つ前の選択肢へと移します. このメソッドは現在選択されている選択肢が最初の(最少のインデックスを持つ)選択肢である場合は 何も行いません。


prevChoiceLoop

public void prevChoiceLoop()
選択中の選択肢を1つ前の選択肢へと移します. このメソッドは現在選択されている選択肢が最初の(最少のインデックスを持つ)選択肢である場合は 最後の(最大のインデックスを持つ)選択肢を選択します。


select

public final void select(int idx)
                  throws java.lang.IllegalArgumentException
あるインデックスの選択肢を選択状態にします.

パラメータ:
idx - 選択するインデックスを送信します。
例外:
java.lang.IllegalArgumentException - idx >= labels.length || minIndex > idx || maxIndex < idxのときに投げられます。

clamp

protected final void clamp()
インデックスを有効範囲内に切り詰めます.


getSelectedLabel

public TextLabel getSelectedLabel()
現在選択されているラベルを取得します.

戻り値:
選択中のラベルを返します。全てのラベルが表示されていない場合(!isAllTextVisible()のとき) はnullを返します。

getSelectedIndex

public int getSelectedIndex()
現在選択されているラベルのインデックスを取得します.

戻り値:
選択中のラベルのインデックスを返します。全てのラベルが表示されていない場合(!isAllTextVisible()のとき) はNOT_YET_SELECTEDを返します。

draw

public void draw(java.awt.Graphics2D g)
クラス MessageWindow の記述:
メッセージウインドウを描画します. 描画では、まず、ウインドウ自体の可視状態の判定が行われます.
次にウインドウモデルによってウインドウの下地およびラベルが描画されます.
最後にアイコンが設定されている場合はアイコンを描画します.

定義:
インタフェース Drawable 内の draw
オーバーライド:
クラス MessageWindow 内の draw
パラメータ:
g - 書き込むグラフィックスコンテキスト.

clone

public SelectableMessageWindow clone()
クラス BasicSprite の記述:
このスプライトの複製を作成します. このメソッドでは、全てのフィールドをクローニングします.
このメソッドはサブクラスで適切にオーバーライドしてください.

オーバーライド:
クラス MessageWindow 内の clone
戻り値:
このスプライトと同じ設定の新しいインスタンス.