Verschiedene Änderungen am den AtoZ Modulen. Kompiliert, aber noch nicht weiter getestet

git-svn-id: https://svn.libreccm.org/ccm/trunk@2127 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-04-17 07:15:26 +00:00
parent 49f2735ec5
commit 6c2cb6e1d8
12 changed files with 378 additions and 333 deletions

View File

@ -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;

View File

@ -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 });

View File

@ -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 {

View File

@ -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);
}
}
}

View File

@ -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());
@ -73,14 +72,12 @@ public class AdminPane extends SimpleContainer {
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);
}
}
@ -97,49 +94,54 @@ public class AdminPane extends SimpleContainer {
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);
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();
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 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);
}
}
}

View File

@ -15,33 +15,31 @@
* 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");
}
@ -55,38 +53,38 @@ public class CategoryProviderForm extends ProviderForm {
//m_compound.addOption(new Option(Boolean.TRUE.toString(), "yes"));
//add(m_compound);
m_rootCategory = (CategoryPicker)Classes.newInstance(
rootCategory = (CategoryPicker) Classes.newInstance(
AtoZ.getConfig().getRootCategoryPicker(),
new Class[]{String.class},
new Object[]{"rootCategory"});
((SimpleComponent)m_rootCategory).setMetaDataAttribute("label", "Root category");
add(m_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);
}
}

View File

@ -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);

View File

@ -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,7 +39,6 @@ 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;
@ -56,19 +56,18 @@ public class ProviderCreateForm extends Form {
for (int i = 0; i < providers.length; i++) {
m_providerType.addOption(
new Option(providers[i].getProvider().getName(),
providers[i].getTitle())
);
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)) {
if (providerName != null && !"".equals(providerName)) {
Class provider = Classes.loadClass(providerName);
Assert.exists(provider, Class.class);
return provider;
@ -77,6 +76,7 @@ public class ProviderCreateForm extends Form {
}
private class ProviderCreateProcess implements FormProcessListener {
public void process(FormSectionEvent e) {
PageState state = e.getPageState();
@ -84,5 +84,6 @@ public class ProviderCreateForm extends Form {
fireCompletionEvent(state);
}
}
}
}

View File

@ -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;
private final ACSObjectSelectionModel m_provider;
private final ColumnPanel panel;
public ProviderDetails(ACSObjectSelectionModel provider) {
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());
}
public void generateXML(PageState state,
Element parent) {
Element content = AtoZ.newElement("providerDetails");
exportAttributes(content);
});
panel.add(titleLabel);
AtoZProvider provider = (AtoZProvider)
m_provider.getSelectedObject(state);
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();
DomainObjectXMLRenderer xr = new DomainObjectXMLRenderer(content);
xr.setWrapRoot(false);
xr.setWrapAttributes(true);
xr.setWrapObjects(false);
final AtoZProvider provider = (AtoZProvider) m_provider.getSelectedObject(state);
xr.walk(provider, ProviderDetails.class.getName());
parent.addContent(content);
final Label target = (Label) event.getTarget();
target.setLabel(provider.getDescription());
}
});
panel.add(descLabel);
}
@Override
public void generateXML(final PageState state, final Element parent) {
panel.generateXML(state, parent);
// 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);
}
}

View File

@ -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);
}
}
}

View File

@ -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;