From 6c2cb6e1d8c83496cf9d9f8ea2fd12477a17dd9d Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 17 Apr 2013 07:15:26 +0000 Subject: [PATCH] =?UTF-8?q?Verschiedene=20=C3=84nderungen=20am=20den=20Ato?= =?UTF-8?q?Z=20Modulen.=20Kompiliert,=20aber=20noch=20nicht=20weiter=20get?= =?UTF-8?q?estet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2127 8810af33-2d31-482b-a856-94f89814c4df --- .../ui/admin/SiteProxyProviderForm.java | 5 +- .../com/arsdigita/atoz/AtoZProviderType.java | 8 +- .../src/com/arsdigita/atoz/ui/AtoZPane.java | 14 +- .../atoz/ui/admin/AbstractProviderForm.java | 180 ++++++++++++++++++ .../arsdigita/atoz/ui/admin/AdminPane.java | 80 ++++---- .../atoz/ui/admin/CategoryProviderForm.java | 60 +++--- .../atoz/ui/admin/ItemProviderForm.java | 74 +++---- .../atoz/ui/admin/ProviderCreateForm.java | 31 +-- .../atoz/ui/admin/ProviderDetails.java | 80 ++++++-- .../arsdigita/atoz/ui/admin/ProviderForm.java | 175 ----------------- ...t.java => ProviderList.java.nolongerinuse} | 0 .../london/atoz/ui/DomainProviderForm.java | 4 +- 12 files changed, 378 insertions(+), 333 deletions(-) create mode 100755 ccm-atoz/src/com/arsdigita/atoz/ui/admin/AbstractProviderForm.java delete mode 100755 ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderForm.java rename ccm-atoz/src/com/arsdigita/atoz/ui/admin/{ProviderList.java => ProviderList.java.nolongerinuse} (100%) diff --git a/ccm-atoz-siteproxy/src/com/arsdigita/atoz/siteproxy/ui/admin/SiteProxyProviderForm.java b/ccm-atoz-siteproxy/src/com/arsdigita/atoz/siteproxy/ui/admin/SiteProxyProviderForm.java index 0c0a089e3..9cfd760ff 100755 --- a/ccm-atoz-siteproxy/src/com/arsdigita/atoz/siteproxy/ui/admin/SiteProxyProviderForm.java +++ b/ccm-atoz-siteproxy/src/com/arsdigita/atoz/siteproxy/ui/admin/SiteProxyProviderForm.java @@ -18,7 +18,7 @@ package com.arsdigita.atoz.siteproxy.ui.admin; -import com.arsdigita.atoz.ui.admin.ProviderForm; +import com.arsdigita.atoz.ui.admin.AbstractProviderForm; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.event.FormSubmissionListener; @@ -26,11 +26,10 @@ import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZProvider; import com.arsdigita.atoz.siteproxy.SiteProxyProvider; -import com.arsdigita.atoz.ui.admin.ProviderForm; import com.arsdigita.categorization.ui.CategoryPicker; import com.arsdigita.util.Classes; -public class SiteProxyProviderForm extends ProviderForm { +public class SiteProxyProviderForm extends AbstractProviderForm { private CategoryPicker m_category_picker; diff --git a/ccm-atoz/src/com/arsdigita/atoz/AtoZProviderType.java b/ccm-atoz/src/com/arsdigita/atoz/AtoZProviderType.java index e23471b1c..d8408d92d 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/AtoZProviderType.java +++ b/ccm-atoz/src/com/arsdigita/atoz/AtoZProviderType.java @@ -19,7 +19,7 @@ package com.arsdigita.atoz; -import com.arsdigita.atoz.ui.admin.ProviderForm; +import com.arsdigita.atoz.ui.admin.AbstractProviderForm; import com.arsdigita.atoz.ui.admin.ProviderAdmin; import com.arsdigita.kernel.ui.ACSObjectSelectionModel; @@ -47,7 +47,7 @@ public class AtoZProviderType { "provider is a subclass of AtoZProvider"); Assert.isTrue(ProviderAdmin.class.isAssignableFrom(providerAdmin), "providerAdmin is a subclass of ProviderAdmin"); - Assert.isTrue(ProviderForm.class.isAssignableFrom(providerCreate), + Assert.isTrue(AbstractProviderForm.class.isAssignableFrom(providerCreate), "providerCreate is a subclass of ProviderForm"); m_title = title; @@ -81,8 +81,8 @@ public class AtoZProviderType { return (AtoZProvider)Classes.newInstance(m_provider); } - public ProviderForm createProviderCreate(ACSObjectSelectionModel provider) { - return (ProviderForm)Classes + public AbstractProviderForm createProviderCreate(ACSObjectSelectionModel provider) { + return (AbstractProviderForm)Classes .newInstance(m_providerCreate, new Class[] { ACSObjectSelectionModel.class }, new Object[] { provider }); diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/AtoZPane.java b/ccm-atoz/src/com/arsdigita/atoz/ui/AtoZPane.java index 6b2851f56..3af1d8f15 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/AtoZPane.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/AtoZPane.java @@ -18,19 +18,15 @@ package com.arsdigita.atoz.ui; +import com.arsdigita.atoz.AtoZ; +import com.arsdigita.atoz.AtoZAtomicEntry; +import com.arsdigita.atoz.AtoZCompoundEntry; +import com.arsdigita.atoz.AtoZEntry; +import com.arsdigita.atoz.AtoZGenerator; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.SimpleContainer; import com.arsdigita.bebop.parameters.StringParameter; -// import com.arsdigita.cms.dispatcher.SiteProxyPanel; - import com.arsdigita.kernel.Kernel; - -import com.arsdigita.atoz.AtoZ; -import com.arsdigita.atoz.AtoZEntry; -import com.arsdigita.atoz.AtoZAtomicEntry; -import com.arsdigita.atoz.AtoZCompoundEntry; -import com.arsdigita.atoz.AtoZGenerator; - import com.arsdigita.xml.Element; public class AtoZPane extends SimpleContainer { diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AbstractProviderForm.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AbstractProviderForm.java new file mode 100755 index 000000000..f0f2f513e --- /dev/null +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AbstractProviderForm.java @@ -0,0 +1,180 @@ +/* + * 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.ui.admin; + +import com.arsdigita.atoz.AtoZ; +import com.arsdigita.atoz.AtoZProvider; +import com.arsdigita.atoz.ui.AtoZGlobalizationUtil; +import com.arsdigita.bebop.ColumnPanel; +import com.arsdigita.bebop.Form; +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.SaveCancelSection; +import com.arsdigita.bebop.SimpleContainer; +import com.arsdigita.bebop.event.FormInitListener; +import com.arsdigita.bebop.event.FormProcessListener; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.event.FormSubmissionListener; +import com.arsdigita.bebop.form.TextArea; +import com.arsdigita.bebop.form.TextField; +import com.arsdigita.bebop.parameters.NotNullValidationListener; +import com.arsdigita.bebop.parameters.StringInRangeValidationListener; +import com.arsdigita.kernel.Kernel; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; +import com.arsdigita.util.Assert; +import com.arsdigita.util.Classes; +import org.apache.log4j.Logger; + +public abstract class AbstractProviderForm extends Form { + + private static final Logger LOGGER = Logger.getLogger(AbstractProviderForm.class); + private final ACSObjectSelectionModel providerModel; + private final Class providerType; + private TextField title; + private TextArea description; + private final SaveCancelSection buttons; + + public AbstractProviderForm(final String name, final Class providerType, final ACSObjectSelectionModel provider) { + super(name, new ColumnPanel(2)); + setRedirecting(true); + + this.providerModel = provider; + this.providerType = providerType; + + buttons = new SaveCancelSection(new SimpleContainer()); + + addWidgets(); + add(buttons); + + addProcessListener(new ProviderProcessListener()); + addSubmissionListener(new ProviderSubmissionListener()); + addInitListener(new ProviderInitListener()); + } + + protected void addWidgets() { + + title = new TextField("title"); + //m_title.setMetaDataAttribute("label", "Title"); + title.addValidationListener(new StringInRangeValidationListener(1, 200)); + title.addValidationListener(new NotNullValidationListener()); + title.setSize(80); + + description = new TextArea("description"); + //m_description.setMetaDataAttribute("label", "Description"); + description.addValidationListener( + new StringInRangeValidationListener(1, 4000)); + description.addValidationListener(new NotNullValidationListener()); + description.setCols(80); + description.setRows(5); + + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.provider_title"))); + add(title); + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.provider_description"))); + add(description); + } + + protected void processWidgets(final PageState state, final AtoZProvider provider) { + provider.setTitle((String) title.getValue(state)); + provider.setDescription((String) description.getValue(state)); + } + + protected void initWidgets(final PageState state, + final AtoZProvider provider) { + if (provider != null) { + title.setValue(state, provider.getTitle()); + description.setValue(state, provider.getDescription()); + } + } + + private class ProviderSubmissionListener implements FormSubmissionListener { + + public ProviderSubmissionListener() { + super(); + } + + public void submitted(final FormSectionEvent event) throws FormProcessException { + final PageState state = event.getPageState(); + + if (buttons.getCancelButton().isSelected(state)) { + fireCompletionEvent(state); + throw new FormProcessException("cancel hit"); + } + } + + } + + private class ProviderProcessListener implements FormProcessListener { + + public ProviderProcessListener() { + super(); + } + + public void process(final FormSectionEvent event) throws FormProcessException { + final PageState state = event.getPageState(); + + AtoZProvider provider = (AtoZProvider) providerModel.getSelectedObject(state); + + if (provider == null) { + final AtoZ atoz = (AtoZ) Kernel.getContext().getResource(); + Assert.exists(atoz, AtoZ.class); + provider = (AtoZProvider) Classes.newInstance(providerType); + atoz.addProvider(provider); + //provider.setAtoZ(atoz); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Creating provider " + provider.getOID()); + } + } else { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Loading provider " + provider.getOID()); + } + } + + processWidgets(state, provider); + + fireCompletionEvent(state); + } + + } + + private class ProviderInitListener implements FormInitListener { + + public ProviderInitListener() { + super(); + } + + public void init(final FormSectionEvent event) + throws FormProcessException { + final PageState state = event.getPageState(); + + final AtoZProvider provider = (AtoZProvider) providerModel.getSelectedObject(state); + if (provider == null) { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("No provider available"); + } + } else { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Loading provider " + provider.getOID()); + } + } + + initWidgets(state, provider); + } + + } +} diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AdminPane.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AdminPane.java index 24265ee74..ff19d1ee2 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AdminPane.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/AdminPane.java @@ -15,10 +15,8 @@ * 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.ui.admin; - import com.arsdigita.bebop.SimpleContainer; import com.arsdigita.bebop.Component; import com.arsdigita.bebop.Page; @@ -43,14 +41,12 @@ import java.util.Iterator; public class AdminPane extends SimpleContainer { - private static final String XMLNS = - "http://xmlns.redhat.com/atoz/1.0"; - + private static final String XMLNS = "http://xmlns.redhat.com/atoz/1.0"; private ACSObjectSelectionModel m_provider; - private Map m_providerCreateMap; private Map m_providerAdminMap; - private ProviderList m_providerList; + //private ProviderList m_providerList; + private AtoZProviderTable m_providerTable; private ProviderCreateForm m_createForm; public AdminPane(BigDecimalParameter provider) { @@ -59,8 +55,11 @@ public class AdminPane extends SimpleContainer { m_provider = new ACSObjectSelectionModel(provider); m_provider.addChangeListener(new ProviderEditStart()); - m_providerList = new ProviderList(m_provider); - add(m_providerList); +// m_providerList = new ProviderList(m_provider); +// add(m_providerList); + + m_providerTable = new AtoZProviderTable(m_provider); + add(m_providerTable); m_createForm = new ProviderCreateForm(); m_createForm.addCompletionListener(new ProviderCreateComplete()); @@ -70,17 +69,15 @@ public class AdminPane extends SimpleContainer { m_providerCreateMap = new HashMap(); m_providerAdminMap = new HashMap(); - for (int i = 0 ; i < providers.length ; i++) { + for (int i = 0; i < providers.length; i++) { ProviderAdmin admin = providers[i].createProviderAdmin(m_provider); admin.addCompletionListener(new ProviderAdminComplete(admin)); - m_providerAdminMap.put(providers[i].getProvider(), - admin); + m_providerAdminMap.put(providers[i].getProvider(), admin); add(admin); - ProviderForm create = providers[i].createProviderCreate(m_provider); + AbstractProviderForm create = providers[i].createProviderCreate(m_provider); create.addCompletionListener(new ProviderAdminComplete(create)); - m_providerCreateMap.put(providers[i].getProvider(), - create); + m_providerCreateMap.put(providers[i].getProvider(), create); add(create); } } @@ -88,58 +85,63 @@ public class AdminPane extends SimpleContainer { @Override public void register(Page p) { super.register(p); - + Iterator providers = m_providerAdminMap.values().iterator(); while (providers.hasNext()) { - ProviderAdmin admin = (ProviderAdmin)providers.next(); + ProviderAdmin admin = (ProviderAdmin) providers.next(); p.setVisibleDefault(admin, false); } providers = m_providerCreateMap.values().iterator(); while (providers.hasNext()) { - ProviderForm create = (ProviderForm)providers.next(); + AbstractProviderForm create = (AbstractProviderForm) providers.next(); p.setVisibleDefault(create, false); } } - - private class ProviderEditStart implements ChangeListener { - public void stateChanged(ChangeEvent e) { - PageState state = e.getPageState(); - AtoZProvider provider = (AtoZProvider) - m_provider.getSelectedObject(state); - + private class ProviderEditStart implements ChangeListener { + + public void stateChanged(ChangeEvent e) { + PageState state = e.getPageState(); + + AtoZProvider provider = (AtoZProvider) m_provider.getSelectedObject(state); + if (provider == null) { return; } - - ProviderAdmin admin = (ProviderAdmin) - m_providerAdminMap.get(provider.getClass()); + + ProviderAdmin admin = (ProviderAdmin) m_providerAdminMap.get(provider.getClass()); Assert.exists(admin, ProviderAdmin.class); - + admin.setVisible(state, true); m_createForm.setVisible(state, false); - m_providerList.setVisible(state, false); + //m_providerList.setVisible(state, false); + m_providerTable.setVisible(state, false); } + } private class ProviderCreateComplete implements ActionListener { + public void actionPerformed(ActionEvent e) { - PageState state = e.getPageState(); - + PageState state = e.getPageState(); + Class provider = m_createForm.getProviderType(state); Assert.exists(provider, Class.class); - ProviderForm create = (ProviderForm)m_providerCreateMap.get(provider); - Assert.exists(create, ProviderForm.class); - + AbstractProviderForm create = (AbstractProviderForm) m_providerCreateMap.get(provider); + Assert.exists(create, AbstractProviderForm.class); + create.setVisible(state, true); m_createForm.setVisible(state, false); - m_providerList.setVisible(state, false); + //m_providerList.setVisible(state, false); + m_providerTable.setVisible(state, false); } + } - private class ProviderAdminComplete implements ActionListener { + private class ProviderAdminComplete implements ActionListener { + private Component m_admin; public ProviderAdminComplete(Component admin) { @@ -150,8 +152,10 @@ public class AdminPane extends SimpleContainer { PageState state = e.getPageState(); m_admin.setVisible(state, false); m_createForm.setVisible(state, true); - m_providerList.setVisible(state, true); + //m_providerList.setVisible(state, true); + m_providerTable.setVisible(state, true); m_provider.clearSelection(state); } + } } diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/CategoryProviderForm.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/CategoryProviderForm.java index 30a92ede8..164f98b81 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/CategoryProviderForm.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/CategoryProviderForm.java @@ -15,37 +15,35 @@ * 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.ui.admin; import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZProvider; import com.arsdigita.atoz.CategoryProvider; +import com.arsdigita.atoz.ui.AtoZGlobalizationUtil; +import com.arsdigita.bebop.Label; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.SimpleComponent; -import com.arsdigita.bebop.form.CheckboxGroup; import com.arsdigita.categorization.Category; import com.arsdigita.categorization.ui.CategoryPicker; import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.util.Classes; - /** * * */ -public class CategoryProviderForm extends ProviderForm { +public class CategoryProviderForm extends AbstractProviderForm { - private CheckboxGroup m_compound; - private CategoryPicker m_rootCategory; + //private CheckboxGroup m_compound; + private CategoryPicker rootCategory; - public CategoryProviderForm(ACSObjectSelectionModel provider) { - super("categoryProvider", - CategoryProvider.class, provider); + public CategoryProviderForm(final ACSObjectSelectionModel provider) { + super("categoryProvider", CategoryProvider.class, provider); setMetaDataAttribute("title", "Category provider properties"); } - + @Override protected void addWidgets() { super.addWidgets(); @@ -54,39 +52,39 @@ public class CategoryProviderForm extends ProviderForm { //m_compound = new CheckboxGroup("compound"); //m_compound.addOption(new Option(Boolean.TRUE.toString(), "yes")); //add(m_compound); - - m_rootCategory = (CategoryPicker)Classes.newInstance( - AtoZ.getConfig().getRootCategoryPicker(), - new Class[] { String.class }, - new Object[] { "rootCategory" }); - ((SimpleComponent)m_rootCategory).setMetaDataAttribute("label", "Root category"); - add(m_rootCategory); + + rootCategory = (CategoryPicker) Classes.newInstance( + AtoZ.getConfig().getRootCategoryPicker(), + new Class[]{String.class}, + new Object[]{"rootCategory"}); + ((SimpleComponent) rootCategory).setMetaDataAttribute("label", "Root category"); + + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.category_picker.root_category"))); + add(rootCategory); } - + @Override - protected void processWidgets(PageState state, - AtoZProvider provider) { + protected void processWidgets(final PageState state, final AtoZProvider provider) { super.processWidgets(state, provider); - - CategoryProvider myprovider = (CategoryProvider)provider; + + final CategoryProvider myprovider = (CategoryProvider) provider; myprovider.setCompound(false); //myprovider.setCompound(Boolean.TRUE.equals(m_compound.getValue(state))); - - Category root = m_rootCategory.getCategory(state); + + final Category root = rootCategory.getCategory(state); myprovider.setRootCategory(root); } - + @Override - protected void initWidgets(PageState state, - AtoZProvider provider) { + protected void initWidgets(final PageState state, final AtoZProvider provider) { super.initWidgets(state, provider); - CategoryProvider myprovider = (CategoryProvider)provider; + final CategoryProvider myprovider = (CategoryProvider) provider; if (provider != null) { //m_compound.setValue(state, new Boolean(myprovider.isCompound())); - - Category root = myprovider.getRootCategory(); - m_rootCategory.setCategory(state, root); + + final Category root = myprovider.getRootCategory(); + rootCategory.setCategory(state, root); } } diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ItemProviderForm.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ItemProviderForm.java index 68ecf167c..723b1a911 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ItemProviderForm.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ItemProviderForm.java @@ -17,10 +17,11 @@ */ package com.arsdigita.atoz.ui.admin; -import com.arsdigita.atoz.ItemProvider; import com.arsdigita.atoz.AtoZProvider; +import com.arsdigita.atoz.ItemProvider; +import com.arsdigita.atoz.ui.AtoZGlobalizationUtil; +import com.arsdigita.bebop.Label; import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.form.Option; import com.arsdigita.bebop.form.SingleSelect; import com.arsdigita.bebop.form.TextField; @@ -36,7 +37,6 @@ import com.arsdigita.kernel.ui.ACSObjectSelectionModel; 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; @@ -46,12 +46,12 @@ import java.util.TreeMap; * * */ -public class ItemProviderForm extends ProviderForm { +public class ItemProviderForm extends AbstractProviderForm { - private CategoryPicker m_picker; - private TextField m_loadPaths; + private CategoryPicker picker; + private TextField loadPaths; - public ItemProviderForm(ACSObjectSelectionModel provider) { + public ItemProviderForm(final ACSObjectSelectionModel provider) { super("itemProvider", ItemProvider.class, provider); setMetaDataAttribute("title", "Item provider properties"); @@ -61,63 +61,65 @@ public class ItemProviderForm extends ProviderForm { protected void addWidgets() { super.addWidgets(); - 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)); - m_picker = new AllCategoryPicker("rootCategory"); - ((SimpleComponent) m_picker).setMetaDataAttribute("label", "Category filter"); - ((SingleSelect) m_picker).addValidationListener(new NotNullValidationListener()); - add(m_picker); + loadPaths = new TextField(ItemProvider.LOAD_PATHS); + //((SimpleComponent) loadPaths).setMetaDataAttribute("label", "Attributes to retrieve"); + loadPaths.addValidationListener(new StringInRangeValidationListener(0, 200)); + + picker = new AllCategoryPicker("rootCategory"); + //((SimpleComponent) picker).setMetaDataAttribute("label", "Category filter"); + ((SingleSelect) picker).addValidationListener(new NotNullValidationListener()); + + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.load_paths"))); + add(loadPaths); + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.category_filter"))); + add(picker); } @Override - protected void processWidgets(PageState state, - AtoZProvider provider) { + protected void processWidgets(final PageState state, final AtoZProvider provider) { super.processWidgets(state, provider); - ItemProvider myprovider = (ItemProvider) provider; + final ItemProvider myprovider = (ItemProvider) provider; - myprovider.setCategory(m_picker.getCategory(state)); - myprovider.setLoadPaths((String) m_loadPaths.getValue(state)); + myprovider.setCategory(picker.getCategory(state)); + myprovider.setLoadPaths((String) loadPaths.getValue(state)); } @Override - protected void initWidgets(PageState state, - AtoZProvider provider) { + protected void initWidgets(final PageState state, final AtoZProvider provider) { super.initWidgets(state, provider); - ItemProvider myprovider = (ItemProvider) provider; + final ItemProvider myprovider = (ItemProvider) provider; if (provider != null) { //m_compound.setValue(state, new Boolean(myprovider.isCompound())); - m_picker.setCategory(state, myprovider.getCategory()); - m_loadPaths.setValue(state, myprovider.getLoadPaths()); + picker.setCategory(state, myprovider.getCategory()); + loadPaths.setValue(state, myprovider.getLoadPaths()); } } private class AllCategoryPicker extends AbstractCategoryPicker { - public AllCategoryPicker(String name) { + public AllCategoryPicker(final String name) { super(name); } - protected void addOptions(PageState state, - SingleSelect target) { + protected void addOptions(final PageState state, final SingleSelect target) { target.addOption(new Option(null, "-- pick one --")); - DataCollection domains = SessionManager.getSession().retrieve("com.arsdigita.london.terms.Domain"); + final DataCollection domains = SessionManager.getSession().retrieve("com.arsdigita.london.terms.Domain"); domains.addPath("model.id"); domains.addPath("model.objectType"); domains.addOrder("title"); while (domains.next()) { - Category rootCategory = (Category) DomainObjectFactory.newInstance((DataObject) domains.get("model")); + final Category rootCategory = (Category) DomainObjectFactory.newInstance((DataObject) domains.get( + "model")); categorySubtreePath(target, rootCategory, " > "); } } - private void categorySubtreePath(SingleSelect target, Category root, String join) { - DomainCollection cats = new DomainCollection( + private void categorySubtreePath(final SingleSelect target, final Category root, final String join) { + final DomainCollection cats = new DomainCollection( SessionManager.getSession().retrieve(Category.BASE_DATA_OBJECT_TYPE)); cats.addFilter("defaultAncestors like :ancestors") .set("ancestors", @@ -127,8 +129,8 @@ public class ItemProviderForm extends ProviderForm { cats.addOrder("defaultAncestors"); cats.addPath("parents.id"); - Map path2cat = new TreeMap(); - Map cat2path = new HashMap(); + final Map path2cat = new TreeMap(); + final Map cat2path = new HashMap(); path2cat.put(root.getName(), root); cat2path.put(root.getID(), root.getName()); @@ -138,8 +140,8 @@ public class ItemProviderForm extends ProviderForm { + " +++++++++++++++++++++++++ ")); while (cats.next()) { - Category cat = (Category) cats.getDomainObject(); - BigDecimal parent = (BigDecimal) cats.get("parents.id"); + final Category cat = (Category) cats.getDomainObject(); + final BigDecimal parent = (BigDecimal) cats.get("parents.id"); if (parent == null) { path2cat.put(cat.getName(), cat); diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderCreateForm.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderCreateForm.java index 2db265868..eb1e94c71 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderCreateForm.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderCreateForm.java @@ -15,13 +15,14 @@ * 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.ui.admin; import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZProviderType; +import com.arsdigita.atoz.ui.AtoZGlobalizationUtil; import com.arsdigita.bebop.Form; +import com.arsdigita.bebop.Label; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.SimpleContainer; @@ -38,14 +39,13 @@ import com.arsdigita.bebop.form.Submit; import com.arsdigita.util.Classes; import com.arsdigita.util.Assert; - public class ProviderCreateForm extends Form { - + private OptionGroup m_providerType; - + public ProviderCreateForm() { super("providerCreate", new SimpleContainer()); - + setRedirecting(true); m_providerType = new SingleSelect("providers"); @@ -53,22 +53,21 @@ public class ProviderCreateForm extends Form { m_providerType.addOption(new Option(null, "--Select one--")); AtoZProviderType[] providers = AtoZ.getProviderTypes(); - for (int i = 0 ; i < providers.length ; i++) { + for (int i = 0; i < providers.length; i++) { m_providerType.addOption( - new Option(providers[i].getProvider().getName(), - providers[i].getTitle()) - ); + new Option(providers[i].getProvider().getName(), + providers[i].getTitle())); } + add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.create_provider"))); add(m_providerType); - add(new Submit("create", "Create")); + add(new Submit("create", (String) AtoZGlobalizationUtil.globalize("atoz.ui.provider.create").localize())); addProcessListener(new ProviderCreateProcess()); } public Class getProviderType(PageState state) { - String providerName = (String)m_providerType.getValue(state); - if (providerName != null && - !"".equals(providerName)) { + String providerName = (String) m_providerType.getValue(state); + if (providerName != null && !"".equals(providerName)) { Class provider = Classes.loadClass(providerName); Assert.exists(provider, Class.class); return provider; @@ -77,12 +76,14 @@ public class ProviderCreateForm extends Form { } private class ProviderCreateProcess implements FormProcessListener { + public void process(FormSectionEvent e) { - PageState state = e.getPageState(); - + PageState state = e.getPageState(); + if (getProviderType(state) != null) { fireCompletionEvent(state); } } + } } diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderDetails.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderDetails.java index deaa95e71..4fb8500ec 100755 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderDetails.java +++ b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderDetails.java @@ -15,45 +15,85 @@ * 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.ui.admin; import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.atoz.AtoZ; import com.arsdigita.atoz.AtoZProvider; +import com.arsdigita.atoz.ui.AtoZGlobalizationUtil; +import com.arsdigita.bebop.ColumnPanel; +import com.arsdigita.bebop.Label; import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.event.PrintEvent; +import com.arsdigita.bebop.event.PrintListener; import com.arsdigita.domain.DomainObjectXMLRenderer; import com.arsdigita.xml.Element; - public class ProviderDetails extends SimpleComponent { - - private ACSObjectSelectionModel m_provider; - - public ProviderDetails(ACSObjectSelectionModel provider) { + + private final ACSObjectSelectionModel m_provider; + private final ColumnPanel panel; + + public ProviderDetails(final ACSObjectSelectionModel provider) { m_provider = provider; + + panel = new ColumnPanel(2); + + panel.add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.provider_details.title"))); + final Label titleLabel = new Label(); + titleLabel.addPrintListener(new PrintListener() { + public void prepare(final PrintEvent event) { + final PageState state = event.getPageState(); + + final AtoZProvider provider = (AtoZProvider) m_provider.getSelectedObject(state); + + final Label target = (Label) event.getTarget(); + target.setLabel(provider.getTitle()); + } + + }); + panel.add(titleLabel); + + panel.add(new Label(AtoZGlobalizationUtil.globalize("atoz.ui.provider_details.description"))); + final Label descLabel = new Label(); + descLabel.addPrintListener(new PrintListener() { + public void prepare(final PrintEvent event) { + final PageState state = event.getPageState(); + + final AtoZProvider provider = (AtoZProvider) m_provider.getSelectedObject(state); + + final Label target = (Label) event.getTarget(); + target.setLabel(provider.getDescription()); + } + + }); + panel.add(descLabel); } - public void generateXML(PageState state, - Element parent) { - Element content = AtoZ.newElement("providerDetails"); - exportAttributes(content); + @Override + public void generateXML(final PageState state, final Element parent) { - AtoZProvider provider = (AtoZProvider) - m_provider.getSelectedObject(state); - - DomainObjectXMLRenderer xr = new DomainObjectXMLRenderer(content); - xr.setWrapRoot(false); - xr.setWrapAttributes(true); - xr.setWrapObjects(false); - - xr.walk(provider, ProviderDetails.class.getName()); + panel.generateXML(state, parent); - parent.addContent(content); +// Element content = AtoZ.newElement("providerDetails"); +// exportAttributes(content); +// +// AtoZProvider provider = (AtoZProvider) +// m_provider.getSelectedObject(state); +// +// DomainObjectXMLRenderer xr = new DomainObjectXMLRenderer(content); +// xr.setWrapRoot(false); +// xr.setWrapAttributes(true); +// xr.setWrapObjects(false); +// +// xr.walk(provider, ProviderDetails.class.getName()); +// +// parent.addContent(content); } + } diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderForm.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderForm.java deleted file mode 100755 index 32ff686d3..000000000 --- a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderForm.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * 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.ui.admin; - -import com.arsdigita.atoz.AtoZ; -import com.arsdigita.atoz.AtoZProvider; - -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.Form; -import com.arsdigita.bebop.FormProcessException; -import com.arsdigita.bebop.SaveCancelSection; -import com.arsdigita.bebop.SimpleContainer; - -import com.arsdigita.bebop.form.TextField; -import com.arsdigita.bebop.form.TextArea; - -import com.arsdigita.bebop.parameters.NotNullValidationListener; -import com.arsdigita.bebop.parameters.StringInRangeValidationListener; - -import com.arsdigita.bebop.event.FormProcessListener; -import com.arsdigita.bebop.event.FormSubmissionListener; -import com.arsdigita.bebop.event.FormInitListener; -import com.arsdigita.bebop.event.FormSectionEvent; - -import com.arsdigita.kernel.Kernel; -import com.arsdigita.kernel.ui.ACSObjectSelectionModel; - -import com.arsdigita.util.Classes; -import com.arsdigita.util.Assert; - -import org.apache.log4j.Logger; - -public abstract class ProviderForm extends Form { - - private static final Logger s_log = Logger.getLogger(ProviderForm.class); - - private ACSObjectSelectionModel m_provider; - private Class m_providerType; - - private TextField m_title; - private TextArea m_description; - private SaveCancelSection m_buttons; - - public ProviderForm(String name, - Class providerType, - ACSObjectSelectionModel provider) { - super(name, new SimpleContainer()); - setRedirecting(true); - - m_provider = provider; - m_providerType = providerType; - - m_buttons = new SaveCancelSection(new SimpleContainer()); - - addWidgets(); - add(m_buttons); - - addProcessListener(new ProviderProcessListener()); - addSubmissionListener(new ProviderSubmissionListener()); - addInitListener(new ProviderInitListener()); - } - - - protected void addWidgets() { - m_title = new TextField("title"); - m_title.setMetaDataAttribute("label", "Title"); - m_title.addValidationListener(new StringInRangeValidationListener(1, 200)); - m_title.addValidationListener(new NotNullValidationListener()); - m_title.setSize(80); - - m_description = new TextArea("description"); - m_description.setMetaDataAttribute("label", "Description"); - m_description.addValidationListener( - new StringInRangeValidationListener(1, 4000)); - m_description.addValidationListener(new NotNullValidationListener()); - m_description.setCols(80); - m_description.setRows(5); - - add(m_title); - add(m_description); - } - - protected void processWidgets(PageState state, - AtoZProvider provider) { - provider.setTitle((String)m_title.getValue(state)); - provider.setDescription((String)m_description.getValue(state)); - } - - protected void initWidgets(PageState state, - AtoZProvider provider) { - if (provider != null) { - m_title.setValue(state, provider.getTitle()); - m_description.setValue(state, provider.getDescription()); - } - } - - private class ProviderSubmissionListener implements FormSubmissionListener { - public void submitted(FormSectionEvent e) - throws FormProcessException { - PageState state = e.getPageState(); - - if (m_buttons.getCancelButton().isSelected(state)) { - fireCompletionEvent(state); - throw new FormProcessException("cancel hit"); - } - } - } - - private class ProviderProcessListener implements FormProcessListener { - public void process(FormSectionEvent e) - throws FormProcessException { - PageState state = e.getPageState(); - - AtoZProvider provider = (AtoZProvider)m_provider - .getSelectedObject(state); - - if (provider == null) { - AtoZ atoz = (AtoZ)Kernel.getContext().getResource(); - Assert.exists(atoz, AtoZ.class); - provider = (AtoZProvider)Classes.newInstance(m_providerType); - atoz.addProvider(provider); - //provider.setAtoZ(atoz); - if (s_log.isDebugEnabled()) { - s_log.debug("Creating provider " + provider.getOID()); - } - } else { - if (s_log.isDebugEnabled()) { - s_log.debug("Loading provider " + provider.getOID()); - } - } - - processWidgets(state, - provider); - - fireCompletionEvent(state); - } - } - - private class ProviderInitListener implements FormInitListener { - public void init(FormSectionEvent e) - throws FormProcessException { - PageState state = e.getPageState(); - - AtoZProvider provider = (AtoZProvider)m_provider - .getSelectedObject(state); - if (provider != null) { - if (s_log.isDebugEnabled()) { - s_log.debug("Loading provider " + provider.getOID()); - } - } else { - if (s_log.isDebugEnabled()) { - s_log.debug("No provider available"); - } - } - - initWidgets(state,provider); - } - } -} diff --git a/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderList.java b/ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderList.java.nolongerinuse similarity index 100% rename from ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderList.java rename to ccm-atoz/src/com/arsdigita/atoz/ui/admin/ProviderList.java.nolongerinuse diff --git a/ccm-ldn-atoz/src/com/arsdigita/london/atoz/ui/DomainProviderForm.java b/ccm-ldn-atoz/src/com/arsdigita/london/atoz/ui/DomainProviderForm.java index cb30186f5..d4f8dccaf 100755 --- a/ccm-ldn-atoz/src/com/arsdigita/london/atoz/ui/DomainProviderForm.java +++ b/ccm-ldn-atoz/src/com/arsdigita/london/atoz/ui/DomainProviderForm.java @@ -19,7 +19,7 @@ package com.arsdigita.london.atoz.ui; import com.arsdigita.atoz.AtoZProvider; -import com.arsdigita.atoz.ui.admin.ProviderForm; +import com.arsdigita.atoz.ui.admin.AbstractProviderForm; import com.arsdigita.london.atoz.DomainProvider; import com.arsdigita.london.terms.Domain; @@ -40,7 +40,7 @@ import java.util.TooManyListenersException; /** * */ -public class DomainProviderForm extends ProviderForm { +public class DomainProviderForm extends AbstractProviderForm { private SingleSelect m_domain;