1 31 32 package org.opencms.workplace.tools.projects; 33 34 import org.opencms.db.CmsProjectResourcesDisplayMode; 35 import org.opencms.db.CmsUserProjectSettings; 36 import org.opencms.db.CmsUserSettings; 37 import org.opencms.i18n.CmsMessages; 38 import org.opencms.jsp.CmsJspActionElement; 39 import org.opencms.util.CmsStringUtil; 40 import org.opencms.widgets.CmsCheckboxWidget; 41 import org.opencms.widgets.CmsSelectWidget; 42 import org.opencms.widgets.CmsSelectWidgetOption; 43 import org.opencms.workplace.CmsDialog; 44 import org.opencms.workplace.CmsWidgetDialogParameter; 45 import org.opencms.workplace.CmsWorkplaceSettings; 46 47 import java.util.ArrayList ; 48 import java.util.List ; 49 50 import javax.servlet.http.HttpServletRequest ; 51 import javax.servlet.http.HttpServletResponse ; 52 import javax.servlet.jsp.PageContext ; 53 54 63 public class CmsProjectSettingsDialog extends A_CmsProjectDialog { 64 65 66 public static final String KEY_PREFIX = "settings"; 67 68 69 private String m_mode; 70 71 72 private CmsUserProjectSettings m_prjSettings; 73 74 79 public CmsProjectSettingsDialog(CmsJspActionElement jsp) { 80 81 super(jsp); 82 } 83 84 91 public CmsProjectSettingsDialog(PageContext context, HttpServletRequest req, HttpServletResponse res) { 92 93 this(new CmsJspActionElement(context, req, res)); 94 } 95 96 99 public void actionCommit() { 100 101 List errors = new ArrayList (); 102 try { 103 m_prjSettings.setManagerGroup(getCms().readGroup(getManagerGroup()).getId()); 104 m_prjSettings.setUserGroup(getCms().readGroup(getUserGroup()).getId()); 105 m_prjSettings.setProjectFilesMode(CmsProjectResourcesDisplayMode.valueOf(getMode())); 106 CmsUserSettings settings = new CmsUserSettings(getCms()); 107 settings.setProjectSettings(m_prjSettings); 108 settings.save(getCms()); 109 } catch (Throwable t) { 110 errors.add(t); 111 } 112 setCommitErrors(errors); 114 } 115 116 121 public String getMode() { 122 123 return m_mode; 124 } 125 126 131 public void setMode(String mode) { 132 133 CmsProjectResourcesDisplayMode.valueOf(mode); 134 m_mode = mode; 135 } 136 137 140 protected String createDialogHtml(String dialog) { 141 142 StringBuffer result = new StringBuffer (1024); 143 144 result.append(createWidgetTableStart()); 145 result.append(createWidgetErrorHeader()); 147 148 if (dialog.equals(PAGES[0])) { 149 result.append(dialogBlockStart(key(Messages.GUI_SETTINGS_EDITOR_LABEL_NEWPROJECT_BLOCK_0))); 151 result.append(createWidgetTableStart()); 152 result.append(createDialogRowsHtml(0, 2)); 153 result.append(createWidgetTableEnd()); 154 result.append(dialogBlockEnd()); 155 result.append(dialogBlockStart(key(Messages.GUI_SETTINGS_EDITOR_LABEL_PROJECTFILES_BLOCK_0))); 156 result.append(createWidgetTableStart()); 157 result.append(createDialogRowsHtml(3, 3)); 158 result.append(createWidgetTableEnd()); 159 result.append(dialogBlockEnd()); 160 } 161 162 result.append(createWidgetTableEnd()); 163 return result.toString(); 164 } 165 166 169 protected void defineWidgets() { 170 171 initSettingsObject(); 173 174 setKeyPrefix(KEY_PREFIX); 175 176 addWidget(new CmsWidgetDialogParameter(this, "managerGroup", PAGES[0], new CmsSelectWidget( 178 getSelectGroups(true)))); 179 addWidget(new CmsWidgetDialogParameter(this, "userGroup", PAGES[0], new CmsSelectWidget(getSelectGroups(false)))); 180 addWidget(new CmsWidgetDialogParameter( 181 m_prjSettings, 182 "deleteAfterPublishing", 183 PAGES[0], 184 new CmsCheckboxWidget())); 185 addWidget(new CmsWidgetDialogParameter(this, "mode", PAGES[0], new CmsSelectWidget(getSelectModes()))); 186 } 187 188 197 protected void initSettingsObject() { 198 199 Object o = null; 200 201 try { 202 if (CmsStringUtil.isEmpty(getParamAction()) || CmsDialog.DIALOG_INITIAL.equals(getParamAction())) { 203 CmsUserSettings settings = new CmsUserSettings(getCms()); 205 m_prjSettings = settings.getProjectSettings(); 206 } else { 207 o = getDialogObject(); 209 m_prjSettings = (CmsUserProjectSettings)o; 210 } 211 m_prjSettings.getProjectFilesMode(); 213 } catch (Exception e) { 214 m_prjSettings = new CmsUserProjectSettings(); 216 } 217 try { 218 setManagerGroup(getCms().readGroup(m_prjSettings.getManagerGroup()).getName()); 219 } catch (Exception e) { 220 } 222 try { 223 setUserGroup(getCms().readGroup(m_prjSettings.getUserGroup()).getName()); 224 } catch (Exception e) { 225 } 227 try { 228 setMode(m_prjSettings.getProjectFilesMode().toString()); 229 } catch (Exception e) { 230 } 232 } 233 234 239 protected void initWorkplaceMembers(CmsJspActionElement jsp) { 240 241 super.initWorkplaceMembers(jsp); 242 setOnlineHelpUriCustom("/projects/project_settings.jsp"); 243 } 244 245 248 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 249 250 super.initWorkplaceRequestValues(settings, request); 252 253 setDialogObject(m_prjSettings); 255 } 256 257 262 private List getSelectModes() { 263 264 List retVal = new ArrayList (); 265 CmsMessages messages = Messages.get().getBundle(getLocale()); 266 retVal.add(new CmsSelectWidgetOption( 267 CmsProjectResourcesDisplayMode.ALL_CHANGES.getMode(), 268 true, 269 messages.key(Messages.GUI_PROJECT_MODE_ALLCHANGES_0))); 270 retVal.add(new CmsSelectWidgetOption( 271 CmsProjectResourcesDisplayMode.NEW_FILES.getMode(), 272 false, 273 messages.key(Messages.GUI_PROJECT_MODE_NEWFILES_0))); 274 retVal.add(new CmsSelectWidgetOption( 275 CmsProjectResourcesDisplayMode.MODIFIED_FILES.getMode(), 276 false, 277 messages.key(Messages.GUI_PROJECT_MODE_MODFILES_0))); 278 retVal.add(new CmsSelectWidgetOption( 279 CmsProjectResourcesDisplayMode.DELETED_FILES.getMode(), 280 false, 281 messages.key(Messages.GUI_PROJECT_MODE_DELFILES_0))); 282 return retVal; 283 } 284 } 285 | Popular Tags |