Weitere Modifikationen AtoZ, noch nicht funktionsfähig.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1621 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2012-04-29 07:28:52 +00:00
parent 0ad0fbd6ff
commit 718e988884
40 changed files with 615 additions and 218 deletions

View File

@ -26,6 +26,10 @@
</ccm:contacts> </ccm:contacts>
<ccm:description> <ccm:description>
The ccm-atoz-siteproxy package is an extension for the ccm-atoz package in
combination with the ccm-cms-types-siteproxy package. It enables the
ccm-atoz package to deal with siteproxy content.
The ccm-atoz package enables a site to present all it's content in The ccm-atoz package enables a site to present all it's content in
alphabetical order as an additional service to it's users. Usually the alphabetical order as an additional service to it's users. Usually the
theme provides a link to the page as part of its static elements. theme provides a link to the page as part of its static elements.

View File

@ -15,11 +15,12 @@
// License along with this library; if not, write to the Free Software // License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
model com.arsdigita.atoz; model com.arsdigita.atoz.siteproxy;
import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
object type AtoZSiteProxyProvider extends AtoZProvider { object type SiteProxyProvider extends AtoZProvider {
Category[1..1] category = join atoz_siteproxy_provider.category_id to Category[1..1] category = join atoz_siteproxy_provider.category_id to
cat_categories.category_id; cat_categories.category_id;
reference key (atoz_siteproxy_provider.provider_id); reference key (atoz_siteproxy_provider.provider_id);

View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<xrd:adapters xmlns:xrd="http://xmlns.redhat.com/schemas/waf/xml-renderer-rules"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rhea.redhat.com/schemas/waf/xml-renderer-rules xml-renderer-rules.xsd">
<!--
<xrd:context name="com.arsdigita.atoz.ui.admin.ProviderList">
<xrd:adapter objectType="com.arsdigita.atoz.AtoZProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
</xrd:context>
-->
<xrd:context name="com.arsdigita.atoz.ui.admin.ProviderDetails">
<!--
<xrd:adapter objectType="com.arsdigita.atoz.CategoryProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
<xrd:property name="/object/rootUseContext/id"/>
<xrd:property name="/object/rootUseContext/rootCategory/id"/>
<xrd:property name="/object/rootUseContext/rootCategory/objectType"/>
<xrd:property name="/object/rootUseContext/rootCategory/defaultDomainClass"/>
<xrd:property name="/object/rootUseContext/rootCategory/defaultAncestors"/>
</xrd:attributes>
<xrd:associations rule="include">
<xrd:property name="/object/rootUseContext"/>
<xrd:property name="/object/rootUseContext/rootCategory"/>
</xrd:associations>
</xrd:adapter>
-->
<!--
<xrd:adapter objectType="com.arsdigita.london.atoz.terms.DomainProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
-->
<!--
<xrd:adapter objectType="com.arsdigita.atoz.ItemProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
<xrd:property name="/object/category/id"/>
<xrd:property name="/object/category/objectType"/>
<xrd:property name="/object/category/defaultDomainClass"/>
<xrd:property name="/object/category/defaultAncestors"/>
</xrd:attributes>
<xrd:associations rule="include">
<xrd:property name="/object/category"/>
</xrd:associations>
</xrd:adapter>
-->
<xrd:adapter objectType="com.arsdigita.atoz.siteproxy.SiteProxyProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
<xrd:property name="/object/category/id"/>
<xrd:property name="/object/category/objectType"/>
<xrd:property name="/object/category/defaultDomainClass"/>
<xrd:property name="/object/category/defaultAncestors"/>
</xrd:attributes>
<xrd:associations rule="include">
<xrd:property name="/object/category"/>
</xrd:associations>
</xrd:adapter>
</xrd:context>
<!--
<xrd:context name="com.arsdigita.atoz.ui.admin.CategoryProviderBlackList">
<xrd:adapter objectType="com.arsdigita.categorization.Category">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
</xrd:context>
<xrd:context name="com.arsdigita.atoz.ui.admin.CategoryProviderContentTypeBlacklist">
<xrd:adapter objectType="com.arsdigita.cms.ContentType">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
</xrd:context>
<xrd:context name="com.arsdigita.atoz.ui.admin.CategoryProviderAliasList">
<xrd:adapter objectType="com.arsdigita.categorization.Category">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.CategoryAlias">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
</xrd:attributes>
</xrd:adapter>
</xrd:context>
-->
<!--
<xrd:context name="com.arsdigita.atoz.ui.admin.ItemProviderAliasList">
<xrd:adapter objectType="com.arsdigita.cms.ContentItem">
<xrd:attributes rule="exclude"> -->
<!--
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
-->
<!-- </xrd:attributes>
</xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.ItemAlias">
<xrd:attributes rule="exclude"> -->
<!--
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
<xrd:property name="/object/defaultDomainClass"/>
<xrd:property name="/object/displayName"/>
-->
<!-- </xrd:attributes>
</xrd:adapter>
</xrd:context> -->
</xrd:adapters>

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- module ccm-atoz - servlet declarations BEGIN -->
<servlet>
<servlet-name>atoz-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-atoz</param-value>
</init-param>
</servlet>
<!-- module ccm-atoz - servlet declarations END -->
<!-- module ccm-atoz - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>atoz-files</servlet-name>
<url-pattern>/ccm-atoz/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-atoz - servlet mappings END -->
</web-app>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<config class="com.arsdigita.atoz.siteproxy.Config"
storage="ccm-atoz/siteproxy.properties"/>
</registry>

View File

@ -0,0 +1,22 @@
<load>
<requires>
<table name="inits"/>
<table name="acs_objects"/>
<initializer class="com.arsdigita.core.Initializer"/>
<initializer class="com.arsdigita.atoz.Initializer"/>
</requires>
<provides>
<table name="atoz_provider"/>
<initializer class="com.arsdigita.atoz.siteproxy.Initializer"/>
</provides>
<scripts>
<schema directory="ccm-atoz-siteproxy"/>
<!--
<data class="com.arsdigita.atoz.siteproxy.Loader"/>
-->
</scripts>
</load>

View File

@ -0,0 +1,8 @@
<upgrade>
<!--
<version from="x.y.z" to="x.y.a">
<!-- AtoZ SiteProxy ........ -->
<script sql="ccm-atoz-siteproxy/upgrade/::database::-x.y.z-x.y.a.sql"/>
</version>
-->
</upgrade>

View File

@ -0,0 +1,90 @@
/*
* Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.arsdigita.atoz.siteproxy;
import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.ClassParameter;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.ResourceParameter;
import com.arsdigita.categorization.ui.ApplicationCategoryPicker;
import java.io.InputStream;
import org.apache.log4j.Logger;
/**
* This is the configuration file for the AtoZ application
*/
public class Config extends AbstractConfig {
/** A logger instance to assist debugging. */
private static final Logger s_log = Logger.getLogger(Config.class);
/** Singelton config object. */
private static Config s_conf;
/**
* Gain a Config object.
*
* Singelton pattern, don't instantiate a config object using the
* constructor directly!
* @return
*/
public static synchronized Config getConfig() {
if (s_conf == null) {
s_conf = new Config();
s_conf.load();
}
return s_conf;
}
// ///////////////////////////////////////////////////////////////////////
//
// set of configuration parameters
/** Rules for configuring information in generated XML */
private Parameter m_adapters = new ResourceParameter
("com.arsdigita.atoz.siteproxy.traversal_adapters",
Parameter.REQUIRED,
"/WEB-INF/resources/atoz-siteproxy-adapters.xml");
/**
* Constructor
*/
public Config() {
register(m_adapters);
loadInfo();
}
/**
* Provides access to the traversal adapter as stream.
* @return
*/
InputStream getTraversalAdapters() {
return (InputStream)get(m_adapters);
}
}

View File

@ -0,0 +1,4 @@
com.arsdigita.atoz.siteproxy.traversal_adapters.title=XML renderer rules
com.arsdigita.atoz.siteproxy.traversal_adapters.purpose=Rules for configuring information in generated XML
com.arsdigita.atoz.siteproxy.traversal_adapters.format=[string]
com.arsdigita.atoz.siteproxy.traversal_adapters.example=/WEB-INF/resources/atoz-siteproxy-adapters.xml

View File

@ -22,8 +22,10 @@ import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZProviderType; import com.arsdigita.atoz.AtoZProviderType;
import com.arsdigita.atoz.siteproxy.ui.admin.SiteProxyProviderAdmin; import com.arsdigita.atoz.siteproxy.ui.admin.SiteProxyProviderAdmin;
import com.arsdigita.atoz.siteproxy.ui.admin.SiteProxyProviderForm; import com.arsdigita.atoz.siteproxy.ui.admin.SiteProxyProviderForm;
import com.arsdigita.domain.xml.TraversalHandler;
import com.arsdigita.runtime.CompoundInitializer; import com.arsdigita.runtime.CompoundInitializer;
import com.arsdigita.runtime.DomainInitEvent; import com.arsdigita.runtime.DomainInitEvent;
import com.arsdigita.xml.XML;
/** /**
* *
@ -39,10 +41,14 @@ public class Initializer extends CompoundInitializer {
public void init(DomainInitEvent evt) { public void init(DomainInitEvent evt) {
super.init(evt); super.init(evt);
XML.parse(Config.getConfig().getTraversalAdapters(),
new TraversalHandler());
AtoZ.registerProviderType( AtoZ.registerProviderType(
new AtoZProviderType("SiteProxy Provider", new AtoZProviderType("SiteProxy Provider",
"Provides a SiteProxy A-Z", "Provides a SiteProxy A-Z",
AtoZSiteProxyProvider.class, SiteProxyProvider.class,
SiteProxyProviderForm.class, SiteProxyProviderForm.class,
SiteProxyProviderAdmin.class)); SiteProxyProviderAdmin.class));

View File

@ -22,10 +22,6 @@ import com.arsdigita.atoz.AtoZAtomicEntry;
import com.arsdigita.atoz.AtoZCompoundEntry; import com.arsdigita.atoz.AtoZCompoundEntry;
import com.arsdigita.atoz.AtoZEntry; import com.arsdigita.atoz.AtoZEntry;
import com.arsdigita.atoz.AtoZProvider; import com.arsdigita.atoz.AtoZProvider;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;
import com.arsdigita.cms.contenttypes.SiteProxy; import com.arsdigita.cms.contenttypes.SiteProxy;
import com.arsdigita.cms.dispatcher.SiteProxyPanel; import com.arsdigita.cms.dispatcher.SiteProxyPanel;
@ -37,10 +33,19 @@ import com.arsdigita.web.URL;
import com.arsdigita.web.Web; import com.arsdigita.web.Web;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl { import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
*
*
*/
public class SiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/** /**
* Compound Entry for mathched Categories * Compound Entry for matched Categories
* *
*/ */
private class AtoZCategoriesCompoundEntry implements AtoZCompoundEntry { private class AtoZCategoriesCompoundEntry implements AtoZCompoundEntry {
@ -62,7 +67,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see com.arsdigita.london.atoz.AtoZCompoundEntry#getEntries() * @see com.arsdigita.atoz.AtoZCompoundEntry#getEntries()
*/ */
public AtoZEntry[] getEntries() { public AtoZEntry[] getEntries() {
return (AtoZEntry[]) entries.toArray(new AtoZEntry[entries.size()]); return (AtoZEntry[]) entries.toArray(new AtoZEntry[entries.size()]);
@ -71,7 +76,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see com.arsdigita.london.atoz.AtoZEntry#getTitle() * @see com.arsdigita.atoz.AtoZEntry#getTitle()
*/ */
public String getTitle() { public String getTitle() {
return m_title; return m_title;
@ -80,7 +85,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see com.arsdigita.london.atoz.AtoZEntry#getDescription() * @see com.arsdigita.atoz.AtoZEntry#getDescription()
*/ */
public String getDescription() { public String getDescription() {
return m_description; return m_description;
@ -88,7 +93,10 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
} }
private class AtoZSiteProxyAtomicEntry implements AtoZAtomicEntry { /**
*
*/
private class SiteProxyAtomicEntry implements AtoZAtomicEntry {
private static final String SITE_PROXY_PANEL_NAME = "cms:siteProxyPanel"; private static final String SITE_PROXY_PANEL_NAME = "cms:siteProxyPanel";
@ -98,7 +106,14 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
private String m_url; private String m_url;
public AtoZSiteProxyAtomicEntry(OID oid, String title, String url) { /**
* Constructor
*
* @param oid
* @param title
* @param url
*/
public SiteProxyAtomicEntry(OID oid, String title, String url) {
m_oid = oid; m_oid = oid;
m_title = title; m_title = title;
m_url = url; m_url = url;
@ -127,7 +142,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
return null; return null;
Element child = new Element( Element child = new Element(
AtoZSiteProxyAtomicEntry.SITE_PROXY_PANEL_NAME, SiteProxyAtomicEntry.SITE_PROXY_PANEL_NAME,
CMS.CMS_XML_NS); CMS.CMS_XML_NS);
child.addAttribute("title", m_title); child.addAttribute("title", m_title);
child.addAttribute("oid", m_oid.toString()); child.addAttribute("oid", m_oid.toString());
@ -145,12 +160,12 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
} }
} }
public AtoZSiteProxyGenerator(AtoZProvider provider) { public SiteProxyGenerator(AtoZProvider provider) {
super(provider); super(provider);
} }
public AtoZEntry[] getEntries(String letter) { public AtoZEntry[] getEntries(String letter) {
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) getProvider(); SiteProxyProvider siteProxyProvider = (SiteProxyProvider) getProvider();
DataQuery entries = siteProxyProvider.getAtomicEntries(letter); DataQuery entries = siteProxyProvider.getAtomicEntries(letter);
@ -176,7 +191,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
} }
/* create atomic entry */ /* create atomic entry */
AtoZSiteProxyAtomicEntry atomicEntry = new AtoZSiteProxyAtomicEntry( SiteProxyAtomicEntry atomicEntry = new SiteProxyAtomicEntry(
new OID(SiteProxy.BASE_DATA_OBJECT_TYPE, entries.get("id")), new OID(SiteProxy.BASE_DATA_OBJECT_TYPE, entries.get("id")),
(String) entries.get("title"), (String) entries.get("url")); (String) entries.get("title"), (String) entries.get("url"));

View File

@ -9,37 +9,40 @@ import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.SessionManager;
import com.arsdigita.util.Assert; import com.arsdigita.util.Assert;
public class AtoZSiteProxyProvider extends AtoZProvider { public class SiteProxyProvider extends AtoZProvider {
public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.london.atoz.AtoZSiteProxyProvider"; public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.atoz.siteproxy.SiteProxyProvider";
public static final String CATEGORY = "category"; public static final String CATEGORY = "category";
private static final String ATOMIC_SITEPROXY_ENTRIES_QUERY = "com.arsdigita.london.atoz.getAtomicSiteProxyEntries"; private static final String ATOMIC_SITEPROXY_ENTRIES_QUERY =
"com.arsdigita.atoz.getAtomicSiteProxyEntries";
public AtoZSiteProxyProvider() { public SiteProxyProvider() {
this(BASE_DATA_OBJECT_TYPE); this(BASE_DATA_OBJECT_TYPE);
} }
public AtoZSiteProxyProvider(String type) { public SiteProxyProvider(String type) {
super(type); super(type);
} }
public AtoZSiteProxyProvider(DataObject obj) { public SiteProxyProvider(DataObject obj) {
super(obj); super(obj);
} }
public AtoZSiteProxyProvider(OID oid) { public SiteProxyProvider(OID oid) {
super(oid); super(oid);
} }
public AtoZGenerator getGenerator() { public AtoZGenerator getGenerator() {
return new AtoZSiteProxyGenerator(this); return new SiteProxyGenerator(this);
} }
public static AtoZSiteProxyProvider create(String title, public static SiteProxyProvider create(String title,
String description, Category category) { String description,
AtoZSiteProxyProvider siteProxyProvider = new AtoZSiteProxyProvider(); Category category) {
SiteProxyProvider siteProxyProvider = new SiteProxyProvider();
siteProxyProvider.setup(title, description, category); siteProxyProvider.setup(title, description, category);
return siteProxyProvider; return siteProxyProvider;
} }

View File

@ -25,7 +25,7 @@ import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZProvider; import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.atoz.siteproxy.AtoZSiteProxyProvider; import com.arsdigita.atoz.siteproxy.SiteProxyProvider;
import com.arsdigita.atoz.ui.admin.ProviderForm; import com.arsdigita.atoz.ui.admin.ProviderForm;
import com.arsdigita.categorization.ui.CategoryPicker; import com.arsdigita.categorization.ui.CategoryPicker;
import com.arsdigita.util.Classes; import com.arsdigita.util.Classes;
@ -35,7 +35,7 @@ public class SiteProxyProviderForm extends ProviderForm {
private CategoryPicker m_category_picker; private CategoryPicker m_category_picker;
public SiteProxyProviderForm(ACSObjectSelectionModel provider) { public SiteProxyProviderForm(ACSObjectSelectionModel provider) {
super("siteProxyProvider", AtoZSiteProxyProvider.class, provider); super("siteProxyProvider", SiteProxyProvider.class, provider);
setMetaDataAttribute("title", "SiteProxy provider properties"); setMetaDataAttribute("title", "SiteProxy provider properties");
} }
@ -52,7 +52,7 @@ public class SiteProxyProviderForm extends ProviderForm {
protected void initWidgets(PageState state, AtoZProvider provider) { protected void initWidgets(PageState state, AtoZProvider provider) {
super.initWidgets(state, provider); super.initWidgets(state, provider);
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) provider; SiteProxyProvider siteProxyProvider = (SiteProxyProvider) provider;
if (siteProxyProvider != null) if (siteProxyProvider != null)
m_category_picker.setCategory(state, siteProxyProvider m_category_picker.setCategory(state, siteProxyProvider
.getCategory()); .getCategory());
@ -61,7 +61,7 @@ public class SiteProxyProviderForm extends ProviderForm {
protected void processWidgets(PageState state, AtoZProvider provider) { protected void processWidgets(PageState state, AtoZProvider provider) {
super.processWidgets(state, provider); super.processWidgets(state, provider);
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) provider; SiteProxyProvider siteProxyProvider = (SiteProxyProvider) provider;
siteProxyProvider.setCategory(m_category_picker.getCategory(state)); siteProxyProvider.setCategory(m_category_picker.getCategory(state));
} }

View File

@ -20,13 +20,13 @@ model com.arsdigita.atoz;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.cms.ContentType; import com.arsdigita.cms.ContentType;
object type AtoZCategoryProvider extends AtoZProvider { object type CategoryProvider extends AtoZProvider {
Boolean[1..1] isCompound = atoz_cat_provider.is_compound BIT; Boolean[1..1] isCompound = atoz_cat_provider.is_compound BIT;
reference key (atoz_cat_provider.provider_id); reference key (atoz_cat_provider.provider_id);
} }
object type AtoZCategoryAlias { object type CategoryAlias {
BigDecimal[1..1] id = atoz_cat_aliases.object_id; BigDecimal[1..1] id = atoz_cat_aliases.object_id;
Category[1..1] category = Category[1..1] category =
@ -39,7 +39,7 @@ object type AtoZCategoryAlias {
} }
association { association {
AtoZCategoryProvider[0..n] atozProvider1 = join cat_categories.category_id CategoryProvider[0..n] atozProvider1 = join cat_categories.category_id
to atoz_cat_blacklist_map.category_id, to atoz_cat_blacklist_map.category_id,
join atoz_cat_blacklist_map.provider_id join atoz_cat_blacklist_map.provider_id
to atoz_cat_provider.provider_id; to atoz_cat_provider.provider_id;
@ -50,16 +50,16 @@ association {
} }
association { association {
AtoZCategoryProvider[1..1] provider = CategoryProvider[1..1] provider =
join atoz_cat_aliases.provider_id join atoz_cat_aliases.provider_id
to atoz_cat_provider.provider_id; to atoz_cat_provider.provider_id;
component AtoZCategoryAlias[0..n] aliases = component CategoryAlias[0..n] aliases =
join atoz_cat_provider.provider_id join atoz_cat_provider.provider_id
to atoz_cat_aliases.provider_id; to atoz_cat_aliases.provider_id;
} }
association { association {
AtoZCategoryProvider[0..n] atozProvider3 = join content_types.type_id CategoryProvider[0..n] atozProvider3 = join content_types.type_id
to atoz_cat_ct_blacklist_map.type_id, to atoz_cat_ct_blacklist_map.type_id,
join atoz_cat_ct_blacklist_map.provider_id join atoz_cat_ct_blacklist_map.provider_id
to atoz_cat_provider.provider_id; to atoz_cat_provider.provider_id;

View File

@ -20,8 +20,8 @@ model com.arsdigita.atoz;
import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentItem;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.kernel.ACSObject;
object type AtoZItemAlias extends ACSObject { object type ItemAlias extends ACSObject {
AtoZItemProvider[1..1] atozItemProvider = join atoz_item_aliases.provider_id ItemProvider[1..1] itemProvider = join atoz_item_aliases.provider_id
to atoz_item_provider.provider_id; to atoz_item_provider.provider_id;
ContentItem[1..1] contentItem = join atoz_item_aliases.item_id ContentItem[1..1] contentItem = join atoz_item_aliases.item_id
to cms_items.item_id; to cms_items.item_id;

View File

@ -19,7 +19,7 @@ model com.arsdigita.atoz;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
object type AtoZItemProvider extends AtoZProvider { object type ItemProvider extends AtoZProvider {
Category[1..1] category = join atoz_item_provider.category_id to Category[1..1] category = join atoz_item_provider.category_id to
cat_categories.category_id; cat_categories.category_id;
String[0..1] loadPaths = atoz_item_provider.load_paths VARCHAR(200); String[0..1] loadPaths = atoz_item_provider.load_paths VARCHAR(200);

View File

@ -14,9 +14,10 @@
</xrd:adapter> </xrd:adapter>
</xrd:context> </xrd:context>
<xrd:context name="com.arsdigita.atoz.ui.admin.ProviderDetails"> <xrd:context name="com.arsdigita.atoz.ui.admin.ProviderDetails">
<xrd:adapter objectType="com.arsdigita.atoz.AtoZCategoryProvider"> <xrd:adapter objectType="com.arsdigita.atoz.CategoryProvider">
<xrd:attributes rule="exclude"> <xrd:attributes rule="exclude">
<xrd:property name="/object/id"/> <xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/> <xrd:property name="/object/defaultDomainClass"/>
@ -42,7 +43,7 @@
</xrd:attributes> </xrd:attributes>
</xrd:adapter> </xrd:adapter>
--> -->
<xrd:adapter objectType="com.arsdigita.atoz.AtoZItemProvider"> <xrd:adapter objectType="com.arsdigita.atoz.ItemProvider">
<xrd:attributes rule="exclude"> <xrd:attributes rule="exclude">
<xrd:property name="/object/id"/> <xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/> <xrd:property name="/object/defaultDomainClass"/>
@ -106,7 +107,7 @@
</xrd:attributes> </xrd:attributes>
</xrd:adapter> </xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.AtoZCategoryAlias"> <xrd:adapter objectType="com.arsdigita.atoz.CategoryAlias">
<xrd:attributes rule="exclude"> <xrd:attributes rule="exclude">
<xrd:property name="/object/id"/> <xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/> <xrd:property name="/object/objectType"/>
@ -128,7 +129,7 @@
</xrd:attributes> </xrd:attributes>
</xrd:adapter> </xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.AtoZItemAlias"> <xrd:adapter objectType="com.arsdigita.atoz.ItemAlias">
<xrd:attributes rule="exclude"> <xrd:attributes rule="exclude">
<!-- <!--
<xrd:property name="/object/id"/> <xrd:property name="/object/id"/>

View File

@ -24,7 +24,7 @@ import com.arsdigita.util.parameter.ClassParameter;
import com.arsdigita.util.parameter.Parameter; import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.ResourceParameter; import com.arsdigita.util.parameter.ResourceParameter;
import com.arsdigita.london.util.ui.ApplicationCategoryPicker; import com.arsdigita.categorization.ui.ApplicationCategoryPicker;
import java.io.InputStream; import java.io.InputStream;
@ -86,6 +86,9 @@ public class AtoZConfig extends AbstractConfig {
Parameter.OPTIONAL, Parameter.OPTIONAL,
Boolean.FALSE); Boolean.FALSE);
/**
* Constructor
*/
public AtoZConfig() { public AtoZConfig() {
register(m_adapters); register(m_adapters);

View File

@ -1,19 +1,19 @@
com.arsdigita.london.atoz.traversal_adapters.title=XML renderer rules com.arsdigita.atoz.traversal_adapters.title=XML renderer rules
com.arsdigita.london.atoz.traversal_adapters.purpose=Rules for configuring information in generated XML com.arsdigita.atoz.traversal_adapters.purpose=Rules for configuring information in generated XML
com.arsdigita.london.atoz.traversal_adapters.format=[string] com.arsdigita.atoz.traversal_adapters.format=[string]
com.arsdigita.london.atoz.traversal_adapters.example=/WEB-INF/resources/atoz-adapters.xml com.arsdigita.atoz.traversal_adapters.example=/WEB-INF/resources/atoz-adapters.xml
com.arsdigita.london.atoz.root_category_picker.title=Root Category Picker com.arsdigita.atoz.root_category_picker.title=Root Category Picker
com.arsdigita.london.atoz.root_category_picker.purpose=The UI widget for the Root Category Picker com.arsdigita.atoz.root_category_picker.purpose=The UI widget for the Root Category Picker
com.arsdigita.london.atoz.root_category_picker.format=[class] com.arsdigita.atoz.root_category_picker.format=[class]
com.arsdigita.london.atoz.root_category_picker.example=com.arsdigita.london.util.ui.ApplicationCategoryPicker com.arsdigita.atoz.root_category_picker.example=com.arsdigita.london.util.ui.ApplicationCategoryPicker
com.arsdigita.london.atoz.use_subsite_specific_navigation_category.title=Make AtoZ use subsite-specific navigation categories com.arsdigita.atoz.use_subsite_specific_navigation_category.title=Make AtoZ use subsite-specific navigation categories
com.arsdigita.london.atoz.use_subsite_specific_navigation_category.purpose=Set this to yes, and the AtoZ will use the subsite-specific navigation categories if you define *any* CategoryProvider com.arsdigita.atoz.use_subsite_specific_navigation_category.purpose=Set this to yes, and the AtoZ will use the subsite-specific navigation categories if you define *any* CategoryProvider
com.arsdigita.london.atoz.use_subsite_specific_navigation_category.format=[boolean] com.arsdigita.atoz.use_subsite_specific_navigation_category.format=[boolean]
com.arsdigita.london.atoz.use_subsite_specific_navigation_category.example=true com.arsdigita.atoz.use_subsite_specific_navigation_category.example=true
com.arsdigita.london.atoz.filterCategoryProviders.title=To filter out category without published items com.arsdigita.atoz.filterCategoryProviders.title=To filter out category without published items
com.arsdigita.london.atoz.filterCategoryProviders.purpose=if TRUE, the AtoZ category providers will only return Categories with published items com.arsdigita.atoz.filterCategoryProviders.purpose=if TRUE, the AtoZ category providers will only return Categories with published items
com.arsdigita.london.atoz.filterCategoryProviders.format=[boolean] com.arsdigita.atoz.filterCategoryProviders.format=[boolean]
com.arsdigita.london.atoz.filterCategoryProviders.example=false com.arsdigita.atoz.filterCategoryProviders.example=false

View File

@ -18,11 +18,6 @@
package com.arsdigita.atoz; package com.arsdigita.atoz;
import java.math.BigDecimal;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.db.Sequences; import com.arsdigita.db.Sequences;
import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObject;
@ -30,15 +25,22 @@ import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.PersistenceException; import com.arsdigita.persistence.PersistenceException;
import java.math.BigDecimal;
import java.sql.SQLException;
import org.apache.log4j.Logger;
/** /**
* *
* *
*/ */
public class AtoZCategoryAlias extends DomainObject { public class CategoryAlias extends DomainObject {
private static final Logger s_log = Logger.getLogger(AtoZCategoryAlias.class);
/** Creates a s_logging category with name = to the full name of class */
private static final Logger s_log = Logger.getLogger(CategoryAlias.class);
public static final String BASE_DATA_OBJECT_TYPE = public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.atoz.AtoZCategoryAlias"; "com.arsdigita.atoz.CategoryAlias";
public static final String ID = "id"; public static final String ID = "id";
public static final String PROVIDER = "provider"; public static final String PROVIDER = "provider";
@ -46,19 +48,19 @@ public class AtoZCategoryAlias extends DomainObject {
public static final String LETTER = "letter"; public static final String LETTER = "letter";
public static final String TITLE = "title"; public static final String TITLE = "title";
public AtoZCategoryAlias() { public CategoryAlias() {
this(BASE_DATA_OBJECT_TYPE); this(BASE_DATA_OBJECT_TYPE);
} }
protected AtoZCategoryAlias(String type) { protected CategoryAlias(String type) {
super(type); super(type);
} }
public AtoZCategoryAlias(DataObject obj) { public CategoryAlias(DataObject obj) {
super(obj); super(obj);
} }
public AtoZCategoryAlias(OID oid) { public CategoryAlias(OID oid) {
super(oid); super(oid);
} }
@ -71,6 +73,7 @@ public class AtoZCategoryAlias extends DomainObject {
/** /**
* Called from base class (DomainObject) constructors. * Called from base class (DomainObject) constructors.
*/ */
@Override
protected void initialize() { protected void initialize() {
super.initialize(); super.initialize();
@ -78,8 +81,8 @@ public class AtoZCategoryAlias extends DomainObject {
set(ID, generateID()); set(ID, generateID());
} }
public AtoZCategoryProvider getProvider() { public CategoryProvider getProvider() {
return (AtoZCategoryProvider)get(PROVIDER); return (CategoryProvider)get(PROVIDER);
} }
public Category getCategory() { public Category getCategory() {

View File

@ -33,19 +33,19 @@ import java.util.ArrayList;
* *
* *
*/ */
public class AtoZCategoryGenerator extends AtoZGeneratorAbstractImpl { public class CategoryGenerator extends AtoZGeneratorAbstractImpl {
/** /**
* Constructor * Constructor
* *
* @param provider * @param provider
*/ */
public AtoZCategoryGenerator(AtoZCategoryProvider provider) { public CategoryGenerator(CategoryProvider provider) {
super(provider); super(provider);
} }
public AtoZEntry[] getEntries(String letter) { public AtoZEntry[] getEntries(String letter) {
AtoZCategoryProvider provider = (AtoZCategoryProvider) getProvider(); CategoryProvider provider = (CategoryProvider) getProvider();
DataQuery entries = provider.getAtomicEntries(); DataQuery entries = provider.getAtomicEntries();
Filter f = entries.addFilter("sortKey like :sortKey"); Filter f = entries.addFilter("sortKey like :sortKey");
@ -54,22 +54,28 @@ public class AtoZCategoryGenerator extends AtoZGeneratorAbstractImpl {
List l = new ArrayList(); List l = new ArrayList();
while (entries.next()) { while (entries.next()) {
l.add(new AtoZCategoryAtomicEntry(new OID((String) entries l.add(new CategoryAtomicEntry(new OID(
.get("objectType"), entries.get("id")), (String) entries (String) entries.get("objectType"),
.get("title"), (String) entries.get("description"))); entries.get("id")),
(String) entries.get("title"),
(String) entries.get("description"))
);
} }
return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]); return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]);
} }
private class AtoZCategoryAtomicEntry implements AtoZAtomicEntry { /**
*
*/
private class CategoryAtomicEntry implements AtoZAtomicEntry {
private OID m_oid; private OID m_oid;
private String m_title; private String m_title;
private String m_description; private String m_description;
public AtoZCategoryAtomicEntry(OID oid, String title, String description) { public CategoryAtomicEntry(OID oid, String title, String description) {
m_oid = oid; m_oid = oid;
m_title = title; m_title = title;
m_description = description; m_description = description;

View File

@ -38,14 +38,14 @@ import org.apache.log4j.Logger;
* *
* *
*/ */
public class AtoZCategoryProvider extends AtoZProvider { public class CategoryProvider extends AtoZProvider {
/** Private logger instance to assist debugging. */ /** Private logger instance to assist debugging. */
private static final Logger s_log = private static final Logger s_log =
Logger.getLogger(AtoZCategoryProvider.class); Logger.getLogger(CategoryProvider.class);
public static final String BASE_DATA_OBJECT_TYPE = public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.atoz.AtoZCategoryProvider"; "com.arsdigita.atoz.CategoryProvider";
public static final String IS_COMPOUND = "isCompound"; public static final String IS_COMPOUND = "isCompound";
@ -77,7 +77,7 @@ public class AtoZCategoryProvider extends AtoZProvider {
/** /**
* *
*/ */
public AtoZCategoryProvider() { public CategoryProvider() {
this(BASE_DATA_OBJECT_TYPE); this(BASE_DATA_OBJECT_TYPE);
} }
@ -85,15 +85,15 @@ public class AtoZCategoryProvider extends AtoZProvider {
* Constructor * Constructor
* @param type * @param type
*/ */
protected AtoZCategoryProvider(String type) { protected CategoryProvider(String type) {
super(type); super(type);
} }
public AtoZCategoryProvider(DataObject obj) { public CategoryProvider(DataObject obj) {
super(obj); super(obj);
} }
public AtoZCategoryProvider(OID oid) { public CategoryProvider(OID oid) {
super(oid); super(oid);
} }
@ -104,9 +104,17 @@ public class AtoZCategoryProvider extends AtoZProvider {
super.delete(); super.delete();
} }
public static AtoZCategoryProvider create(String title, String description, /**
*
* @param title
* @param description
* @param isCompound
* @return
*/
public static CategoryProvider create(String title,
String description,
boolean isCompound) { boolean isCompound) {
AtoZCategoryProvider provider = new AtoZCategoryProvider(); CategoryProvider provider = new CategoryProvider();
provider.setup(title, description, isCompound); provider.setup(title, description, isCompound);
return provider; return provider;
} }
@ -125,12 +133,12 @@ public class AtoZCategoryProvider extends AtoZProvider {
} }
public void addAlias(Category cat, String letter, String title) { public void addAlias(Category cat, String letter, String title) {
AtoZCategoryAlias alias = new AtoZCategoryAlias(); CategoryAlias alias = new CategoryAlias();
alias.setup(cat, letter, title); alias.setup(cat, letter, title);
add(ALIASES, alias); add(ALIASES, alias);
} }
public void removeAlias(AtoZCategoryAlias alias) { public void removeAlias(CategoryAlias alias) {
remove(ALIASES, alias); remove(ALIASES, alias);
} }
@ -212,7 +220,7 @@ public class AtoZCategoryProvider extends AtoZProvider {
} }
public AtoZGenerator getGenerator() { public AtoZGenerator getGenerator() {
return new AtoZCategoryGenerator(this); return new CategoryGenerator(this);
} }
public void addContentTypeBlock(ContentType contentType) { public void addContentTypeBlock(ContentType contentType) {

View File

@ -81,10 +81,10 @@ public class Initializer extends CompoundInitializer {
DomainObjectFactory f = evt.getFactory(); DomainObjectFactory f = evt.getFactory();
f.registerInstantiator(AtoZCategoryAlias.BASE_DATA_OBJECT_TYPE, f.registerInstantiator(CategoryAlias.BASE_DATA_OBJECT_TYPE,
new DomainObjectInstantiator() { new DomainObjectInstantiator() {
protected DomainObject doNewInstance(DataObject dataObject) { protected DomainObject doNewInstance(DataObject dataObject) {
return new AtoZCategoryAlias(dataObject); return new CategoryAlias(dataObject);
} }
}); });
@ -96,14 +96,14 @@ public class Initializer extends CompoundInitializer {
AtoZ.registerProviderType( AtoZ.registerProviderType(
new AtoZProviderType("Item Provider", new AtoZProviderType("Item Provider",
"Provides an item A-Z", "Provides an item A-Z",
AtoZItemProvider.class, ItemProvider.class,
ItemProviderForm.class, ItemProviderForm.class,
ItemProviderAdmin.class)); ItemProviderAdmin.class));
AtoZ.registerProviderType( AtoZ.registerProviderType(
new AtoZProviderType("Category Provider", new AtoZProviderType("Category Provider",
"Provides a category A-Z", "Provides a category A-Z",
AtoZCategoryProvider.class, CategoryProvider.class,
CategoryProviderForm.class, CategoryProviderForm.class,
CategoryProviderAdmin.class)); CategoryProviderAdmin.class));

View File

@ -27,40 +27,60 @@ import com.arsdigita.util.Assert;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
public class AtoZItemAlias extends ACSObject { public class ItemAlias extends ACSObject {
private static final Logger s_log = Logger.getLogger(AtoZItemAlias.class); private static final Logger s_log = Logger.getLogger(ItemAlias.class);
public static final String BASE_DATA_OBJECT_TYPE = AtoZItemAlias.class.getName(); public static final String BASE_DATA_OBJECT_TYPE = ItemAlias.class.getName();
public static final String TITLE = "title"; public static final String TITLE = "title";
public static final String LETTER = "letter"; public static final String LETTER = "letter";
public static final String ATOZ_ITEM_PROVIDER = "atozItemProvider"; public static final String ITEM_PROVIDER = "itemProvider";
public static final String CONTENT_ITEM = "contentItem"; public static final String CONTENT_ITEM = "contentItem";
public AtoZItemAlias() { /**
* Constructor
*/
public ItemAlias() {
this(BASE_DATA_OBJECT_TYPE); this(BASE_DATA_OBJECT_TYPE);
} }
public AtoZItemAlias(String type) { /**
* Constructor
*/
public ItemAlias(String type) {
super(type); super(type);
} }
public AtoZItemAlias(DataObject obj) { /**
* Constructor
*/
public ItemAlias(DataObject obj) {
super(obj); super(obj);
} }
public AtoZItemAlias(OID oid) { /**
* Constructor
* @param oid
*/
public ItemAlias(OID oid) {
super(oid); super(oid);
} }
/**
*
* @param title
* @param letter
* @param itemProvider
* @param contentItem
*/
protected void setup(String title, protected void setup(String title,
String letter, String letter,
AtoZItemProvider atozItemProvider, ItemProvider itemProvider,
ContentItem contentItem) { ContentItem contentItem) {
setTitle(title); setTitle(title);
setLetter(letter); setLetter(letter);
setAtoZItemProvider(atozItemProvider); setItemProvider(itemProvider);
setContentItem(contentItem); setContentItem(contentItem);
} }
@ -81,16 +101,16 @@ public class AtoZItemAlias extends ACSObject {
set(LETTER, letter); set(LETTER, letter);
} }
public void setAtoZItemProvider(AtoZItemProvider atozItemProvider) { public void setItemProvider(ItemProvider itemProvider) {
Assert.exists(atozItemProvider, AtoZItemProvider.class); Assert.exists(itemProvider, ItemProvider.class);
set(ATOZ_ITEM_PROVIDER, atozItemProvider ); set(ITEM_PROVIDER, itemProvider );
} }
public AtoZItemProvider getAtoZItemProvider() { public ItemProvider getItemProvider() {
if (get(ATOZ_ITEM_PROVIDER) == null) { if (get(ITEM_PROVIDER) == null) {
return null; return null;
} else { } else {
return new AtoZItemProvider((DataObject) get(ATOZ_ITEM_PROVIDER)); return new ItemProvider((DataObject) get(ITEM_PROVIDER));
} }
} }

View File

@ -34,14 +34,18 @@ import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl { /**
*
*
*/
public class ItemGenerator extends AtoZGeneratorAbstractImpl {
public AtoZItemGenerator(AtoZItemProvider provider) { public ItemGenerator(ItemProvider provider) {
super(provider); super(provider);
} }
public AtoZEntry[] getEntries(String letter) { public AtoZEntry[] getEntries(String letter) {
AtoZItemProvider provider = (AtoZItemProvider) getProvider(); ItemProvider provider = (ItemProvider) getProvider();
DataQuery entries = provider.getAtomicEntries(); DataQuery entries = provider.getAtomicEntries();
Filter f = entries.addFilter("sortKey like :sortKey"); Filter f = entries.addFilter("sortKey like :sortKey");
@ -82,7 +86,7 @@ public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl {
if (title.equals("")) { if (title.equals("")) {
title = live.getDisplayName(); title = live.getDisplayName();
} }
l.add(new AtoZItemAtomicEntry(live.getOID(), title, l.add(new ItemAtomicEntry(live.getOID(), title,
description)); description));
} }
} }
@ -92,14 +96,18 @@ public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl {
return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]); return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]);
} }
private class AtoZItemAtomicEntry implements AtoZAtomicEntry {
/**
*
*/
private class ItemAtomicEntry implements AtoZAtomicEntry {
private OID m_oid; private OID m_oid;
private String m_title; private String m_title;
private String m_description; private String m_description;
public AtoZItemAtomicEntry(OID oid, String title, String description) { public ItemAtomicEntry(OID oid, String title, String description) {
m_oid = oid; m_oid = oid;
m_title = title; m_title = title;
m_description = description; m_description = description;

View File

@ -28,10 +28,14 @@ import com.arsdigita.util.Assert;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
public class AtoZItemProvider extends AtoZProvider { /**
*
*
*/
public class ItemProvider extends AtoZProvider {
public static final String BASE_DATA_OBJECT_TYPE = public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.atoz.AtoZItemProvider"; "com.arsdigita.atoz.ItemProvider";
public static final String CATEGORY = "category"; public static final String CATEGORY = "category";
public static final String LOAD_PATHS = "loadPaths"; public static final String LOAD_PATHS = "loadPaths";
@ -39,26 +43,38 @@ public class AtoZItemProvider extends AtoZProvider {
public static final String ATOMIC_ENTRIES = public static final String ATOMIC_ENTRIES =
"com.arsdigita.atoz.getAtomicItemEntries"; "com.arsdigita.atoz.getAtomicItemEntries";
public AtoZItemProvider() { /**
* Constructor
*/
public ItemProvider() {
this(BASE_DATA_OBJECT_TYPE); this(BASE_DATA_OBJECT_TYPE);
} }
protected AtoZItemProvider(String type) { /**
* Constructor
*/
protected ItemProvider(String type) {
super(type); super(type);
} }
public AtoZItemProvider(DataObject obj) { /**
* Constructor
*/
public ItemProvider(DataObject obj) {
super(obj); super(obj);
} }
public AtoZItemProvider(OID oid) { /**
* Constructor
*/
public ItemProvider(OID oid) {
super(oid); super(oid);
} }
public static AtoZItemProvider create(String title, public static ItemProvider create(String title,
String description, String description,
Category category) { Category category) {
AtoZItemProvider provider = new AtoZItemProvider(); ItemProvider provider = new ItemProvider();
provider.setup(title, description, category); provider.setup(title, description, category);
return provider; return provider;
} }
@ -87,24 +103,40 @@ public class AtoZItemProvider extends AtoZProvider {
} }
} }
/**
*
* @return
*/
public DomainCollection getAliases() { public DomainCollection getAliases() {
DomainCollection aliases = new DomainCollection(SessionManager.getSession() DomainCollection aliases = new DomainCollection(SessionManager.getSession()
.retrieve(AtoZItemAlias.BASE_DATA_OBJECT_TYPE)); .retrieve(ItemAlias.BASE_DATA_OBJECT_TYPE));
aliases.addFilter("atozItemProvider = :providerId").set("providerId", getID()); aliases.addFilter("itemProvider = :providerId").set("providerId", getID());
aliases.addOrder("title"); aliases.addOrder("title");
return aliases; return aliases;
} }
/**
*
* @param loadPaths
*/
public void setLoadPaths( String loadPaths ) { public void setLoadPaths( String loadPaths ) {
set( LOAD_PATHS, loadPaths ); set( LOAD_PATHS, loadPaths );
} }
/**
*
* @return
*/
public String getLoadPaths() { public String getLoadPaths() {
return (String) get( LOAD_PATHS ); return (String) get( LOAD_PATHS );
} }
/**
*
* @return
*/
public AtoZGenerator getGenerator() { public AtoZGenerator getGenerator() {
return new AtoZItemGenerator(this); return new ItemGenerator(this);
} }
} }

View File

@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.atoz; package com.arsdigita.atoz.tools;
import com.arsdigita.atoz.AtoZ;
import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObject;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.domain.DomainObjectInstantiator; import com.arsdigita.domain.DomainObjectInstantiator;
@ -38,14 +39,15 @@ import org.apache.log4j.Logger;
* Usually Loader creates a (default) application instance. * Usually Loader creates a (default) application instance.
* *
*/ */
public class AddAtoZ extends Program { public class AtoZCreator extends Program {
private static final Logger LOG = Logger.getLogger(AddAtoZ.class); /** A logger instance to assist debugging. */
private static final Logger s_log = Logger.getLogger(AtoZCreator.class);
/** /**
* Default Constructor * Default Constructor
*/ */
public AddAtoZ() { public AtoZCreator() {
super("Add AtoZ instance", "1.0.0", "URL-FRAGMENT TITLE"); super("Add AtoZ instance", "1.0.0", "URL-FRAGMENT TITLE");
} }
@ -105,7 +107,7 @@ public class AddAtoZ extends Program {
* @param args * @param args
*/ */
public static void main(String[] args) { public static void main(String[] args) {
new AddAtoZ().run(args); new AtoZCreator().run(args);
} }
} }

View File

@ -18,13 +18,13 @@
package com.arsdigita.atoz.ui.admin; package com.arsdigita.atoz.ui.admin;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.bebop.event.ActionListener; import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.event.ActionEvent; import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.ActionLink; import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.Page; import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.Component; import com.arsdigita.bebop.Component;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
/** /**
* *
@ -56,6 +56,10 @@ public class CategoryProviderAdmin extends ProviderAdmin {
private ActionLink m_addAlias; private ActionLink m_addAlias;
/**
*
* @param provider
*/
public CategoryProviderAdmin(ACSObjectSelectionModel provider) { public CategoryProviderAdmin(ACSObjectSelectionModel provider) {
super("categoryProviderAdmin", provider); super("categoryProviderAdmin", provider);
@ -108,6 +112,7 @@ public class CategoryProviderAdmin extends ProviderAdmin {
m_aliasForm.addCompletionListener(new CategoryAliasComplete()); m_aliasForm.addCompletionListener(new CategoryAliasComplete());
} }
@Override
public void register(Page p) { public void register(Page p) {
super.register(p); super.register(p);

View File

@ -35,7 +35,7 @@ import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
/** /**
* *
@ -111,7 +111,7 @@ public class CategoryProviderAliasForm extends Form {
throws FormProcessException { throws FormProcessException {
PageState state = e.getPageState(); PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider CategoryProvider provider = (CategoryProvider)m_provider
.getSelectedObject(state); .getSelectedObject(state);
Category cat = new Category(((BigDecimal[])m_termWidget.getValue(state))[0]); Category cat = new Category(((BigDecimal[])m_termWidget.getValue(state))[0]);

View File

@ -24,8 +24,8 @@ import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryAlias; import com.arsdigita.atoz.CategoryAlias;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.domain.DomainObjectXMLRenderer; import com.arsdigita.domain.DomainObjectXMLRenderer;
import com.arsdigita.domain.DomainCollection; import com.arsdigita.domain.DomainCollection;
@ -55,10 +55,10 @@ public class CategoryProviderAliasList extends SimpleContainer {
String value = state.getControlEventValue(); String value = state.getControlEventValue();
if (DELETE.equals(key)) { if (DELETE.equals(key)) {
AtoZCategoryAlias alias = (AtoZCategoryAlias)DomainObjectFactory CategoryAlias alias = (CategoryAlias)DomainObjectFactory
.newInstance(OID.valueOf(value)); .newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider) CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state); m_provider.getSelectedObject(state);
provider.removeAlias(alias); provider.removeAlias(alias);
} }
@ -70,12 +70,12 @@ public class CategoryProviderAliasList extends SimpleContainer {
Element content = AtoZ.newElement("categoryProviderAliasList"); Element content = AtoZ.newElement("categoryProviderAliasList");
exportAttributes(content); exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider) CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state); m_provider.getSelectedObject(state);
DomainCollection entries = provider.getAliases(); DomainCollection entries = provider.getAliases();
while (entries.next()) { while (entries.next()) {
AtoZCategoryAlias alias = (AtoZCategoryAlias)entries.getDomainObject(); CategoryAlias alias = (CategoryAlias)entries.getDomainObject();
Element el = AtoZ.newElement("categoryProviderAlias"); Element el = AtoZ.newElement("categoryProviderAlias");
el.addAttribute("letter", XML.format(alias.getLetter())); el.addAttribute("letter", XML.format(alias.getLetter()));
el.addAttribute("title", XML.format(alias.getTitle())); el.addAttribute("title", XML.format(alias.getTitle()));

View File

@ -24,7 +24,7 @@ import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.domain.DomainObjectXMLRenderer; import com.arsdigita.domain.DomainObjectXMLRenderer;
import com.arsdigita.domain.DomainCollection; import com.arsdigita.domain.DomainCollection;
@ -59,7 +59,7 @@ public class CategoryProviderBlackList extends SimpleContainer {
Category cat = (Category)DomainObjectFactory Category cat = (Category)DomainObjectFactory
.newInstance(OID.valueOf(value)); .newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider) CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state); m_provider.getSelectedObject(state);
provider.removeBlock(cat); provider.removeBlock(cat);
} }
@ -72,7 +72,7 @@ public class CategoryProviderBlackList extends SimpleContainer {
Element content = AtoZ.newElement("categoryProviderBlackList"); Element content = AtoZ.newElement("categoryProviderBlackList");
exportAttributes(content); exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider) CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state); m_provider.getSelectedObject(state);

View File

@ -18,7 +18,7 @@
package com.arsdigita.atoz.ui.admin; package com.arsdigita.atoz.ui.admin;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.categorization.ui.ObjectCategoryPicker; import com.arsdigita.categorization.ui.ObjectCategoryPicker;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
@ -97,7 +97,7 @@ public class CategoryProviderBlockForm extends Form {
throws FormProcessException { throws FormProcessException {
PageState state = e.getPageState(); PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider CategoryProvider provider = (CategoryProvider)m_provider
.getSelectedObject(state); .getSelectedObject(state);
Category cat = m_category.getCategory(state); Category cat = m_category.getCategory(state);

View File

@ -30,7 +30,7 @@ import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.domain.DomainObjectXMLRenderer; import com.arsdigita.domain.DomainObjectXMLRenderer;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
@ -53,7 +53,7 @@ public class CategoryProviderContentTypeBlacklist extends SimpleContainer {
ContentType contentType = (ContentType) DomainObjectFactory ContentType contentType = (ContentType) DomainObjectFactory
.newInstance(OID.valueOf(value)); .newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state); .getSelectedObject(state);
provider.removeContentTypeBlock(contentType); provider.removeContentTypeBlock(contentType);
} }
@ -64,7 +64,7 @@ public class CategoryProviderContentTypeBlacklist extends SimpleContainer {
.newElement("categoryProviderContentTypeBlackList"); .newElement("categoryProviderContentTypeBlackList");
exportAttributes(content); exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state); .getSelectedObject(state);
DomainCollection entries = provider.getContentTypeBlackList(); DomainCollection entries = provider.getContentTypeBlackList();

View File

@ -41,7 +41,7 @@ import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentTypeCollection; import com.arsdigita.cms.ContentTypeCollection;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
@ -119,7 +119,7 @@ public class CategoryProviderContentTypeBlockForm extends Form {
public void process(FormSectionEvent e) throws FormProcessException { public void process(FormSectionEvent e) throws FormProcessException {
PageState state = e.getPageState(); PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state); .getSelectedObject(state);
BigDecimal contentTypeID = (BigDecimal) m_type_picker BigDecimal contentTypeID = (BigDecimal) m_type_picker

View File

@ -20,13 +20,13 @@ package com.arsdigita.atoz.ui.admin;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZProvider; import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.SimpleComponent;
import com.arsdigita.bebop.form.CheckboxGroup; import com.arsdigita.bebop.form.CheckboxGroup;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.categorization.ui.CategoryPicker; import com.arsdigita.categorization.ui.CategoryPicker;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.util.Classes; import com.arsdigita.util.Classes;
@ -41,7 +41,7 @@ public class CategoryProviderForm extends ProviderForm {
public CategoryProviderForm(ACSObjectSelectionModel provider) { public CategoryProviderForm(ACSObjectSelectionModel provider) {
super("categoryProvider", super("categoryProvider",
AtoZCategoryProvider.class, provider); CategoryProvider.class, provider);
setMetaDataAttribute("title", "Category provider properties"); setMetaDataAttribute("title", "Category provider properties");
} }
@ -68,7 +68,7 @@ public class CategoryProviderForm extends ProviderForm {
AtoZProvider provider) { AtoZProvider provider) {
super.processWidgets(state, provider); super.processWidgets(state, provider);
AtoZCategoryProvider myprovider = (AtoZCategoryProvider)provider; CategoryProvider myprovider = (CategoryProvider)provider;
myprovider.setCompound(false); myprovider.setCompound(false);
//myprovider.setCompound(Boolean.TRUE.equals(m_compound.getValue(state))); //myprovider.setCompound(Boolean.TRUE.equals(m_compound.getValue(state)));
@ -81,7 +81,7 @@ public class CategoryProviderForm extends ProviderForm {
AtoZProvider provider) { AtoZProvider provider) {
super.initWidgets(state, provider); super.initWidgets(state, provider);
AtoZCategoryProvider myprovider = (AtoZCategoryProvider)provider; CategoryProvider myprovider = (CategoryProvider)provider;
if (provider != null) { if (provider != null) {
//m_compound.setValue(state, new Boolean(myprovider.isCompound())); //m_compound.setValue(state, new Boolean(myprovider.isCompound()));

View File

@ -26,6 +26,10 @@ import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.Page; import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.Component; import com.arsdigita.bebop.Component;
/**
*
*
*/
public class ItemProviderAdmin extends ProviderAdmin { public class ItemProviderAdmin extends ProviderAdmin {
private ItemProviderForm m_detailsForm; private ItemProviderForm m_detailsForm;
@ -36,6 +40,10 @@ public class ItemProviderAdmin extends ProviderAdmin {
private ItemProviderAliasForm m_aliasForm; private ItemProviderAliasForm m_aliasForm;
private ActionLink m_addAlias; private ActionLink m_addAlias;
/**
*
* @param provider
*/
public ItemProviderAdmin(ACSObjectSelectionModel provider) { public ItemProviderAdmin(ACSObjectSelectionModel provider) {
super("categoryProviderAdmin", provider); super("categoryProviderAdmin", provider);
@ -64,6 +72,11 @@ public class ItemProviderAdmin extends ProviderAdmin {
m_aliasForm.addCompletionListener(new ItemAliasComplete()); m_aliasForm.addCompletionListener(new ItemAliasComplete());
} }
/**
*
* @param p
*/
@Override
public void register(Page p) { public void register(Page p) {
super.register(p); super.register(p);
@ -71,6 +84,12 @@ public class ItemProviderAdmin extends ProviderAdmin {
p.setVisibleDefault(m_aliasForm, false); p.setVisibleDefault(m_aliasForm, false);
} }
/**
*
* @param state
* @param form
* @param active
*/
private void switchMode(PageState state, private void switchMode(PageState state,
Component form, Component form,
boolean active) { boolean active) {

View File

@ -40,8 +40,8 @@ import com.arsdigita.categorization.CategorizedCollection;
import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentItem;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZItemAlias; import com.arsdigita.atoz.ItemAlias;
import com.arsdigita.atoz.AtoZItemProvider; import com.arsdigita.atoz.ItemProvider;
import com.arsdigita.util.Classes; import com.arsdigita.util.Classes;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
@ -88,7 +88,7 @@ public class ItemProviderAliasForm extends Form {
PageState state = event.getPageState(); PageState state = event.getPageState();
boolean valueSet = false; boolean valueSet = false;
Category category = ((AtoZItemProvider) m_provider.getSelectedObject(state)) Category category = ((ItemProvider) m_provider.getSelectedObject(state))
.getCategory(); .getCategory();
CategorizedCollection children = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE); CategorizedCollection children = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
@ -139,7 +139,7 @@ public class ItemProviderAliasForm extends Form {
throws FormProcessException { throws FormProcessException {
PageState state = e.getPageState(); PageState state = e.getPageState();
AtoZItemProvider provider = (AtoZItemProvider) m_provider ItemProvider provider = (ItemProvider) m_provider
.getSelectedObject(state); .getSelectedObject(state);
BigDecimal itemId = new BigDecimal(m_item.getValue(state).toString()); BigDecimal itemId = new BigDecimal(m_item.getValue(state).toString());
@ -150,11 +150,11 @@ public class ItemProviderAliasForm extends Form {
//provider.addAlias(item, letter, title); //provider.addAlias(item, letter, title);
AtoZItemAlias alias = (AtoZItemAlias) Classes.newInstance(AtoZItemAlias.class); ItemAlias alias = (ItemAlias) Classes.newInstance(ItemAlias.class);
alias.setTitle(title); alias.setTitle(title);
alias.setLetter(letter); alias.setLetter(letter);
alias.setContentItem(item); alias.setContentItem(item);
alias.setAtoZItemProvider(provider); alias.setItemProvider(provider);
alias.save(); alias.save();
fireCompletionEvent(state); fireCompletionEvent(state);

View File

@ -25,8 +25,8 @@ import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZItemAlias; import com.arsdigita.atoz.ItemAlias;
import com.arsdigita.atoz.AtoZItemProvider; import com.arsdigita.atoz.ItemProvider;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
@ -49,7 +49,7 @@ public class ItemProviderAliasList extends SimpleContainer {
String value = state.getControlEventValue(); String value = state.getControlEventValue();
if (DELETE.equals(key)) { if (DELETE.equals(key)) {
AtoZItemAlias alias = (AtoZItemAlias) DomainObjectFactory ItemAlias alias = (ItemAlias) DomainObjectFactory
.newInstance(OID.valueOf(value)); .newInstance(OID.valueOf(value));
alias.delete(); alias.delete();
} }
@ -61,12 +61,12 @@ public class ItemProviderAliasList extends SimpleContainer {
Element content = AtoZ.newElement("itemProviderAliasList"); Element content = AtoZ.newElement("itemProviderAliasList");
exportAttributes(content); exportAttributes(content);
AtoZItemProvider provider = (AtoZItemProvider) ItemProvider provider = (ItemProvider)
m_provider.getSelectedObject(state); m_provider.getSelectedObject(state);
DomainCollection entries = provider.getAliases(); DomainCollection entries = provider.getAliases();
while (entries.next()) { while (entries.next()) {
AtoZItemAlias alias = (AtoZItemAlias) entries.getDomainObject(); ItemAlias alias = (ItemAlias) entries.getDomainObject();
Element el = AtoZ.newElement("itemProviderAlias"); Element el = AtoZ.newElement("itemProviderAlias");
el.addAttribute("letter", XML.format(entries.get("letter"))); el.addAttribute("letter", XML.format(entries.get("letter")));

View File

@ -18,6 +18,8 @@
package com.arsdigita.atoz.ui.admin; package com.arsdigita.atoz.ui.admin;
import com.arsdigita.atoz.ItemProvider;
import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.SimpleComponent;
import com.arsdigita.bebop.form.Option; import com.arsdigita.bebop.form.Option;
@ -26,37 +28,41 @@ import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.ui.AbstractCategoryPicker;
import com.arsdigita.categorization.ui.CategoryPicker;
import com.arsdigita.domain.DomainCollection; import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.domain.DomainServiceInterfaceExposer; import com.arsdigita.domain.DomainServiceInterfaceExposer;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZItemProvider;
import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.categorization.ui.AbstractCategoryPicker;
import com.arsdigita.categorization.ui.CategoryPicker;
import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.SessionManager;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
/**
*
*
*/
public class ItemProviderForm extends ProviderForm { public class ItemProviderForm extends ProviderForm {
private CategoryPicker m_picker; private CategoryPicker m_picker;
private TextField m_loadPaths; private TextField m_loadPaths;
public ItemProviderForm(ACSObjectSelectionModel provider) { public ItemProviderForm(ACSObjectSelectionModel provider) {
super("itemProvider", AtoZItemProvider.class, provider); super("itemProvider", ItemProvider.class, provider);
setMetaDataAttribute("title", "Item provider properties"); setMetaDataAttribute("title", "Item provider properties");
} }
@Override
protected void addWidgets() { protected void addWidgets() {
super.addWidgets(); super.addWidgets();
m_loadPaths = new TextField(AtoZItemProvider.LOAD_PATHS); m_loadPaths = new TextField(ItemProvider.LOAD_PATHS);
((SimpleComponent)m_loadPaths).setMetaDataAttribute("label", "Attributes to retrieve"); ((SimpleComponent)m_loadPaths).setMetaDataAttribute("label", "Attributes to retrieve");
add(m_loadPaths); add(m_loadPaths);
m_loadPaths.addValidationListener(new StringInRangeValidationListener(0, 200)); m_loadPaths.addValidationListener(new StringInRangeValidationListener(0, 200));
@ -66,21 +72,23 @@ public class ItemProviderForm extends ProviderForm {
add(m_picker); add(m_picker);
} }
@Override
protected void processWidgets(PageState state, protected void processWidgets(PageState state,
AtoZProvider provider) { AtoZProvider provider) {
super.processWidgets(state, provider); super.processWidgets(state, provider);
AtoZItemProvider myprovider = (AtoZItemProvider)provider; ItemProvider myprovider = (ItemProvider)provider;
myprovider.setCategory(m_picker.getCategory(state)); myprovider.setCategory(m_picker.getCategory(state));
myprovider.setLoadPaths( (String) m_loadPaths.getValue(state)); myprovider.setLoadPaths( (String) m_loadPaths.getValue(state));
} }
@Override
protected void initWidgets(PageState state, protected void initWidgets(PageState state,
AtoZProvider provider) { AtoZProvider provider) {
super.initWidgets(state, provider); super.initWidgets(state, provider);
AtoZItemProvider myprovider = (AtoZItemProvider)provider; ItemProvider myprovider = (ItemProvider)provider;
if (provider != null) { if (provider != null) {
//m_compound.setValue(state, new Boolean(myprovider.isCompound())); //m_compound.setValue(state, new Boolean(myprovider.isCompound()));

View File

@ -19,7 +19,7 @@
package com.arsdigita.atoz.ui.admin; package com.arsdigita.atoz.ui.admin;
import com.arsdigita.atoz.AtoZCategoryProvider; import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.categorization.Category; import com.arsdigita.categorization.Category;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;
@ -153,7 +153,7 @@ public class TermWidget extends com.arsdigita.london.terms.ui.TermWidget {
* copied from com.arsdigita.aplaws.ui.ACSObjectCategoryPicker * copied from com.arsdigita.aplaws.ui.ACSObjectCategoryPicker
*/ */
protected Domain getDomain(PageState state) { protected Domain getDomain(PageState state) {
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider.getSelectedObject(state); CategoryProvider provider = (CategoryProvider)m_provider.getSelectedObject(state);
Category root = Category.getRootForObject(provider); Category root = Category.getRootForObject(provider);
if (s_log.isDebugEnabled()) { if (s_log.isDebugEnabled()) {