/*******************************************************************************
* Copyright (c) 2007-2009 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.jsf.vpe.jsf;
import java.util.Locale;
import org.eclipse.core.resources.IProject;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.texteditor.ITextEditor;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.project.IModelNature;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jsf.model.helpers.converter.OpenKeyHelper;
import org.jboss.tools.jst.web.ui.internal.editor.i18n.ILocaleProvider;
/**
* Implementation of {@link ILocaleProvider} for JSF projects.
*
* @author yradtsevich
*/
public class JsfLocaleProvider implements ILocaleProvider {
/*
* Stores the string representation of the current locale.
*/
private String localeString = ""; //$NON-NLS-1$
/**
* Returns the locale for given {@code editor}, or {@code null} if it
* can not determine it.
*/
public Locale getLocale(ITextEditor editor) {
IEditorInput editorInput = editor.getEditorInput();
IProject fileProject = null;
if (editorInput instanceof IFileEditorInput) {
fileProject=((IFileEditorInput)editorInput).getFile().getProject();
}
return getLocale(fileProject);
}
public String getLocaleString() {
return localeString;
}
public Locale getLocale(IProject project) {
if (project !=null) {
IModelNature modelNature = EclipseResourceUtil.getModelNature(project);
if (modelNature == null) {
return null;
}
XModel model = modelNature.getModel();
localeString = OpenKeyHelper.getDeafultLocaleFromFacesConfig(model);
return new Locale(localeString);
} else {
return null;
}
}
}