問題タブ [gwt-editors]
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.
java - GWT エディター - コレクションに基づいて同じタイプの N 個のサブエディターを追加する方法
またはSupply
のいずれかになるオブジェクト があります(関連する質問を参照)。ElecSupply
GasSupply
どのサブクラスが編集されているかに関係なく、それらはすべて のリストを持っていますBillingPeriod
。
私は今BillingPeriodEditor
、そのリストの内容に基づいて N 個の をインスタンス化する必要があり、どうすればよいのかかなり困惑しています。
私はGWTPを使用しています。SupplyEditor
ここに私がちょうど働いているのコードがあります:
さて、BillingPeriods のリストはサプライの一部であるため、これのロジックは SupplyEditor にあるはずです。
How to access PresenterWidget fields when added dynamicというスレッドで本当に良い助けを得ましたが、それはエディター フレームワークをまったく実装する前のことなので、ロジックが間違った場所にあると思います。
どんな助けでも大歓迎です。より多くのコード (Presenter と View) を投稿できますが、読みにくくしたくなかったので、データストアから Supply を取得し、View で edit() を呼び出すだけです。
ListEditor の例をいくつか見てきましたが、よくわかりません!
java - GWT: ListEditor がリストから削除されたエンティティを誤って検証しようとする
問題は、削除された ContactDocumentseditor.getList().remove(index)
が引き続き検証に渡され、編集した Contact を保存できないことです。たとえば、一部のフィールドで @NotNull 違反が発生したため、requestContext.save()
新しい ContactDocument を追加してすぐに削除すると、onConstraintViolation で失敗します。editor.getList().add()
私は単純な関係を持っています: Contact には多くの ContactDocuments があります。リクエスト ファクトリとエディタ フレームワークを使用して Contact を編集しようとしています。ContactDocuments には、基本的な検証のために JSR-303 のアノテーションが付けられています。
ContactDocuments コレクションのマイ ListEditor:
それを駆動する私のプレゼンター:
どうすれば修正できますか?
gwt - GWT エディタ:保存時にエンティティの最終更新時刻を設定する方法は?
クライアント側で、UI で編集するエンティティ プロキシがあり、保存ボタンをクリックすると、最後に変更された時間がエンティティ プロキシにフィールドとして保存されるとします。
問題は、proxy.setLastModifiedTime(data) 呼び出しをどこに挿入するかということです。私はいつも得た
ありがとう。
gwt - GWTエディター:ConstraintViolationsとEditorErrorsを表示します
GWTエディターが可能なConstraintViolation
sとEditorError
sを同時に表示することを達成するのに苦労しています。エラーまたは検証違反のいずれかを表示することは問題ありません。
次の例number
では、Entity
Entity.java:
EntityEditor.ui.xml
EntityEditor.java
番号ボックスに何も入力せずに電話をかけるとvalidate()
、「空にできません」というメッセージが表示されます。正しく表示されます。validate()
「asdf」で呼び出すと、「空にすることはできません」という両方のメッセージが表示されると思います。および「Badvalue(asdf)」ですが、最初の値のみが表示されます。電話をかけないとエディターエラーが表示されますsetConstraintViolations()
が、検証違反は表示されません。
私は何が欠けていますか?
ありがとうございました。
gwt - GWT の DateBox と EditorErrors
ドライバにバインドされている が無効な書式文字列を取得したEditorErrors
ときに、検証を生成/参加する最良の方法は何ですか?DateBox
現在、 ではDatePicker
、フィールドを赤くマークしていますがhasErrors
、SimpleBeanEditorDriver
親の に参加させ、 からこのタイプの無効なフォーマット エラーを報告dateBox
して、ユーザー向けのカスタム エラー メッセージを生成する必要があります。
gwt - ListEditorを別のエディターの子としてどのように使用する必要がありますか?
GWT2.5.0を使用しています
私の意図は、ParentBean
オブジェクトにバインドするエディター階層を作成することでした。には、ParentBean
が含まれList<Group>
、Group
Beanにはとが含まList<ChildBean>
れますList<Group>
。私が見つけたエディターのチュートリアルから、サブエディターの1つとしてListEditorを含むエディターを作成するのは簡単に思えました。ただし、親エディターがサブListEditorを適切に初期化することはないようです。
これが私がこれをどのように試みたかの説明です。
以下のコードから、ParentBeanEditor
他の1つのエディターで構成されるを作成しましたGroupListEditor
。実装し
ます。
次に、にはサブエディタとが含まれます。GroupListEditor
IsEditor<ListEditor<Group, GroupEditor>>
GroupEditor
GroupListEditor
ChildBeanEditor
オブジェクトのリストを含むをで初期化しParentBeanEditor
ましたが、どのオブジェクトに対しても構築されていません。メソッドにブレークポイントを設定して、のそれぞれに対してsが作成されていることを確認しましたが、ブレークポイントに到達することはありませんでした(ListEditorはエディターを構築していませんでした)。ParentBean
Group
GroupEditor
Group
EditorSource<GroupEditor>.create(int)
GroupEditor
Group
ParentBean
GroupListEditor
のサブエディターであるため、が初期化されることを期待していましたParentBeanEditor
。リストもエディターチェーンもに設定されていませんGroupListEditor
。サブエディタのリストを拡張して、GroupListEditor
直接に設定してみました。これを行うと、前述のブレークポイントに到達し、エディターチェーンにをアタッチしようとしました。しかし、エディターチェーンが設定されることはなく、 95行目にNPEがスローされます。ParentBeanEditor
ValueAwareEditor<ParentBean>
GroupListEditor
GroupEditor
ListEditorWrapper
例
GroupListEditor
これは、が期待どおりに初期化されていない例です。は設定されないため、 95行EditorChain
目にNPEがスローされます。ListEditorWrapper
データ・モデル
編集者
ParentBeanエディター
GroupListEditor
GroupEditor
ここでChildBeanListEditor
言及されているポリモーフィックエディターの方法論を使用します。列挙型の値に基づいて、特定のleafeditorがエディターチェーンに接続されていることを意味しますChildBean.getType()
。GroupListEditor
ただし、を適切に初期化することができないため、そのコードは表示していません。
google-app-engine - Request Factory GWT エディターの変更で、関連する JDO エンティティが保持されない
AppEngine データストアで、1 対多の関係を持つ JDO エンティティを使用して、GWT 2.5 で RequestFactory を使用しています (そして初めて使用します)。オブジェクトを表示/編集するために GWT RequestFactoryEditorDriver を使い始めたところです。
ドライバーはオブジェクトをうまく走査し、正しく表示します。ただし、「関連する」オブジェクトの値を編集しようとすると、変更がデータストアに保存されません。
b.name
UIを変更して [保存] をクリックすると、A のpersist()
呼び出しだけが呼び出されていることに気付きます。B の persist() は呼び出されません。ARequest と BRequest の両方のリクエスト コンテキストで editorDriver を起動するにはどうすればよいですか? (私が望んでいるのはInstanceRequest<AProxy,Void> persist()
、私の編集が B オブジェクトのみに対するものであるときに B が呼び出されるようにするためです。)
また、AFAICT、BProxy にエディターがある場合、エディターによって表示されている (およびエディター コントラクトに従っている) オブジェクト b は、ドライバーによって自動的に "context.edit(b)" されて変更可能になります。ただし、私の場合、「コンテキスト」は BRequest ではなく ARequest です。
ここで述べたように ValueAwareEditor を作成する必要がありますか: GWT Editor フレームワーク
と呼び出し内で新しい BRequest を作成しflush()
て起動し、ARequest が起動される前に B への変更が BRequest に個別に保持されるようにしますか?
editorDriver.getPaths()
私に与えます:「bs」
editorDriver.isChanged()
また、コンテキストを fire() する前に trueを返すため、ドライバーは B のプロパティの変更を確実に認識します。
クライアント側またはサーバー側のログにエラーはなく、注釈プロセッサは警告なしで実行されます。
ドライバーをセットアップする方法は次のとおりです。
これは私のエンティティがどのように見えるかです:
プロキシは次のとおりです。
これが私のサービススタブです:
編集: サーバー側で「a」を再帰的に「永続化」できるように、「saveAndReturn」メソッドをサポートするように ARequest インターフェイスとサービスの実装を変更しました。
RequestFactoryEditorDriver を「フラッシュ」すると、クライアント側のコンテキスト オブジェクトに新しい「b.name」値が含まれていることがわかりました。ただし、「context.fire()」を呼び出してサーバー側で「saveAndReturn」メソッドを検査すると、結果のサーバー側オブジェクト「a」は、「永続化」する直前に、「への変更が含まれていません」 b.name" リストの任意の項目。
なぜこれが起こっているのでしょうか?このクライアント情報がサーバーに送信されない理由をデバッグするにはどうすればよいですか?
私が検討し、試し、除外したオプション:
1) APT が実行され、プロキシまたはサービス インターフェイスに警告/エラーがないことを確認する
2) 私のプロキシがリストの AProxy に有効なセッターを持っていることを確認する
gwt - スイッチの同じプロパティに対して2つのエディターを使用するにはどうすればよいですか?
ユーザーが既存のアイテムを選択するか、新しいアイテムをインラインで作成できるエディターを作成しようとしています。たとえば、典型的な人と住所の関係を想像してみてください。ユーザーが人を編集するときに、既存の住所のセットから住所を選択するか、別のフォームに移動せずに新しい住所を作成できるフォームが必要です。
単純に、これには同じプロパティに対して2つの異なるエディターが必要なようです。とを持っているPerson
とAddress getAddress()
しましょうsetAddress(Address)
。私のクラスには、異なるタイプのPersonEditor
名前の2つのサブエディターが必要です。address
1つは既存の人物を選択し、もう1つは編集者の複合体を選択してAddress
タイプに分類し、そのプロパティを編集できるようにします。
のドキュメントを読むとCompositeEditor
、サブエディタを動的に選択するためにそれを利用する必要があるようです。ただし、ドキュメントは、インターフェイスの実装方法を実際に理解するのに十分なほど詳細ではありません。手がかりのためにどのように実装されているかを調べてみましたが、役に立ちましListEditor
た。私の副編集者がさまざまなパスを編集しているので、ぴったりとは思えません。OptionalFieldEditor
ListEditor
たとえば、を使おうとすると、CompositeEditor
何が返ってくるのかわからないのです。createEditorForTraversal
getPathElement
2つの異なるタイプのエディターの1つを1つのプロパティに動的にアタッチするにはどうすればよいですか?
gwt - 2つの異なるEditorDriverが同じオブジェクトを同時に編集することは可能ですか?
私のアプリには、オブジェクトを編集Presenter1
するエディター(EditorView1
)を開始するために使用するプレゼンター()がありFoo
ます。このMVP設定は、この回答、https://stackoverflow.com/a/10699346/565863で説明されているものに似ています
ここで、オブジェクトを編集する別のビュー(EditorView2
によって開始される)を作成する必要があるとしましょう。ただし、を使用する必要があります。によって供給さ れます。Presenter2
Foo
EditorView1
EditorView1
EditorView2
Presenter1
このアプローチはずさんでエラーが発生しやすいようです。これを行う別の方法はありますか?
gwt - GWT エディターとサブエディター
サブエディターでエディターの例を実行しようとしています。親をフラッシュするとき、子エディターの値は null です。クラスは Person と Address です。主な編集者は次のとおりです。
サブエディター:
そして、これはドライバが作成される場所です:
googleContact.getFirstname() の値は入力されますが、googleContact.getAddress() は常に null です。私は何が欠けていますか?