1 31 32 package org.opencms.widgets; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.main.OpenCms; 36 import org.opencms.util.CmsStringUtil; 37 import org.opencms.workplace.CmsWorkplace; 38 39 48 public class CmsVfsFileWidget extends A_CmsWidget { 49 50 51 public static final String CONFIGURATION_HIDESITESELECTOR = "hidesiteselector"; 52 53 54 public static final String CONFIGURATION_SHOWSITESELECTOR = "showsiteselector"; 55 56 57 public static final String CONFIGURATION_STARTSITE = "startsite"; 58 59 60 private boolean m_showSiteSelector; 61 62 63 private String m_startSite; 64 65 68 public CmsVfsFileWidget() { 69 70 this(""); 72 } 73 74 80 public CmsVfsFileWidget(boolean showSiteSelector, String startSite) { 81 82 m_showSiteSelector = showSiteSelector; 83 m_startSite = startSite; 84 } 85 86 91 public CmsVfsFileWidget(String configuration) { 92 93 super(configuration); 94 } 95 96 99 public String getConfiguration() { 100 101 StringBuffer result = new StringBuffer (8); 102 103 if (m_showSiteSelector) { 105 result.append(CONFIGURATION_SHOWSITESELECTOR); 106 } else { 107 result.append(CONFIGURATION_HIDESITESELECTOR); 108 } 109 110 if (m_startSite != null) { 112 result.append("|"); 113 result.append(CONFIGURATION_STARTSITE); 114 result.append("="); 115 result.append(m_startSite); 116 } 117 118 return result.toString(); 119 } 120 121 124 public String getDialogIncludes(CmsObject cms, I_CmsWidgetDialog widgetDialog) { 125 126 StringBuffer result = new StringBuffer (16); 127 result.append(getJSIncludeFile(CmsWorkplace.getSkinUri() + "commons/tree.js")); 128 result.append("\n"); 129 result.append(getJSIncludeFile(CmsWorkplace.getSkinUri() + "components/widgets/fileselector.js")); 130 return result.toString(); 131 } 132 133 136 public String getDialogInitCall(CmsObject cms, I_CmsWidgetDialog widgetDialog) { 137 138 return "\tinitVfsFileSelector();\n"; 139 } 140 141 144 public String getDialogInitMethod(CmsObject cms, I_CmsWidgetDialog widgetDialog) { 145 146 StringBuffer result = new StringBuffer (16); 147 result.append("function initVfsFileSelector() {\n"); 148 result.append("\tinitResources(\""); 150 result.append(OpenCms.getWorkplaceManager().getEncoding()); 151 result.append("\", \""); 152 result.append(CmsWorkplace.VFS_PATH_WORKPLACE); 153 result.append("\", \""); 154 result.append(CmsWorkplace.getSkinUri()); 155 result.append("\", \""); 156 result.append(OpenCms.getSystemInfo().getOpenCmsContext()); 157 result.append("\");\n"); 158 result.append("}\n"); 159 return result.toString(); 160 } 161 162 165 public String getDialogWidget(CmsObject cms, I_CmsWidgetDialog widgetDialog, I_CmsWidgetParameter param) { 166 167 String id = param.getId(); 168 StringBuffer result = new StringBuffer (128); 169 170 result.append("<td class=\"xmlTd\">"); 171 result.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"maxwidth\"><tr><td style=\"width: 100%;\">"); 172 result.append("<input style=\"width: 99%;\" class=\"xmlInput"); 173 if (param.hasError()) { 174 result.append(" xmlInputError"); 175 } 176 result.append("\" value=\""); 177 result.append(param.getStringValue(cms)); 178 result.append("\" name=\""); 179 result.append(id); 180 result.append("\" id=\""); 181 result.append(id); 182 result.append("\"></td>"); 183 result.append(widgetDialog.dialogHorizontalSpacer(10)); 184 result.append("<td><table class=\"editorbuttonbackground\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 185 186 StringBuffer buttonJs = new StringBuffer (8); 187 buttonJs.append("javascript:openTreeWin('EDITOR', '"); 188 buttonJs.append(id); 189 buttonJs.append("', document"); 190 if (m_showSiteSelector) { 191 buttonJs.append(", true"); 192 } else { 193 buttonJs.append(", false"); 194 } 195 buttonJs.append(", '"); 196 if (m_startSite != null) { 197 buttonJs.append(m_startSite); 198 } else { 199 buttonJs.append(cms.getRequestContext().getSiteRoot()); 200 } 201 buttonJs.append("'"); 202 buttonJs.append(");"); 203 204 result.append(widgetDialog.button( 205 buttonJs.toString(), 206 null, 207 "folder", 208 org.opencms.workplace.Messages.GUI_DIALOG_BUTTON_SEARCH_0, 209 widgetDialog.getButtonStyle())); 210 result.append("</tr></table>"); 211 result.append("</td></tr></table>"); 212 213 result.append("</td>"); 214 215 return result.toString(); 216 } 217 218 226 public String getStartSite() { 227 228 return m_startSite; 229 } 230 231 238 public boolean isShowingSiteSelector() { 239 240 return m_showSiteSelector; 241 } 242 243 246 public I_CmsWidget newInstance() { 247 248 return new CmsVfsFileWidget(getConfiguration()); 249 } 250 251 254 public void setConfiguration(String configuration) { 255 256 m_showSiteSelector = true; 257 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(configuration)) { 258 if (configuration.indexOf(CONFIGURATION_HIDESITESELECTOR) != -1) { 259 m_showSiteSelector = false; 261 } 262 int siteIndex = configuration.indexOf(CONFIGURATION_STARTSITE); 263 if (siteIndex != -1) { 264 String site = configuration.substring(CONFIGURATION_STARTSITE.length() + 1); 266 if (site.indexOf('|') != -1) { 267 site = site.substring(0, site.indexOf('|')); 269 } 270 m_startSite = site; 271 } 272 } 273 super.setConfiguration(configuration); 274 } 275 } | Popular Tags |