2016-05-09 3 views
1

Magnoliaの場合、次の2つのシナリオで関連アイテム(relatedItem.getJcrItem())のJCRノードを取得するのに違いがあります:Magnolia defaultAction対アクションバーから実際のアクションをクリックしたときの違い

  1. アクションバーのために定義された「アイテムの編集」であるDEFAULTACTIONがあります。ワークベンチリストの項目をダブルクリックすると、編集可能なダイアログが開きます。次に、「キャンセル」をクリックします。次に、アクションバーから「アイテムを追加」をクリックします。

  2. 私はその後、私は、ダイアログは私が編集できるように開き、「アイテムの編集」をクリックし、項目をクリックします。次に、「キャンセル」をクリックします。次に、アクションバーから「アイテムを追加」をクリックします。

私は現在、シナリオ1では、JCRノードはケースすべきではない私は、以前に選択された項目のノードになることに気づきました。これは新しいノードでなければならないので、このケースのrelatedItem.getJcrItem()は新しい項目が追加される親ノード項目でなければなりません。 relatedItem.getJcrItemを呼び出すとき

シナリオ2)(正しいノードを示しています。

この動作のため、シナリオ1は、以前に選択した項目の子ノードとして新しいアイテムを保存します。

私はこれを明確に説明したいと考えています。誰もがこの問題について考えていますか?

ありがとうございます!

+0

2つのシナリオの違いは何ですか?私は両方が同じ行動で同じパターンに従っているように見えたのではないでしょうか? – Ducaz035

+0

@ Ducaz035最初のシナリオでは、ダブルクリックを使用して項目を編集します。 2番目のシナリオでは、アクションバーのアクションを使用してアイテムを編集します。しかし、両方とも同じ行動を指していますが。ただし、シナリオ1のダイアログをキャンセルした後、新しい項目を追加しようとすると、項目はダブルクリックした前の項目の子ノードとして保存されます。それは前の項目の兄弟でなければなりません。私は何を意味するのですか? –

+0

はい、私はそれを今得ました、明確化のためにありがとう。おそらく、ここでの問題は、リスト内の選択された項目が2つのアプローチでどういう違いがあるかということです。これらのシナリオでどのアプリを使用しているのか教えてください。 – Ducaz035

答えて

0

あなたは上記のコメントで述べたように、マグノリアは、基本的に起因するフォルダ構造に追加アクションの可用性ルールを追加することによって、これらのエラーを防ぐことができます。それはあなたの選択を保持し、したがって、フォルダが選択されていない場合、アクションは使用できないはずです。そのような場合は、独自のアクションを作成する必要があります。キャンセルするには、指定したアイテムの親ノードを選択する必要があります。

乾杯、

+0

@ Ducaz0305私は使用しているOpenEditDialogActionのonPostExecuteメソッドがないと思いますか?さて、Magnoliaはこの可用性ルールを使用しているので、ユーザがユーザノードをダブルクリックしようとするセキュリティアプリケーションのシナリオを表示し、ポップアップするダイアログをキャンセルすると、ユーザは「Add User」をクリックできなくなります"これ以上、このシナリオは実際にはマグノリアによって意図的に行われている、私の理解は正しいのだろうか?私はこのような "Add User"の動作はバグのように見えますが、 –

+0

ユーザーを選択していて選択内容が変更されないため、その選択が実際にユーザーであり、追加するフォルダを選択する必要があるためユーザーを追加できないため、これはバグではありませんその下のユーザー。そこには、ファイル(ユーザー)とフォルダがあるツリー構造の種類があります。 onPostExecuteについては、あなたがコマンドアクションを使用していないために答えを変更しているため、利用できません。 – Ducaz035

+0

私は自分の答えを更新し、それを達成するためのアイデアを得ようとしましたが、その動作は正しいと思われ、したがって期待されています。 – Ducaz035

関連する問題