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: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
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.

View File

@ -15,11 +15,12 @@
// License along with this library; if not, write to the Free Software
// 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;
object type AtoZSiteProxyProvider extends AtoZProvider {
object type SiteProxyProvider extends AtoZProvider {
Category[1..1] category = join atoz_siteproxy_provider.category_id to
cat_categories.category_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.siteproxy.ui.admin.SiteProxyProviderAdmin;
import com.arsdigita.atoz.siteproxy.ui.admin.SiteProxyProviderForm;
import com.arsdigita.domain.xml.TraversalHandler;
import com.arsdigita.runtime.CompoundInitializer;
import com.arsdigita.runtime.DomainInitEvent;
import com.arsdigita.xml.XML;
/**
*
@ -39,10 +41,14 @@ public class Initializer extends CompoundInitializer {
public void init(DomainInitEvent evt) {
super.init(evt);
XML.parse(Config.getConfig().getTraversalAdapters(),
new TraversalHandler());
AtoZ.registerProviderType(
new AtoZProviderType("SiteProxy Provider",
"Provides a SiteProxy A-Z",
AtoZSiteProxyProvider.class,
SiteProxyProvider.class,
SiteProxyProviderForm.class,
SiteProxyProviderAdmin.class));

View File

@ -22,10 +22,6 @@ import com.arsdigita.atoz.AtoZAtomicEntry;
import com.arsdigita.atoz.AtoZCompoundEntry;
import com.arsdigita.atoz.AtoZEntry;
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.contenttypes.SiteProxy;
import com.arsdigita.cms.dispatcher.SiteProxyPanel;
@ -37,10 +33,19 @@ import com.arsdigita.web.URL;
import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Compound Entry for mathched Categories
*
*
*/
public class SiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/**
* Compound Entry for matched Categories
*
*/
private class AtoZCategoriesCompoundEntry implements AtoZCompoundEntry {
@ -62,7 +67,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/*
* (non-Javadoc)
*
* @see com.arsdigita.london.atoz.AtoZCompoundEntry#getEntries()
* @see com.arsdigita.atoz.AtoZCompoundEntry#getEntries()
*/
public AtoZEntry[] getEntries() {
return (AtoZEntry[]) entries.toArray(new AtoZEntry[entries.size()]);
@ -71,7 +76,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/*
* (non-Javadoc)
*
* @see com.arsdigita.london.atoz.AtoZEntry#getTitle()
* @see com.arsdigita.atoz.AtoZEntry#getTitle()
*/
public String getTitle() {
return m_title;
@ -80,7 +85,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
/*
* (non-Javadoc)
*
* @see com.arsdigita.london.atoz.AtoZEntry#getDescription()
* @see com.arsdigita.atoz.AtoZEntry#getDescription()
*/
public String getDescription() {
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";
@ -98,7 +106,14 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
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_title = title;
m_url = url;
@ -127,7 +142,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
return null;
Element child = new Element(
AtoZSiteProxyAtomicEntry.SITE_PROXY_PANEL_NAME,
SiteProxyAtomicEntry.SITE_PROXY_PANEL_NAME,
CMS.CMS_XML_NS);
child.addAttribute("title", m_title);
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);
}
public AtoZEntry[] getEntries(String letter) {
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) getProvider();
SiteProxyProvider siteProxyProvider = (SiteProxyProvider) getProvider();
DataQuery entries = siteProxyProvider.getAtomicEntries(letter);
@ -176,7 +191,7 @@ public class AtoZSiteProxyGenerator extends AtoZGeneratorAbstractImpl {
}
/* create atomic entry */
AtoZSiteProxyAtomicEntry atomicEntry = new AtoZSiteProxyAtomicEntry(
SiteProxyAtomicEntry atomicEntry = new SiteProxyAtomicEntry(
new OID(SiteProxy.BASE_DATA_OBJECT_TYPE, entries.get("id")),
(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.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";
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);
}
public AtoZSiteProxyProvider(String type) {
public SiteProxyProvider(String type) {
super(type);
}
public AtoZSiteProxyProvider(DataObject obj) {
public SiteProxyProvider(DataObject obj) {
super(obj);
}
public AtoZSiteProxyProvider(OID oid) {
public SiteProxyProvider(OID oid) {
super(oid);
}
public AtoZGenerator getGenerator() {
return new AtoZSiteProxyGenerator(this);
return new SiteProxyGenerator(this);
}
public static AtoZSiteProxyProvider create(String title,
String description, Category category) {
AtoZSiteProxyProvider siteProxyProvider = new AtoZSiteProxyProvider();
public static SiteProxyProvider create(String title,
String description,
Category category) {
SiteProxyProvider siteProxyProvider = new SiteProxyProvider();
siteProxyProvider.setup(title, description, category);
return siteProxyProvider;
}

View File

@ -25,7 +25,7 @@ import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZ;
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.categorization.ui.CategoryPicker;
import com.arsdigita.util.Classes;
@ -35,7 +35,7 @@ public class SiteProxyProviderForm extends ProviderForm {
private CategoryPicker m_category_picker;
public SiteProxyProviderForm(ACSObjectSelectionModel provider) {
super("siteProxyProvider", AtoZSiteProxyProvider.class, provider);
super("siteProxyProvider", SiteProxyProvider.class, provider);
setMetaDataAttribute("title", "SiteProxy provider properties");
}
@ -52,7 +52,7 @@ public class SiteProxyProviderForm extends ProviderForm {
protected void initWidgets(PageState state, AtoZProvider provider) {
super.initWidgets(state, provider);
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) provider;
SiteProxyProvider siteProxyProvider = (SiteProxyProvider) provider;
if (siteProxyProvider != null)
m_category_picker.setCategory(state, siteProxyProvider
.getCategory());
@ -61,7 +61,7 @@ public class SiteProxyProviderForm extends ProviderForm {
protected void processWidgets(PageState state, AtoZProvider provider) {
super.processWidgets(state, provider);
AtoZSiteProxyProvider siteProxyProvider = (AtoZSiteProxyProvider) provider;
SiteProxyProvider siteProxyProvider = (SiteProxyProvider) provider;
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.cms.ContentType;
object type AtoZCategoryProvider extends AtoZProvider {
object type CategoryProvider extends AtoZProvider {
Boolean[1..1] isCompound = atoz_cat_provider.is_compound BIT;
reference key (atoz_cat_provider.provider_id);
}
object type AtoZCategoryAlias {
object type CategoryAlias {
BigDecimal[1..1] id = atoz_cat_aliases.object_id;
Category[1..1] category =
@ -39,7 +39,7 @@ object type AtoZCategoryAlias {
}
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,
join atoz_cat_blacklist_map.provider_id
to atoz_cat_provider.provider_id;
@ -50,16 +50,16 @@ association {
}
association {
AtoZCategoryProvider[1..1] provider =
CategoryProvider[1..1] provider =
join atoz_cat_aliases.provider_id
to atoz_cat_provider.provider_id;
component AtoZCategoryAlias[0..n] aliases =
component CategoryAlias[0..n] aliases =
join atoz_cat_provider.provider_id
to atoz_cat_aliases.provider_id;
}
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,
join atoz_cat_ct_blacklist_map.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.kernel.ACSObject;
object type AtoZItemAlias extends ACSObject {
AtoZItemProvider[1..1] atozItemProvider = join atoz_item_aliases.provider_id
object type ItemAlias extends ACSObject {
ItemProvider[1..1] itemProvider = join atoz_item_aliases.provider_id
to atoz_item_provider.provider_id;
ContentItem[1..1] contentItem = join atoz_item_aliases.item_id
to cms_items.item_id;

View File

@ -19,7 +19,7 @@ model com.arsdigita.atoz;
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
cat_categories.category_id;
String[0..1] loadPaths = atoz_item_provider.load_paths VARCHAR(200);

View File

@ -14,9 +14,10 @@
</xrd:adapter>
</xrd:context>
<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:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
@ -42,7 +43,7 @@
</xrd:attributes>
</xrd:adapter>
-->
<xrd:adapter objectType="com.arsdigita.atoz.AtoZItemProvider">
<xrd:adapter objectType="com.arsdigita.atoz.ItemProvider">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/defaultDomainClass"/>
@ -106,7 +107,7 @@
</xrd:attributes>
</xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.AtoZCategoryAlias">
<xrd:adapter objectType="com.arsdigita.atoz.CategoryAlias">
<xrd:attributes rule="exclude">
<xrd:property name="/object/id"/>
<xrd:property name="/object/objectType"/>
@ -128,7 +129,7 @@
</xrd:attributes>
</xrd:adapter>
<xrd:adapter objectType="com.arsdigita.atoz.AtoZItemAlias">
<xrd:adapter objectType="com.arsdigita.atoz.ItemAlias">
<xrd:attributes rule="exclude">
<!--
<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.ResourceParameter;
import com.arsdigita.london.util.ui.ApplicationCategoryPicker;
import com.arsdigita.categorization.ui.ApplicationCategoryPicker;
import java.io.InputStream;
@ -86,6 +86,9 @@ public class AtoZConfig extends AbstractConfig {
Parameter.OPTIONAL,
Boolean.FALSE);
/**
* Constructor
*/
public AtoZConfig() {
register(m_adapters);

View File

@ -1,19 +1,19 @@
com.arsdigita.london.atoz.traversal_adapters.title=XML renderer rules
com.arsdigita.london.atoz.traversal_adapters.purpose=Rules for configuring information in generated XML
com.arsdigita.london.atoz.traversal_adapters.format=[string]
com.arsdigita.london.atoz.traversal_adapters.example=/WEB-INF/resources/atoz-adapters.xml
com.arsdigita.atoz.traversal_adapters.title=XML renderer rules
com.arsdigita.atoz.traversal_adapters.purpose=Rules for configuring information in generated XML
com.arsdigita.atoz.traversal_adapters.format=[string]
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.london.atoz.root_category_picker.purpose=The UI widget for the Root Category Picker
com.arsdigita.london.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.title=Root Category Picker
com.arsdigita.atoz.root_category_picker.purpose=The UI widget for the Root Category Picker
com.arsdigita.atoz.root_category_picker.format=[class]
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.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.london.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.title=Make AtoZ use subsite-specific navigation categories
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.atoz.use_subsite_specific_navigation_category.format=[boolean]
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.london.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.london.atoz.filterCategoryProviders.example=false
com.arsdigita.atoz.filterCategoryProviders.title=To filter out category without published items
com.arsdigita.atoz.filterCategoryProviders.purpose=if TRUE, the AtoZ category providers will only return Categories with published items
com.arsdigita.atoz.filterCategoryProviders.format=[boolean]
com.arsdigita.atoz.filterCategoryProviders.example=false

View File

@ -18,11 +18,6 @@
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.db.Sequences;
import com.arsdigita.domain.DomainObject;
@ -30,15 +25,22 @@ import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.PersistenceException;
import java.math.BigDecimal;
import java.sql.SQLException;
import org.apache.log4j.Logger;
/**
*
*
*/
public class AtoZCategoryAlias extends DomainObject {
private static final Logger s_log = Logger.getLogger(AtoZCategoryAlias.class);
public class CategoryAlias extends DomainObject {
/** 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 =
"com.arsdigita.atoz.AtoZCategoryAlias";
"com.arsdigita.atoz.CategoryAlias";
public static final String ID = "id";
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 TITLE = "title";
public AtoZCategoryAlias() {
public CategoryAlias() {
this(BASE_DATA_OBJECT_TYPE);
}
protected AtoZCategoryAlias(String type) {
protected CategoryAlias(String type) {
super(type);
}
public AtoZCategoryAlias(DataObject obj) {
public CategoryAlias(DataObject obj) {
super(obj);
}
public AtoZCategoryAlias(OID oid) {
public CategoryAlias(OID oid) {
super(oid);
}
@ -71,6 +73,7 @@ public class AtoZCategoryAlias extends DomainObject {
/**
* Called from base class (DomainObject) constructors.
*/
@Override
protected void initialize() {
super.initialize();
@ -78,8 +81,8 @@ public class AtoZCategoryAlias extends DomainObject {
set(ID, generateID());
}
public AtoZCategoryProvider getProvider() {
return (AtoZCategoryProvider)get(PROVIDER);
public CategoryProvider getProvider() {
return (CategoryProvider)get(PROVIDER);
}
public Category getCategory() {

View File

@ -33,19 +33,19 @@ import java.util.ArrayList;
*
*
*/
public class AtoZCategoryGenerator extends AtoZGeneratorAbstractImpl {
public class CategoryGenerator extends AtoZGeneratorAbstractImpl {
/**
* Constructor
*
* @param provider
*/
public AtoZCategoryGenerator(AtoZCategoryProvider provider) {
public CategoryGenerator(CategoryProvider provider) {
super(provider);
}
public AtoZEntry[] getEntries(String letter) {
AtoZCategoryProvider provider = (AtoZCategoryProvider) getProvider();
CategoryProvider provider = (CategoryProvider) getProvider();
DataQuery entries = provider.getAtomicEntries();
Filter f = entries.addFilter("sortKey like :sortKey");
@ -54,22 +54,28 @@ public class AtoZCategoryGenerator extends AtoZGeneratorAbstractImpl {
List l = new ArrayList();
while (entries.next()) {
l.add(new AtoZCategoryAtomicEntry(new OID((String) entries
.get("objectType"), entries.get("id")), (String) entries
.get("title"), (String) entries.get("description")));
l.add(new CategoryAtomicEntry(new OID(
(String) entries.get("objectType"),
entries.get("id")),
(String) entries.get("title"),
(String) entries.get("description"))
);
}
return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]);
}
private class AtoZCategoryAtomicEntry implements AtoZAtomicEntry {
/**
*
*/
private class CategoryAtomicEntry implements AtoZAtomicEntry {
private OID m_oid;
private String m_title;
private String m_description;
public AtoZCategoryAtomicEntry(OID oid, String title, String description) {
public CategoryAtomicEntry(OID oid, String title, String description) {
m_oid = oid;
m_title = title;
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 static final Logger s_log =
Logger.getLogger(AtoZCategoryProvider.class);
Logger.getLogger(CategoryProvider.class);
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.atoz.AtoZCategoryProvider";
"com.arsdigita.atoz.CategoryProvider";
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);
}
@ -85,15 +85,15 @@ public class AtoZCategoryProvider extends AtoZProvider {
* Constructor
* @param type
*/
protected AtoZCategoryProvider(String type) {
protected CategoryProvider(String type) {
super(type);
}
public AtoZCategoryProvider(DataObject obj) {
public CategoryProvider(DataObject obj) {
super(obj);
}
public AtoZCategoryProvider(OID oid) {
public CategoryProvider(OID oid) {
super(oid);
}
@ -104,9 +104,17 @@ public class AtoZCategoryProvider extends AtoZProvider {
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) {
AtoZCategoryProvider provider = new AtoZCategoryProvider();
CategoryProvider provider = new CategoryProvider();
provider.setup(title, description, isCompound);
return provider;
}
@ -125,12 +133,12 @@ public class AtoZCategoryProvider extends AtoZProvider {
}
public void addAlias(Category cat, String letter, String title) {
AtoZCategoryAlias alias = new AtoZCategoryAlias();
CategoryAlias alias = new CategoryAlias();
alias.setup(cat, letter, title);
add(ALIASES, alias);
}
public void removeAlias(AtoZCategoryAlias alias) {
public void removeAlias(CategoryAlias alias) {
remove(ALIASES, alias);
}
@ -212,7 +220,7 @@ public class AtoZCategoryProvider extends AtoZProvider {
}
public AtoZGenerator getGenerator() {
return new AtoZCategoryGenerator(this);
return new CategoryGenerator(this);
}
public void addContentTypeBlock(ContentType contentType) {

View File

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

View File

@ -27,40 +27,60 @@ import com.arsdigita.util.Assert;
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 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 AtoZItemAlias() {
/**
* Constructor
*/
public ItemAlias() {
this(BASE_DATA_OBJECT_TYPE);
}
public AtoZItemAlias(String type) {
/**
* Constructor
*/
public ItemAlias(String type) {
super(type);
}
public AtoZItemAlias(DataObject obj) {
/**
* Constructor
*/
public ItemAlias(DataObject obj) {
super(obj);
}
public AtoZItemAlias(OID oid) {
/**
* Constructor
* @param oid
*/
public ItemAlias(OID oid) {
super(oid);
}
/**
*
* @param title
* @param letter
* @param itemProvider
* @param contentItem
*/
protected void setup(String title,
String letter,
AtoZItemProvider atozItemProvider,
ItemProvider itemProvider,
ContentItem contentItem) {
setTitle(title);
setLetter(letter);
setAtoZItemProvider(atozItemProvider);
setItemProvider(itemProvider);
setContentItem(contentItem);
}
@ -81,16 +101,16 @@ public class AtoZItemAlias extends ACSObject {
set(LETTER, letter);
}
public void setAtoZItemProvider(AtoZItemProvider atozItemProvider) {
Assert.exists(atozItemProvider, AtoZItemProvider.class);
set(ATOZ_ITEM_PROVIDER, atozItemProvider );
public void setItemProvider(ItemProvider itemProvider) {
Assert.exists(itemProvider, ItemProvider.class);
set(ITEM_PROVIDER, itemProvider );
}
public AtoZItemProvider getAtoZItemProvider() {
if (get(ATOZ_ITEM_PROVIDER) == null) {
public ItemProvider getItemProvider() {
if (get(ITEM_PROVIDER) == null) {
return null;
} 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.List;
public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl {
/**
*
*
*/
public class ItemGenerator extends AtoZGeneratorAbstractImpl {
public AtoZItemGenerator(AtoZItemProvider provider) {
public ItemGenerator(ItemProvider provider) {
super(provider);
}
public AtoZEntry[] getEntries(String letter) {
AtoZItemProvider provider = (AtoZItemProvider) getProvider();
ItemProvider provider = (ItemProvider) getProvider();
DataQuery entries = provider.getAtomicEntries();
Filter f = entries.addFilter("sortKey like :sortKey");
@ -82,7 +86,7 @@ public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl {
if (title.equals("")) {
title = live.getDisplayName();
}
l.add(new AtoZItemAtomicEntry(live.getOID(), title,
l.add(new ItemAtomicEntry(live.getOID(), title,
description));
}
}
@ -92,14 +96,18 @@ public class AtoZItemGenerator extends AtoZGeneratorAbstractImpl {
return (AtoZEntry[]) l.toArray(new AtoZEntry[l.size()]);
}
private class AtoZItemAtomicEntry implements AtoZAtomicEntry {
/**
*
*/
private class ItemAtomicEntry implements AtoZAtomicEntry {
private OID m_oid;
private String m_title;
private String m_description;
public AtoZItemAtomicEntry(OID oid, String title, String description) {
public ItemAtomicEntry(OID oid, String title, String description) {
m_oid = oid;
m_title = title;
m_description = description;

View File

@ -28,10 +28,14 @@ import com.arsdigita.util.Assert;
import com.arsdigita.categorization.Category;
public class AtoZItemProvider extends AtoZProvider {
/**
*
*
*/
public class ItemProvider extends AtoZProvider {
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 LOAD_PATHS = "loadPaths";
@ -39,26 +43,38 @@ public class AtoZItemProvider extends AtoZProvider {
public static final String ATOMIC_ENTRIES =
"com.arsdigita.atoz.getAtomicItemEntries";
public AtoZItemProvider() {
/**
* Constructor
*/
public ItemProvider() {
this(BASE_DATA_OBJECT_TYPE);
}
protected AtoZItemProvider(String type) {
/**
* Constructor
*/
protected ItemProvider(String type) {
super(type);
}
public AtoZItemProvider(DataObject obj) {
/**
* Constructor
*/
public ItemProvider(DataObject obj) {
super(obj);
}
public AtoZItemProvider(OID oid) {
/**
* Constructor
*/
public ItemProvider(OID oid) {
super(oid);
}
public static AtoZItemProvider create(String title,
public static ItemProvider create(String title,
String description,
Category category) {
AtoZItemProvider provider = new AtoZItemProvider();
ItemProvider provider = new ItemProvider();
provider.setup(title, description, category);
return provider;
}
@ -87,24 +103,40 @@ public class AtoZItemProvider extends AtoZProvider {
}
}
/**
*
* @return
*/
public DomainCollection getAliases() {
DomainCollection aliases = new DomainCollection(SessionManager.getSession()
.retrieve(AtoZItemAlias.BASE_DATA_OBJECT_TYPE));
aliases.addFilter("atozItemProvider = :providerId").set("providerId", getID());
.retrieve(ItemAlias.BASE_DATA_OBJECT_TYPE));
aliases.addFilter("itemProvider = :providerId").set("providerId", getID());
aliases.addOrder("title");
return aliases;
}
/**
*
* @param loadPaths
*/
public void setLoadPaths( String loadPaths ) {
set( LOAD_PATHS, loadPaths );
}
/**
*
* @return
*/
public String getLoadPaths() {
return (String) get( LOAD_PATHS );
}
/**
*
* @return
*/
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
*/
package com.arsdigita.atoz;
package com.arsdigita.atoz.tools;
import com.arsdigita.atoz.AtoZ;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.domain.DomainObjectInstantiator;
@ -38,14 +39,15 @@ import org.apache.log4j.Logger;
* 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
*/
public AddAtoZ() {
public AtoZCreator() {
super("Add AtoZ instance", "1.0.0", "URL-FRAGMENT TITLE");
}
@ -105,7 +107,7 @@ public class AddAtoZ extends Program {
* @param 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;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.Component;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
/**
*
@ -56,6 +56,10 @@ public class CategoryProviderAdmin extends ProviderAdmin {
private ActionLink m_addAlias;
/**
*
* @param provider
*/
public CategoryProviderAdmin(ACSObjectSelectionModel provider) {
super("categoryProviderAdmin", provider);
@ -108,6 +112,7 @@ public class CategoryProviderAdmin extends ProviderAdmin {
m_aliasForm.addCompletionListener(new CategoryAliasComplete());
}
@Override
public void register(Page 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.categorization.Category;
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 {
PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider
CategoryProvider provider = (CategoryProvider)m_provider
.getSelectedObject(state);
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.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryAlias;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryAlias;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.domain.DomainObjectXMLRenderer;
import com.arsdigita.domain.DomainCollection;
@ -55,10 +55,10 @@ public class CategoryProviderAliasList extends SimpleContainer {
String value = state.getControlEventValue();
if (DELETE.equals(key)) {
AtoZCategoryAlias alias = (AtoZCategoryAlias)DomainObjectFactory
CategoryAlias alias = (CategoryAlias)DomainObjectFactory
.newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider)
CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state);
provider.removeAlias(alias);
}
@ -70,12 +70,12 @@ public class CategoryProviderAliasList extends SimpleContainer {
Element content = AtoZ.newElement("categoryProviderAliasList");
exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider)
CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state);
DomainCollection entries = provider.getAliases();
while (entries.next()) {
AtoZCategoryAlias alias = (AtoZCategoryAlias)entries.getDomainObject();
CategoryAlias alias = (CategoryAlias)entries.getDomainObject();
Element el = AtoZ.newElement("categoryProviderAlias");
el.addAttribute("letter", XML.format(alias.getLetter()));
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.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.domain.DomainObjectXMLRenderer;
import com.arsdigita.domain.DomainCollection;
@ -59,7 +59,7 @@ public class CategoryProviderBlackList extends SimpleContainer {
Category cat = (Category)DomainObjectFactory
.newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider)
CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state);
provider.removeBlock(cat);
}
@ -72,7 +72,7 @@ public class CategoryProviderBlackList extends SimpleContainer {
Element content = AtoZ.newElement("categoryProviderBlackList");
exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider)
CategoryProvider provider = (CategoryProvider)
m_provider.getSelectedObject(state);

View File

@ -18,7 +18,7 @@
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.bebop.PageState;
@ -97,7 +97,7 @@ public class CategoryProviderBlockForm extends Form {
throws FormProcessException {
PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider
CategoryProvider provider = (CategoryProvider)m_provider
.getSelectedObject(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.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZ;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element;
@ -53,7 +53,7 @@ public class CategoryProviderContentTypeBlacklist extends SimpleContainer {
ContentType contentType = (ContentType) DomainObjectFactory
.newInstance(OID.valueOf(value));
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider
CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state);
provider.removeContentTypeBlock(contentType);
}
@ -64,7 +64,7 @@ public class CategoryProviderContentTypeBlacklist extends SimpleContainer {
.newElement("categoryProviderContentTypeBlackList");
exportAttributes(content);
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider
CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state);
DomainCollection entries = provider.getContentTypeBlackList();

View File

@ -41,7 +41,7 @@ import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentTypeCollection;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException;
@ -119,7 +119,7 @@ public class CategoryProviderContentTypeBlockForm extends Form {
public void process(FormSectionEvent e) throws FormProcessException {
PageState state = e.getPageState();
AtoZCategoryProvider provider = (AtoZCategoryProvider) m_provider
CategoryProvider provider = (CategoryProvider) m_provider
.getSelectedObject(state);
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.AtoZProvider;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleComponent;
import com.arsdigita.bebop.form.CheckboxGroup;
import com.arsdigita.categorization.Category;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.categorization.ui.CategoryPicker;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.util.Classes;
@ -41,7 +41,7 @@ public class CategoryProviderForm extends ProviderForm {
public CategoryProviderForm(ACSObjectSelectionModel provider) {
super("categoryProvider",
AtoZCategoryProvider.class, provider);
CategoryProvider.class, provider);
setMetaDataAttribute("title", "Category provider properties");
}
@ -68,7 +68,7 @@ public class CategoryProviderForm extends ProviderForm {
AtoZProvider provider) {
super.processWidgets(state, provider);
AtoZCategoryProvider myprovider = (AtoZCategoryProvider)provider;
CategoryProvider myprovider = (CategoryProvider)provider;
myprovider.setCompound(false);
//myprovider.setCompound(Boolean.TRUE.equals(m_compound.getValue(state)));
@ -81,7 +81,7 @@ public class CategoryProviderForm extends ProviderForm {
AtoZProvider provider) {
super.initWidgets(state, provider);
AtoZCategoryProvider myprovider = (AtoZCategoryProvider)provider;
CategoryProvider myprovider = (CategoryProvider)provider;
if (provider != null) {
//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.Component;
/**
*
*
*/
public class ItemProviderAdmin extends ProviderAdmin {
private ItemProviderForm m_detailsForm;
@ -36,6 +40,10 @@ public class ItemProviderAdmin extends ProviderAdmin {
private ItemProviderAliasForm m_aliasForm;
private ActionLink m_addAlias;
/**
*
* @param provider
*/
public ItemProviderAdmin(ACSObjectSelectionModel provider) {
super("categoryProviderAdmin", provider);
@ -64,6 +72,11 @@ public class ItemProviderAdmin extends ProviderAdmin {
m_aliasForm.addCompletionListener(new ItemAliasComplete());
}
/**
*
* @param p
*/
@Override
public void register(Page p) {
super.register(p);
@ -71,6 +84,12 @@ public class ItemProviderAdmin extends ProviderAdmin {
p.setVisibleDefault(m_aliasForm, false);
}
/**
*
* @param state
* @param form
* @param active
*/
private void switchMode(PageState state,
Component form,
boolean active) {

View File

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

View File

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

View File

@ -18,6 +18,8 @@
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.SimpleComponent;
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.StringInRangeValidationListener;
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.DomainObjectFactory;
import com.arsdigita.domain.DomainServiceInterfaceExposer;
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.DataObject;
import com.arsdigita.persistence.SessionManager;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/**
*
*
*/
public class ItemProviderForm extends ProviderForm {
private CategoryPicker m_picker;
private TextField m_loadPaths;
public ItemProviderForm(ACSObjectSelectionModel provider) {
super("itemProvider", AtoZItemProvider.class, provider);
super("itemProvider", ItemProvider.class, provider);
setMetaDataAttribute("title", "Item provider properties");
}
@Override
protected void 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");
add(m_loadPaths);
m_loadPaths.addValidationListener(new StringInRangeValidationListener(0, 200));
@ -66,21 +72,23 @@ public class ItemProviderForm extends ProviderForm {
add(m_picker);
}
@Override
protected void processWidgets(PageState state,
AtoZProvider provider) {
super.processWidgets(state, provider);
AtoZItemProvider myprovider = (AtoZItemProvider)provider;
ItemProvider myprovider = (ItemProvider)provider;
myprovider.setCategory(m_picker.getCategory(state));
myprovider.setLoadPaths( (String) m_loadPaths.getValue(state));
}
@Override
protected void initWidgets(PageState state,
AtoZProvider provider) {
super.initWidgets(state, provider);
AtoZItemProvider myprovider = (AtoZItemProvider)provider;
ItemProvider myprovider = (ItemProvider)provider;
if (provider != null) {
//m_compound.setValue(state, new Boolean(myprovider.isCompound()));

View File

@ -19,7 +19,7 @@
package com.arsdigita.atoz.ui.admin;
import com.arsdigita.atoz.AtoZCategoryProvider;
import com.arsdigita.atoz.CategoryProvider;
import com.arsdigita.bebop.PageState;
import com.arsdigita.categorization.Category;
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
*/
protected Domain getDomain(PageState state) {
AtoZCategoryProvider provider = (AtoZCategoryProvider)m_provider.getSelectedObject(state);
CategoryProvider provider = (CategoryProvider)m_provider.getSelectedObject(state);
Category root = Category.getRootForObject(provider);
if (s_log.isDebugEnabled()) {