問題タブ [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 投票する
3 に答える
1474 参照

c++ - C++ の元に戻す/やり直しの実装における抽象クラスの問題

次のような「アクション」純粋抽象クラスを定義しました。

また、ユーザーがクラスで実行できる各コマンドを表しました。

実際の元に戻す/やり直すには、次のようなことをしたいと思います:

元に戻す

やり直し

「アクション」はインスタンス化できない抽象クラスであるため、コンパイラは明らかにこれを受け入れません。

それで、すべてを再設計する必要がありますか、それともこの問題に対する簡単な解決策はありますか?

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

jquery - jqueryuiでソート可能なアクションを元に戻す/やり直す方法は?

ソート可能なリスト(jquery ui)がありますが、ソート可能なベースで「undo / redo」を実装できるかどうかアドバイスできますか?

アイテムが新しいプレースホルダーにドラッグされ、[元に戻す]ボタンをクリックすると、アイテムが元の位置に移動するとします。「やり直し」ボタンをクリックすると、アイテムはその新しいプレースホルダーに移動します。

多分誰かがこれを行う方法を知っているか、多分何か他のものです。前もって感謝します。

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

apache-flex - Flex での画像操作による元に戻す、やり直し機能

それで、私は Flex を学ぶことができ、次のような小さなアプリを作成しました。

  • 画像コンポーネントに画像をロードします
  • マトリックスを使用して画像を変換 (回転、反転)
  • フィルターを適用

今、私はいくつかの元に戻す機能を作成することを考えています。変換を行う/フィルターを追加するたびに、前の画像 (アクションの前) に戻ることができるようにしたいと考えています。

私の考えは、配列を持ち、前のビットマップをスタックに追加することです。しかし、変換とフィルターにはいくつかの違いがあることがわかり、ImageSnapshot と私ができることも見てきました。

私は一般的にFlexに少し慣れていないので、ここの誰かがこれについてアドバイスをくれて、できれば方向性を教えてくれることを願っています.

アドバイスをありがとう!よろしくお願いします、

ラン

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

wpf - WPF RichTextBox TextChanged イベント - 削除または挿入されたテキストを見つける方法は?

RichTextBox を使用してカスタマイズされたエディターを作成しているときに、TextChanged イベントで提供された情報を使用して削除/挿入されたテキストを見つけるという問題に直面しました。

TextChangedEventArgsのインスタンスにはいくつかの有用なデータがありますが、すべてのニーズをカバーしているとは思いません。複数の段落が挿入され、同時に選択されたテキスト (それ自体が複数の段落にまたがる) が削除されたシナリオを想定します。

TextChangedEventArgs のインスタンスを使用すると、テキスト変更のコレクションが得られます。各変更は、削除または追加されたシンボルの数とその位置のみを提供します。

私が念頭に置いている唯一の解決策は、ドキュメントのコピーを保持し、指定された変更リストをそれに適用することです。ただし、TextChange のインスタンスは挿入/削除されたシンボルの数のみを提供するため (シンボルではなく)、元のコピーを変換する際に不明なシンボルを示すために特別なシンボル (たとえば、「?」) を配置する必要があります。資料。

ドキュメントの元のコピーにすべての変更を適用した後、それをリッチテキストボックスの更新されたドキュメントと比較して、未知のシンボルと実際のシンボルの間のマッピングを見つけることができます。そして最後に、私たちが望むものを手に入れましょう!!!

誰もこれを試したことがありますか?戦略全体についての提案と、このアプローチについてどう思うか.

よろしく

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

design-patterns - コマンドパターンの実装

私はアプリケーションの設計プロセスにあり、コマンドパターンを元に戻す/やり直しの目的で使用したいと思います。コマンドパターンについて調査しましたが、取得できないのは次のとおりです。コマンドにundoメソッドとredoメソッドがあるか、または2つの別々のコマンド(1つはundo用、もう1つはredo用)を作成して、からそれらを呼び出す必要があります。メインコマンド自体?

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

core-data - NSUndoManagerとコアデータ-やり直しが機能しない

NSManagedObjectContextに関連付けられた組み込みのNSUndoManagerを介した元に戻す/やり直しをサポートするCoreDataドキュメントベースのアプリがあります。Core Data内で多数のタスクを実行し、これらすべてのタスクをbeginUndoGrouping/を介してUNDOグループにラップendUndoGroupingし、NSUndoManagerによって処理されるいくつかのアクションを設定しています。

元に戻すは正常に機能します。いくつかの連続したアクションを実行できます。その後、それぞれを連続して元に戻すと、アプリの状態が正しく維持されます。ただし、「やり直し」メニュー項目は有効になりません。これは、NSUndoManagerがメニューにやり直す項目がないことを通知していることを意味します。

NSUndoManagerが、元に戻されたアイテムを忘れているように見え、REDOの発生を許可していないのはなぜですか?

私が言及しなければならないことの1つは、ドキュメントが開かれた/作成された後に元に戻る登録を無効にしているということです。アクションを実行するときは、、を呼び出し、enableUndoRegistrationアクションを実行してから、、、、を呼び出し、最後に。beginUndoGroupingを呼び出します。これにより、特定のアクションのみが元に戻せるようになり、これら以外で行った他のデータ変更はNSUndoManagerに認識されなくなります。これは問題の一部かもしれませんが、もしそうなら、なぜそれがやり直しに影響を与えているのか疑問に思いますか?processPendingChangessetActionName:endUndoGroupingdisableUndoRegistration

前もって感謝します。

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

iphone - 元に戻す/やり直しは基本的にiPhoneOSでどのように機能しますか?

私のアプリはまだCoreDataを使用していません。元に戻す/やり直しにコアデータを使用する必要があるというのは本当ですか?

そして:ユーザーはどのように元に戻す/やり直しをしますか?私はそれが実際に動作しているのを見たことがなく、使用したこともありません。やりたいのならどうしたらいいのかわからない。どこにも元に戻す/やり直しボタンはありません。それでも彼らはそれが元に/やり直しを持っていると言います。では、ユーザーはどのようにこれをトリガーしますか?

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

java - Netbeansエディタは、元に戻す後にファイルが変更されていないことをどのように認識しますか?

UndoManagerNetbeansは、取り消し機能の実装に標準APIを使用します。ただし、標準でも、状態を保存済みとしてマークし、変更されたステータスを確認する方法javax.swing.undo.UndoManagerorg.openide.awt.UndoRedo.Managerありません。それでも、ファイルを変更して[元に戻す]を押すと、ファイルは未変更としてマークされます。彼らはどのようにそれをしますか?Netbeans RCPアプリケーションの場合、(テキスト以外の)エディタにも同じ機能が必要です。

0 投票する
15 に答える
16629 参照

cocoa-touch - iPadアプリの一般的なundo/redo UIPopoverControllerスキームのように、UIGestureRecognizerをUIBarButtonItemに追加するにはどうすればよいですか?

問題

私のiPadアプリでは、押し続けるイベントの後でのみ、ボタンバーアイテムにポップオーバーをアタッチできません。しかし、これは元に/やり直しの標準のようです。他のアプリはこれをどのように行いますか?

バックグラウンド

UIKit(iPad)アプリのツールバーに元に戻すボタン(UIBarButtonSystemItemUndo)があります。元に戻すボタンを押すと、元に戻すアクションが実行され、正しく実行されます。

ただし、iPadでの元に戻す/やり直しの「標準のUE規則」では、元に戻すを押すと元になりが実行されますが、ボタンを押し続けると、コントローラーが閉じられるまでユーザーが「元に戻す」または「やり直し」のいずれかを選択したポップオーバーコントローラーが表示されます。

ポップオーバーコントローラーを接続する通常の方法は、presentPopoverFromBarButtonItem:を使用することです。これは、簡単に構成できます。これを長押しした後にのみ表示するには、次のスニペットのように「長押し」ジェスチャイベントに応答するビューを設定する必要があります。

これにより、ビューを長押しした後、メソッドhandleLongPressOnUndoGesture:が呼び出され、このメソッド内で、元に戻す/やり直しのポップオーバーを構成して表示します。ここまでは順調ですね。

これに伴う問題は、アタッチするビューがないことです。self.undoButtonItemはUIButtonBarItemであり、ビューではありません。

可能な解決策

1)[理想]ボタンバーアイテムにジェスチャレコグナイザーを取り付けます。ビューにジェスチャレコグナイザーをアタッチすることは可能ですが、UIButtonBarItemはビューではありません。.customViewのプロパティはありますが、buttonbaritemが標準のシステムタイプ(この場合はそうです)の場合、そのプロパティはnilです。

2)別のビューを使用します。UIToolbarを使用することもできますが、そもそも可能であれば、奇妙なヒットテストが必要であり、万能のハックになるでしょう。私が考えることができる他の使用する代替ビューはありません。

3)customViewプロパティを使用します。UIBarButtonSystemItemUndoのような標準タイプにはcustomViewがありません(nilです)。customViewを設定すると、必要な標準コンテンツが消去されます。これは、可能であれば、UIBarButtonSystemItemUndoのすべての外観と関数を再実装することになります。

質問

この「ボタン」にジェスチャレコグナイザーをアタッチするにはどうすればよいですか?具体的には、iPadアプリに標準の長押しして表示をやり直すポップオーバーを実装するにはどうすればよいですか?

アイデア?特に誰かが実際にアプリでこれを動作させていて(私はあなたのことを考えています、オムニ)、共有したい場合は特にありがとうございます...

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

java - MVC で元に戻す/やり直しを実装します

Java アプリケーションがあり、元に戻す/やり直しオプションを実装したいと考えています。ストックしたい、回収したい値は整数です。

私のクラスModelはインターフェイスStateEditableを実装しており、2 つの関数を再定義する必要がありrestoreState(Hashtable<?, ?> state)ますstoreState(Hashtable<Object, Object> state)が、それらに何を配置すればよいかわかりません。誰かが私がそれをするのを手伝ってくれるなら、それは本当に素晴らしいことです. これらは私のModelクラスの最初の行です。元に戻す/やり直したい値はvalue