package org.safehaus.penrose.studio.connection.editor; import org.eclipse.ui.PartInitException; import org.safehaus.penrose.connection.ConnectionConfig; import org.safehaus.penrose.connection.ConnectionClient; import org.safehaus.penrose.connection.ConnectionManagerClient; import org.safehaus.penrose.partition.PartitionClient; import org.safehaus.penrose.partition.PartitionManagerClient; import org.safehaus.penrose.client.PenroseClient; import org.safehaus.penrose.studio.PenroseStudio; import org.safehaus.penrose.studio.editor.Editor; import org.safehaus.penrose.studio.server.Server; /** * @author Endi Sukma Dewata */ public abstract class ConnectionEditor extends Editor { protected Server server; protected String partitionName; protected String connectionName; protected ConnectionConfig connectionConfig; public void init() throws PartInitException { ConnectionEditorInput ei = (ConnectionEditorInput)getEditorInput(); server = ei.getServer(); partitionName = ei.getPartitionName(); connectionName = ei.getConnectionName(); try { PenroseClient client = server.getClient(); PartitionManagerClient partitionManagerClient = client.getPartitionManagerClient(); PartitionClient partitionClient = partitionManagerClient.getPartitionClient(partitionName); ConnectionManagerClient connectionManagerClient = partitionClient.getConnectionManagerClient(); ConnectionClient connectionClient = connectionManagerClient.getConnectionClient(connectionName); connectionConfig = connectionClient.getConnectionConfig(); } catch (Exception e) { log.error(e.getMessage(), e); throw new RuntimeException(e.getMessage(), e); } } public String getPartitionName() { return partitionName; } public void setPartitionName(String partitionName) { this.partitionName = partitionName; } public ConnectionConfig getConnectionConfig() { return connectionConfig; } public void setConnectionConfig(ConnectionConfig connectionConfig) { this.connectionConfig = connectionConfig; } public Server getServer() { return server; } public void setServer(Server server) { this.server = server; } public void rename(String name, String newName) throws Exception { PenroseClient client = server.getClient(); PartitionManagerClient partitionManagerClient = client.getPartitionManagerClient(); PartitionClient partitionClient = partitionManagerClient.getPartitionClient(partitionName); ConnectionManagerClient connectionManagerClient = partitionClient.getConnectionManagerClient(); connectionManagerClient.renameConnection(name, newName); partitionClient.store(); connectionConfig.setName(newName); } public void store() throws Exception { PenroseClient client = server.getClient(); PartitionManagerClient partitionManagerClient = client.getPartitionManagerClient(); PartitionClient partitionClient = partitionManagerClient.getPartitionClient(partitionName); ConnectionManagerClient connectionManagerClient = partitionClient.getConnectionManagerClient(); connectionManagerClient.updateConnection(connectionName, connectionConfig); partitionClient.store(); } public String getConnectionName() { return connectionName; } public void setConnectionName(String connectionName) { this.connectionName = connectionName; } }