問題タブ [undo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - コミットする前に「gitadd」を元に戻すにはどうすればよいですか?
次のコマンドを使用して、誤ってファイルをGitに追加しました。
私はまだ実行していませんgit commit
。これを元に戻す方法はありますか?そうすれば、これらのファイルはコミットに含まれませんか?
java - JSpinnerの変更を元に戻す方法は?
のユーザー入力を検証する必要がありJSpinner
、無効な場合は、値の変更を元に戻す (ロールバック) 必要があります。それを行う最良の方法は何ですか?
java - Swing の元に戻すマネージャーから特定のアクションを非表示にします
ある種の色付けをサポートする JTextPane を作成しようとしています。ユーザーがテキストを入力しているとき、特定のアルゴリズムに従ってテキストに色を付けるコードを実行しています。これはうまくいきます。
問題は、カラーリング操作が元に戻すマネージャー (EventType.CHANGE の DefaultDocumentEvent) に登録されていることです。したがって、ユーザーが元に戻すをクリックすると、色が消えます。2 番目の取り消し要求でのみ、テキスト自体がロールバックされます。
(色付けアルゴリズムはやや遅いので、挿入時にテキストに色を付けることができないことに注意してください)。
CHANGE イベントが元に戻すマネージャーに到達しないようにしようとすると、何度か元に戻す要求の後に例外が発生します。これは、ドキュメントの内容が元に戻す編集オブジェクトが期待するものに準拠していないためです。
何か案は?
version-control - 変更セットの一部ではない bitkeeper のチェックインを元に戻すにはどうすればよいですか?
bitkeeper リポジトリにあるプロジェクトにファイルがあります。ファイルをチェックインしましたが、チェンジセットを作成するための変更をコミットしていません。チェックインを取り消すにはどうすればよいですか?
変更セットがあれば、次のコマンドでコミットを元に戻すことができます:
しかし、この場合、変更セットをコミットして元に戻すことはできません。これは、変更したくないファイルが他にチェックインされているためです。
language-agnostic - カスケード削除で元に戻す/やり直し
コマンドパターンを使用して、アプリケーションに元に戻す/やり直し機能を実装しようとしています。私は問題に直面しています。
それを説明するために、私のアプリケーションで2Dプロファイルを(必要な数だけ)作成できると想像してみましょう。
これらの2Dプロファイルから、さまざまな属性(名前、色、スケールなど)を持つ3Dパーツを作成できます。
プロファイルが削除されると、このプロファイルに基づいて構築されたすべての3Dパーツも自動的に削除されます(プロファイルが削除されようとすると、3Dパーツマネージャーに通知され、廃止された3Dパーツが削除されます。ビューにも通知されて更新されます。 GUI)。
これは私が問題に直面しているところです:私は2Dプロファイルを削除するためのundo / redoコマンドを書いています、それはこのように見えます(擬似コード):
上記のコードでわかるように、2Dプロファイルを削除すると、削除されたプロファイルに依存するすべての3Dパーツが自動的に削除されます。
ただし、元に戻す場合は、2Dプロファイルをリストに再度追加するだけでは不十分です。3Dパーツが失われます。
私は何をすべきか ?undo / redoコマンドは、3Dパーツの削除を処理する責任がありますか(これは、3Dパーツマネージャーによって実際に行われることです)?これは、undo/redoコマンドがGUIを更新するようにビューに通知する役割も担うことを意味します。
または、undo / redoコマンドで、削除されるすべての3Dパーツの内部コピーを作成し、3Dパーツマネージャーに3Dパーツを削除させる必要がありますか?
または、別のより良い解決策はありますか?
ご協力いただきありがとうございます !
undo - トランザクションデータベースで元に戻す
トランザクションデータベースを使用して、ユーザーフレンドリーなインターフェイスのundoプロパティを実装する方法がわかりません。
一方では、ここで回答に記載されているように、ユーザーにはマルチレベル(無限)の取り消しの可能性があることをお勧めします。この問題に役立つ可能性のあるパターンは、Memento またはCommandです。
ただし、トリガー、増え続けるシーケンス番号、元に戻せない手順などの複雑なデータベースを使用すると、トランザクションの境界とは異なるポイントで元に戻すアクションがどのように機能するかを想像するのは困難です。つまり、最後にコミットされたトランザクションが単なるロールバックである時点まで元に戻しますが、どのようにして別の瞬間に戻ることができますか?
更新(これまでの回答に基づく):変更が既にコミットされているときに元に戻るが機能することを必ずしも望んでいません。トランザクションが開いている実行中のアプリケーションに焦点を合わせます。ユーザーが[保存]をクリックするたびにコミットを意味しますが、保存する前に(同じトランザクション中に)元に戻るが機能するはずです。データベースを永続層として使用することは単なる実装の詳細であり、ユーザーはそれを気にする必要がないことを私は知っています。しかし、「データベースとGUIで元に戻すという考え方は根本的に異なる」と考え、データベースで元に戻るを使用しない場合、無限の元に戻すは単なる流行語にすぎません。「ロールバックは...ユーザーによる取り消しではない」ことを私は知っています。
では、同じトランザクション内で「変更の結果としてのカスケード効果」を考慮して、クライアントレベルの取り消しを実装するにはどうすればよいでしょうか。
datagridview - DataGridView がコントロールを閉じる前に、コントロールが Escape キーを検出できるようにするにはどうすればよいですか?
元に戻す機能を備えたコントロールがあります。ユーザーが Escape を押すと、コントロールは元の値に戻ります。
問題は、コントロールを DataGridView に統合したときです。DataGridView は Escape キーを「食べる」ため、コントロールは Escape キーを検出できません。
EditingControlWantsInputKey に "return true" を設定すると、コントロールは Escape キーを検出できましたが、他の問題が発生しました。DataGridView がコントロールを閉じることができず、EditMode のままです。
DataGridView がコントロールを閉じることを許可しながら、コントロールが Escape キーを検出できるようにするにはどうすればよいですか?
vim - ファイルが読み取り専用になるとVimが履歴を忘れる
vi を使用してファイルを Perforce にコミットすると、読み取り専用になります。
このファイルを vim で開いていると、readonline になると、尋ねられることもなく、取り消しとやり直しの履歴が失われます。
編集中にファイルが読み取り専用になった場合に、取り消しとやり直しの履歴を保持するオプションは VI にありますか?
javascript - 最後にチェックしたチェックボックスを元に戻すには?
こんにちは、選択したモジュールの数が特定の値より大きいかどうかを確認する JavaScript 関数を作成しました。したがって、チェックボックスが呼び出されるたびに関数が呼び出され、関数はすべてのチェックボックスを調べて合計を計算し、それが大きいかどうかを確認します。しかし、問題は、ユーザーがチェックボックスをオンにして、合計クレジットが値よりも大きい場合、チェックボックスをchecked = falseとして設定したいことです。しかし、どのチェックボックスを元に戻すかはわかりません。javascriptで最後のクリックを元に戻す機能はありますか?
git - Gitで1つのファイルの作業コピーの変更を元に戻しますか?
最後のコミットの後、作業コピー内の多数のファイルを変更しましたが、最新のコミットと同じ状態にリセットするなど、それらのファイルの 1 つに対する変更を元に戻したいと考えています。
ただし、その1つのファイルのみの作業コピーの変更を元に戻したいだけで、他には何もありません。
それ、どうやったら出来るの?