if (state != KarteState.READ_ONLY) {
// データベースへの書き込み
Runnable r = new Runnable() {
@Override
public void run() {
PVTDelegater pdl = new PVTDelegater();
// NONE 以外から NONE への状態変更はありえないので無視
// NONE のカルテを強制変更でひらいて,変更しないで終了した場合,他の端末で SAVE になったのを NONE に戻してしまうのを防ぐ
int serverState = pdl.getPvtState(updated.getId());
if (KarteState.isNone(serverState) || !KarteState.isNone(state)) {
pdl.updatePvtState(updated.getId(), state);
pvtTableModel.fireTableRowsUpdated(row, row);
}
//logger.info("Karte state stored to server state=" + state + " row=" + row);
startCheckTimer();
}
};
executor.submit(r);
} else {
// ReadOnly の時,state を読み直す
Runnable r = new Runnable() {
@Override
public void run() {
PVTDelegater pdl = new PVTDelegater();
updated.setState(pdl.getPvtState(updated.getId()));
pvtTableModel.fireTableRowsUpdated(row, row);
startCheckTimer();
}
};
executor.submit(r);