package org.safehaus.penrose.studio.federation.nis.synchronization; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.PartInitException; import org.eclipse.core.runtime.IProgressMonitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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.client.PenroseClient; import org.safehaus.penrose.partition.PartitionClient; import org.safehaus.penrose.partition.PartitionManagerClient; import org.safehaus.penrose.source.SourceManagerClient; import java.util.Collection; public class NISSynchronizationEditor extends FormEditor { public Logger log = LoggerFactory.getLogger(getClass()); Server server; NISRepositoryClient nisFederationClient; FederationRepositoryConfig domain; public void init(IEditorSite site, IEditorInput input) throws PartInitException { NISSynchronizationEditorInput ei = (NISSynchronizationEditorInput)input; server = ei.getServer(); nisFederationClient = ei.getNisFederationClient(); domain = ei.getDomain(); setSite(site); setInput(input); setPartName(ei.getName()); } public void addPages() { try { String federationName = nisFederationClient.getFederationClient().getFederationDomain(); PenroseClient penroseClient = server.getClient(); PartitionManagerClient partitionManagerClient = penroseClient.getPartitionManagerClient(); PartitionClient partitionClient = partitionManagerClient.getPartitionClient(federationName+"_"+domain.getName()); SourceManagerClient sourceManagerClient = partitionClient.getSourceManagerClient(); Collection<String> sourceNames = sourceManagerClient.getSourceNames(); addPage(new NISSynchronizationPage(this)); if (sourceNames.contains("changes")) { addPage(new NISSynchronizationChangeLogPage(this)); } addPage(new NISSynchronizationErrorsPage(this)); } 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 getDomain() { return domain; } public void setDomain(FederationRepositoryConfig domain) { this.domain = domain; } public NISRepositoryClient getNISFederationClient() { return nisFederationClient; } public Server getServer() { return server; } public void setServer(Server server) { this.server = server; } }