ユーザーが既存のアイテムを選択するか、新しいアイテムをインラインで作成できるエディターを作成しようとしています。たとえば、典型的な人と住所の関係を想像してみてください。ユーザーが人を編集するときに、既存の住所のセットから住所を選択するか、別のフォームに移動せずに新しい住所を作成できるフォームが必要です。
単純に、これには同じプロパティに対して2つの異なるエディターが必要なようです。とを持っているPersonとAddress getAddress()しましょうsetAddress(Address)。私のクラスには、異なるタイプのPersonEditor名前の2つのサブエディターが必要です。address1つは既存の人物を選択し、もう1つは編集者の複合体を選択してAddressタイプに分類し、そのプロパティを編集できるようにします。
のドキュメントを読むとCompositeEditor、サブエディタを動的に選択するためにそれを利用する必要があるようです。ただし、ドキュメントは、インターフェイスの実装方法を実際に理解するのに十分なほど詳細ではありません。手がかりのためにどのように実装されているかを調べてみましたが、役に立ちましListEditorた。私の副編集者がさまざまなパスを編集しているので、ぴったりとは思えません。OptionalFieldEditorListEditor
たとえば、を使おうとすると、CompositeEditor何が返ってくるのかわからないのです。createEditorForTraversalgetPathElement
2つの異なるタイプのエディターの1つを1つのプロパティに動的にアタッチするにはどうすればよいですか?