001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * 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, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.samples.simple.app;
017
018 import org.apache.commons.logging.Log;
019 import org.apache.commons.logging.LogFactory;
020 import org.springframework.richclient.application.ApplicationWindow;
021 import org.springframework.richclient.application.config.ApplicationWindowConfigurer;
022 import org.springframework.richclient.application.config.DefaultApplicationLifecycleAdvisor;
023
024 /**
025 * Custom application lifecycle implementation that configures the sample app at well defined points within its
026 * lifecycle.
027 * @author Keith Donald
028 */
029 public class SimpleLifecycleAdvisor extends DefaultApplicationLifecycleAdvisor {
030
031 private final Log logger = LogFactory.getLog(getClass());
032
033 /**
034 * This method is called prior to the opening of an application window. Note at this point the window control has
035 * not been created. This hook allows programmatic control over the configuration of the window (by setting
036 * properties on the configurer) and it provides a hook where code that needs to be executed prior to the window
037 * opening can be plugged in (like a startup wizard, for example).
038 * @param configurer The application window configurer
039 */
040 public void onPreWindowOpen(ApplicationWindowConfigurer configurer) {
041
042 // If you override this method, it is critical to allow the superclass
043 // implementation to run as well.
044 super.onPreWindowOpen(configurer);
045
046 // Uncomment to hide the menubar, toolbar, or alter window size...
047 // configurer.setShowMenuBar(false);
048 // configurer.setShowToolBar(false);
049 // configurer.setInitialSize(new Dimension(640, 480));
050 }
051
052 /**
053 * Called just after the command context has been internalized. At this point, all the commands for the window have
054 * been created and are available for use. If you need to force the execution of a command prior to the display of
055 * an application window (like a login command), this is where you'd do it.
056 * @param window The window who's commands have just been created
057 */
058 public void onCommandsCreated(ApplicationWindow window) {
059 if (logger.isInfoEnabled()) {
060 logger.info("onCommandsCreated( windowNumber=" + window.getNumber() + " )");
061 }
062 }
063
064 /**
065 * Called after the actual window control has been created.
066 * @param window The window being processed
067 */
068 public void onWindowCreated(ApplicationWindow window) {
069 if (logger.isInfoEnabled()) {
070 logger.info("onWindowCreated( windowNumber=" + window.getNumber() + " )");
071 }
072 }
073
074 /**
075 * Called immediately after making the window visible.
076 * @param window The window being processed
077 */
078 public void onWindowOpened(ApplicationWindow window) {
079 if (logger.isInfoEnabled()) {
080 logger.info("onWindowOpened( windowNumber=" + window.getNumber() + " )");
081 }
082 }
083
084 /**
085 * Called when the window is being closed. This hook allows control over whether the window is allowed to close. By
086 * returning false from this method, the window will not be closed.
087 * @return boolean indicator if window should be closed. <code>true</code> to allow the close, <code>false</code>
088 * to prevent the close.
089 */
090 public boolean onPreWindowClose(ApplicationWindow window) {
091 if (logger.isInfoEnabled()) {
092 logger.info("onPreWindowClose( windowNumber=" + window.getNumber() + " )");
093 }
094 return true;
095 }
096
097 /**
098 * Called when the application has fully started. This is after the initial application window has been made
099 * visible.
100 */
101 public void onPostStartup() {
102 if (logger.isInfoEnabled()) {
103 logger.info("onPostStartup()");
104 }
105 }
106
107 }