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 }