package org.safehaus.penrose.studio.federation.nis.wizard; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.IWizardPage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.safehaus.penrose.federation.NISDomain; import org.safehaus.penrose.federation.FederationRepositoryConfig; import org.safehaus.penrose.studio.dialog.ErrorDialog; import org.safehaus.penrose.studio.federation.linking.wizard.LinkingParametersWizardPage; /** * @author Endi Sukma Dewata */ public class AddNISDomainWizard extends Wizard { public Logger log = LoggerFactory.getLogger(getClass()); NISRepositoryWizardPage repositoryPage; NISDomainWizardPage connectionPage; //NISPartitionsWizardPage partitionsPage; //LinkingParametersWizardPage linkingPage; FederationRepositoryConfig repository = new FederationRepositoryConfig(); public AddNISDomainWizard() { setWindowTitle("Add NIS Domain"); } public void addPages() { repositoryPage = new NISRepositoryWizardPage(); addPage(repositoryPage); connectionPage = new NISDomainWizardPage(); addPage(connectionPage); /* partitionsPage = new NISPartitionsWizardPage(); addPage(partitionsPage); linkingPage = new LinkingParametersWizardPage(); addPage(linkingPage); */ } public boolean canFinish() { if (!repositoryPage.isPageComplete()) return false; if (!connectionPage.isPageComplete()) return false; //if (!partitionsPage.isPageComplete()) return false; //if (!linkingPage.isPageComplete()) return false; return true; } public IWizardPage getNextPage(IWizardPage page) { if (repositoryPage == page) { String name = repositoryPage.getRepositoryName(); connectionPage.setDomain(name); /* } else if (connectionPage == page) { String name = repositoryPage.getRepositoryName(); String domainName = connectionPage.getDomain(); String nisSuffix = "ou="+name+",ou=nis"; String ypSuffix = "ou="+name+",ou=yp"; String nssSuffix = "ou="+name+",ou=nss"; String s[] = domainName.split("\\."); if (s.length > 2) { String suffix = ",dc="+s[s.length-2]+",dc="+s[s.length-1]; nisSuffix = nisSuffix+suffix; ypSuffix = ypSuffix+suffix; nssSuffix = nssSuffix+suffix; } partitionsPage.setNisSuffix(nisSuffix); partitionsPage.setYpSuffix(ypSuffix); partitionsPage.setNssSuffix(nssSuffix); */ } return super.getNextPage(page); } public boolean performFinish() { try { repository.setName(repositoryPage.getRepositoryName()); repository.setType("NIS"); repository.setParameter(NISDomain.SERVER, connectionPage.getServer()); repository.setParameter(NISDomain.DOMAIN, connectionPage.getDomain()); /* repository.setParameter(NISDomain.YP_SUFFIX, partitionsPage.getYpSuffix()); repository.setParameter(NISDomain.NIS_SUFFIX, partitionsPage.getNisSuffix()); repository.setParameter(NISDomain.NSS_SUFFIX, partitionsPage.getNssSuffix()); repository.setParameter(FederationRepositoryConfig.LINKING_LOCAL_ATTRIBUTE, linkingPage.getLocalAttribute()); repository.setParameter(FederationRepositoryConfig.LINKING_GLOBAL_ATTRIBUTE, linkingPage.getGlobalAttribute()); repository.setParameter(FederationRepositoryConfig.IMPORT_MAPPING_NAME, linkingPage.getImportMappingName()); repository.setParameter(FederationRepositoryConfig.IMPORT_MAPPING_PREFIX, linkingPage.getImportMappingPrefix()); */ return true; } catch (Exception e) { log.error(e.getMessage(), e); ErrorDialog.open(e); return false; } } public boolean needsPreviousAndNextButtons() { return true; } public FederationRepositoryConfig getRepository() { return repository; } }