diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTPad.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTPad.java index 41b78d3..d232c13 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTPad.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTPad.java @@ -13,6 +13,13 @@ import org.ntlab.radishforandroidstudio.framework.listener.SamplePadListener; import org.ntlab.radishforandroidstudio.framework.subject.PadSubject; +/** + * Padクラス + * Android Viewに貼り付けているもの + * + * @author s.iwatani + */ + public class RWTPad extends RWTView { private MotionEvent touchInfo = null; private Point circlePos = null; @@ -29,6 +36,9 @@ super(context, attrs, defStyleAttr); } + /** + * 状態を初期化する + */ @Override public void init() { super.init(); @@ -36,6 +46,11 @@ addListener(new SamplePadListener()); } + /** + * canvasに描画を行う + * + * @param canvas + */ // TODO: 見た目の調整 @Override public void onDraw(Canvas canvas) { @@ -61,6 +76,12 @@ return paint; } + /** + * Padをタッチしたときのイベント + * + * @param event + * @return + */ @Override public boolean onTouchEvent(MotionEvent event) { // 中央からの距離を取得 @@ -93,6 +114,10 @@ return true; } + /** + * Pad操作時に発生するイベントのリスナを追加する + * @param listener + */ public void addListener(PadListener listener) { PadSubject.getInstance().addListener(listener); } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/MyListener.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/MyListener.java index fa5a7a8..64943d5 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/MyListener.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/MyListener.java @@ -2,6 +2,18 @@ import org.ntlab.radishforandroidstudio.framework.event.MyEvent; +/** + * 全リスナの基底クラス + * + * @author s.iwatani + * @param イベントの型 + */ public interface MyListener { + /** + * イベント発生時に実行するメソッド + * + * @param event イベントの情報 + * @return + */ boolean onEvent(EventType event); } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/PadListener.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/PadListener.java index 6c5e1a8..577fce2 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/PadListener.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/listener/PadListener.java @@ -2,4 +2,9 @@ import org.ntlab.radishforandroidstudio.framework.event.PadEvent; +/** + * Padのリスナ + * + * @author s.iwatani + */ public interface PadListener extends MyListener {} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/subject/MySubject.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/subject/MySubject.java index 7b10a88..2ec1f31 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/subject/MySubject.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/subject/MySubject.java @@ -8,16 +8,49 @@ import org.ntlab.radishforandroidstudio.framework.event.MyEvent; import org.ntlab.radishforandroidstudio.framework.listener.MyListener; -// TODO: removeListenerの追加 +/** + * Listenerへイベントを通知するクラス + * + * @author s.iwatani + * @param リスナの型 + * @param イベントを保存する型 + */ public abstract class MySubject { protected Set listenerSet = new CopyOnWriteArraySet<>(); public MySubject() {} + /** + * リスナを追加する + * + * @author s.iwatani + * @param listener + */ public void addListener(ListenerType listener) { listenerSet.add(listener); } + /** + * 指定したリスナを削除する + * + * @author s.iwatani + * @param listener + */ + public void removeListener(ListenerType listener) { listenerSet.remove(listener); }; + + /** + * リスナをすべて削除する + * + * @author s.iwatani + */ + public void clearListener() { listenerSet.clear(); }; + + /** + * イベントを通知する + * + * @author s.iwatani + * @param event イベントの情報を保存したもの + */ public void notifyListeners(EventType event) { for (ListenerType listener : listenerSet) { listener.onEvent(event);