forked from fanruan/design
ju
7 years ago
20 changed files with 145 additions and 185 deletions
@ -0,0 +1,29 @@ |
|||||||
|
package com.fr.design.env; |
||||||
|
|
||||||
|
import com.fr.base.Env; |
||||||
|
import com.fr.base.env.EnvConfig; |
||||||
|
import com.fr.base.env.LocalEnvConfig; |
||||||
|
import com.fr.env.RemoteEnv; |
||||||
|
import com.fr.workspace.WorkContext; |
||||||
|
import com.fr.workspace.Workspace; |
||||||
|
import com.fr.workspace.connect.WorkspaceClient; |
||||||
|
import com.fr.workspace.connect.WorkspaceConnection; |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据配置生成运行环境 |
||||||
|
*/ |
||||||
|
public class DesignerWorkspaceGenerator { |
||||||
|
|
||||||
|
public static Workspace generate(EnvConfig config) { |
||||||
|
|
||||||
|
Workspace workspace = null; |
||||||
|
if (config instanceof LocalEnvConfig) { |
||||||
|
workspace = WorkContext.getFactory().build(config.getPath()); |
||||||
|
} else if (config instanceof RemoteEnvConfig) { |
||||||
|
RemoteEnvConfig remoteConfig = (RemoteEnvConfig) config; |
||||||
|
WorkspaceClient client = WorkContext.getConnector().connect(new WorkspaceConnection(remoteConfig.getHost(), remoteConfig.getPort(), remoteConfig.getUsername(), remoteConfig.getPassword())); |
||||||
|
workspace = new RemoteWorkspace(client, remoteConfig.getHost() + ":" + remoteConfig.getPort(), remoteConfig.getPassword()); |
||||||
|
} |
||||||
|
return workspace; |
||||||
|
} |
||||||
|
} |
@ -1,22 +0,0 @@ |
|||||||
package com.fr.design.env; |
|
||||||
|
|
||||||
import com.fr.base.Env; |
|
||||||
import com.fr.core.env.EnvConfig; |
|
||||||
import com.fr.core.env.impl.LocalEnvConfig; |
|
||||||
import com.fr.dav.LocalEnv; |
|
||||||
import com.fr.env.RemoteEnv; |
|
||||||
|
|
||||||
/** |
|
||||||
* 根据配置生成运行环境 |
|
||||||
*/ |
|
||||||
public class EnvGenerator { |
|
||||||
public static Env generate(EnvConfig config) { |
|
||||||
Env env = null; |
|
||||||
if (config instanceof LocalEnvConfig) { |
|
||||||
env = new LocalEnv((LocalEnvConfig)config); |
|
||||||
} else if (config instanceof RemoteEnvConfig) { |
|
||||||
env = new RemoteEnv((RemoteEnvConfig) config); |
|
||||||
} |
|
||||||
return env; |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,61 @@ |
|||||||
|
package com.fr.design.env; |
||||||
|
|
||||||
|
import com.fr.general.Inter; |
||||||
|
import com.fr.workspace.Workspace; |
||||||
|
import com.fr.workspace.connect.WorkspaceClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by juhaoyu on 2018/6/14. |
||||||
|
* 远程工作目录 |
||||||
|
*/ |
||||||
|
public class RemoteWorkspace implements Workspace { |
||||||
|
|
||||||
|
private final WorkspaceClient client; |
||||||
|
|
||||||
|
private final String address; |
||||||
|
|
||||||
|
private final String userName; |
||||||
|
|
||||||
|
public RemoteWorkspace(WorkspaceClient client, String address, String userName) { |
||||||
|
|
||||||
|
this.client = client; |
||||||
|
this.address = address; |
||||||
|
this.userName = userName; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getName() { |
||||||
|
|
||||||
|
return userName; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getPath() { |
||||||
|
|
||||||
|
return address; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getDescription() { |
||||||
|
|
||||||
|
return userName + "@" + "[" + Inter.getLocText("Fine-Designer_Basic_Remote_Env") + "]"; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isWarDeploy() { |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isLocal() { |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public <T> T get(Class<T> type) { |
||||||
|
|
||||||
|
return client.getPool().get(type); |
||||||
|
} |
||||||
|
} |
@ -1,46 +0,0 @@ |
|||||||
package com.fr.env; |
|
||||||
|
|
||||||
|
|
||||||
import com.fr.base.Env; |
|
||||||
import com.fr.base.FRContext; |
|
||||||
import com.fr.core.env.EnvConfig; |
|
||||||
import com.fr.core.env.EnvContext; |
|
||||||
import com.fr.core.env.EnvEvent; |
|
||||||
import com.fr.design.mainframe.DesignerContext; |
|
||||||
import com.fr.design.utils.DesignUtils; |
|
||||||
import com.fr.event.Event; |
|
||||||
import com.fr.event.EventDispatcher; |
|
||||||
import com.fr.event.Listener; |
|
||||||
import com.fr.event.Null; |
|
||||||
import com.fr.general.ComparatorUtils; |
|
||||||
import com.fr.general.Inter; |
|
||||||
import com.fr.stable.AssistUtils; |
|
||||||
|
|
||||||
import javax.swing.*; |
|
||||||
|
|
||||||
|
|
||||||
public class SignIn { |
|
||||||
|
|
||||||
static { |
|
||||||
EventDispatcher.listen(EnvEvent.CONNECTION_ERROR, new Listener<Null>() { |
|
||||||
@Override |
|
||||||
public void on(Event event, Null param) { |
|
||||||
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_failed")); |
|
||||||
} |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 注册入环境 |
|
||||||
* |
|
||||||
* @param selectedEnv 选择的环境 |
|
||||||
* @throws Exception 异常 |
|
||||||
*/ |
|
||||||
public static void signIn(EnvConfig selectedEnv) throws Exception { |
|
||||||
Env env = FRContext.getCurrentEnv(); |
|
||||||
if (env != null && AssistUtils.equals(env.getEnvConfig(), selectedEnv)) { |
|
||||||
env.disconnect(); |
|
||||||
} |
|
||||||
//DesignUtils.switchToEnv(selectedEnv);
|
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue