/* Copyright (c) 2001 - 2009 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.translator.controller; import java.util.Locale; import org.apache.wicket.Component; import org.apache.wicket.resource.loader.IStringResourceLoader; import org.geoserver.web.GeoServerApplication; import org.geoserver.web.GeoServerStringResourceLoader; import org.geoserver.web.translator.model.TranslateBean; import org.geoserver.web.translator.view.TranslationEditPage; /** * An {@link IStringResourceLoader} that engages through application context and provides live * resource strings for the GeoServer UI based on the ongoing translations. * * @author Gabriel Roldan * @version $Id$ * @since 2.0 */ public final class TranslationStringResourceLoader extends GeoServerStringResourceLoader { private TranslateBean translateLiveState; @SuppressWarnings("unchecked") public String loadStringResource(final Class clazz, final String key, final Locale locale, final String style) { final TranslateBean state = getState(); if (state == null) { return null; } String resource = state.getResource(locale, key); if (key.equals("category.extras")) { resource = state.getResource(locale, key); return resource; } if (resource != null) { System.err.println("found " + key + ": " + resource); return resource; } return resource; } public String loadStringResource(final Component component, final String key) { if (getState() == null) { return null; } return super.loadStringResource(component, key); } private TranslateBean getState() { if (translateLiveState == null) { translateLiveState = (TranslateBean) GeoServerApplication.get().getMetaData( TranslationEditPage.TRANSLATION_BEAN); } return translateLiveState; } }