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.application.support; 017 018 import java.util.Locale; 019 020 import org.apache.commons.logging.Log; 021 import org.apache.commons.logging.LogFactory; 022 import org.springframework.binding.convert.ConversionService; 023 import org.springframework.context.ApplicationContext; 024 import org.springframework.context.MessageSource; 025 import org.springframework.context.MessageSourceResolvable; 026 import org.springframework.context.support.MessageSourceAccessor; 027 import org.springframework.richclient.application.Application; 028 import org.springframework.richclient.application.ApplicationServices; 029 import org.springframework.richclient.application.ApplicationServicesLocator; 030 import org.springframework.richclient.application.ApplicationWindow; 031 import org.springframework.richclient.application.config.ApplicationObjectConfigurer; 032 import org.springframework.richclient.command.config.CommandConfigurer; 033 import org.springframework.richclient.factory.ComponentFactory; 034 import org.springframework.richclient.image.IconSource; 035 import org.springframework.richclient.image.ImageSource; 036 037 /** 038 * @author Keith Donald 039 */ 040 public class ApplicationServicesAccessor { 041 protected final Log logger = LogFactory.getLog(getClass()); 042 043 protected String getApplicationName() { 044 return getApplication().getName(); 045 } 046 047 protected Application getApplication() { 048 return Application.instance(); 049 } 050 051 protected ApplicationServices getApplicationServices() { 052 return ApplicationServicesLocator.services(); 053 } 054 055 protected Object getService(Class serviceType) { 056 return getApplicationServices().getService(serviceType); 057 } 058 059 protected ApplicationContext getApplicationContext() { 060 return getApplication().getApplicationContext(); 061 } 062 063 protected ComponentFactory getComponentFactory() { 064 return (ComponentFactory)getService(ComponentFactory.class); 065 } 066 067 protected MessageSource getMessageSource() { 068 return getApplicationContext(); 069 } 070 071 protected MessageSourceAccessor getMessages() { 072 return (MessageSourceAccessor)ApplicationServicesLocator.services().getService(MessageSourceAccessor.class); 073 } 074 075 protected ImageSource getImageSource() { 076 return (ImageSource)getService(ImageSource.class); 077 } 078 079 protected IconSource getIconSource() { 080 return (IconSource)getService(IconSource.class); 081 } 082 083 protected ApplicationObjectConfigurer getObjectConfigurer() { 084 return (ApplicationObjectConfigurer)getService(ApplicationObjectConfigurer.class); 085 } 086 087 protected CommandConfigurer getCommandConfigurer() { 088 return (CommandConfigurer)getService(CommandConfigurer.class); 089 } 090 091 protected ApplicationWindow getActiveWindow() { 092 return getApplication().getActiveWindow(); 093 } 094 095 protected ConversionService getConversionService() { 096 return (ConversionService)getService(ConversionService.class); 097 } 098 099 protected String getMessage(String messageCode) { 100 return getApplicationContext().getMessage(messageCode, null, messageCode, Locale.getDefault()); 101 } 102 103 protected String getMessage(final String[] messageCodes) { 104 MessageSourceResolvable resolvable = new MessageSourceResolvable() { 105 public String[] getCodes() { 106 return messageCodes; 107 } 108 109 public Object[] getArguments() { 110 return new Object[0]; 111 } 112 113 public String getDefaultMessage() { 114 return messageCodes[0]; 115 } 116 }; 117 return getApplicationContext().getMessage(resolvable, Locale.getDefault()); 118 } 119 120 protected String getMessage(String messageCode, Object[] args) { 121 return getApplicationContext().getMessage(messageCode, args, messageCode, Locale.getDefault()); 122 } 123 124 protected String getMessage(final String[] messageCodes, final Object[] args) { 125 MessageSourceResolvable resolvable = new MessageSourceResolvable() { 126 public String[] getCodes() { 127 return messageCodes; 128 } 129 130 public Object[] getArguments() { 131 return args; 132 } 133 134 public String getDefaultMessage() { 135 return messageCodes[0]; 136 } 137 }; 138 return getApplicationContext().getMessage(resolvable, Locale.getDefault()); 139 } 140 141 }