• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

テキストの各行をキーと値に分離し、複数テキストファイルを読み込み、キーを突き合わせ照合し、その結果を表示するGUIユーテリティです。


コミットメタ情報

リビジョン55e42793975fd2311818b2d61ac1b769ce2093ec (tree)
日時2011-11-06 01:36:25
作者seraphy <seraphy@dime...>
コミッターseraphy

ログメッセージ

・ データの削除

変更サマリ

差分

--- a/TODO.txt
+++ b/TODO.txt
@@ -1,9 +1,14 @@
11 o フィルタ結果で行がなくなっても列そのものは残す
2-o データの削除
32 o フィルタ状態の保存
43 o ステータスバーにモードを表示
4+o インポートが遅い理由を探す
5+p メニューの有効無効はモデルのデータ変更イベントにするべき?
6+ checkEnableSave();
7+ checkEnableNew();
8+ checkEnableRemoveColumn();
59
610 x データがなければ灰色
711 x 連続するキーは非表示か薄い表示
812 x ImportDataDialogModelの永続化
13+x データの削除 11/5
914
--- a/src/textkeymatcher/ui/TextKeyMatcherView.form
+++ b/src/textkeymatcher/ui/TextKeyMatcherView.form
@@ -362,7 +362,7 @@
362362 <DimensionLayout dim="0">
363363 <Group type="103" groupAlignment="0" attributes="0">
364364 <Group type="102" alignment="1" attributes="0">
365- <Component id="statusMessageLabel" pref="225" max="32767" attributes="0"/>
365+ <Component id="statusMessageLabel" pref="235" max="32767" attributes="0"/>
366366 <EmptySpace max="-2" attributes="0"/>
367367 <Component id="progressBar" min="-2" max="-2" attributes="0"/>
368368 <EmptySpace max="-2" attributes="0"/>
--- a/src/textkeymatcher/ui/TextKeyMatcherView.java
+++ b/src/textkeymatcher/ui/TextKeyMatcherView.java
@@ -873,13 +873,30 @@ public class TextKeyMatcherView extends FrameView implements ExitListener {
873873 }
874874 }
875875
876+ /**
877+ * データソースをドロップダウンで表示するためのラップインターフェイス.<br>
878+ */
876879 private interface LineDataListItemDisplay {
877880
881+ /**
882+ * ラップされているデータソースを取得する
883+ * @return データソース
884+ */
878885 LineDataList get();
879886
887+ /**
888+ * データソースのインデックスを取得する.
889+ * @return インデックス
890+ */
891+ int getIndex();
892+
893+ /**
894+ * データソースの文字列表現.
895+ * (タイトルを返す)<br>
896+ * @return
897+ */
880898 @Override
881899 String toString();
882-
883900 }
884901
885902 /**
@@ -889,6 +906,7 @@ public class TextKeyMatcherView extends FrameView implements ExitListener {
889906 public void onRemoveColumn() {
890907 int mx = dataViewTableModel.getNumOfLineDataLists();
891908 if (mx <= 1) {
909+ // 最低2列以上なければ削除できない.
892910 return;
893911 }
894912
@@ -896,12 +914,18 @@ public class TextKeyMatcherView extends FrameView implements ExitListener {
896914 ArrayList<Object> items = new ArrayList<Object>();
897915 for (int idx = 0; idx < mx; idx++) {
898916 final LineDataList lineDataList = dataViewTableModel.getLineDataList(idx);
917+ final int selIdx = idx;
899918 LineDataListItemDisplay item = new LineDataListItemDisplay() {
900919
901920 @Override
902921 public LineDataList get() {
903922 return lineDataList;
904923 }
924+
925+ @Override
926+ public int getIndex() {
927+ return selIdx;
928+ }
905929
906930 @Override
907931 public String toString() {
@@ -911,6 +935,7 @@ public class TextKeyMatcherView extends FrameView implements ExitListener {
911935 items.add(item);
912936 }
913937
938+ // ドロップダウンコンボの表示
914939 DefaultComboBoxModel comboboxModel = new DefaultComboBoxModel(
915940 items.toArray(new Object[items.size()]));
916941
@@ -928,17 +953,28 @@ public class TextKeyMatcherView extends FrameView implements ExitListener {
928953
929954 Number ret = (Number) optionPane.getValue();
930955 if (ret == null || ret.intValue() != JOptionPane.YES_OPTION) {
956+ // キャンセルされた場合
931957 return;
932958 }
933959
960+ // ドロップダウンで選択されたデータソースの取得
934961 LineDataListItemDisplay selItem =
935962 (LineDataListItemDisplay) removeColumnComboBox.getSelectedItem();
936963 if (selItem == null) {
937964 return;
938965 }
939966 LineDataList lineDataList = selItem.get();
940-
941- logger.log(Level.INFO, "lineDataList={0}", lineDataList.getTitle());
967+ int selidx = selItem.getIndex();
968+ logger.log(Level.INFO, "remove lineDataLis{0}t={1}",
969+ new Object[] {selidx, lineDataList.getTitle()});
970+
971+ // モデルからカラムの削除
972+ dataViewTableModel.removeLineDataList(selidx);
973+
974+ // メニューの更新
975+ checkEnableSave();
976+ checkEnableNew();
977+ checkEnableRemoveColumn();
942978 }
943979
944980 private void checkEnableSave() {