X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicAdminInterfaceLocalizer.java;h=ccdb4a88762aa54c010d8f244a402d0cea258ce0;hb=42680c1f9fe3250bcbd0f9ed5d9dee6188333b15;hp=fba47613d5a9c048e0e42d891d19477fb8f5f98a;hpb=213122e7c65211f549722f05aa8e0135f15af35c;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java index fba47613..ccdb4a88 100755 --- a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java @@ -30,6 +30,17 @@ package mircoders.localizer.basic; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + import mir.bundle.Bundle; import mir.config.MirPropertiesConfiguration; import mir.entity.Entity; @@ -40,8 +51,8 @@ import mir.generator.GeneratorExc; import mir.log.LoggerWrapper; import mir.misc.StringUtil; import mir.module.ModuleExc; -import mir.storage.StorageObjectFailure; -import mir.util.DateTimeFunctions; +import mir.storage.DatabaseFailure; +import mir.util.DateTimeRoutines; import mir.util.EntityUtility; import mir.util.StringRoutines; import mir.util.generator.BundleGeneratorFunction; @@ -52,10 +63,10 @@ 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; -import java.util.*; - public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocalizer { /** preview page name (String) -> generator name (String) */ @@ -67,11 +78,10 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz private Map simpleCommentOperationsMap; private Map simpleArticleOperationsMap; - protected static LoggerWrapper logger = new LoggerWrapper("Localizer.AdminInterface");; + protected static LoggerWrapper logger = new LoggerWrapper("Localizer.AdminInterface"); protected MirPropertiesConfiguration configuration = MirPropertiesConfiguration.instance(); public MirBasicAdminInterfaceLocalizer() throws MirLocalizerFailure { - simpleCommentOperations = new ArrayList(); simpleArticleOperations = new ArrayList(); simpleCommentOperationsMap = new HashMap(); @@ -102,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); @@ -142,15 +156,14 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz if (previewPages.containsKey(aPreviewPage)) { try { - return MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator((String) previewPages.get(aPreviewPage)); + return MirGlobal.localizer().generators().makeAdminGeneratorLibrary(). + makeGenerator((String) previewPages.get(aPreviewPage), null); } catch (GeneratorExc e) { throw new MirLocalizerFailure(e); } } - else { - throw new MirLocalizerExc("Unknown preview: " + aPreviewPage); - } + throw new MirLocalizerExc("Unknown preview: " + aPreviewPage); } /** {@inheritDoc} */ @@ -160,36 +173,39 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz /** {@inheritDoc} */ public String makePasswordDigest(String aPassword) { + + return aPassword; } + /** {@inheritDoc} */ public void initializeArticle(Map anArticle) { anArticle.put("is_published", "0"); anArticle.put("date", StringUtil.date2webdbDate(new GregorianCalendar())); - }; + } public List simpleCommentOperations() { return Collections.unmodifiableList(simpleCommentOperations); - }; + } public List simpleArticleOperations() { 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) { simpleArticleOperations.remove(simpleArticleOperationsMap.get(aName)); simpleArticleOperationsMap.remove(aName); } - public void addSimpleArticleOperation(MirSimpleEntityOperation anOperation) { + public void addSimpleArticleOperation(EntityOperation anOperation) { removeSimpleArticleOperation(anOperation.getName()); simpleArticleOperationsMap.put(anOperation.getName(), anOperation); simpleArticleOperations.add(anOperation); @@ -200,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; @@ -217,7 +233,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz public String getName() { return name; - }; + } public boolean isAvailable(EntityAdapter anEntity) { try { @@ -227,7 +243,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz catch (Throwable t) { return false; } - }; + } public void perform(EntityAdapter aUser, EntityAdapter anEntity) throws MirLocalizerExc, MirLocalizerFailure { Entity entity = anEntity.getEntity(); @@ -238,7 +254,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz try { StringBuffer line = new StringBuffer(); - line.append(DateTimeFunctions.advancedDateFormat( + line.append(DateTimeRoutines.advancedDateFormat( MirGlobal.config().getString("Mir.DefaultDateTimeFormat"), (new GregorianCalendar()).getTime(), MirGlobal.config().getString("Mir.DefaultTimezone"))); @@ -262,9 +278,9 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz catch (Throwable t) { throw new MirLocalizerFailure(t); } - }; + } - protected abstract boolean isAvailable(Entity anEntity) throws StorageObjectFailure ; + protected abstract boolean isAvailable(Entity anEntity) throws DatabaseFailure ; protected abstract void performModification(EntityAdapter aUser, Entity anEntity) throws MirLocalizerExc, MirLocalizerFailure ; } @@ -277,17 +293,17 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz this(aName, true); } - protected boolean isAvailable(Entity anEntity) throws StorageObjectFailure { + protected boolean isAvailable(Entity anEntity) throws DatabaseFailure { return anEntity instanceof EntityComment && isAvailable((EntityComment) anEntity); } - protected void performModification(EntityAdapter aUser, Entity anEntity) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, Entity anEntity) throws DatabaseFailure { performModification(aUser, (EntityComment) anEntity); DatabaseContent.getInstance().setUnproduced("id="+anEntity.getFieldValue("to_media")); - }; + } - protected abstract boolean isAvailable(EntityComment aComment) throws StorageObjectFailure ; - protected abstract void performModification(EntityAdapter aUser, EntityComment aComment) throws StorageObjectFailure ; + protected abstract boolean isAvailable(EntityComment aComment) throws DatabaseFailure ; + protected abstract void performModification(EntityAdapter aUser, EntityComment aComment) throws DatabaseFailure ; } public static abstract class ArticleModifyingOperation extends EntityModifyingOperation { @@ -295,17 +311,17 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz super(aName, aLogOperation); } - protected boolean isAvailable(Entity anEntity) throws StorageObjectFailure { + protected boolean isAvailable(Entity anEntity) throws DatabaseFailure { return anEntity instanceof EntityContent && isAvailable((EntityContent) anEntity); } - protected void performModification(EntityAdapter aUser, Entity anEntity) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, Entity anEntity) throws DatabaseFailure { performModification(aUser, (EntityContent) anEntity); anEntity.setFieldValue("is_produced", "0"); - }; + } - protected abstract boolean isAvailable(EntityContent anArticle) throws StorageObjectFailure ; - protected abstract void performModification(EntityAdapter aUser, EntityContent anArticle) throws StorageObjectFailure ; + protected abstract boolean isAvailable(EntityContent anArticle) throws DatabaseFailure ; + protected abstract void performModification(EntityAdapter aUser, EntityContent anArticle) throws DatabaseFailure ; } protected static class SetCommentFieldOperation extends CommentModifyingOperation { @@ -323,7 +339,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return true; } - protected void performModification(EntityAdapter aUser, EntityComment aComment) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityComment aComment) throws DatabaseFailure { aComment.setFieldValue(field, value); } } @@ -344,7 +360,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return true; } - protected void performModification(EntityAdapter aUser, EntityComment aComment) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityComment aComment) throws DatabaseFailure { Iterator i = values.entrySet().iterator(); while (i.hasNext()) { @@ -370,7 +386,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return aComment.getFieldValue(field) == null || !aComment.getFieldValue(field).equals(value); } - protected void performModification(EntityAdapter aUser, EntityComment aComment) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityComment aComment) throws DatabaseFailure { aComment.setFieldValue(field, value); } } @@ -390,7 +406,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return true; } - protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws DatabaseFailure { anArticle.setFieldValue(field, value); } } @@ -410,7 +426,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return anArticle.getFieldValue(field) == null || !anArticle.getFieldValue(field).equals(value); } - protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws DatabaseFailure { anArticle.setFieldValue(field, value); } } @@ -435,8 +451,43 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return anArticle.getFieldValue(field) != null && oldValues.contains(anArticle.getFieldValue(field)); } - protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws StorageObjectFailure { + protected void performModification(EntityAdapter aUser, EntityContent anArticle) throws DatabaseFailure { 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); + } + } + } }