0

私の問題を明確に説明できるかどうかわかりませんが、試してみます:)

たくさんのフォルダーがあり、各フォルダーは他のフォルダーに依存しています。

例 :

ドキュメント、写真、その他はルートに依存します。テキストはドキュメントに依存します。PNG、GIF、JPGは画像に依存します。

私が持っているリストを初めて表示するとき:
DOCUMENT
OTHER
PICTURES

たとえば、PICTURES を選択すると、リストに PNG、GIF、JPG が表示されます。
常に同じリストです。
そして、前のリストに戻る方法がわかりません。
古い値を保持するために別のリストを作成しようとしましたが、機能しません。または、その値の割り当てをどこに置くかわかりません。

    public List<SelectItem> getListSelectItemFolder() {
    if(mListSelectItemFolder == null)
    {
        mListSelectItemFolder = new ArrayList<SelectItem>();
        List<Folder> lListFolder = getFolderManager().searchFolder(getFolderManager().getRootFolderId(mSessionBean.getUser(), mSessionBean.isNotUserAdminGe()), mSessionBean.getUser().getFirm(), mSessionBean.isNotUserAdminGe());
        mListSelectItemFolder.add(new SelectItem(getFolderManager().getById(getFolderManager().getRootFolderId(mSessionBean.getUser(), mSessionBean.isNotUserAdminGe())), "root"));
        for (Folder lFolder : lListFolder) {
            if(lFolder.getId()>=0)
            {
                mListSelectItemFolder.add(new SelectItem(lFolder, lFolder.getName()));
            }
        }
        return mListSelectItemFolder;
    }
    if(getDocument().getFolder()!=null)
    {
        List<Folder> lListFolder = getFolderManager().searchFolder(mDocument.getFolder().getId(), mSessionBean.getUser().getFirm(), mSessionBean.isNotUserAdminGe());
        if(lListFolder.size()>0)
        {
            mListSelectItemFolder = new ArrayList<SelectItem>();
            for (Folder lFolder : lListFolder) {
                if(lFolder.getId()>=0)
                {
                    mListSelectItemFolder.add(new SelectItem(lFolder, lFolder.getName()));
                }
            }
        }
    }
    return mListSelectItemFolder;
}
4

1 に答える 1

0

アップしてください =)
ボタンを作成しました。コードは次のとおりです。

    public void backButton()
{
    if(mListSelectItemFolder==null || ((Folder) mListSelectItemFolder.get(0).getValue()).getIdDep()==0 )
    {
        //if the list is null or the parent folder is the first one name rootone (id=0)
        mListSelectItemFolder=null;
    }
    else
    {
        if(mFolderManager.getById(mFolderManager.getById(((Folder) mListSelectItemFolder.get(0).getValue()).getIdDep()).getIdDep()).getIdDep()==0)
        {
            //case where we gonna go back in the first level, the start folder
            mListSelectItemFolder=null;
        }
        else
        {
            getDocument().setFolder(((Folder) mFolderManager.getById(((Folder)mListSelectItemFolder.get(0).getValue()).getIdDep())));
        }
    }
}
于 2013-04-29T07:10:47.127 に答える