package org.exoplatform.ecm.webui.form; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.config.annotation.EventConfig; import org.exoplatform.webui.core.UIComponent; import org.exoplatform.webui.core.UIPopupComponent; import org.exoplatform.webui.core.UIPopupWindow; import org.exoplatform.webui.event.Event; import org.exoplatform.webui.event.EventListener; /** * Created by The eXo Platform SAS * Author : eXoPlatform * toannh@exoplatform.com * On Dec 10, 2014 * Popup window when open read-only a document in SE */ @ComponentConfig( template = "classpath:groovy/ecm/webui/UIConfirmMessage.gtmpl", events = { @EventConfig(listeners = UIOpenDocumentForm.ReadOnlyActionListener.class), @EventConfig(listeners = UIOpenDocumentForm.CancelActionListener.class) } ) public class UIOpenDocumentForm extends UIComponent implements UIPopupComponent { public UIOpenDocumentForm() throws Exception {} public String filePath; public String mountPath; public String absolutePath; public String[] getActions() { return new String[] {"ReadOnly", "Cancel"}; } /** * Only open document with read-only mode. */ public static class ReadOnlyActionListener extends EventListener<UIOpenDocumentForm> { @Override public void execute(Event<UIOpenDocumentForm> event) throws Exception { UIOpenDocumentForm uiConfirm = event.getSource(); // impl readonly action UIPopupWindow popupAction = uiConfirm.getAncestorOfType(UIPopupWindow.class) ; popupAction.setShow(false) ; event.getRequestContext().addUIComponentToUpdateByAjax(popupAction); event.getRequestContext().getJavascriptManager().require("SHARED/openDocumentInOffice") .addScripts("eXo.ecm.OpenDocumentInOffice.openDocument('" + uiConfirm.absolutePath + "', '" + uiConfirm.mountPath + "');"); } } /** * Cancel action, close all popup include popup of ITHIT */ public static class CancelActionListener extends EventListener<UIOpenDocumentForm> { @Override public void execute(Event<UIOpenDocumentForm> event) throws Exception { UIOpenDocumentForm uiConfirm = event.getSource(); UIPopupWindow popupAction = uiConfirm.getAncestorOfType(UIPopupWindow.class) ; popupAction.setShow(false) ; event.getRequestContext().addUIComponentToUpdateByAjax(popupAction); } } private String messageKey_; private String[] args_ = {}; public void setMessageKey(String messageKey) { messageKey_ = messageKey; } public String getMessageKey() { return messageKey_; } public void setArguments(String[] args) { args_ = args; } public String[] getArguments() { return args_; } public void activate() { } public void deActivate() { } public void setFilePath(String filePath) { this.filePath = filePath; } public void setMountPath(String mountPath) { this.mountPath = mountPath; } public void setAbsolutePath(String absolutePath) { this.absolutePath = absolutePath; } }