1 24 package org.riotfamily.pages.riot.command; 25 26 import org.riotfamily.pages.Page; 27 import org.riotfamily.riot.list.command.CommandContext; 28 import org.riotfamily.riot.list.command.CommandResult; 29 import org.riotfamily.riot.list.command.core.AbstractCommand; 30 import org.riotfamily.riot.list.command.result.ReloadResult; 31 32 35 public class PublishPageCommand extends AbstractCommand { 36 37 public static final String ACTION_PUBLISH = "publishPage"; 38 39 public static final String ACTION_UNPUBLISH = "unpublishPage"; 40 41 protected String getAction(CommandContext context) { 42 Page page = (Page) context.getBean(); 43 return page.isPublished() ? ACTION_UNPUBLISH : ACTION_PUBLISH; 44 } 45 46 protected boolean isEnabled(CommandContext context, String action) { 47 return !PageCommandUtils.isSystemPage(context) 48 && PageCommandUtils.isTranslated(context); 49 } 50 51 public CommandResult execute(CommandContext context) { 52 Page page = (Page) context.getBean(); 53 page.setPublished(!page.isPublished()); 54 context.getDao().update(page); 55 return new ReloadResult(); 56 } 57 58 public String getConfirmationMessage(CommandContext context) { 59 Page page = (Page) context.getBean(); 60 if (page.isPublished()) { 61 return context.getMessageResolver().getMessage("confirm.unpublish", 62 new Object [] {page.getPathComponent()}, 63 "Do you really want to unpublish this page?"); 64 } 65 else { 66 return context.getMessageResolver().getMessage("confirm.publish", 67 new Object [] {page.getPathComponent()}, 68 "Do you really want to publish this page?"); 69 } 70 } 71 72 } 73 | Popular Tags |