1 package camidion.chordhelper.mididevice;
4 import java.awt.Rectangle;
6 import javax.sound.midi.Receiver;
7 import javax.sound.midi.Transmitter;
8 import javax.swing.JList;
9 import javax.swing.ListSelectionModel;
12 * MIDIレシーバ({@link Receiver})またはMIDIトランスミッタ({@link Transmitter})のリストを表示する基底の抽象リストビューです。
14 public abstract class TransceiverListView<E> extends JList<E> {
16 * このリストによって表示されるリストを保持するデータモデルを返します。
17 * @return 表示されるリストを提供するデータモデル
20 public TransceiverListModel<E> getModel() {
21 return (TransceiverListModel<E>) super.getModel();
24 * このリストの座標系内の指定された位置にある要素を返します。
27 public E getElementAt(Point p) {
28 return getModel().getElementAt(locationToIndex(p));
31 * 引数で指定された{@link Receiver}または{@link Transmitter}のセル範囲を示す、
32 * リストの座標系内の境界の矩形を返します。対応するセルがない場合はnullを返します。
33 * @param trx {@link Receiver}または{@link Transmitter}
34 * @return セル範囲を示す境界の矩形、またはnull
36 public Rectangle getCellBounds(E trx) {
37 int index = getModel().indexOf(trx);
38 return getCellBounds(index,index);
41 * 仮想MIDI端子リストビューを生成します。
42 * @param model このビューから参照されるデータモデル
44 public TransceiverListView(TransceiverListModel<E> model) {
46 setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
47 setLayoutOrientation(JList.HORIZONTAL_WRAP);
48 setVisibleRowCount(0);