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.showcase; 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 026 * well defined points within its lifecycle. 027 * 028 * @author Keith Donald 029 */ 030 public class ShowcaseLifecycleAdvisor extends DefaultApplicationLifecycleAdvisor { 031 032 private final Log logger = LogFactory.getLog(getClass()); 033 034 /** 035 * This method is called prior to the opening of an application window. Note 036 * at this point the window control has not been created. This hook allows 037 * programmatic control over the configuration of the window (by setting 038 * properties on the configurer) and it provides a hook where code that 039 * needs to be executed prior to the window opening can be plugged in (like 040 * a startup wizard, for example). 041 * 042 * @param configurer The application window configurer 043 */ 044 public void onPreWindowOpen( ApplicationWindowConfigurer configurer ) { 045 046 // If you override this method, it is critical to allow the superclass 047 // implementation to run as well. 048 super.onPreWindowOpen(configurer); 049 050 // Uncomment to hide the menubar, toolbar, or alter window size... 051 // configurer.setShowMenuBar(false); 052 // configurer.setShowToolBar(false); 053 // configurer.setInitialSize(new Dimension(640, 480)); 054 } 055 056 /** 057 * Called just after the command context has been internalized. At this 058 * point, all the commands for the window have been created and are 059 * available for use. If you need to force the execution of a command prior 060 * to the display of an application window (like a login command), this is 061 * where you'd do it. 062 * 063 * @param window The window who's commands have just been created 064 */ 065 public void onCommandsCreated( ApplicationWindow window ) { 066 if( logger.isInfoEnabled() ) { 067 logger.info("onCommandsCreated( windowNumber=" + window.getNumber() + " )"); 068 } 069 } 070 071 /** 072 * Called after the actual window control has been created. 073 * 074 * @param window The window being processed 075 */ 076 public void onWindowCreated( ApplicationWindow window ) { 077 if( logger.isInfoEnabled() ) { 078 logger.info("onWindowCreated( windowNumber=" + window.getNumber() + " )"); 079 } 080 } 081 082 /** 083 * Called immediately after making the window visible. 084 * 085 * @param window The window being processed 086 */ 087 public void onWindowOpened( ApplicationWindow window ) { 088 if( logger.isInfoEnabled() ) { 089 logger.info("onWindowOpened( windowNumber=" + window.getNumber() + " )"); 090 } 091 } 092 093 /** 094 * Called when the window is being closed. This hook allows control over 095 * whether the window is allowed to close. By returning false from this 096 * method, the window will not be closed. 097 * 098 * @return boolean indicator if window should be closed. <code>true</code> 099 * to allow the close, <code>false</code> to prevent the close. 100 */ 101 public boolean onPreWindowClose( ApplicationWindow window ) { 102 if( logger.isInfoEnabled() ) { 103 logger.info("onPreWindowClose( windowNumber=" + window.getNumber() + " )"); 104 } 105 return true; 106 } 107 108 /** 109 * Called when the application has fully started. This is after the initial 110 * application window has been made visible. 111 */ 112 public void onPostStartup() { 113 if( logger.isInfoEnabled() ) { 114 logger.info("onPostStartup()"); 115 } 116 } 117 118 }