/*
* Copyright (C) 2003-2008 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.ecm.connector.fckeditor;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/*
* Created by The eXo Platform SAS @author : Hoa.Pham hoa.pham@exoplatform.com
* Jun 23, 2008
*/
/**
* The Class FCKMessage.
*/
public class FCKMessage {
/** The Constant ERROR. */
public static final String ERROR = "Error";
/** The Constant INFO. */
public static final String INFO = "Info";
/** The Constant FOLDER_CREATED. */
public static final int FOLDER_CREATED = 100;
/** The Constant FOLDER_EXISTED. */
public static final int FOLDER_EXISTED = 101;
/** The Constant FOLDER_INVALID_NAME. */
public static final int FOLDER_INVALID_NAME = 102;
/** The Constant FOLDER_PERMISSION_CREATING. */
public static final int FOLDER_PERMISSION_CREATING = 103;
/** The Constant FOLDER_NOT_CREATED. */
public static final int FOLDER_NOT_CREATED = 104;
/** The Constant UNKNOWN_ERROR. */
public static final int UNKNOWN_ERROR = 110;
/** The Constant FILE_EXISTED. */
public static final int FILE_EXISTED = 201;
/** The Constant FILE_NOT_FOUND. */
public static final int FILE_NOT_FOUND = 202;
/** The Constant FILE_UPLOAD_RESTRICTION. */
public static final int FILE_UPLOAD_RESTRICTION = 203;
/** The Constant FILE_NOT_UPLOADED. */
public static final int FILE_NOT_UPLOADED = 204;
/** The Constant FILE_EXCEED_LIMIT. */
public static final int FILE_EXCEED_LIMIT = 205;
/** The Constant FCK_RESOURCE_BUNDLE. */
public static final String FCK_RESOURCE_BUNDLE_FILE = "locale.services.fckeditor.FCKConnector"
;
/**
* Instantiates a new fCK message.
*/
public FCKMessage() {
}
public Document createMessage(int messageCode, String messageType, String language, Object[] args)
throws Exception {
String message = getMessage(messageCode, args, language);
return createMessage(messageCode, message, messageType);
}
public Document createMessage(int messageCode, String message, String messageType)
throws Exception {
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element element = document.createElement("Message");
element.setAttribute("number", Integer.toString(messageCode));
element.setAttribute("text", message);
element.setAttribute("type", messageType);
document.appendChild(element);
return document;
}
/**
* Gets the message.
*
* @param messageNum the message num
* @param args the args
* @param language the language
* @return the message
* @throws Exception the exception
*/
public String getMessage(int messageNum, Object[] args, String language) throws Exception {
String messageKey = getMessageKey(messageNum);
return getMessage(messageKey, args, language);
}
/**
* Gets the message.
*
* @param messageKey the message key
* @param args the args
* @param language the language
* @return the message
* @throws Exception the exception
*/
public String getMessage(String messageKey, Object[] args, String language) throws Exception {
Locale locale = null;
if (language == null) {
locale = Locale.ENGLISH;
} else {
locale = new Locale(language);
}
ResourceBundle resourceBundle = ResourceBundle.getBundle(FCK_RESOURCE_BUNDLE_FILE, locale);
String message = resourceBundle.getString(messageKey);
if (args == null) {
return message;
}
return MessageFormat.format(message, args);
}
protected String getMessageKey(int number) {
String messageKey = null;
switch (number) {
case FOLDER_CREATED:
messageKey = "fckeditor.folder-created";
break;
case FOLDER_NOT_CREATED:
messageKey = "fckeditor.folder-not-created";
break;
case FOLDER_INVALID_NAME:
messageKey = "fckeditor.folder-invalid-name";
break;
case FOLDER_EXISTED:
messageKey = "fckeditor.folder-existed";
break;
case FOLDER_PERMISSION_CREATING:
messageKey = "fckeditor.folder-permission-denied";
break;
case FILE_EXISTED:
messageKey = "fckeditor.file-existed";
break;
case FILE_NOT_FOUND:
messageKey = "fckeditor.file-not-found";
break;
case FILE_NOT_UPLOADED:
messageKey = "fckeditor.file-not-uploaded";
break;
case FILE_UPLOAD_RESTRICTION:
messageKey = "fckeditor.file-uploaded-restriction";
break;
case FILE_EXCEED_LIMIT:
messageKey = "fckeditor.file-exceed-limit";
break;
default:
messageKey = "connector.fckeditor.unknowm-message";
break;
}
return messageKey;
}
}