ju 6 years ago
parent
commit
9ae0f14ca4
  1. 51
      designer-base/src/com/fr/design/DesignerEnvManager.java
  2. 5
      designer-base/src/com/fr/design/actions/file/LocalePane.java
  3. 19
      designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java
  4. 27
      designer-base/src/com/fr/design/env/DesignerWorkspaceGenerator.java
  5. 104
      designer-base/src/com/fr/design/env/DesignerWorkspaceInfo.java
  6. 10
      designer-base/src/com/fr/design/env/DesignerWorkspaceType.java
  7. 137
      designer-base/src/com/fr/design/env/RemoteEnvConfig.java
  8. 7
      designer-base/src/com/fr/design/env/RemoteWorkspace.java
  9. 2
      designer-base/src/com/fr/design/mainframe/DesignerFrame.java
  10. 3
      designer-base/src/com/fr/design/mainframe/JTemplate.java
  11. 25
      designer-base/src/com/fr/design/mainframe/TemplatePane.java
  12. 34
      designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java
  13. 7
      designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java
  14. 70
      designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java
  15. 1
      designer-base/src/com/fr/design/utils/DesignUtils.java
  16. 12
      designer-base/src/com/fr/env/EnvListPane.java
  17. 10
      designer-base/src/com/fr/env/LocalEnvPane.java
  18. 1521
      designer-base/src/com/fr/env/RemoteEnv.java
  19. 35
      designer-base/src/com/fr/env/RemoteEnvPane.java
  20. 2
      designer-base/src/com/fr/file/FileNodeFILE.java
  21. 11
      designer-chart/src/com/fr/design/chart/series/PlotSeries/MapGroupExtensionPane.java
  22. 3
      designer-realize/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java
  23. 4
      designer-realize/src/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java
  24. 2
      designer-realize/src/com/fr/start/EnvSwitcher.java

51
designer-base/src/com/fr/design/DesignerEnvManager.java

@ -6,11 +6,10 @@ package com.fr.design;
import com.fr.base.BaseXMLUtils;
import com.fr.base.FRContext;
import com.fr.base.Utils;
import com.fr.base.env.EnvConfig;
import com.fr.base.env.LocalEnvConfig;
import com.fr.design.actions.help.alphafine.AlphaFineConfigManager;
import com.fr.design.constants.UIConstants;
import com.fr.design.env.DesignerWorkspaceGenerator;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.file.FILEFactory;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogFormatter;
@ -73,7 +72,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
private boolean showPaintToolBar = true;
private int maxNumberOrPreviewRow = 200;
// name和Env的键值对
private Map<String, EnvConfig> nameEnvMap = new ListMap<>();
private Map<String, DesignerWorkspaceInfo> nameEnvMap = new ListMap<>();
// marks: 当前报表服务器名字
private String curEnvName = null;
private boolean showProjectPane = true;
@ -194,7 +193,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if (installHome != null) {
String name = Inter.getLocText("FR-Engine_DEFAULT");
String envPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
designerEnvManager.putEnv(name, new LocalEnvConfig(envPath, name));
designerEnvManager.putEnv(name, DesignerWorkspaceInfo.createLocal(name, envPath));
designerEnvManager.setCurEnvName(name);
}
}
@ -327,7 +326,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
FRContext.getLogger().error(e.getMessage(), e);
}
// 清空前一个版本中的工作目录和最近打开
nameEnvMap = new ListMap<String, EnvConfig>();
nameEnvMap = new ListMap<String, DesignerWorkspaceInfo>();
recentOpenedFilePathList = new ArrayList<String>();
curEnvName = null;
designerEnvManager.saveXMLFile();
@ -474,28 +473,29 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @return 是默认则返回true
*/
public boolean isCurrentEnvDefault() {
EnvConfig currentEnv = this.getEnv(curEnvName);
DesignerWorkspaceInfo current = this.getWorkspaceInfo(curEnvName);
String defaultEnvPath = StableUtils.pathJoin(new String[]{StableUtils.getInstallHome(), ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
return ComparatorUtils.equals(new File(defaultEnvPath).getPath(), currentEnv.getPath());
return ComparatorUtils.equals(new File(defaultEnvPath).getPath(), current.getPath());
}
/**
* 返回默认环境
*/
public EnvConfig getDefaultConfig() {
public DesignerWorkspaceInfo getDefaultConfig() {
String installHome = StableUtils.getInstallHome();
String defaultenvPath = StableUtils.pathJoin(installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME);
defaultenvPath = new File(defaultenvPath).getPath();
Iterator<Entry<String, EnvConfig>> entryIt = nameEnvMap.entrySet().iterator();
Iterator<Entry<String, DesignerWorkspaceInfo>> entryIt = nameEnvMap.entrySet().iterator();
while (entryIt.hasNext()) {
Entry<String, EnvConfig> entry = entryIt.next();
EnvConfig env = entry.getValue();
Entry<String, DesignerWorkspaceInfo> entry = entryIt.next();
DesignerWorkspaceInfo env = entry.getValue();
if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
return env;
}
}
String name = Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"});
EnvConfig newDefaultEnv = new LocalEnvConfig(defaultenvPath, name);
DesignerWorkspaceInfo newDefaultEnv = DesignerWorkspaceInfo.createLocal(name, defaultenvPath);
this.putEnv(name, newDefaultEnv);
return newDefaultEnv;
}
@ -508,10 +508,10 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
String defaultenvPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
defaultenvPath = new File(defaultenvPath).getPath();
if (nameEnvMap.size() >= 0) {
Iterator<Entry<String, EnvConfig>> entryIt = nameEnvMap.entrySet().iterator();
Iterator<Entry<String, DesignerWorkspaceInfo>> entryIt = nameEnvMap.entrySet().iterator();
while (entryIt.hasNext()) {
Entry<String, EnvConfig> entry = entryIt.next();
EnvConfig env = entry.getValue();
Entry<String, DesignerWorkspaceInfo> entry = entryIt.next();
DesignerWorkspaceInfo env = entry.getValue();
if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
return entry.getKey();
}
@ -694,7 +694,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/**
* 根据名称返回环境
*/
public EnvConfig getEnv(String name) {
public DesignerWorkspaceInfo getWorkspaceInfo(String name) {
return this.nameEnvMap.get(name);
}
@ -702,10 +702,11 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* 记录名称 和对应的环境
*
* @param name 名称
* @param env 对应的环境
* @param info 对应的环境信息
*/
public void putEnv(String name, EnvConfig env) {
this.nameEnvMap.put(name, env);
public void putEnv(String name, DesignerWorkspaceInfo info) {
this.nameEnvMap.put(name, info);
}
/**
@ -1418,7 +1419,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
// marks:兼容6.1的
// marks:设置默认的目录.
String curReportServerName = Inter.getLocText("Server-Embedded_Server");
EnvConfig reportServer = new LocalEnvConfig(tmpVal,curReportServerName);
DesignerWorkspaceInfo reportServer = DesignerWorkspaceInfo.createLocal(curReportServerName, tmpVal);
this.putEnv(curReportServerName, reportServer);
this.setCurEnvName(curReportServerName);
@ -1471,8 +1472,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
public void readXML(XMLableReader reader) {
if (reader.isChildNode()) {
String tagName = reader.getTagName();
if (EnvConfig.XML_TAG.equals(tagName)) {
EnvConfig envConfig = (EnvConfig) GeneralXMLTools.readXMLable(reader);
if (DesignerWorkspaceInfo.XML_TAG.equals(tagName)) {
DesignerWorkspaceInfo envConfig = (DesignerWorkspaceInfo) GeneralXMLTools.readXMLable(reader);
putEnv(name, envConfig);
}
}
@ -1595,10 +1596,10 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if (this.curEnvName != null) {
writer.attr("currentEnv", this.curEnvName);
}
for (Entry<String, EnvConfig> entry : nameEnvMap.entrySet()) {
for (Entry<String, DesignerWorkspaceInfo> entry : nameEnvMap.entrySet()) {
writer.startTAG("EnvConfigElement").attr("name", entry.getKey());
EnvConfig envConfig = entry.getValue();
GeneralXMLTools.writeXMLable(writer, envConfig, EnvConfig.XML_TAG);
DesignerWorkspaceInfo envConfig = entry.getValue();
GeneralXMLTools.writeXMLable(writer, envConfig, DesignerWorkspaceInfo.XML_TAG);
writer.end();
}
writer.end();

5
designer-base/src/com/fr/design/actions/file/LocalePane.java

@ -13,11 +13,11 @@ import com.fr.design.gui.itextfield.UITextField;
import com.fr.file.filetree.FileNode;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StableUtils;
import com.fr.stable.bridge.StableFactory;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
@ -27,7 +27,6 @@ import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -196,7 +195,7 @@ public class LocalePane extends BasicPane {
for (FileNode fileNode : fileNodes) {
String fileName = fileNode.getName();
if (fileName.endsWith(".properties")) {
InputStream in = new ByteArrayInputStream(env.getFileOperator().read(StableUtils.pathJoin(ProjectConstants.LOCALE_NAME, fileName)));
InputStream in = new ByteArrayInputStream(WorkContext.getWorkResource().readFully(StableUtils.pathJoin(ProjectConstants.LOCALE_NAME, fileName)));
Properties properties = new Properties();
properties.load(in);
keys.addAll(properties.stringPropertyNames());

19
designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java

@ -1,14 +1,12 @@
package com.fr.design.actions.file;
import com.fr.base.BaseUtils;
import com.fr.base.env.EnvConfig;
import com.fr.base.env.LocalEnvConfig;
import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.design.env.DesignerWorkspaceGenerator;
import com.fr.design.env.RemoteEnvConfig;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
@ -67,11 +65,16 @@ public class SwitchExistEnv extends MenuDef {
public GetExistEnvAction(String envName) {
this.setName(envName);
EnvConfig env = DesignerEnvManager.getEnvManager().getEnv(envName);
if (env instanceof LocalEnvConfig) {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
} else if (env instanceof RemoteEnvConfig) {
DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName);
switch (env.getType())
{
case Local:{
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
break;
}case Remote:{
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
break;
}
}
}
@ -99,7 +102,7 @@ public class SwitchExistEnv extends MenuDef {
public void actionPerformed(ActionEvent e) {
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
final String envName = getName();
EnvConfig selectedEnv = envManager.getEnv(envName);
DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(envName);
WorkContext.switchTo(DesignerWorkspaceGenerator.generate(selectedEnv), new WorkContextCallback() {
@Override
public void success() {

27
designer-base/src/com/fr/design/env/DesignerWorkspaceGenerator.java vendored

@ -1,28 +1,31 @@
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) {
public static Workspace generate(DesignerWorkspaceInfo config) {
if (config == null || config.getType() == null) {
return null;
}
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());
switch (config.getType()) {
case Local: {
workspace = WorkContext.getFactory().build(config.getPath());
break;
}
case Remote: {
WorkspaceClient client = WorkContext.getConnector().connect(config.getConnection());
workspace = new RemoteWorkspace(client, config.getConnection());
break;
}
}
return workspace;
}

104
designer-base/src/com/fr/design/env/DesignerWorkspaceInfo.java vendored

@ -0,0 +1,104 @@
package com.fr.design.env;
import com.fr.security.SecurityToolbox;
import com.fr.stable.StringUtils;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader;
import com.fr.workspace.connect.WorkspaceConnection;
/**
* Created by juhaoyu on 2018/6/15.
*/
public class DesignerWorkspaceInfo implements XMLable {
private static final int DEFAULT_RPC_PORT = 39999;
public static final String XML_TAG = "DesignerWorkspace";
private DesignerWorkspaceType type;
private String name;
private String path;
private WorkspaceConnection connection;
public static DesignerWorkspaceInfo createLocal(String name, String path) {
DesignerWorkspaceInfo info = new DesignerWorkspaceInfo();
info.connection = null;
info.name = name;
info.path = path;
info.type = DesignerWorkspaceType.Local;
return info;
}
public void setName(String name) {
this.name = name;
}
public DesignerWorkspaceType getType() {
return type;
}
public String getName() {
return name;
}
public String getPath() {
return path;
}
public WorkspaceConnection getConnection() {
return connection;
}
@Override
public void readXML(XMLableReader reader) {
if (reader.isAttr()) {
this.name = reader.getAttrAsString("name", StringUtils.EMPTY);
this.type = DesignerWorkspaceType.valueOf(reader.getAttrAsString("name", "Local"));
this.path = reader.getAttrAsString("path", StringUtils.EMPTY);
}
if (reader.isChildNode()) {
String tagName = reader.getTagName();
if ("Connection".equals(tagName)) {
String ip = reader.getAttrAsString("ip", StringUtils.EMPTY);
int port = reader.getAttrAsInt("port", DEFAULT_RPC_PORT);
String username = reader.getAttrAsString("username", StringUtils.EMPTY);
//密码解密
String password = SecurityToolbox.decrypt(reader.getAttrAsString("password", StringUtils.EMPTY));
this.connection = new WorkspaceConnection(ip, port, username, password);
}
}
}
@Override
public void writeXML(XMLPrintWriter writer) {
writer.attr("name", name);
writer.attr("path", path);
writer.attr("type", type.toString());
if (this.connection != null) {
writer.startTAG("Connection");
writer.attr("ip", connection.getIp());
writer.attr("port", connection.getPort());
writer.attr("username", connection.getUserName());
writer.attr("password", SecurityToolbox.encrypt(connection.getPassword()));
writer.end();
}
}
@Override
public Object clone() throws CloneNotSupportedException {
return null;
}
}

10
designer-base/src/com/fr/design/env/DesignerWorkspaceType.java vendored

@ -0,0 +1,10 @@
package com.fr.design.env;
/**
* Created by juhaoyu on 2018/6/15.
* 设计器使用的workspace类型
*/
public enum DesignerWorkspaceType {
Local,
Remote
}

137
designer-base/src/com/fr/design/env/RemoteEnvConfig.java vendored

@ -1,137 +0,0 @@
package com.fr.design.env;
import com.fr.base.env.AbstractEnvConfig;
import com.fr.general.Inter;
import com.fr.security.SecurityToolbox;
import com.fr.stable.AssistUtils;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
public class RemoteEnvConfig extends AbstractEnvConfig {
public static final int DEFAULT_RPC_PORT = 39999;
private String host;
private int port;
private String username;
private String password;
public RemoteEnvConfig() {
super(name);
}
public RemoteEnvConfig(String host, int port, String username, String password) {
super(name);
this.host = host;
this.port = port;
this.username = username;
this.password = password;
}
@Override
public String getPath() {
return StableUtils.join(new Object[]{host, port}, ":");
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String getDescription(String name) {
return username + "@" + name + "[" + Inter.getLocText("Fine-Designer_Basic_Remote_Env") + "]";
}
@Override
public void readXML(XMLableReader reader) {
super.readXML(reader);
if (reader.isChildNode()) {
String tagName = reader.getTagName();
if ("Attr".equals(tagName)) {
this.host = reader.getAttrAsString("host", StringUtils.EMPTY);
this.port = reader.getAttrAsInt("port", DEFAULT_RPC_PORT);
this.username = reader.getAttrAsString("username", StringUtils.EMPTY);
String password = reader.getAttrAsString("password", StringUtils.EMPTY);
if (StringUtils.isNotEmpty(password)) {
this.password = SecurityToolbox.decrypt(password);
}
} else if ("Username".equals(tagName)) {
this.username = reader.getElementValue();
} else if ("Password".equals(tagName)) {
String txt = reader.getElementValue();
this.password = SecurityToolbox.decrypt(txt);
}
}
}
@Override
public void writeXML(XMLPrintWriter writer) {
super.writeXML(writer);
writer.startTAG("Attr")
.attr("host", host)
.attr("port", port);
writer.end();
writer.startTAG("Username").textNode(username).end();
if (StringUtils.isNotEmpty(password)) {
writer.startTAG("Password").textNode(SecurityToolbox.encrypt(password)).end();
}
}
@Override
public boolean equals(Object o) {
return o instanceof RemoteEnvConfig
&& AssistUtils.equals(((RemoteEnvConfig) o).host, host)
&& AssistUtils.equals(((RemoteEnvConfig) o).port, port)
&& AssistUtils.equals(((RemoteEnvConfig) o).username, username)
&& AssistUtils.equals(((RemoteEnvConfig) o).password, password);
}
@Override
public int hashCode() {
return AssistUtils.hashCode(host, port, username, password);
}
@Override
public Object clone() throws CloneNotSupportedException {
RemoteEnvConfig cloned = (RemoteEnvConfig) super.clone();
cloned.host = host;
cloned.port = port;
cloned.username = username;
cloned.password = password;
return cloned;
}
}

7
designer-base/src/com/fr/design/env/RemoteWorkspace.java vendored

@ -3,6 +3,7 @@ package com.fr.design.env;
import com.fr.general.Inter;
import com.fr.workspace.Workspace;
import com.fr.workspace.connect.WorkspaceClient;
import com.fr.workspace.connect.WorkspaceConnection;
/**
* Created by juhaoyu on 2018/6/14.
@ -16,11 +17,11 @@ public class RemoteWorkspace implements Workspace {
private final String userName;
public RemoteWorkspace(WorkspaceClient client, String address, String userName) {
RemoteWorkspace(WorkspaceClient client, WorkspaceConnection connection) {
this.client = client;
this.address = address;
this.userName = userName;
this.address = connection.getIp() + ":" + connection.getPort();
this.userName = connection.getUserName();
}
@Override

2
designer-base/src/com/fr/design/mainframe/DesignerFrame.java

@ -650,7 +650,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
defaultTitleSB.append(" ");
// james:标识登录的用户和登录的ENV
String envName = DesignerEnvManager.getEnvManager().getCurEnvName();
EnvConfig env = DesignerEnvManager.getEnvManager().getEnv(envName);
EnvConfig env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName);
if (env != null) {
defaultTitleSB.append(env.getDescription(envName));
if (editingTemplate != null) {

3
designer-base/src/com/fr/design/mainframe/JTemplate.java

@ -55,6 +55,7 @@ import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.core.UUID;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
@ -657,7 +658,7 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
this.getTarget().export(out);
FRContext.getCurrentEnv().getFileOperator().write(out.toByteArray(), editingFILE.getPath());
WorkContext.getWorkResource().write(editingFILE.getPath(), out.toByteArray());
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), e.getMessage(), "Save Error", JOptionPane.ERROR_MESSAGE);

25
designer-base/src/com/fr/design/mainframe/TemplatePane.java

@ -1,14 +1,12 @@
package com.fr.design.mainframe;
import com.fr.base.BaseUtils;
import com.fr.base.env.EnvConfig;
import com.fr.base.env.LocalEnvConfig;
import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.env.DesignerWorkspaceGenerator;
import com.fr.design.env.RemoteEnvConfig;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.file.TemplateTreePane;
import com.fr.design.gui.ibutton.UIButton;
@ -112,7 +110,7 @@ public class TemplatePane extends JPanel implements MouseListener {
private boolean envListOkAction(EnvListPane envListPane) {
final String selectedName = envListPane.updateEnvManager();
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
EnvConfig selectedEnv = envManager.getEnv(selectedName);
DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(selectedName);
GeneralContext.fireEnvWillChangeListener();
try {
WorkContext.switchTo(DesignerWorkspaceGenerator.generate(selectedEnv), new WorkContextCallback() {
@ -143,7 +141,7 @@ public class TemplatePane extends JPanel implements MouseListener {
return true;
}
private String getDesignerVersion(EnvConfig selectedEnv) {
private String getDesignerVersion(DesignerWorkspaceInfo selectedEnv) {
// return selectedEnv.getDesignerVersion();
throw new UnsupportedOperationException("unsupport now");
}
@ -169,12 +167,17 @@ public class TemplatePane extends JPanel implements MouseListener {
}
private void setJLabel(String name) {
EnvConfig config = DesignerEnvManager.getEnvManager().getEnv(name);
if (config instanceof LocalEnvConfig) {
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
} else if (config instanceof RemoteEnvConfig) {
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
DesignerWorkspaceInfo config = DesignerEnvManager.getEnvManager().getWorkspaceInfo(name);
switch (config.getType()) {
case Remote: {
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
break;
}
case Local: {
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
break;
}
}
envLabel.setText(name);
envLabel.repaint();

34
designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java

@ -2,10 +2,6 @@ package com.fr.design.mainframe.loghandler.socketio;
import com.fr.base.Env;
import com.fr.base.FRContext;
import com.fr.base.env.EnvConfig;
import com.fr.core.env.EnvConstants;
import com.fr.core.env.EnvContext;
import com.fr.core.env.EnvEvent;
import com.fr.decision.webservice.utils.DecisionServiceConstants;
import com.fr.design.env.RemoteEnvConfig;
import com.fr.design.mainframe.loghandler.DesignerLogHandler;
@ -18,6 +14,8 @@ import com.fr.general.LogUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.third.guava.base.Optional;
import com.fr.web.WebSocketConfig;
import com.fr.workspace.Workspace;
import com.fr.workspace.WorkspaceEvent;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
@ -44,18 +42,18 @@ public class DesignerSocketIO {
};
static {
EventDispatcher.listen(EnvEvent.AFTER_SIGN_OUT, new Listener<EnvConfig>() {
EventDispatcher.listen(WorkspaceEvent.BeforeSwitch, new Listener<Workspace>() {
@Override
public void on(Event event, EnvConfig param) {
public void on(Event event, Workspace param) {
if (socketIO.isPresent()) {
socketIO.get().close();
socketIO = Optional.absent();
}
}
});
EventDispatcher.listen(EnvEvent.AFTER_SIGN_IN, new Listener<EnvConfig>() {
EventDispatcher.listen(WorkspaceEvent.AfterSwitch, new Listener<Workspace>() {
@Override
public void on(Event event, EnvConfig param) {
public void on(Event event, Workspace param) {
updateSocket();
}
});
@ -71,16 +69,16 @@ public class DesignerSocketIO {
return;
}
try {
RemoteEnvConfig config = ((RemoteEnv)env).getEnvConfig();
String uri = String.format("http://%s:%s%s?%s=%s",
config.getHost(),
WebSocketConfig.getInstance().getPort(),
EnvConstants.WS_NAMESPACE,
DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME,
EnvContext.currentToken());
socketIO = Optional.of(IO.socket(new URI(uri)));
socketIO.get().on(EnvConstants.WS_LOGRECORD, printLog);
// RemoteEnvConfig config = ((RemoteEnv)env).getEnvConfig();
// String uri = String.format("http://%s:%s%s?%s=%s",
// config.getHost(),
// WebSocketConfig.getInstance().getPort(),
// EnvConstants.WS_NAMESPACE,
// DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME,
// EnvContext.currentToken());
//
// socketIO = Optional.of(IO.socket(new URI(uri)));
// socketIO.get().on(EnvConstants.WS_LOGRECORD, printLog);
// socketIO.get().on(EnvConstants.CONFIG, new Emitter.Listener() {
// @Override
// public void call(Object... objects) {

7
designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java

@ -7,14 +7,13 @@ import com.fr.design.DesignerEnvManager;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.SiteCenterToken;
import com.fr.env.RemoteEnv;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.general.GeneralUtils;
import com.fr.general.IOUtils;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.EncodeConstants;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
@ -25,6 +24,7 @@ import com.fr.stable.xml.XMLTools;
import com.fr.stable.xml.XMLWriter;
import com.fr.stable.xml.XMLableReader;
import com.fr.third.javax.xml.stream.XMLStreamException;
import com.fr.workspace.WorkContext;
import java.io.ByteArrayInputStream;
import java.io.File;
@ -167,7 +167,8 @@ public class TemplateInfoCollector<T extends BaseBook> implements Serializable,
}
private boolean shouldCollectInfo() {
if (FRContext.getCurrentEnv() instanceof RemoteEnv) { // 远程设计不收集数据
//只收集本地环境的
if (!WorkContext.getCurrent().isLocal()) {
return false;
}
return DesignerEnvManager.getEnvManager().isJoinProductImprove() && FRContext.isChineseEnv();

70
designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java

@ -1,17 +1,11 @@
package com.fr.design.remote.action;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.core.env.proxy.EnvProxy;
import com.fr.design.actions.UpdateAction;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.remote.ui.AuthorityManagerPane;
import com.fr.env.operator.authority.AuthorityOperator;
import com.fr.general.Inter;
import com.fr.log.FineLoggerFactory;
import com.fr.report.DesignAuthority;
import java.awt.event.ActionEvent;
@ -34,38 +28,38 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction {
BasicDialog dialog = managerPane.showWindow(DesignerContext.getDesignerFrame());
if (!FRContext.getCurrentEnv().isLocalEnv()) {
try {
// 远程设计获取全部设计成员的权限列表
DesignAuthority[] authorities = EnvProxy.get(AuthorityOperator.class).getAuthorities();
if (authorities != null && authorities.length != 0) {
managerPane.populate(authorities);
}
} catch (Exception exception) {
FineLoggerFactory.getLogger().error(exception.getMessage(), exception);
}
}
dialog.addDialogActionListener(new DialogActionAdapter() {
@Override
public void doOk() {
DesignAuthority[] authorities = managerPane.update();
if (!FRContext.getCurrentEnv().isLocalEnv()) {
boolean success = false;
try {
success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities);
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
FRContext.getLogger().info("update remote design authority: " + success);
}
}
@Override
public void doCancel() {
super.doCancel();
}
});
// if (!FRContext.getCurrentEnv().isLocalEnv()) {
// try {
// // 远程设计获取全部设计成员的权限列表
// DesignAuthority[] authorities = EnvProxy.get(AuthorityOperator.class).getAuthorities();
// if (authorities != null && authorities.length != 0) {
// managerPane.populate(authorities);
// }
// } catch (Exception exception) {
// FineLoggerFactory.getLogger().error(exception.getMessage(), exception);
// }
// }
//
// dialog.addDialogActionListener(new DialogActionAdapter() {
// @Override
// public void doOk() {
// DesignAuthority[] authorities = managerPane.update();
// if (!FRContext.getCurrentEnv().isLocalEnv()) {
// boolean success = false;
// try {
// success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities);
// } catch (Exception e) {
// FineLoggerFactory.getLogger().error(e.getMessage(), e);
// }
// FRContext.getLogger().info("update remote design authority: " + success);
// }
// }
//
// @Override
// public void doCancel() {
// super.doCancel();
// }
// });
dialog.setModal(true);
dialog.setVisible(true);
}

1
designer-base/src/com/fr/design/utils/DesignUtils.java

@ -13,7 +13,6 @@ import com.fr.design.ExtraDesignClassManager;
import com.fr.design.fun.DesignerEnvProcessor;
import com.fr.design.gui.UILookAndFeel;
import com.fr.design.mainframe.DesignerContext;
import com.fr.env.RemoteEnv;
import com.fr.file.FileFILE;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRFont;

12
designer-base/src/com/fr/env/EnvListPane.java vendored

@ -1,9 +1,7 @@
package com.fr.env;
import com.fr.base.env.EnvConfig;
import com.fr.base.env.LocalEnvConfig;
import com.fr.design.env.RemoteEnvConfig;
import com.fr.design.DesignerEnvManager;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.gui.controlpane.JListControlPane;
import com.fr.design.gui.controlpane.NameObjectCreator;
import com.fr.design.gui.controlpane.NameableCreator;
@ -59,9 +57,9 @@ public class EnvListPane extends JListControlPane {
@Override
public NameableCreator[] createNameableCreators() {
NameableCreator local = new NameObjectCreator(Inter.getLocText("Env-Local_Directory"), "com/fr/design/images/data/bind/localconnect.png",
LocalEnvConfig.class, LocalEnvPane.class);
DesignerWorkspaceInfo.class, LocalEnvPane.class);
NameableCreator remote = new NameObjectCreator(Inter.getLocText("Env-Remote_Server"), "com/fr/design/images/data/bind/distanceconnect.png",
RemoteEnvConfig.class, RemoteEnvPane2.class);
DesignerWorkspaceInfo.class, RemoteEnvPane2.class);
return new NameableCreator[]{local, remote};
}
@ -81,7 +79,7 @@ public class EnvListPane extends JListControlPane {
List<NameObject> nameObjectList = new ArrayList<>();
while (nameIt.hasNext()) {
String name = nameIt.next();
nameObjectList.add(new NameObject(name, mgr.getEnv(name)));
nameObjectList.add(new NameObject(name, mgr.getWorkspaceInfo(name)));
}
this.populate(nameObjectList.toArray(new NameObject[0]));
@ -104,7 +102,7 @@ public class EnvListPane extends JListControlPane {
Nameable[] res = this.update();
for (Nameable re : res) {
NameObject nameObject = (NameObject) re;
mgr.putEnv(nameObject.getName(), (EnvConfig) nameObject.getObject());
mgr.putEnv(nameObject.getName(), (DesignerWorkspaceInfo) nameObject.getObject());
}
return this.getSelectedName();
}

10
designer-base/src/com/fr/env/LocalEnvPane.java vendored

@ -1,7 +1,7 @@
package com.fr.env;
import com.fr.base.env.LocalEnvConfig;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.gui.itextfield.UITextField;
@ -21,7 +21,7 @@ import java.io.File;
/**
* @author yaohwu
*/
public class LocalEnvPane extends BasicBeanPane<LocalEnvConfig> {
public class LocalEnvPane extends BasicBeanPane<DesignerWorkspaceInfo> {
private UITextField pathTextField;
private JFileTree localEnvTree;
@ -70,9 +70,9 @@ public class LocalEnvPane extends BasicBeanPane<LocalEnvConfig> {
}
@Override
public LocalEnvConfig updateBean() {
public DesignerWorkspaceInfo updateBean() {
String path = pathTextField.getText();
return new LocalEnvConfig(path);
return DesignerWorkspaceInfo.createLocal(StringUtils.EMPTY, path);
}
public String getPath() {
@ -80,7 +80,7 @@ public class LocalEnvPane extends BasicBeanPane<LocalEnvConfig> {
}
@Override
public void populateBean(LocalEnvConfig ob) {
public void populateBean(DesignerWorkspaceInfo ob) {
if (StringUtils.isBlank(ob.getPath())) {
return;
}

1521
designer-base/src/com/fr/env/RemoteEnv.java vendored

File diff suppressed because it is too large Load Diff

35
designer-base/src/com/fr/env/RemoteEnvPane.java vendored

@ -1,11 +1,11 @@
package com.fr.env;
import com.fr.base.FRContext;
import com.fr.design.env.RemoteEnvConfig;
import com.fr.design.DesignerEnvManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.border.UITitledBorder;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
@ -19,24 +19,11 @@ import com.fr.general.Inter;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.ToolTipManager;
import javax.swing.UIManager;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
@ -50,7 +37,7 @@ import static com.fr.design.layout.TableLayout.PREFERRED;
/**
* @author yaohwu
*/
public class RemoteEnvPane extends BasicBeanPane<RemoteEnvConfig> {
public class RemoteEnvPane extends BasicBeanPane<DesignerWorkspaceInfo> {
private static final Color TIPS_FONT_COLOR = new Color(0x8f8f92);
@ -252,7 +239,7 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnvConfig> {
}
@Override
public void populateBean(RemoteEnvConfig ob) {
public void populateBean(DesignerWorkspaceInfo ob) {
if (StringUtils.isEmpty(ob.getPath())) {
remoteEnvURL = RemoteEnvURL.createDefaultURL();
@ -266,21 +253,21 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnvConfig> {
DesignerEnvManager.getEnvManager().setHttps(remoteEnvURL.getHttps());
fileChooserButton.setEnabled(remoteEnvURL.getHttps());
updateHttpsConfigPanel();
String username = EnvConfigUtils.getUsername(ob);
String pwd = EnvConfigUtils.getPassword(ob);
String username = ob.getConnection().getUserName();
String pwd = ob.getConnection().getPassword();
this.usernameInput.setText(username == null ? StringUtils.EMPTY : pwd);
this.passwordInput.setText(ob.getPassword() == null ? StringUtils.EMPTY : ob.getPassword());
this.passwordInput.setText(pwd == null ? StringUtils.EMPTY : "******");
}
@Override
public RemoteEnvConfig updateBean() {
public DesignerWorkspaceInfo updateBean() {
String path = remoteEnvURL.getURL();
String user = this.usernameInput.getText();
String password = new String(this.passwordInput.getPassword());
// return DesignerWorkspaceInfo.createRemote();
return null;
//return new RemoteEnvConfig(path, user, password);
}

2
designer-base/src/com/fr/file/FileNodeFILE.java

@ -240,7 +240,7 @@ public class FileNodeFILE implements FILE {
}
try {
return FRContext.getCurrentEnv().getFileOperator().isExists(node.getEnvPath());
return WorkContext.getWorkResource().exist(node.getEnvPath());
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
return false;

11
designer-chart/src/com/fr/design/chart/series/PlotSeries/MapGroupExtensionPane.java

@ -22,12 +22,13 @@ import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrame;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.CoreConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.SvgProvider;
import com.fr.workspace.WorkContext;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@ -340,12 +341,12 @@ public class MapGroupExtensionPane extends BasicPane implements UIObserver {
return;
}
try{//提醒名字已存在
if(FRContext.getCurrentEnv().getFileOperator().isExists(StableUtils.pathJoin(
if (WorkContext.getWorkResource().exist(StableUtils.pathJoin(
MapSvgXMLHelper.relativeDefaultMapPath(),newName+SvgProvider.EXTENSION))){
showRenameWaring(newName);
return;
}
if(FRContext.getCurrentEnv().getFileOperator().isExists(StableUtils.pathJoin(
if (WorkContext.getWorkResource().exist(StableUtils.pathJoin(
MapSvgXMLHelper.relativeCustomMapPath(), newName + SvgProvider.EXTENSION))){
showRenameWaring(newName);
return;
@ -361,9 +362,9 @@ public class MapGroupExtensionPane extends BasicPane implements UIObserver {
groupExtensionPane.setValueAtCurrentSelectIndex(newName);
fireStateChange();
saveMapInfo(newName);
FRContext.getCurrentEnv().getFileOperator().delete(
WorkContext.getWorkResource().delete(
StableUtils.pathJoin(MapSvgXMLHelper.relativeDefaultMapPath(),oldName+SvgProvider.EXTENSION));
FRContext.getCurrentEnv().getFileOperator().delete(
WorkContext.getWorkResource().delete(
StableUtils.pathJoin(MapSvgXMLHelper.relativeCustomMapPath(),oldName+SvgProvider.EXTENSION));
refresh();
}catch (Exception exp){

3
designer-realize/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

@ -18,6 +18,7 @@ import com.fr.log.FineLoggerFactory;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
@ -151,7 +152,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
*/
private void searchFileContent(Env env, String searchText, FileNode node, boolean isAlreadyContain, boolean needMore) {
try {
InputStream inputStream = new ByteArrayInputStream(env.getFileOperator().read(StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1))));
InputStream inputStream = new ByteArrayInputStream(WorkContext.getWorkResource().readFully(StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1))));
InputStreamReader isr = new InputStreamReader(inputStream, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
String line;

4
designer-realize/src/com/fr/design/mainframe/errorinfo/ErrorInfoLogAppender.java

@ -1,6 +1,5 @@
package com.fr.design.mainframe.errorinfo;
import com.fr.base.FRContext;
import com.fr.base.io.IOFile;
import com.fr.base.io.XMLReadHelper;
import com.fr.config.MarketConfig;
@ -18,6 +17,7 @@ import com.fr.third.apache.log4j.Level;
import com.fr.third.apache.log4j.spi.LoggingEvent;
import com.fr.web.core.SessionDealWith;
import com.fr.web.core.SessionIDInfor;
import com.fr.workspace.WorkContext;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
@ -134,7 +134,7 @@ public class ErrorInfoLogAppender extends AppenderSkeleton {
}
};
try {
file.readStream(new ByteArrayInputStream(FRContext.getCurrentEnv().getFileOperator().read(StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, bookPath))));
file.readStream(new ByteArrayInputStream(WorkContext.getWorkResource().readFully(StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, bookPath))));
return file.getTemplateID();
} catch (Exception ignore) {
}

2
designer-realize/src/com/fr/start/EnvSwitcher.java

@ -16,7 +16,7 @@ public class EnvSwitcher {
try {
String current = DesignerEnvManager.getEnvManager().getCurEnvName();
Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getEnv(current));
Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getWorkspaceInfo(current));
WorkContext.switchTo(workspace);
} catch (Exception e) {
TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner();

Loading…
Cancel
Save