package com.idega.content.themes.helpers.business;
import java.io.InputStream;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.jdom.Document;
import com.idega.business.SpringBeanName;
import com.idega.content.themes.business.ThemesService;
import com.idega.content.themes.helpers.bean.Setting;
import com.idega.content.themes.helpers.bean.Theme;
import com.idega.core.builder.data.ICPage;
import com.idega.core.search.business.SearchResult;
import com.idega.graphics.image.business.ImageGenerator;
import com.idega.idegaweb.IWApplicationContext;
import com.idega.presentation.IWContext;
import com.idega.slide.business.IWSlideService;
@SpringBeanName("themesHelper")
public interface ThemesHelper {
public ImageGenerator getImageGenerator(IWContext iwc);
public IWSlideService getSlideService();
public IWSlideService getSlideService(IWApplicationContext iwac);
public void searchForThemes(Collection<ICPage> templates);
public List<String> loadSearchResults(Collection<ICPage> searchResults, List<String> filter);
public List<SearchResult> search(String searchKey, String searchScope);
public String getFileName(String uri);
public String getFileNameWithExtension(String uri);
public String extractValueFromString(String fullString, int beginIndex, int endIndex);
public String getFileExtension(String uri);
public String getWebRootWithoutContent();
public String getWebRootWithoutContent(String fullWebRoot);
public String getFullWebRoot();
public boolean isCorrectFile(String fileName, String nameTemplate);
public boolean isCorrectThemeTemplateFile(String fileName, List<String> filter);
public boolean isCreatedManually(String fileName);
public boolean isDraft(String fileName);
public boolean isSystemFile(String fileName);
public boolean isPropertiesFile(String uri);
public void addTheme(Theme theme);
public List<Theme> getAvailableThemes();
public Collection<Theme> getAllThemes();
public List<Theme> getSortedThemes();
public void addUriToTheme(String uri);
public boolean existTheme(String uri);
public Document getXMLDocument(String url);
public Document getXMLDocument(String url, boolean cleanWithHtmlCleaner, boolean omitComments);
public Document getXMLDocument(String url, boolean cleanWithHtmlCleaner, boolean omitComments, boolean omitDocTypeDeclaaration);
public Document getXMLDocument(InputStream stream) throws Exception;
public String getLinkToBase(String uri);
public Theme getTheme(String themeKey);
public void removeTheme(String uri, String themeKey);
public Map<String, Theme> getThemes();
public List<Setting> getThemeSettings();
public List<Setting> getPageSettings();
public void loadThemeSettings(InputStream stream);
public void loadPageSettings(String url);
public InputStream getInputStream(String link);
public String encode(String value, boolean fullyEncode);
public String urlEncode(String url);
public String decode(String value, boolean fullyDecode);
public String decodeUrl(String url);
public boolean createSmallImage(Theme theme);
public boolean createSmallImage(Theme theme, boolean useDraftPreview);
public ThemesService getThemesService();
public boolean createThemeConfig(Theme theme);
public String getPreparedThemeNameToUseInRepository(Theme theme);
public String getPreparedThemeNameToUseInRepository(String themeName);
public String[] getPageValues(Setting s, String value);
public void addThemeToQueue(String linkToBase);
public void removeThemeFromQueue(String linkToBase);
public String getLastVisitedPage();
public void setLastVisitedPage(String lastVisitedPage);
public String getLastUsedTheme();
public Theme getThemeByTemplateKey(String templateKey);
public void setLastUsedTheme(String templateId);
public String getDefaultTheme();
public String loadPageToSlide(String type, String templateFile, List<String> articlesPaths, int pageID);
public String getFixedSlideFileName(String fileName);
public String changeFileUploadPath(String path);
public int getRandomNumber(int maxValue);
public void removeLastUsedTheme(String templateID);
public List<String> createArticle(String templateFile, int id);
public String getArticleCommentLink(IWContext iwc, String pageURI);
public String getFullServerName(IWContext iwc);
public boolean setNewLinkInArticleFile(IWContext iwc, String link, String language, String baseDirectory, String pageUri);
public boolean existFileInSlide(String path);
public String getUniqueIdByNumberAndDate(String scope);
public String getLocalizedText(String key);
public String getCurrentLanguage(IWContext iwc);
public void addLoadedTheme(String id);
public int getLoadedThemesCount();
public boolean isCheckedFromSlide();
/**
* Generates big and small previews for single theme
* @param theme
* @param useDraft
* @param isJpg
* @param quality
* @return true - success, false - failure
*/
public boolean generatePreviewsForTheme(Theme theme, boolean useDraft, boolean isJpg, float quality);
public String getThemeColourFileName(Theme theme, String customName, String file, boolean markAsOriginalFile);
public void addPredefinedThemeStyle(String uri);
public List<String> getPredefinedThemeStyles();
public String getBuiltInThemeStyleId(Theme theme);
}