X-Git-Url: http://erislabs.net/gitweb/?p=mir.git;a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicAdminInterfaceLocalizer.java;h=ccdb4a88762aa54c010d8f244a402d0cea258ce0;hp=ef75632d4b7ba77ab097f7a9bc940ad1293e7fb4;hb=42680c1f9fe3250bcbd0f9ed5d9dee6188333b15;hpb=d3e3f0ffeefd8692277d9a82af477a64ae85e118 diff --git a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java index ef75632d..ccdb4a88 100755 --- a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java @@ -63,6 +63,8 @@ import mircoders.localizer.MirAdminInterfaceLocalizer; import mircoders.localizer.MirLocalizerExc; import mircoders.localizer.MirLocalizerFailure; import mircoders.module.ModuleLanguage; +import mircoders.module.ModuleContent; +import mircoders.module.ModuleComment; import mircoders.storage.DatabaseContent; @@ -110,18 +112,22 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz addSimpleArticleOperation(new ChangeArticleFieldOperation("newswire", "to_article_type", "0", "1", false)); addSimpleArticleOperation(new ModifyArticleFieldOperation("unhide", "is_published", "1", false)); addSimpleArticleOperation(new ModifyArticleFieldOperation("hide", "is_published", "0", false)); + addSimpleArticleOperation(new DeleteEntityOperation("delete")); addSimpleCommentOperation(new ModifyCommentFieldOperation("unhide", "is_published", "1")); addSimpleCommentOperation(new ModifyCommentFieldOperation("hide", "is_published", "0")); + addSimpleCommentOperation(new DeleteEntityOperation("delete")); } /** {@inheritDoc} */ - public String getAdminPageGenerator(String aPage, Map aTemplateData, EntityAdapter aUser, String aDefault) throws MirLocalizerExc { + public String getAdminPageGenerator(String aPage, Map aTemplateData, EntityAdapter aUser, + String aDefault) throws MirLocalizerExc { return aDefault; } /** {@inheritDoc} */ - public Generator prepareArticlePreview(String aPreviewPage, EntityAdapter anArticle, Map aContext) throws MirLocalizerExc { + public Generator prepareArticlePreview(String aPreviewPage, EntityAdapter anArticle, + Map aContext) throws MirLocalizerExc { MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(aContext); aContext.put("article", anArticle); @@ -186,12 +192,12 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return Collections.unmodifiableList(simpleArticleOperations); } - public MirSimpleEntityOperation simpleArticleOperationForName(String aName) { - return (MirSimpleEntityOperation) simpleArticleOperationsMap.get(aName); + public EntityOperation simpleArticleOperationForName(String aName) { + return (EntityOperation) simpleArticleOperationsMap.get(aName); } - public MirSimpleEntityOperation simpleCommentOperationForName(String aName) { - return (MirSimpleEntityOperation) simpleCommentOperationsMap.get(aName); + public EntityOperation simpleCommentOperationForName(String aName) { + return (EntityOperation) simpleCommentOperationsMap.get(aName); } public void removeSimpleArticleOperation(String aName) { @@ -199,7 +205,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz simpleArticleOperationsMap.remove(aName); } - public void addSimpleArticleOperation(MirSimpleEntityOperation anOperation) { + public void addSimpleArticleOperation(EntityOperation anOperation) { removeSimpleArticleOperation(anOperation.getName()); simpleArticleOperationsMap.put(anOperation.getName(), anOperation); simpleArticleOperations.add(anOperation); @@ -210,13 +216,13 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz simpleCommentOperationsMap.remove(aName); } - public void addSimpleCommentOperation(MirSimpleEntityOperation anOperation) { + public void addSimpleCommentOperation(EntityOperation anOperation) { removeSimpleCommentOperation(anOperation.getName()); simpleCommentOperationsMap.put(anOperation.getName(), anOperation); simpleCommentOperations.add(anOperation); } - protected abstract static class EntityModifyingOperation implements MirSimpleEntityOperation { + protected abstract static class EntityModifyingOperation implements EntityOperation { private String name; private boolean logOperation; @@ -449,4 +455,39 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz anArticle.setFieldValue(field, newValue); } } + + public static class DeleteEntityOperation implements EntityOperation { + private String name; + private ModuleContent content; + private ModuleComment comment; + + public DeleteEntityOperation(String aName) { + name = aName; + comment = new ModuleComment(); + content = new ModuleContent(); + } + + public String getName() { + return "delete"; + } + + public boolean isAvailable(EntityAdapter anEntity) throws MirLocalizerExc, MirLocalizerFailure { + return false; + } + + public void perform(EntityAdapter aUser, EntityAdapter anEntity) throws MirLocalizerExc, MirLocalizerFailure { + Entity entity = anEntity.getEntity(); + try { + if (entity instanceof EntityContent) { + content.deleteById(entity.getId()); + } + else if (entity instanceof EntityComment) { + comment.deleteById(entity.getId()); + } + } + catch (ModuleExc e) { + throw new MirLocalizerFailure(e); + } + } + } }