1 31 32 package org.opencms.workplace.list; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.file.CmsResourceFilter; 36 import org.opencms.i18n.CmsMessageContainer; 37 import org.opencms.site.CmsSiteManager; 38 import org.opencms.util.CmsStringUtil; 39 40 62 public class CmsListOpenResourceAction extends A_CmsListDefaultJsAction { 63 64 65 private CmsObject m_cms; 66 67 68 private final String m_resColumnPathId; 69 70 77 public CmsListOpenResourceAction(String id, CmsObject cms, String resColumnPathId) { 78 79 super(id); 80 m_resColumnPathId = resColumnPathId; 81 m_cms = cms; 82 setName(Messages.get().container(Messages.GUI_OPENRESOURCE_ACTION_NAME_0)); 83 setHelpText(Messages.get().container(Messages.GUI_OPENRESOURCE_ACTION_HELP_0)); 84 } 85 86 89 public CmsMessageContainer getHelpText() { 90 91 if (isEnabled()) { 92 return super.getHelpText(); 93 } 94 return Messages.get().container(Messages.GUI_OPENRESOURCE_ACTION_DISABLED_HELP_0); 95 } 96 97 100 public boolean isEnabled() { 101 102 if (getResourceName() != null) { 103 return super.isEnabled(); 104 } 105 return false; 106 } 107 108 111 public String jsCode() { 112 113 StringBuffer jsCode = new StringBuffer (256); 114 jsCode.append("javascript:top.openwinfull('"); 115 jsCode.append(getResourceName()); 116 jsCode.append("')"); 117 return jsCode.toString(); 118 } 119 120 125 public void setCms(CmsObject cms) { 126 127 m_cms = cms; 128 } 129 130 135 private String getResourceName() { 136 137 String resource = getItem().get(m_resColumnPathId).toString(); 138 if (!m_cms.existsResource(resource, CmsResourceFilter.DEFAULT)) { 139 String siteRoot = CmsSiteManager.getSiteRoot(resource); 140 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(siteRoot)) { 141 resource = resource.substring(siteRoot.length()); 142 } 143 if (!m_cms.existsResource(resource, CmsResourceFilter.DEFAULT)) { 144 resource = null; 145 } 146 } 147 return resource; 148 } 149 } | Popular Tags |