*/
public static class VersionInfo {
public static final String NAME = "MIDI Chord Helper";
- public static final String VERSION = "Ver.20160504.1";
+ public static final String VERSION = "Ver.20160504.2";
public static final String COPYRIGHT = "Copyright (C) 2004-2016";
public static final String AUTHER = "@きよし - Akiyoshi Kamide";
public static final String URL = "http://www.yk.rim.or.jp/~kamide/music/chordhelper/";
JInternalFrame frame = e.getInternalFrame();
if( ! (frame instanceof MidiDeviceFrame) ) return;
MidiConnecterListModel devModel = ((MidiDeviceFrame)frame).listView.getModel();
- if( ! devModel.rxSupported() ) return;
- colorMap.remove(devModel.getMidiDevice().getReceivers().get(0));
+ if( devModel.rxSupported() ) {
+ colorMap.remove(devModel.getMidiDevice().getReceivers().get(0));
+ }
repaint();
}
};
* 実体のない新規Transmitterを表すインターフェース
*/
public interface NewTransmitter extends Transmitter {};
- public NewTransmitter newTransmitter = new NewTransmitter() {
- @Override
- public void setReceiver(Receiver receiver) { }
- @Override
- public Receiver getReceiver() { return null; }
- @Override
- public void close() { }
- };
+ public NewTransmitter newTransmitter;
/**
* 指定のMIDIデバイスに属する {@link Transmitter}/{@link Receiver} のリストモデルを構築します。
*
public MidiConnecterListModel(MidiDevice device, List<MidiConnecterListModel> modelList) {
this.device = device;
this.modelList = modelList;
+ if( txSupported() ) {
+ newTransmitter = new NewTransmitter() {
+ @Override
+ public void setReceiver(Receiver receiver) { }
+ @Override
+ public Receiver getReceiver() { return null; }
+ @Override
+ public void close() { }
+ };
+ }
}
/**
* 対象MIDIデバイスを返します。
List<Transmitter> txList = device.getTransmitters();
int txSize = txList.size();
if( index < txSize ) return txList.get(index);
- if( txSize != 0 && index == txSize ) return newTransmitter;
+ if( index == txSize ) return newTransmitter;
return null;
}
@Override
public int getSize() {
- int txSize = device.getTransmitters().size();
- return device.getReceivers().size() + (txSize == 0 ? 0 : txSize + 1);
+ int txSize = txSupported() ? device.getTransmitters().size() + 1 : 0;
+ return device.getReceivers().size() + txSize;
}
/**
* 指定の要素がこのリストモデルで最初に見つかった位置を返します。
event.dropComplete(false);
return;
}
- Transferable draggedObject = event.getTransferable();
- Transmitter sourceTx = (Transmitter)draggedObject.getTransferData(transmitterFlavor);
- if( getModel().ConnectToReceiver(sourceTx, (Receiver)destination) == null ) {
+ Object source = event.getTransferable().getTransferData(transmitterFlavor);
+ if( ! (source instanceof Transmitter) ) {
+ event.dropComplete(false);
+ return;
+ }
+ if( getModel().ConnectToReceiver((Transmitter)source, (Receiver)destination) == null ) {
event.dropComplete(false);
return;
}
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addInternalFrameListener(
new InternalFrameAdapter() {
- public void internalFrameOpened(InternalFrameEvent e) {
- boolean isOpen = listView.getModel().getMidiDevice().isOpen();
- if( ! isOpen ) setVisible(isOpen);
- }
public void internalFrameClosing(InternalFrameEvent e) {
MidiConnecterListModel m = listView.getModel();
m.closeDevice();
- boolean isOpen = m.getMidiDevice().isOpen();
- if( isVisible() != isOpen ) setVisible(isOpen);
+ setVisible(m.getMidiDevice().isOpen());
}
}
);
private Transferable draggingObject = new Transferable() {
private DataFlavor flavors[] = {TREE_MODEL_FLAVOR};
@Override
- public Object getTransferData(DataFlavor flavor) { return getLastSelectedPathComponent(); }
+ public Object getTransferData(DataFlavor flavor) {
+ return getLastSelectedPathComponent();
+ }
@Override
public DataFlavor[] getTransferDataFlavors() { return flavors; }
@Override
this, DnDConstants.ACTION_COPY_OR_MOVE, new DragGestureListener() {
@Override
public void dragGestureRecognized(DragGestureEvent dge) {
- if( (dge.getDragAction() & DnDConstants.ACTION_COPY_OR_MOVE) != 0 ) {
- dge.startDrag(DragSource.DefaultMoveDrop, draggingObject, null);
- }
+ if( (dge.getDragAction() & DnDConstants.ACTION_COPY_OR_MOVE) == 0 ) return;
+ dge.startDrag(DragSource.DefaultMoveDrop, draggingObject, null);
}
}
);
};
public MidiOpenedDevicesView(MidiDeviceTreeView deviceTree) {
add(cablePane, JLayeredPane.PALETTE_LAYER);
- int frameIndex = 0;
+ int openedFrameIndex = 0;
MidiDeviceTreeModel treeModel = (MidiDeviceTreeModel)deviceTree.getModel();
for( MidiConnecterListModel deviceModel : treeModel.deviceModelList ) {
deviceModel.addListDataListener(cablePane.midiConnecterListDataListener);
frame.addInternalFrameListener(deviceTree.midiDeviceFrameListener);
add(frame);
if( deviceModel.getMidiDevice().isOpen() ) {
- frame.setBounds( 10+(frameIndex%2)*260, 10+frameIndex*55, 250, 100 );
+ frame.setBounds( 10+(openedFrameIndex%2)*260, 10+openedFrameIndex*55, 250, 100 );
frame.setVisible(true);
- frameIndex++;
+ openedFrameIndex++;
}
}
addComponentListener(new ComponentAdapter() {
for( JInternalFrame frame : frames ) {
if( ! (frame instanceof MidiDeviceFrame) ) continue;
MidiDeviceFrame deviceFrame = (MidiDeviceFrame)frame;
- if( deviceFrame.listView.getModel() == deviceModel ) return deviceFrame;
+ if( deviceModel.equals(deviceFrame.listView.getModel()) ) return deviceFrame;
}
return null;
}