/* * $Id: WindowViewManager.java,v 1.2 2007/02/06 00:44:23 laddi Exp $ * Created on 2.11.2004 * * Copyright (C) 2004 Idega Software hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. */ package com.idega.faces; import javax.faces.context.FacesContext; import com.idega.core.view.DefaultViewNode; import com.idega.core.view.ViewManager; import com.idega.core.view.ViewNode; import com.idega.faces.viewnode.WindowViewNode; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWMainApplication; import com.idega.repository.data.Singleton; /** * This is the class modules should use to attatch themselves on to the '/window' viewnode structure * * Last modified: $Date: 2007/02/06 00:44:23 $ by $Author: laddi $ * * @author <a href="mailto:tryggvil@idega.com">Tryggvi Larusson</a> * @version $Revision: 1.2 $ */ public class WindowViewManager implements Singleton { private static final String IW_WINDOW_VIEW_MANAGER_KEY = "iw_windowviewmanager"; //private static final String WINDOW_ID="window"; private static final String FACES_BUNDLE_IDENTIFIER="com.idega.faces"; private ViewNode windowRootNode; private IWMainApplication iwma; private ViewNode windowWorkspaceViewNode; private ViewNode loginViewNode; private WindowViewManager(IWMainApplication iwma){ this.iwma=iwma; } public static synchronized WindowViewManager getInstance(IWMainApplication iwma){ WindowViewManager contentViewManager = (WindowViewManager) iwma.getAttribute(IW_WINDOW_VIEW_MANAGER_KEY); if(contentViewManager==null){ contentViewManager = new WindowViewManager(iwma); iwma.setAttribute(IW_WINDOW_VIEW_MANAGER_KEY,contentViewManager); } return contentViewManager; } public static WindowViewManager getInstance(FacesContext context){ IWMainApplication iwma = IWMainApplication.getIWMainApplication(context); return getInstance(iwma); } public ViewManager getViewManager(){ return ViewManager.getInstance(this.iwma); } public ViewNode getWindowNode(){ IWBundle iwb = this.iwma.getBundle(FACES_BUNDLE_IDENTIFIER); //ViewNode content = root.getChild(CONTENT_ID); if(this.windowRootNode==null){ this.windowRootNode = initalizeWindowNode(iwb); } return this.windowRootNode; } public ViewNode initalizeWindowNode(IWBundle contentBundle){ ViewNode root = getViewManager().getApplicationRoot(); ViewNode windowRootNode = new WindowViewNode("window",root); this.windowRootNode = windowRootNode; return this.windowRootNode; } public ViewNode getWindowWorkspaceNode(){ IWBundle iwb = this.iwma.getBundle(FACES_BUNDLE_IDENTIFIER); //ViewNode content = root.getChild(CONTENT_ID); if(this.windowWorkspaceViewNode==null){ this.windowWorkspaceViewNode = initalizeWindowWorkspaceNode(iwb); } return this.windowWorkspaceViewNode; } public ViewNode initalizeWindowWorkspaceNode(IWBundle contentBundle){ ViewNode root = getViewManager().getWorkspaceRoot(); DefaultViewNode windowViewNode2 = new WindowViewNode("window",root); windowViewNode2.setVisibleInMenus(false); this.windowWorkspaceViewNode = windowViewNode2; return this.windowWorkspaceViewNode; } public ViewNode getLoginNode(){ IWBundle iwb = this.iwma.getBundle(FACES_BUNDLE_IDENTIFIER); //ViewNode content = root.getChild(CONTENT_ID); if(this.loginViewNode==null){ this.loginViewNode = initalizeLoginNode(iwb); } return this.loginViewNode; } public ViewNode initalizeLoginNode(IWBundle contentBundle){ ViewNode root = getViewManager().getApplicationRoot(); ViewNode windowRootNode = new WindowViewNode("login",root); this.loginViewNode = windowRootNode; return this.loginViewNode; } }