問題タブ [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.

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

java - GWT エディター - コレクションに基づいて同じタイプの N 個のサブエディターを追加する方法

またはSupplyのいずれかになるオブジェクト があります(関連する質問を参照)。ElecSupplyGasSupply

どのサブクラスが編集されているかに関係なく、それらはすべて のリストを持っていますBillingPeriod

私は今BillingPeriodEditor、そのリストの内容に基づいて N 個の をインスタンス化する必要があり、どうすればよいのかかなり困惑しています。

私はGWTPを使用しています。SupplyEditorここに私がちょうど働いているのコードがあります:

さて、BillingPeriods のリストはサプライの一部であるため、これのロジックは SupplyEditor にあるはずです。

How to access PresenterWidget fields when added dynamicというスレッドで本当に良い助けを得ましたが、それはエディター フレームワークをまったく実装する前のことなので、ロジックが間違った場所にあると思います。

どんな助けでも大歓迎です。より多くのコード (Presenter と View) を投稿できますが、読みにくくしたくなかったので、データストアから Supply を取得し、View で edit() を呼び出すだけです。

ListEditor の例をいくつか見てきましたが、よくわかりません!

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

java - GWT: ListEditor がリストから削除されたエンティティを誤って検証しようとする

問題は、削除された ContactDocumentseditor.getList().remove(index)が引き続き検証に渡され、編集した Contact を保存できないことです。たとえば、一部のフィールドで @NotNull 違反が発生したため、requestContext.save()新しい ContactDocument を追加してすぐに削除すると、onConstraintViolation で失敗します。editor.getList().add()

私は単純な関係を持っています: Contact には多くの ContactDocuments があります。リクエスト ファクトリとエディタ フレームワークを使用して Contact を編集しようとしています。ContactDocuments には、基本的な検証のために JSR-303 のアノテーションが付けられています。

ContactDocuments コレクションのマイ ListEditor:

それを駆動する私のプレゼンター:

どうすれば修正できますか?

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

gwt - GWT エディタ:保存時にエンティティの最終更新時刻を設定する方法は?

クライアント側で、UI で編集するエンティティ プロキシがあり、保存ボタンをクリックすると、最後に変更された時間がエンティティ プロキシにフィールドとして保存されるとします。

問題は、proxy.setLastModifiedTime(data) 呼び出しをどこに挿入するかということです。私はいつも得た

ありがとう。

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

gwt - GWTエディター:ConstraintViolationsとEditorErrorsを表示します

GWTエディターが可能なConstraintViolationsとEditorErrorsを同時に表示することを達成するのに苦労しています。エラーまたは検証違反のいずれかを表示することは問題ありません。

次の例numberでは、Entity

Entity.java:

EntityEditor.ui.xml

EntityEditor.java

番号ボックスに何も入力せずに電話をかけるとvalidate()、「空にできません」というメッセージが表示されます。正しく表示されます。validate()「asdf」で呼び出すと、「空にすることはできません」という両方のメッセージが表示されると思います。および「Badvalue(asdf)」ですが、最初の値のみが表示されます。電話をかけないとエディターエラーが表示されますsetConstraintViolations()が、検証違反は表示されません。

私は何が欠けていますか?

ありがとうございました。

0 投票する
0 に答える
226 参照

gwt - GWT の DateBox と EditorErrors

ドライバにバインドされている が無効な書式文字列を取得したEditorErrorsときに、検証を生成/参加する最良の方法は何ですか?DateBox

現在、 ではDatePicker、フィールドを赤くマークしていますがhasErrorsSimpleBeanEditorDriver親の に参加させ、 からこのタイプの無効なフォーマット エラーを報告dateBoxして、ユーザー向けのカスタム エラー メッセージを生成する必要があります。

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

gwt - ListEditorを別のエディターの子としてどのように使用する必要がありますか?

GWT2.5.0を使用しています

私の意図は、ParentBeanオブジェクトにバインドするエディター階層を作成することでした。には、ParentBeanが含まれList<Group>GroupBeanにはとが含まList<ChildBean>れますList<Group>。私が見つけたエディターのチュートリアルから、サブエディターの1つとしてListEditorを含むエディターを作成するのは簡単に思えました。ただし、親エディターがサブListEditorを適切に初期化することはないようです。

これが私がこれをどのように試みたかの説明です。

以下のコードから、ParentBeanEditor他の1つのエディターで構成されるを作成しましたGroupListEditor。実装し
ます。 次に、にはサブエディタとが含まれます。GroupListEditorIsEditor<ListEditor<Group, GroupEditor>>
GroupEditorGroupListEditorChildBeanEditor

オブジェクトのリストを含むをで初期化しParentBeanEditorましたが、どのオブジェクトに対しても構築されていません。メソッドにブレークポイントを設定して、のそれぞれに対してsが作成されていることを確認しましたが、ブレークポイントに到達することはありませんでした(ListEditorはエディターを構築していませんでした)。ParentBeanGroupGroupEditorGroup
EditorSource<GroupEditor>.create(int)GroupEditorGroupParentBean

GroupListEditorのサブエディターであるため、が初期化されることを期待していましたParentBeanEditor。リストもエディターチェーンもに設定されていませんGroupListEditor。サブエディタのリストを拡張して、GroupListEditor直接に設定してみました。これを行うと、前述のブレークポイントに到達し、エディターチェーンにをアタッチしようとしました。しかし、エディターチェーンが設定されることはなく、 95行目にNPEがスローされます。ParentBeanEditorValueAwareEditor<ParentBean>GroupListEditorGroupEditorListEditorWrapper

GroupListEditorこれは、が期待どおりに初期化されていない例です。は設定されないため、 95行EditorChain目にNPEがスローされます。ListEditorWrapper

データ・モデル

編集者

ParentBeanエディター

GroupListEditor

GroupEditor

ここでChildBeanListEditor言及されているポリモーフィックエディターの方法論を使用します。列挙型の値に基づいて、特定のleafeditorがエディターチェーンに接続されていることを意味しますChildBean.getType()GroupListEditorただし、を適切に初期化することができないため、そのコードは表示していません。

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

google-app-engine - Request Factory GWT エディターの変更で、関連する JDO エンティティが保持されない

AppEngine データストアで、1 対多の関係を持つ JDO エンティティを使用して、GWT 2.5 で RequestFactory を使用しています (そして初めて使用します)。オブジェクトを表示/編集するために GWT RequestFactoryEditorDriver を使い始めたところです。

ドライバーはオブジェクトをうまく走査し、正しく表示します。ただし、「関連する」オブジェクトの値を編集しようとすると、変更がデータストアに保存されません。

b.nameUIを変更して [保存] をクリックすると、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 に有効なセッターを持っていることを確認する

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

gwt - スイッチの同じプロパティに対して2つのエディターを使用するにはどうすればよいですか?

ユーザーが既存のアイテムを選択するか、新しいアイテムをインラインで作成できるエディターを作成しようとしています。たとえば、典型的な人と住所の関係を想像してみてください。ユーザーが人を編集するときに、既存の住所のセットから住所を選択するか、別のフォームに移動せずに新しい住所を作成できるフォームが必要です。

単純に、これには同じプロパティに対して2つの異なるエディターが必要なようです。とを持っているPersonAddress getAddress()しましょうsetAddress(Address)。私のクラスには、異なるタイプのPersonEditor名前の2つのサブエディターが必要です。address1つは既存の人物を選択し、もう1つは編集者の複合体を選択してAddressタイプに分類し、そのプロパティを編集できるようにします。

のドキュメントを読むとCompositeEditor、サブエディタを動的に選択するためにそれを利用する必要があるようです。ただし、ドキュメントは、インターフェイスの実装方法を実際に理解するのに十分なほど詳細ではありません。手がかりのためにどのように実装されているかを調べてみましたが、役に立ちましListEditorた。私の副編集者がさまざまなパスを編集しているので、ぴったりとは思えません。OptionalFieldEditorListEditor

たとえば、を使おうとすると、CompositeEditor何が返ってくるのかわからないのです。createEditorForTraversalgetPathElement

2つの異なるタイプのエディターの1つを1つのプロパティに動的にアタッチするにはどうすればよいですか?

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

gwt - 2つの異なるEditorDriverが同じオブジェクトを同時に編集することは可能ですか?

私のアプリには、オブジェクトを編集Presenter1するエディター(EditorView1)を開始するために使用するプレゼンター()がありFooます。このMVP設定は、この回答、https://stackoverflow.com/a/10699346/565863で説明されているものに似ています

ここで、オブジェクトを編集する別のビュー(EditorView2によって開始される)を作成する必要があるとしましょう。ただし、を使用する必要があります。によって供給さ れます。Presenter2FooEditorView1
EditorView1EditorView2Presenter1

このアプローチはずさんでエラーが発生しやすいようです。これを行う別の方法はありますか?

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

gwt - GWT エディターとサブエディター

サブエディターでエディターの例を実行しようとしています。親をフラッシュするとき、子エディターの値は null です。クラスは Person と Address です。主な編集者は次のとおりです。

サブエディター:

そして、これはドライバが作成される場所です:

googleContact.getFirstname() の値は入力されますが、googleContact.getAddress() は常に null です。私は何が欠けていますか?