X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcamidion%2Fchordhelper%2Fmidieditor%2FSequenceTrackListTableModel.java;h=c54c5c4f180fa3a2608f1b58a70a16415e5a3a0f;hb=f0b21b036e8336a12f271f0854022fe83154972f;hp=22f35cf0172f17b02e0ff048dc71ee84dee9315e;hpb=4dd2df1e98061d53e4900ba6cc765002d34c5d7f;p=midichordhelper%2FMIDIChordHelper.git diff --git a/src/camidion/chordhelper/midieditor/SequenceTrackListTableModel.java b/src/camidion/chordhelper/midieditor/SequenceTrackListTableModel.java index 22f35cf..c54c5c4 100644 --- a/src/camidion/chordhelper/midieditor/SequenceTrackListTableModel.java +++ b/src/camidion/chordhelper/midieditor/SequenceTrackListTableModel.java @@ -2,12 +2,9 @@ package camidion.chordhelper.midieditor; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Set; import javax.sound.midi.MidiSystem; import javax.sound.midi.Sequence; @@ -221,9 +218,7 @@ public class SequenceTrackListTableModel extends AbstractTableModel { * シーケンスtickインデックスを返します。 * @return シーケンスtickインデックス */ - public SequenceTickIndex getSequenceTickIndex() { - return sequenceTickIndex; - } + public SequenceTickIndex getSequenceTickIndex() { return sequenceTickIndex; } /** * MIDIシーケンスを設定します。 * @param sequence MIDIシーケンス(nullを指定するとトラックリストが空になる) @@ -254,23 +249,9 @@ public class SequenceTrackListTableModel extends AbstractTableModel { trackModelList.add(new TrackEventListTableModel(this, track)); } // 文字コードの判定 - byte b[] = MIDISpec.getNameBytesOf(sequence); - if( b != null && b.length > 0 ) { - try { - String autoDetectedName = new String(b, "JISAutoDetect"); - Set> entrySet; - entrySet = Charset.availableCharsets().entrySet(); - for( Map.Entry entry : entrySet ) { - Charset cs = entry.getValue(); - if( ! autoDetectedName.equals(new String(b, cs)) ) - continue; - charset = cs; - break; - } - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } + Charset cs = MIDISpec.getCharsetOf(sequence); + charset = cs==null ? Charset.defaultCharset() : cs; + // // トラックが挿入されたことを通知 fireTableRowsInserted(0, tracks.length-1); } @@ -312,11 +293,8 @@ public class SequenceTrackListTableModel extends AbstractTableModel { * @return 成功したらtrue */ public boolean setName(String name) { - if( name.equals(toString()) ) - return false; - byte b[] = name.getBytes(charset); - if( ! MIDISpec.setNameBytesOf(sequence, b) ) - return false; + if( name.equals(toString()) ) return false; + if( ! MIDISpec.setNameBytesOf(sequence, name.getBytes(charset)) ) return false; setModified(true); fireTableDataChanged(); return true; @@ -345,7 +323,7 @@ public class SequenceTrackListTableModel extends AbstractTableModel { int row = indexOf(track); if( row < 0 ) return; fireTableRowsUpdated(row, row); - sequenceListTableModel.fireSequenceModified(this); + sequenceListTableModel.fireSequenceModified(this, true); } /** * 選択されているトラックモデルを返します。 @@ -386,7 +364,7 @@ public class SequenceTrackListTableModel extends AbstractTableModel { trackModelList.add(new TrackEventListTableModel(this, newTrack)); int lastRow = getRowCount() - 1; fireTableRowsInserted(lastRow, lastRow); - sequenceListTableModel.fireSelectedSequenceModified(); + sequenceListTableModel.fireSelectedSequenceModified(true); trackListSelectionModel.setSelectionInterval(lastRow, lastRow); return lastRow; } @@ -406,7 +384,7 @@ public class SequenceTrackListTableModel extends AbstractTableModel { trackModelList.remove(i); } fireTableRowsDeleted(minIndex, maxIndex); - sequenceListTableModel.fireSelectedSequenceModified(); + sequenceListTableModel.fireSelectedSequenceModified(true); } /** * このシーケンスモデルのシーケンスをシーケンサーが操作しているか調べます。