« FindBugs 導入 | トップページ | FindBugs に指摘されたこと »

2009年10月21日 (水)

Stamp あるいは Schema を編集しただけの場合

カルテ編集(modifyKarte)の時,テキストを編集しないでスタンプやシェーマだけ編集した場合 dirty 判定されない。そのため,シェーマだけを修正した場合などに,セーブする前にウインドウを閉じてしまって orz になることがあった。スタンプやシェーマを編集しただけの時も dirty になるようにした。

client/KartePane.java

protected void setDirty(boolean newDirty) {
//↓ stamp や schema の編集をしたら dirty にするため
//  if (newDirty != dirty) {
  if (dirty == false && newDirty == true) {
    dirty = newDirty;
    getParent().setDirty(dirty);
  }
}

client/StampHolder.java

public void edit() {
 ・
 ・        
    stampEditor.start();
//↓ stamp を edit したら,kartePane の Dirty 設定
    if (kartePane.getTextPane().isEditable()) {
      kartePane.setDirty(true);
    }

client/SchemaHolder.java

public void edit() {
 ・
 ・        
    Runnable awt = new Runnable() {
      public void run() {
        editor.start();
      }
    };
    EventQueue.invokeLater(awt);
//↓ schema edit 開始したら dirty と設定
    if (kartePane.getTextPane().isEditable()) {
      kartePane.setDirty(true);
    }
  }

« FindBugs 導入 | トップページ | FindBugs に指摘されたこと »

OpenDolphin」カテゴリの記事