001 package org.springframework.richclient.taskpane;
002
003 import org.springframework.richclient.application.ApplicationPage;
004 import org.springframework.richclient.application.config.NavigatorApplicationLifecycleAdvisor;
005 import org.springframework.richclient.application.support.DefaultApplicationWindow;
006 import org.springframework.richclient.command.AbstractCommand;
007 import org.springframework.richclient.command.CommandGroup;
008
009 import javax.swing.*;
010
011 public class TaskPaneNavigatorApplicationWindow extends DefaultApplicationWindow
012 {
013 private JSplitPane framedPage;
014
015 private boolean onlyOneExpanded;
016
017 private IconGenerator<AbstractCommand> taskPaneIconGenerator;
018
019 @Override
020 protected JComponent createWindowContentPane()
021 {
022 CommandGroup navigationCommandGroup = ((NavigatorApplicationLifecycleAdvisor) getAdvisor())
023 .getNavigationCommandGroup();
024 TaskPaneNavigatorView taskPaneNavigatorView = new TaskPaneNavigatorView(navigationCommandGroup);
025 taskPaneNavigatorView.setIconGenerator(getTaskPaneIconGenerator());
026 taskPaneNavigatorView.setOnlyOneExpanded(onlyOneExpanded);
027
028 framedPage = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, new JScrollPane(taskPaneNavigatorView.getControl(), JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),
029 null);
030 framedPage.setOneTouchExpandable(true);
031
032 return framedPage;
033 }
034
035 public boolean hasOnlyOneExpanded()
036 {
037 return onlyOneExpanded;
038 }
039
040 public void setOnlyOneExpanded(boolean onlyOneExpanded)
041 {
042 this.onlyOneExpanded = onlyOneExpanded;
043 }
044
045 @Override
046 protected void setActivePage(ApplicationPage page)
047 {
048 framedPage.setRightComponent(page.getControl());
049 framedPage.revalidate();
050 }
051
052 public IconGenerator<AbstractCommand> getTaskPaneIconGenerator()
053 {
054 return taskPaneIconGenerator;
055 }
056
057 public void setTaskPaneIconGenerator(IconGenerator<AbstractCommand> taskPaneIconGenerator)
058 {
059 this.taskPaneIconGenerator = taskPaneIconGenerator;
060 }
061 }
062