問題タブ [undo-redo]

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.

0 投票する
1 に答える
1189 参照

eclipse - Eclipse Databinding と UndoableOperations を組み合わせるには?

私のRCP - プロジェクトでは、Eclipseデータバインディングを使用してUIをバックエンドに接続しています。開いているエディターでのすべての変更を元に戻せるようにしたい。私のドメインモデルと UI は 2 つの異なるプラグインに分かれています。

私の現在のアプローチは、データバインディング用に独自の UpdateValueStrategy クラスを実装することです。通常の UpdateValueStrategy を拡張し、doSet Methode をオーバーライドします。

そこから OperationHistory と Global UndoContext を取得し、新しい Operation を作成します。「ChangeCustomerName」や「ChangeCustomerNote」など、さまざまな操作があります。

質問:

  1. 元に戻す/やり直しのロジックを自分で実装する必要がありますか、それともフレームワークが何らかの方法でこれをサポートしていますか?
  2. UpdateValue - Strategy クラスの doSet() よりも、取り消し可能な操作を作成するためのより良い場所または方法はありますか。変更されたテキストフィールドにアクセスするのは簡単ではありません。
0 投票する
1 に答える
1008 参照

core-data - Core Data deleteObject: 属性を nil に設定します

アプリに元に戻す/やり直しメカニズムを実装しています。これは、多くの場合にうまく機能します。ただし、過去の deleteObject: を元に戻すことはできません。オブジェクトは元に戻すキューに正しく保存されており、元に戻すを呼び出すと、元に戻って Core Data スタックに再挿入されます。問題は、削除するとすべての属性が nil に設定されることです。

「グラフィックス」と呼ばれる対多の関係を持つエンティティ「キャンバス」があり、その逆が「キャンバス」に設定されています。グラフィックを削除してから挿入し直しても機能しません。コードは次のとおりです (redo メソッドは基本的に同じです)。

そして、ここに奇妙さがあります:

削除前:

やり直し後:

コア データによって完全に無色化されただけで、同じオブジェクトであることがわかります。テストで「アクションなし」に設定したため、関係の削除ルールは明らかに関係がありません。

0 投票する
3 に答える
663 参照

php - Webアプリケーションで「削除を元に戻す」?

削除ボタンを押した後に元に戻すオプションを提供する Web サイトをますます多く見てきました。ボタンの背後にあるロジックはどのように行われますか?

アイテムは JavaScript によって削除され、ユーザーの画面から「消え」、スケジュールされた削除が追加されました。

ユーザーに元に戻す機能を提供する他のオプションは何ですか?

0 投票する
3 に答える
1015 参照

c++ - QTextDocument の QUndoStack にアクセスするにはどうすればよいですか?

QUndoStackの にアクセスするにはどうすればよいQTextDocumentですか?

(たとえばQUndoCommand、ドキュメントの取り消しスタックにカスタム オブジェクトを追加できるようにしたい)

0 投票する
1 に答える
1072 参照

python - Tkinter テキストウィジェットで何かを元に戻す/やり直すにはどうすればよいですか?

Python で Control-Z と Shift-Control-Z の両方の機能を作成する必要があります。誰にもアイデアはありますか?

また、テキストウィジェット全体のコンテンツを選択する必要がありますが、その方法を知っている人はいますか?

0 投票する
2 に答える
7504 参照

python - Tkinterテキストウィジェットの機能を元に戻したりやり直したりしますか?

Tkinterウィジェットで++関数と++Control関数の両方を作成して、元に戻したりやり直したりできるようにする必要があります。ZShiftControlZText

誰かがそれを行う方法についてのアイデアを持っていますか?

0 投票する
2 に答える
1981 参照

iphone - iPhone SDK で NSUndoManager を使用して元に戻す/やり直す

NSUndoManager クラスを使用してアプリの 1 つで元に戻す/やり直し機能を設計しようとしており、設計上の問題がいくつか見られます。私のアプリでは、メソッドは 1 つだけです

そのため、ユーザーが UI でボタンを選択すると、ボール オブジェクトが配列リストに追加されます。ただし、ボールを削除するためのアクション ボタンはありません。これは UI ワークフローの設計であり、変更できません。したがって、取り消しを実装するために、addLastBall メソッド内で次のコードを呼び出しました。

これを行った後、ユーザーが取り消しを実行しようとすると、ボール オブジェクトで removeBall メソッドが呼び出されます。今のところすべて問題ありません。しかし、ユーザーがやり直そうとしたときに、どのメソッドが呼び出されるのかわかりません。ユーザーが元に戻す操作を使用して削除したばかりのボール オブジェクトを追加する必要があるためです。どんな洞察も非常に役に立ちます。

本当にありがとう。

0 投票する
2 に答える
199 参照

.net - バージョン管理機能の実装

ビジネス アプリケーションのエンド ユーザーがアクセスできるバージョン管理機能を実装するための推奨されるアプローチはありますか?

目標は、ユーザーが (テキストではなく) ビジネス オブジェクトを変更するアプリケーション用の堅牢なバージョン管理システムを作成することです。

開発者向けのバージョン管理ソフトウェア (SVN、Git など) に関する推奨事項を探しているのではなく、バージョン管理をエンド ユーザーに公開するためのライブラリやベスト プラクティスを探しています。

理想的には、書き込みロック、やり直しシステム (またはローカルのコミットと復帰) などを使用した同時編集を許可したいと考えています。

誰かがこのようなことを試みましたか?これに役立つ (.NET) ライブラリはありますか?

0 投票する
1 に答える
930 参照

vb6 - VB6のやり直し機能を強化するアドイン

VB6 IDE には、非常に基本的な取り消しとやり直しのメカニズムがあります。

ボタンをプレイブに移動して Ctrl+Z を押すと、元の位置に戻るように変更を元に戻したいです。

これを行う VB6 アドインを教えてくれる人はいますか?

0 投票する
2 に答える
586 参照

delphi - データ入力画面はモデル オブジェクトをリアルタイムで更新し、取り消しとやり直しを提供し、コマンド パターンを使用してモデル オブジェクトをライブ更新します

よく知られている Command パターンは、元に戻す/やり直し機能を備えたモデルを実装する場合によく使用されます。元に戻す/やり直しを実装する単純な Delphi フォームの参照実装 (例) を探しています。

私が見た限りでは、3 つの編集ボックス、6 つのメモ ボックス、およびいくつかのコンボ ボックスとその他の単純な編集コントロールを備えた単純な Delphi データ入力フォームは、通常、元に戻す/やり直しをサポートしていません。

別の Delphi ビュー (フォーム) とモデル オブジェクト (データ オブジェクトはフォームへのすべての編集と同期して更新される検証および制御ロジックは、フォームやモデルに組み込まれるのではなく、分離されます。

MVC を使用する必要がなく、モデル オブジェクトやコントローラー オブジェクトを持たない Delphi デモ アプリのプロトタイプを作成するだけでよい場合、純粋で単純な Delphi の元に戻す/やり直しは「1 つのフォームが私のもの」 -app" の方が設計は簡単ですが、オブジェクトを記録して再生し、それらを TEdit.OnChange などの Delphi フォーム アクションに同期する必要があるため、より複雑になります。