126 lines
4.1 KiB
Java
Executable File
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());
|
|
}
|
|
}
|
|
|
|
}
|