/* * Copyright (C) 2003-2007 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.webui.presentation; import java.util.List; import javax.jcr.Node; import org.exoplatform.web.application.Parameter; import org.exoplatform.webui.core.UIComponent; import org.exoplatform.webui.core.UIPopupContainer; /** * Created by The eXo Platform SARL Author : Dang Van Minh * minh.dang@exoplatform.com May 8, 2008 3:22:08 PM */ public interface NodePresentation { public static final String MEDIA_STATE_DISPLAY = "DISPLAY"; public static final String MEDIA_STATE_NONE = "NONE"; /** * Sets enable vote * * @param value value to set */ public void setEnableVote(boolean value); /** * checks if enable vote * */ public boolean isEnableVote(); /** * Sets enable comment * * @param value value to set */ public void setEnableComment(boolean value); /** * checks if enable comment * */ public boolean isEnableComment(); /** * Sets the node. * * @param node the new node */ public void setNode(Node node); /** * Gets the node. * * @return the node * @throws Exception the exception */ public Node getNode() throws Exception; /** * Gets the original node. * * @return the original node * @throws Exception the exception */ public Node getOriginalNode() throws Exception; /** * Gets the node type. * * @return the node type * @throws Exception the exception */ public String getNodeType() throws Exception; /** * Checks if is node type supported. * * @return true, if is node type supported */ public boolean isNodeTypeSupported(); /** * Gets the template path. * * @return the template path * @throws Exception the exception */ public String getTemplatePath() throws Exception; /** * Gets the relations. * * @return the relations * @throws Exception the exception */ public List<Node> getRelations() throws Exception; /** * Gets the attachments. * * @return the attachments * @throws Exception the exception */ public List<Node> getAttachments() throws Exception; /** * Gets the viewable link. * * @return the viewable URL * @throws Exception the exception */ public String getViewableLink(Node attNode, Parameter[] params) throws Exception; /** * Checks if is rss link. * * @return true, if is rss link */ public boolean isRssLink(); /** * Gets the rss link. * * @return the rss link */ public String getRssLink(); /** * Gets the supported localise. * * @return the supported localise * @throws Exception the exception */ public List getSupportedLocalise() throws Exception; /** * Sets the language. * * @param language the new language */ public void setLanguage(String language); /** * Gets the language. * * @return the language */ public String getLanguage(); /** * Gets the component instance of type. * * @param className the class name * @return the component instance of type */ public Object getComponentInstanceOfType(String className); /** * Gets the web dav server prefix. * * @return the web dav server prefix * @throws Exception the exception */ public String getWebDAVServerPrefix() throws Exception; /** * Gets the image. * * @param node the node * @return the image * @throws Exception the exception */ public String getImage(Node node) throws Exception; /** * Gets the portal name. * * @return the portal name */ public String getPortalName(); /** * Gets the repository. * * @return the repository * @throws Exception the exception */ public String getRepository() throws Exception; /** * Gets the workspace name. * * @return the workspace name * @throws Exception the exception */ public String getWorkspaceName() throws Exception; /** * Gets the view template. * * @param nodeTypeName the node type name * @param templateName the template name * @return the view template * @throws Exception the exception */ public String getViewTemplate(String nodeTypeName, String templateName) throws Exception; /** * Get the skin of template if it's existing * @param nodeTypeName The node type name * @param skinName Skin name * @return The skin template * @throws Exception */ public String getTemplateSkin(String nodeTypeName, String skinName) throws Exception; /** * Get UIComponent for comment * @return * @throws Exception */ public UIComponent getCommentComponent() throws Exception; /** * Get UIComponent to remove attachment in document * @return * @throws Exception */ public UIComponent getRemoveAttach() throws Exception; /** * Get UIComponent to remove comment in document * @return * @throws Exception */ public UIComponent getRemoveComment() throws Exception; /** * Gets the comments. * * @return the comments * @throws Exception the exception */ public List<Node> getComments() throws Exception; /** * Gets the download link. * * @param node the node * @return the download link * @throws Exception the exception */ public String getDownloadLink(Node node) throws Exception; /** * Encode html. * * @param text the text * @return the string * @throws Exception the exception */ public String encodeHTML(String text) throws Exception; /** * Gets the icons. * * @param node the node * @param size the size * @return the icons * @throws Exception the exception */ public String getIcons(Node node, String size) throws Exception; /** * Get the UIComponent which to display file * @param mimeType * @return * @throws Exception */ public UIComponent getUIComponent(String mimeType) throws Exception; /** * @param orgNode Processed node * @param propertyName which property used for editing * @param inputType input type for editing: TEXT, TEXTAREA, WYSIWYG * @param cssClass class name for CSS, should implement: cssClass, [cssClass]Title * Edit[cssClass] as relative css * Should create the function: InlineEditor.presentationRequestChange[cssClass] * to request the rest-service * @param isGenericProperty set as true to use generic javascript function, other wise, must create * the correctspond function InlineEditor.presentationRequestChange[cssClass] * @param arguments Extra parameter for Input component (toolbar, width, height,.. for CKEditor/TextArea) * @return String that can be put on groovy template * @throws Exception */ public String getInlineEditingField(Node orgNode, String propertyName, String defaultValue, String inputType, String idGenerator, String cssClass, boolean isGenericProperty, String... arguments) throws Exception; public String getInlineEditingField(Node orgNode, String propertyName) throws Exception; /** * gets the status of display audio description for accessible media * @return status of display audio description for accessible media */ public String getMediaState(); /** * switches the status of display audio description for accessible media */ public void switchMediaState(); /** * * @return true if node can display audio description */ public boolean isDisplayAlternativeText(); /** * * @return true if can switch to play audio description of the media */ public boolean playAudioDescription(); /** * * @return true if can switch back from original node from audio description */ public boolean switchBackAudioDescription(); public String getActionOpenDocInDesktop() throws Exception; public UIPopupContainer getPopupContainer() throws Exception; }