001    /*
002     * Copyright 2002-2007 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.springframework.richclient.command.support;
017    
018    import org.springframework.richclient.application.ApplicationServicesLocator;
019    import org.springframework.richclient.command.CommandServices;
020    import org.springframework.richclient.command.config.CommandButtonConfigurer;
021    import org.springframework.richclient.command.config.DefaultCommandButtonConfigurer;
022    import org.springframework.richclient.command.config.MenuItemButtonConfigurer;
023    import org.springframework.richclient.command.config.PullDownMenuButtonConfigurer;
024    import org.springframework.richclient.command.config.ToolBarCommandButtonConfigurer;
025    import org.springframework.richclient.factory.ButtonFactory;
026    import org.springframework.richclient.factory.ComponentFactory;
027    import org.springframework.richclient.factory.MenuFactory;
028    
029    /**
030     * @author Keith Donald
031     */
032    public class DefaultCommandServices implements CommandServices {
033            private ComponentFactory componentFactory;
034            
035            private ButtonFactory toolBarButtonFactory;
036            
037        private ButtonFactory buttonFactory;
038    
039        private MenuFactory menuFactory;
040    
041        private CommandButtonConfigurer defaultButtonConfigurer;
042    
043        private CommandButtonConfigurer toolBarButtonConfigurer;
044    
045        private CommandButtonConfigurer menuItemButtonConfigurer;
046    
047        private CommandButtonConfigurer pullDownMenuButtonConfigurer;
048    
049        public void setComponentFactory(ComponentFactory componentFactory){
050            this.componentFactory = componentFactory;
051        }
052        
053        public void setToolBarButtonFactory(ButtonFactory buttonFactory){
054            this.toolBarButtonFactory = buttonFactory;
055        }
056        
057        public void setButtonFactory(ButtonFactory buttonFactory) {
058            this.buttonFactory = buttonFactory;
059        }
060    
061        public void setMenuFactory(MenuFactory menuFactory) {
062            this.menuFactory = menuFactory;
063        }
064    
065        public void setDefaultButtonConfigurer(CommandButtonConfigurer defaultButtonConfigurer) {
066            this.defaultButtonConfigurer = defaultButtonConfigurer;
067        }
068    
069        public void setToolBarButtonConfigurer(CommandButtonConfigurer toolBarButtonConfigurer) {
070            this.toolBarButtonConfigurer = toolBarButtonConfigurer;
071        }
072    
073        public void setMenuItemButtonConfigurer(CommandButtonConfigurer menuItemButtonConfigurer) {
074            this.menuItemButtonConfigurer = menuItemButtonConfigurer;
075        }
076    
077        public void setPullDownMenuButtonConfigurer(CommandButtonConfigurer pullDownMenuButtonConfigurer) {
078            this.pullDownMenuButtonConfigurer = pullDownMenuButtonConfigurer;
079        }
080    
081        public ComponentFactory getComponentFactory(){
082            if(componentFactory == null){
083                    componentFactory = (ComponentFactory) ApplicationServicesLocator.services().getService(ComponentFactory.class);
084            }
085            return componentFactory;
086        }
087        
088        public ButtonFactory getToolBarButtonFactory(){
089            if(toolBarButtonFactory == null){
090                    toolBarButtonFactory = (ButtonFactory) ApplicationServicesLocator.services().getService(ButtonFactory.class);
091            }
092            return toolBarButtonFactory;
093        }
094        
095        public ButtonFactory getButtonFactory() {
096            if(buttonFactory == null) {
097                buttonFactory = (ButtonFactory) ApplicationServicesLocator.services().getService(ButtonFactory.class);
098            }
099            return buttonFactory;
100        }
101    
102        public MenuFactory getMenuFactory() {
103            if(menuFactory == null) {
104                menuFactory = (MenuFactory) ApplicationServicesLocator.services().getService(MenuFactory.class);
105            }
106            return menuFactory;
107        }
108    
109        public CommandButtonConfigurer getDefaultButtonConfigurer() {
110            if (defaultButtonConfigurer == null) {
111                defaultButtonConfigurer = createDefaultButtonConfigurer();
112            }
113            return defaultButtonConfigurer;
114        }
115    
116        public CommandButtonConfigurer getToolBarButtonConfigurer() {
117            if (toolBarButtonConfigurer == null) {
118                toolBarButtonConfigurer = createToolBarButtonConfigurer();
119            }
120            return toolBarButtonConfigurer;
121        }
122    
123        public CommandButtonConfigurer getMenuItemButtonConfigurer() {
124            if (menuItemButtonConfigurer == null) {
125                menuItemButtonConfigurer = createMenuItemButtonConfigurer();
126            }
127            return menuItemButtonConfigurer;
128        }
129    
130        public CommandButtonConfigurer getPullDownMenuButtonConfigurer() {
131            if (pullDownMenuButtonConfigurer == null) {
132                pullDownMenuButtonConfigurer = createPullDownMenuButtonConfigurer();
133            }
134            return pullDownMenuButtonConfigurer;
135        }
136    
137        protected CommandButtonConfigurer createDefaultButtonConfigurer() {
138            return new DefaultCommandButtonConfigurer();
139        }
140    
141        protected CommandButtonConfigurer createToolBarButtonConfigurer() {
142            return new ToolBarCommandButtonConfigurer();
143        }
144    
145        protected CommandButtonConfigurer createMenuItemButtonConfigurer() {
146            return new MenuItemButtonConfigurer();
147        }
148    
149        protected CommandButtonConfigurer createPullDownMenuButtonConfigurer() {
150            return new PullDownMenuButtonConfigurer();
151        }
152    
153    }