package org.safehaus.penrose.studio.federation.nis.ownership; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.editor.FormEditor; import org.safehaus.penrose.federation.NISRepositoryClient; import org.safehaus.penrose.federation.FederationRepositoryConfig; import org.safehaus.penrose.studio.server.Server; import org.safehaus.penrose.studio.dialog.ErrorDialog; import org.safehaus.penrose.module.ModuleManagerClient; import org.safehaus.penrose.module.ModuleClient; import org.safehaus.penrose.partition.PartitionClient; import org.safehaus.penrose.partition.PartitionManagerClient; import org.safehaus.penrose.client.PenroseClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class OwnershipAlignmentEditor extends FormEditor { public Logger log = LoggerFactory.getLogger(getClass()); public Server server; public NISRepositoryClient nisFederationClient; public FederationRepositoryConfig repositoryConfig; public void init(IEditorSite site, IEditorInput input) throws PartInitException { OwnershipAlignmentInput ei = (OwnershipAlignmentInput)input; server = ei.getServer(); nisFederationClient = ei.getNisFederationClient(); repositoryConfig = ei.getDomain(); setSite(site); setInput(input); setPartName(ei.getName()); } public void addPages() { try { String federationName = nisFederationClient.getFederationClient().getFederationDomain(); String localPartitionName = repositoryConfig.getName(); PenroseClient client = server.getClient(); PartitionManagerClient partitionManagerClient = client.getPartitionManagerClient(); PartitionClient localPartitionClient = partitionManagerClient.getPartitionClient(federationName+"_"+localPartitionName); ModuleManagerClient moduleManagerClient = localPartitionClient.getModuleManagerClient(); ModuleClient usersModuleClient = moduleManagerClient.getModuleClient("Users"); UsersPage usersPage = new UsersPage(this); usersPage.setObjectClass(usersModuleClient.getParameter("objectClass")); usersPage.setRdnAttribute(usersModuleClient.getParameter("rdnAttribute")); usersPage.setSourceAttribute(usersModuleClient.getParameter("sourceAttribute")); usersPage.setTargetAttribute(usersModuleClient.getParameter("targetAttribute")); usersPage.setLinkingAttribute(usersModuleClient.getParameter("linkingAttribute")); usersPage.setLinkingKey(usersModuleClient.getParameter("linkingKey")); addPage(usersPage); ModuleClient groupsModuleClient = moduleManagerClient.getModuleClient("Groups"); GroupsPage groupsPage = new GroupsPage(this); groupsPage.setObjectClass(groupsModuleClient.getParameter("objectClass")); groupsPage.setRdnAttribute(groupsModuleClient.getParameter("rdnAttribute")); groupsPage.setSourceAttribute(groupsModuleClient.getParameter("sourceAttribute")); groupsPage.setTargetAttribute(usersModuleClient.getParameter("targetAttribute")); groupsPage.setLinkingAttribute(groupsModuleClient.getParameter("linkingAttribute")); groupsPage.setLinkingKey(usersModuleClient.getParameter("linkingKey")); addPage(groupsPage); } catch (Exception e) { log.error(e.getMessage(), e); ErrorDialog.open(e); } } public void doSave(IProgressMonitor iProgressMonitor) { } public void doSaveAs() { } public boolean isDirty() { return false; } public boolean isSaveAsAllowed() { return false; } public FederationRepositoryConfig getRepositoryConfig() { return repositoryConfig; } public void setRepositoryConfig(FederationRepositoryConfig repositoryConfig) { this.repositoryConfig = repositoryConfig; } public NISRepositoryClient getNisFederationClient() { return nisFederationClient; } }