libreccm-legacy/ccm-ldn-atoz/src/com/arsdigita/london/atoz/ui/DomainProviderForm.java

126 lines
4.1 KiB
Java
Executable File

/*
* 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.london.atoz.ui;
import com.arsdigita.atoz.AtoZProvider;
import com.arsdigita.atoz.ui.admin.ProviderForm;
import com.arsdigita.london.atoz.DomainProvider;
import com.arsdigita.london.terms.Domain;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.form.Option;
import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.event.PrintListener;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
import java.util.TooManyListenersException;
/**
*
*/
public class DomainProviderForm extends ProviderForm {
private SingleSelect m_domain;
/**
* Constructor
*/
public DomainProviderForm(ACSObjectSelectionModel provider) {
super("domainProvider",
DomainProvider.class, provider);
setMetaDataAttribute("title", "Domain provider properties");
}
/**
*
*/
@Override
protected void addWidgets() {
super.addWidgets();
m_domain = new SingleSelect("domain");
m_domain.setMetaDataAttribute("label", "Domain");
try {
m_domain.addPrintListener(new PrintListener() {
public void prepare(PrintEvent e) {
SingleSelect s = (SingleSelect)e.getTarget();
DataCollection domains = SessionManager.getSession()
.retrieve(Domain.BASE_DATA_OBJECT_TYPE);
s.addOption(new Option(null, "-- select one --"));
while (domains.next()) {
s.addOption(
new Option(
domains.getDataObject().getOID().toString(),
(String)domains.get(Domain.TITLE)));
}
}
});
} catch (TooManyListenersException ex) {
throw new RuntimeException("cannot happen");
}
m_domain.addValidationListener(new NotNullValidationListener());
add(m_domain);
}
/**
*
* @param state
* @param provider
*/
@Override
protected void processWidgets(PageState state,
AtoZProvider provider) {
super.processWidgets(state, provider);
DomainProvider myprovider = (DomainProvider)provider;
String oid = (String)m_domain.getValue(state);
myprovider.setDomain(
(Domain)DomainObjectFactory.newInstance(
OID.valueOf(oid)));
}
/**
*
* @param state
* @param provider
*/
@Override
protected void initWidgets(PageState state,
AtoZProvider provider) {
super.initWidgets(state, provider);
DomainProvider myprovider = (DomainProvider)provider;
if (provider != null) {
Domain domain = myprovider.getDomain();
m_domain.setValue(state, domain.getOID().toString());
}
}
}