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