package com.idega.faces.componentbased;
import java.io.IOException;
import java.io.Writer;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.idega.presentation.util.RenderUtil;
import com.idega.util.CoreConstants;
import com.idega.util.StringHandler;
import com.idega.util.StringUtil;
@Service
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class FacesRenderUtil implements RenderUtil {
@Override
public void doRemoveNeedlessContentAndSetRealPageTitle(Writer writer, String newTitle, String oldTitle) {
if (writer instanceof HtmlStringBufferedResponseWriter) {
String html = writer.toString();
if (StringUtil.isEmpty(html)) {
return;
}
boolean changed = false;
if (html.indexOf("<?xml version=") != -1) {
html = StringHandler.replace(html, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>", CoreConstants.EMPTY);
changed = true;
}
if (!StringUtil.isEmpty(newTitle) && !StringUtil.isEmpty(oldTitle) && !newTitle.equals(oldTitle)) {
html = StringHandler.replace(html, "<title>" + oldTitle + "</title>", "<title>" + newTitle + "</title>");
changed = true;
}
if (changed) {
try {
((HtmlStringBufferedResponseWriter) writer).setContent(html);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}