--- /dev/null
+import java.util.Iterator;
+import java.util.List;
+import java.lang.Math;
+import java.util.ArrayList;
+
+import mir.entity.adapter.EntityIteratorAdapter;
+import mir.session.Request;
+import mir.session.Response;
+import mir.session.Session;
+import mir.session.SessionExc;
+import mir.session.SessionFailure;
+import mir.session.ValidationError;
+import mir.util.CachingRewindableIterator;
+import mir.util.JDBCStringRoutines;
+import mircoders.entity.EntityContent;
+import mircoders.global.MirGlobal;
+import mircoders.localizer.basic.MirBasicArticlePostingHandler;
+import mircoders.storage.DatabaseContentToTopics;
+import mir.entity.adapter.EntityAdapterEngine;
+
+/**
+ *
+ * <p>Title: Experimental session handler for article postings </p>
+ * <p>Description: </p>
+ * <p>Copyright: Copyright (c) 2003</p>
+ * <p>Company: </p>
+ * @author Zapata
+ * @version 1.0
+ */
+
+public class NYCArticlePostingHandler extends MirBasicArticlePostingHandler {
+ protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
+ Object language = null;
+
+ try {
+ super.initializeResponseData(aRequest, aSession, aResponse);
+ aResponse.setResponseValue("to_location", aRequest.getParameters("to_location"));
+ aResponse.setResponseValue("to_category", aRequest.getParameters("to_category"));
+ aResponse.setResponseValue("to_subcategory", aRequest.getParameters("to_subcategory"));
+ aResponse.setResponseValue("to_content", aRequest.getParameters("to_content"));
+
+
+ aResponse.setResponseValue("locations",
+ EntityAdapterEngine.retrieveAdapterList(
+ MirGlobal.localizer().dataModel().adapterModel(),
+ "topic", "archiv_url='Location'", "title", -1, 0));
+ aResponse.setResponseValue("categories",
+ EntityAdapterEngine.retrieveAdapterList(
+ MirGlobal.localizer().dataModel().adapterModel(),
+ "topic", "archiv_url='Category'", "title", -1, 0));
+ aResponse.setResponseValue("subcategories",
+ EntityAdapterEngine.retrieveAdapterList(
+ MirGlobal.localizer().dataModel().adapterModel(),
+ "topic", "archiv_url='Subcategory'", "title", -1, 0));
+ aResponse.setResponseValue("contents",
+ EntityAdapterEngine.retrieveAdapterList(
+ MirGlobal.localizer().dataModel().adapterModel(),
+ "topic", "archiv_url='Content'", "title", -1, 0));
+ }
+ catch (Throwable t) {
+ throw new SessionFailure(t);
+ }
+ }
+
+ public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure {
+ super.validate(aResults, aRequest, aSession);
+
+ try {
+
+ List categories = aRequest.getParameters("to_category");
+ if (categories!=null && categories.size()>2)
+ aResults.add(new ValidationError("to_category", "validationerror.toomany"));
+
+ List subCategories = aRequest.getParameters("to_subcategory");
+ if (subCategories!=null && subCategories.size()>5)
+ aResults.add(new ValidationError("to_subcategory", "validationerror.toomany"));
+
+ }
+
+ catch (Throwable t) {
+ throw new SessionFailure(t);
+ }
+ }
+
+ public void finalizeArticle(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
+ super.finalizeArticle(aRequest, aSession, aContent);
+
+ //actually turn on html if its selected
+ aContent.setFieldValue("is_html", aRequest.getParameter("is_html"));
+ }
+
+}
--- /dev/null
+import mir.entity.adapter.EntityAdapterDefinition;
+import mircoders.localizer.MirLocalizerExc;
+import mircoders.localizer.MirLocalizerFailure;
+import mircoders.localizer.basic.MirBasicDataModelLocalizer;
+
+public class NYCDataModelLocalizer extends MirBasicDataModelLocalizer {
+
+
+ protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure, MirLocalizerExc {
+ super.constructContentAdapterDefinition(anEntityAdapterDefinition);
+
+ anEntityAdapterDefinition.addCalculatedField("to_category", new ContentToTopicsField("archiv_url='Category'"));
+ anEntityAdapterDefinition.addCalculatedField("to_location", new ContentToTopicsField("archiv_url='Location'"));
+ anEntityAdapterDefinition.addCalculatedField("to_content", new ContentToTopicsField("archiv_url='Content'"));
+ anEntityAdapterDefinition.addCalculatedField("to_subcategory", new ContentToTopicsField("archiv_url='Subcategory'"));
+
+
+ }
+
+}