問題タブ [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.
emacs - Emacsで「元に戻す」の後に「やり直す」変更をどのように行いますか?
この記事では、「元に戻すときに方向を逆にして、元に戻すことができるため、Emacsにはやり直しがあります」と書かれています。
これは何を意味するのでしょうか?ユーザーはどのようにしてEmacsで「やり直す」ことができますか?
silverlight - MVVM アプリケーションで元に戻す/やり直しを実装する方法は?
私は、デザイナーが Visual Studio のインターフェイスに似たタブ付きインターフェイスを必要とする Silverlight LoB アプリに取り組んでいます (タブのドッキングにはおそらく Telerik Rad コントロールを使用します)。プロトタイプを作成したので、これまでのところインターフェイスはうまく機能していますが、MVVM プロジェクトで元に戻す/やり直し機能を実装する方法を考えるのに問題があります。
元に戻す/やり直し機能は、次のことを行う必要があります。
- 元に戻す/やり直しの際に、UI の状態を復元します。つまり、フォーカスや選択などを変更元のコントロール (テキスト ボックスなど) に戻します。
- ビューごとの取り消し/やり直しスタックを持つ
通常、コマンド パターンを使用しますが、それを MVVM に適用する方法がわかりません。
ビューとビューモデルの理想的な疎結合を得るためにコマンドとバインディングを使用しましたが、ビューモデルにはビューと状態の概念がないため、元に戻す/やり直しが非常に難しくなります。コマンドが受信されたとき、またはバインドされたプロパティが変更されたときのビュー。ユーザーが取り消し可能なアクションを実行し、後で復元するために状態を取得するたびに、どのビューがアクティブであるかを追跡するサービスが必要なようです。
MVVM で元に戻す/やり直しを実装するためのベスト プラクティスについて、コンセンサスはありますか? Daniel Vaughan が彼の Calcium プロジェクトでどのようにそれを行っているかに興味を持って見てきました。Blend は明らかに MVVM パターンを使用して作成されており、私のアプリが望んでいるように動作します。
java - テキストエディタで元に戻すとやり直しを設計するにはどうすればよいですか?
私のプロジェクトの一部は、いくつかのルールの入力、アプリケーションのコンパイル、および実行に使用されるテキストエディターを作成することです。コンパイラの作成は終了し、ベータ版をリリースしました。最終バージョンでは、元に戻るとやり直しをテキストエディタに追加する必要があります。私はファイルを使用して、テキストエディタ用に定期的に保存します。テキストエディタで元に戻すとやり直しを設計するにはどうすればよいですか?ファイルの永続性の構造は何が変わったのですか?
cocoa - NSTextFieldから元に戻るを正常に登録できません
カスタムXMLファイルを作成するだけの単純なドキュメントベースのアプリケーションがあります。アウトラインビューを使用してXMLドキュメントをナビゲートします。アウトラインビューの項目を選択すると、カスタムビューがドキュメントビューのサブビューとして表示され、ユーザーはデータを入力できます。ビューの1つにNSTextFieldがあります。「元に戻す」フラグが設定されています。編集が完了したときに、NSDocumentでundoManagerが呼び出されることを確認するためにテストしました。したがって、コントロールはファーストレスポンダーを介してバウンスしているように見えます。
IBActionでは、ActionNameを使用して、メニューに正しく表示されるようにします。ここに問題があります。ActionNameがメニューに表示されないだけでなく、[元に戻す]をクリックしても、NSTextFieldで実行されたアクションが元に戻されるのではなく、その直前に登録されたアクションが元に戻されます。NSTextFieldでundoを設定するときに見落としたことがありますか?
(IBAction)textFieldChanged:(id)sender {
...ここにいくつかのコード...
[[self undoManager] setActionName:@"テキストの変更"];
}
よろしくお願いします、ロブ
qt4 - QUndoCommands はビューまたはモデルに結び付けられるべきですか?
Qt のundo フレームワークQUndoCommand
では、インスタンスのスタックを持つことができます。これらはそれぞれ、ユーザー インターフェイスでのアクションを説明しています。私たちのアプリケーションでは、一連のモデルで動作する一連のビューがあり、一部は組み合わせて使用されます。多くの場合、同じモデル セットで複数のビューが動作します。私は現在、このフレームワークに基づいてアクションを元に戻す機能を検討しています。
さて、私は UI アクションを記述するコマンド クラスを持つ一般的なパターンに精通していますが、これらは UI 要素の状態変化または基になるモデルのデータ変化を表すものでしょうか? コマンド クラスに含まれるデータと状態の量はどれくらいですか?
私の要点を説明する例: QStandardItemModel
as base モデルがあり、その上にいくつかの proxy モデルがあるとします。各プロキシ モデルは、特定の値の発生によるフィルタリングなど、さまざまな変換を行います。次に、これらのプロキシ モデルの 1 つの値を具体的に変更するコマンド クラスを作成し、フィルター条件が変更されると、そのコマンド クラスの状態が無効になります。そのため、フィルターの状態、または最終的な基になるモデルへのマッピングも含める必要があります。もう 1 つのオプションは、UI のすべての状態変更 (たとえば、フィルター条件の変更を引き起こすもの) に対するコマンドも追加することですが、これの欠点は、元に戻すコマンドのリストがかなり大きくなることです。
ここでのベストプラクティスは何ですか?
wpf - WPF Undo Redo Property Systemは、値が変更された場合に赤色で強調表示します
非常に複雑なUIには、次の要件があります。(ここでの複雑さは、[約100]の形式のコントロールがたくさんあることを意味します)。私はMVVMを使用しています(問題がMVVMから少し離れる必要がある場合は、問題ありません)
私の質問は、編集可能なコンボボックスとテキストボックスです。しかし、私はすべてのコントロールに適合する共通のアルゴリズムを聞きたいと思います。
要件1:ユーザーがコンテンツを編集して次のコントロールに移動すると、コントロール/テキストの色が赤になります。
要件2:ユーザーが以前に編集したコントロールに戻り、最初に存在していた値を入力すると、コントロール/テキストの色が黒に戻る必要があります。
要件が厳しいことはわかっています。以前の値を保存し、関数を呼び出してコントロールの色を変更できる汎用アルゴリズムを設計することに頭を悩ませています。
すべてのアイデアを提供するために、
->Default_TextやTextなどのTextBoxごとに2つのプロパティを保存してみました。ただし、プロパティの数が非常に多いため、メモリフットプリントは非常に大きくなります。また、非常に多くのプロパティを維持することは非常に困難です。
->変更された値を保存するために、すべてのViewModelに辞書を追加してみました。しかし、ここで私が直面した問題は、アプリケーション内のすべてのコントロールに一意のキーを与えることでした。これはあまり役に立ちません
-> TextBox、ComboBoxなどのコントロールをサブクラス化し、要件に合うようにいくつかのメソッドをオーバーライドすることさえ考えてみましたが、残念ながら検証などを追加し始めたとき、私は惨めに失敗しました。
そのため、ここでは、すべての元に戻るREDO機能、コントロールのスタイルの変更などを処理するための汎用WPFプロパティシステム/アルゴリズムの設計に固執しています!!!
あなたの専門家が私を正しい方向に導き、そのようなアルゴリズム/システムの開発を手伝ってくれるなら、それは本当に素晴らしいことです。サンプルイラストもいいですね!!!
wpf - WPF 検証の「前」の設定値またはコマンドの発行
ご挨拶、
私は比較的 WPF に不慣れで、DataGrid コントロールの検証に関連する問題があります。私はこの記事 (http://msdn.microsoft.com/en-us/magazine/ff714593.aspx) を読みましたが、これには 3 つの異なる検証方法が記載されていますが、値の設定や呼び出しを防ぐ方法については触れていないようです。すべての検証が実行される前にコマンドを元に戻す/やり直す。
セルに正の数のみを入力できるようにしたい。セルに負の数値が含まれているかどうかを確認する検証ルールを設定し、DataGrid の CellEditEnding イベントを処理して、モデル レイヤーで使用される数値を実際にいつ変更するかを判断します。問題は、検証ルールの前に CellEditEnding が呼び出されることです。検証ルールが問題を検出するまでに、モデル内の数値は既に設定されています。必要なのは CellEditEnded ですが、このイベントは DataGrid の Silvelight バージョンにのみ存在するようです。
何か案は?
ありがとう
c# - プログラムを大幅に変更せずに元に戻す/やり直し操作を実装する方法
こんにちは、現在書いているアプリケーションに新しい機能を追加しようとしています。元に戻す/やり直し機能を書く必要があります。しかし、私たちのアプリケーションの 90% は準備ができており、既に作成されたコードに影響を与えずにこの機能を実装する最良の方法は何なのかわかりません。
iphone - iPhoneはアップルのように押されたボタンをやり直す
iPhone にはテキストのコピー パスト機能があり、電話を振ってやり直すハンドラーが優れているため、この機能を使用して、ユーザーが誤ってタッチしたボタン タッチ操作をやり直すことができないかどうか疑問に思っています。
何か案が?
マーカス
android - 元に戻す機能とやり直し機能を実装するためにビットマップを一時ファイルとして保存するのは良い考えですか?
私のプロジェクトでは、ビットマップのピクセルに大きな変更を加えており、このプロジェクトに元に戻すやり直し機能を追加したいと考えています.VMのメモリにいくつかのビットマップを保存するのは良い考えではないので、私の唯一の選択肢は履歴(ビットマップ)を一時ファイルとして保存することだと思いました. .実装を開始する前に、ここで愚かなことをしていないことを確認したいと思います。