001    package org.springframework.richclient.taskpane;
002    
003    import org.springframework.richclient.application.Application;
004    import org.springframework.richclient.application.ApplicationWindow;
005    import org.springframework.richclient.application.ApplicationWindowFactory;
006    import org.springframework.richclient.application.config.ApplicationLifecycleAdvisor;
007    import org.springframework.richclient.command.AbstractCommand;
008    
009    public class TaskPaneNavigatorApplicationWindowFactory implements ApplicationWindowFactory
010    {
011        private IconGenerator<AbstractCommand> taskPaneIconGenerator;
012    
013        public ApplicationWindow createApplicationWindow()
014        {
015            ApplicationLifecycleAdvisor lifecycleAdvisor = Application.instance().getLifecycleAdvisor();
016            if (lifecycleAdvisor instanceof TaskPaneNavigatorApplicationLifecycleAdvisor)
017            {
018                TaskPaneNavigatorApplicationLifecycleAdvisor taskPaneNavigatorApplicationLifecycleAdvisor = (TaskPaneNavigatorApplicationLifecycleAdvisor) lifecycleAdvisor;
019                TaskPaneNavigatorApplicationWindow window = new TaskPaneNavigatorApplicationWindow();
020                window.setTaskPaneIconGenerator(getTaskPaneIconGenerator());
021                window.setOnlyOneExpanded(taskPaneNavigatorApplicationLifecycleAdvisor.hasOnlyOneExpanded());
022                return window;
023            }
024            else
025            {
026                throw new IllegalArgumentException();
027            }
028        }
029    
030        public IconGenerator<AbstractCommand> getTaskPaneIconGenerator()
031        {
032            return taskPaneIconGenerator;
033        }
034    
035        public void setTaskPaneIconGenerator(IconGenerator<AbstractCommand> taskPaneIconGenerator)
036        {
037            this.taskPaneIconGenerator = taskPaneIconGenerator;
038        }
039    }