Browse Source

Merge pull request #52 in DESIGN/design from ~HZZZ/design-100000:env to feature/10.0

* commit '3838b06108bc132d2508c5bfb8023872cc9f7e40':
  check
  merge
  merge
  merge
  merge
  start designer socket client
  merge
  merge
  env..
master
superman 7 years ago
parent
commit
10dfb0293a
  1. 167
      designer-base/src/com/fr/design/DesignerEnvManager.java
  2. 29
      designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java
  3. 47
      designer-base/src/com/fr/design/file/TemplateTreePane.java
  4. 8
      designer-base/src/com/fr/design/mainframe/DesignerFrame.java
  5. 32
      designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
  6. 34
      designer-base/src/com/fr/design/mainframe/TemplatePane.java
  7. 5
      designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java
  8. 88
      designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java
  9. 11
      designer-base/src/com/fr/env/EnvListPane.java
  10. 9
      designer-base/src/com/fr/env/LocalEnvPane.java
  11. 1384
      designer-base/src/com/fr/env/RemoteEnv.java
  12. 22
      designer-base/src/com/fr/env/RemoteEnvPane.java
  13. 83
      designer-base/src/com/fr/env/RemoteEnvUtils.java
  14. 62
      designer-base/src/com/fr/env/SignIn.java
  15. 3
      designer-realize/src/com/fr/start/module/DesignerModuleActivator.java

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

@ -4,13 +4,14 @@
package com.fr.design; package com.fr.design;
import com.fr.base.BaseXMLUtils; import com.fr.base.BaseXMLUtils;
import com.fr.base.Env;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.Utils; import com.fr.base.Utils;
import com.fr.dav.LocalEnv; import com.fr.base.env.resource.EnvConfigUtils;
import com.fr.base.env.resource.LocalEnvConfig;
import com.fr.base.env.resource.RemoteEnvConfig;
import com.fr.core.env.EnvConfig;
import com.fr.design.actions.help.alphafine.AlphaFineConfigManager; import com.fr.design.actions.help.alphafine.AlphaFineConfigManager;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.env.RemoteEnv;
import com.fr.env.SignIn; import com.fr.env.SignIn;
import com.fr.file.FILEFactory; import com.fr.file.FILEFactory;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
@ -72,7 +73,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
private boolean showPaintToolBar = true; private boolean showPaintToolBar = true;
private int maxNumberOrPreviewRow = 200; private int maxNumberOrPreviewRow = 200;
// name和Env的键值对 // name和Env的键值对
private Map<String, Env> nameEnvMap = new ListMap(); private Map<String, EnvConfig> nameEnvMap = new ListMap();
// marks: 当前报表服务器名字 // marks: 当前报表服务器名字
private String curEnvName = null; private String curEnvName = null;
private boolean showProjectPane = true; private boolean showProjectPane = true;
@ -191,7 +192,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if (installHome != null) { if (installHome != null) {
String name = Inter.getLocText("FR-Engine_DEFAULT"); String name = Inter.getLocText("FR-Engine_DEFAULT");
String envPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME}); String envPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
designerEnvManager.putEnv(name, LocalEnv.createEnv(envPath)); designerEnvManager.putEnv(name, new LocalEnvConfig(envPath));
designerEnvManager.setCurEnvName(name); designerEnvManager.setCurEnvName(name);
} }
} }
@ -323,7 +324,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
FRContext.getLogger().error(e.getMessage(), e); FRContext.getLogger().error(e.getMessage(), e);
} }
// 清空前一个版本中的工作目录和最近打开 // 清空前一个版本中的工作目录和最近打开
nameEnvMap = new ListMap<String, Env>(); nameEnvMap = new ListMap<String, EnvConfig>();
recentOpenedFilePathList = new ArrayList<String>(); recentOpenedFilePathList = new ArrayList<String>();
curEnvName = null; curEnvName = null;
designerEnvManager.saveXMLFile(); designerEnvManager.saveXMLFile();
@ -470,7 +471,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @return 是默认则返回true * @return 是默认则返回true
*/ */
public boolean isCurrentEnvDefault() { public boolean isCurrentEnvDefault() {
Env currentEnv = this.getEnv(curEnvName); EnvConfig currentEnv = this.getEnv(curEnvName);
String defaultEnvPath = StableUtils.pathJoin(new String[]{StableUtils.getInstallHome(), ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME}); 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(), currentEnv.getPath());
} }
@ -478,21 +479,19 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/** /**
* 返回默认环境 * 返回默认环境
*/ */
public Env getDefaultEnv() { public EnvConfig getDefaultEnv() {
String installHome = StableUtils.getInstallHome(); String installHome = StableUtils.getInstallHome();
String defaultenvPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME}); String defaultenvPath = StableUtils.pathJoin(installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME);
defaultenvPath = new File(defaultenvPath).getPath(); defaultenvPath = new File(defaultenvPath).getPath();
if (nameEnvMap.size() >= 0) { Iterator<Entry<String, EnvConfig>> entryIt = nameEnvMap.entrySet().iterator();
Iterator<Entry<String, Env>> entryIt = nameEnvMap.entrySet().iterator(); while (entryIt.hasNext()) {
while (entryIt.hasNext()) { Entry<String, EnvConfig> entry = entryIt.next();
Entry<String, Env> entry = entryIt.next(); EnvConfig env = entry.getValue();
Env env = entry.getValue(); if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
if (ComparatorUtils.equals(defaultenvPath, env.getPath())) { return env;
return env;
}
} }
} }
Env newDefaultEnv = LocalEnv.createEnv(defaultenvPath); EnvConfig newDefaultEnv = new LocalEnvConfig(defaultenvPath);
this.putEnv(Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"}), newDefaultEnv); this.putEnv(Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"}), newDefaultEnv);
return newDefaultEnv; return newDefaultEnv;
} }
@ -505,10 +504,10 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
String defaultenvPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME}); String defaultenvPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
defaultenvPath = new File(defaultenvPath).getPath(); defaultenvPath = new File(defaultenvPath).getPath();
if (nameEnvMap.size() >= 0) { if (nameEnvMap.size() >= 0) {
Iterator<Entry<String, Env>> entryIt = nameEnvMap.entrySet().iterator(); Iterator<Entry<String, EnvConfig>> entryIt = nameEnvMap.entrySet().iterator();
while (entryIt.hasNext()) { while (entryIt.hasNext()) {
Entry<String, Env> entry = entryIt.next(); Entry<String, EnvConfig> entry = entryIt.next();
Env env = entry.getValue(); EnvConfig env = entry.getValue();
if (ComparatorUtils.equals(defaultenvPath, env.getPath())) { if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
return entry.getKey(); return entry.getKey();
} }
@ -680,7 +679,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/** /**
* 根据名称返回环境 * 根据名称返回环境
*/ */
public Env getEnv(String name) { public EnvConfig getEnv(String name) {
return this.nameEnvMap.get(name); return this.nameEnvMap.get(name);
} }
@ -690,7 +689,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @param name 名称 * @param name 名称
* @param env 对应的环境 * @param env 对应的环境
*/ */
public void putEnv(String name, Env env) { public void putEnv(String name, EnvConfig env) {
this.nameEnvMap.put(name, env); this.nameEnvMap.put(name, env);
} }
@ -1401,7 +1400,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if ((tmpVal = reader.getAttrAsString("webinfLocation", null)) != null) { if ((tmpVal = reader.getAttrAsString("webinfLocation", null)) != null) {
// marks:兼容6.1的 // marks:兼容6.1的
// marks:设置默认的目录. // marks:设置默认的目录.
Env reportServer = LocalEnv.createEnv(tmpVal); EnvConfig reportServer = new LocalEnvConfig(tmpVal);
String curReportServerName = Inter.getLocText("Server-Embedded_Server"); String curReportServerName = Inter.getLocText("Server-Embedded_Server");
this.putEnv(curReportServerName, reportServer); this.putEnv(curReportServerName, reportServer);
@ -1454,11 +1453,11 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
if (reader.isChildNode()) { if (reader.isChildNode()) {
if (reader.getTagName().equals("Env")) { // description. if (reader.getTagName().contains("Env")) { // description.
// marks:获取名字 // marks:获取名字
String reportServerName = reader.getAttrAsString("name", null); String reportServerName = reader.getAttrAsString("name", null);
Env env = readEnv(reader); EnvConfig env = readEnv(reader);
if (env == null) { if (env == null) {
return; return;
} }
@ -1584,7 +1583,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
Iterator<String> nameIt = this.getEnvNameIterator(); Iterator<String> nameIt = this.getEnvNameIterator();
while (nameIt.hasNext()) { while (nameIt.hasNext()) {
String envName = nameIt.next(); String envName = nameIt.next();
Env env = this.getEnv(envName); EnvConfig env = this.getEnv(envName);
writeEnv(writer, envName, env); writeEnv(writer, envName, env);
} }
@ -1743,44 +1742,44 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
} }
/* /*
* 写Env为xml * 写Env为xml
*/ */
private static void writeEnv(XMLPrintWriter writer, String name, Env env) { private static void writeEnv(XMLPrintWriter writer, String name, EnvConfig env) {
if (env == null) { if (env == null) {
return; return;
} }
writer.startTAG("Env"); writer.startTAG("EnvConfig");
writer.classAttr(env.getClass()); writer.classAttr(env.getClass());
writer.attr("name", name); writer.attr("name", name);
env.writeXML(writer); EnvConfigXMLAdapter xmlAdapter = env instanceof RemoteEnvConfig
? new RemoteEnvConfigXMLAdapter()
: new LocalEnvConfigXMLAdapter();
xmlAdapter.fromEnvConfig(env).writeXML(writer);
writer.end(); writer.end();
} }
/* /*
* 从xml读Env * 从xml读Env
*/ */
private static Env readEnv(XMLableReader reader) { private static EnvConfig readEnv(XMLableReader reader) {
Env env = null; EnvConfigXMLAdapter xmlAdapter = null;
String tmpVal; //temp value String tmpVal; //temp value
if ((tmpVal = reader.getAttrAsString("class", null)) != null) { if ((tmpVal = reader.getAttrAsString("class", null)) != null) {
if (tmpVal.endsWith(".LocalEnv")) { if (tmpVal.contains(".LocalEnv")) {
env = LocalEnv.createEnv(); xmlAdapter = new LocalEnvConfigXMLAdapter();
} else if (tmpVal.endsWith(".RemoteEnv")) { } else if (tmpVal.contains(".RemoteEnv")) {
env = new RemoteEnv(); xmlAdapter = new RemoteEnvConfigXMLAdapter();
} }
} }
if (env == null) { if (xmlAdapter == null) {
return env; return null;
} }
reader.readXMLObject(env); reader.readXMLObject(xmlAdapter);
return xmlAdapter.toEnvConfig();
return env;
} }
public AlphaFineConfigManager getAlphaFineConfigManager() { public AlphaFineConfigManager getAlphaFineConfigManager() {
@ -1790,4 +1789,78 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
public void setAlphaFineConfigManager(AlphaFineConfigManager alphaFineConfigManager) { public void setAlphaFineConfigManager(AlphaFineConfigManager alphaFineConfigManager) {
this.alphaFineConfigManager = alphaFineConfigManager; this.alphaFineConfigManager = alphaFineConfigManager;
} }
private interface EnvConfigXMLAdapter extends XMLReadable, XMLWriter {
EnvConfig toEnvConfig();
EnvConfigXMLAdapter fromEnvConfig(EnvConfig envConfig);
}
private static class LocalEnvConfigXMLAdapter implements EnvConfigXMLAdapter {
private String path;
public void readXML(XMLableReader reader) {
if (reader.isChildNode()) {
if ("DIR".equals(reader.getTagName())) {
this.path = reader.getElementValue();
}
}
}
public void writeXML(XMLPrintWriter writer) {
writer.startTAG("DIR").textNode(this.path).end();
}
public EnvConfig toEnvConfig() {
return new LocalEnvConfig(path);
}
public EnvConfigXMLAdapter fromEnvConfig(EnvConfig envConfig) {
this.path = envConfig.getPath();
return this;
}
}
private static class RemoteEnvConfigXMLAdapter implements EnvConfigXMLAdapter {
private String path;
private String username;
private String password;
public void readXML(XMLableReader reader) {
if (reader.isChildNode()) {
String tmpVal;
if ("DIR".equals(reader.getTagName())) {
if ((tmpVal = reader.getAttrAsString("path", null)) != null) {
this.path = tmpVal;
}
if ((tmpVal = reader.getAttrAsString("user", null)) != null) {
this.username = tmpVal;
}
if ((tmpVal = reader.getAttrAsString("password", null)) != null) {
this.password = tmpVal;
}
}
}
}
public void writeXML(XMLPrintWriter writer) {
writer.startTAG("DIR")
.attr("path", this.path)
.attr("user", this.username)
.attr("password", this.password)
.end();
}
public EnvConfig toEnvConfig() {
return new RemoteEnvConfig(path, username, password);
}
public EnvConfigXMLAdapter fromEnvConfig(EnvConfig envConfig) {
this.path = envConfig.getPath();
this.username = EnvConfigUtils.getUsername(envConfig);
this.password = EnvConfigUtils.getPassword(envConfig);
return this;
}
}
} }

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

@ -1,14 +1,14 @@
package com.fr.design.actions.file; package com.fr.design.actions.file;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.Env;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.dav.LocalEnv; import com.fr.base.env.resource.LocalEnvConfig;
import com.fr.base.env.resource.RemoteEnvConfig;
import com.fr.core.env.EnvConfig;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange; import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
@ -18,20 +18,15 @@ import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.SeparatorDef;
import com.fr.env.RemoteEnv; import com.fr.env.RemoteEnv;
import com.fr.env.SignIn; import com.fr.env.SignIn;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.stable.EnvChangedListener; import com.fr.stable.EnvChangedListener;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import javax.swing.*; import javax.swing.JOptionPane;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.logging.Level;
public class SwitchExistEnv extends MenuDef { public class SwitchExistEnv extends MenuDef {
@ -71,10 +66,10 @@ public class SwitchExistEnv extends MenuDef {
public GetExistEnvAction(String envName) { public GetExistEnvAction(String envName) {
this.setName(envName); this.setName(envName);
Env env = DesignerEnvManager.getEnvManager().getEnv(envName); EnvConfig env = DesignerEnvManager.getEnvManager().getEnv(envName);
if (env instanceof LocalEnv) { if (env instanceof LocalEnvConfig) {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png")); this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
} else if (env instanceof RemoteEnv) { } else if (env instanceof RemoteEnvConfig) {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png")); this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
} }
} }
@ -102,20 +97,12 @@ public class SwitchExistEnv extends MenuDef {
*/ */
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
Env selectedEnv = envManager.getEnv(this.getName()); EnvConfig selectedEnv = envManager.getEnv(this.getName());
try { try {
if (selectedEnv instanceof RemoteEnv && !((RemoteEnv) selectedEnv).testServerConnection()) { if (selectedEnv instanceof RemoteEnv && !((RemoteEnv) selectedEnv).testServerConnection()) {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"})); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
return; return;
} }
String remoteVersion = selectedEnv.getDesignerVersion();
if (StringUtils.isBlank(remoteVersion) || ComparatorUtils.compare(remoteVersion, ProductConstants.DESIGNER_VERSION) < 0) {
String infor = Inter.getLocText("Server-version-tip");
String moreInfo = Inter.getLocText("Server-version-tip-moreInfo");
FRLogger.getLogger().log(Level.WARNING, infor);
new InformationWarnPane(infor, moreInfo, Inter.getLocText("Tooltips")).show();
return;
}
SignIn.signIn(selectedEnv); SignIn.signIn(selectedEnv);
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea(); HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
fireDSChanged(); fireDSChanged();

47
designer-base/src/com/fr/design/file/TemplateTreePane.java

@ -143,7 +143,7 @@ public class TemplateTreePane extends JPanel implements FileOperations {
public void openContainerFolder() { public void openContainerFolder() {
FileNode fn = TemplateTreePane.this.reportletsTree.getSelectedFileNode(); FileNode fn = TemplateTreePane.this.reportletsTree.getSelectedFileNode();
LocalEnv localEnv = (LocalEnv) FRContext.getCurrentEnv(); LocalEnv localEnv = (LocalEnv) FRContext.getCurrentEnv();
String filePath = StableUtils.pathJoin(localEnv.path, fn.getEnvPath()); String filePath = StableUtils.pathJoin(localEnv.getPath(), fn.getEnvPath());
filePath = filePath.substring(0, filePath.lastIndexOf(CoreConstants.SEPARATOR)); filePath = filePath.substring(0, filePath.lastIndexOf(CoreConstants.SEPARATOR));
try { try {
Desktop.getDesktop().open(new File(filePath)); Desktop.getDesktop().open(new File(filePath));
@ -193,6 +193,16 @@ public class TemplateTreePane extends JPanel implements FileOperations {
reportletsTree.refresh(); reportletsTree.refresh();
} }
@Override
public void lockFile() {
throw new UnsupportedOperationException("unsupport now");
}
@Override
public void unLockFile() {
throw new UnsupportedOperationException("unsupport now");
}
private void deleteHistory(String fileName) { private void deleteHistory(String fileName) {
int index = HistoryTemplateListPane.getInstance().contains(fileName); int index = HistoryTemplateListPane.getInstance().contains(fileName);
int size = HistoryTemplateListPane.getInstance().getHistoryCount(); int size = HistoryTemplateListPane.getInstance().getHistoryCount();
@ -218,41 +228,6 @@ public class TemplateTreePane extends JPanel implements FileOperations {
MutilTempalteTabPane.getInstance().repaint(); MutilTempalteTabPane.getInstance().repaint();
} }
/**
* 加上文件锁
*/
public void lockFile() {
FileNode fn = reportletsTree.getSelectedFileNode();
RemoteEnv remoteEnv = (RemoteEnv) FRContext.getCurrentEnv();
if (fn == null) {
return;
}
try {
remoteEnv.getLock(new String[]{fn.getEnvPath()});
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), e.getMessage());
}
reportletsTree.refresh();
}
/**
* 文件解锁
*/
public void unLockFile() {
FileNode fn = reportletsTree.getSelectedFileNode();
if (fn == null) {
return;
}
RemoteEnv remoteEnv = (RemoteEnv) FRContext.getCurrentEnv();
try {
remoteEnv.releaseLock(new String[]{fn.getEnvPath()});
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), e.getMessage());
}
reportletsTree.refresh();
}
public String getSelectedTemplatePath() { public String getSelectedTemplatePath() {
return reportletsTree.getSelectedTemplatePath(); return reportletsTree.getSelectedTemplatePath();

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

@ -6,6 +6,8 @@ package com.fr.design.mainframe;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.Env; import com.fr.base.Env;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.env.resource.EnvConfigUtils;
import com.fr.core.env.EnvConfig;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignState; import com.fr.design.DesignState;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
@ -640,10 +642,10 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
defaultTitleSB.append(ProductConstants.BRANCH); defaultTitleSB.append(ProductConstants.BRANCH);
// james:标识登录的用户和登录的ENV // james:标识登录的用户和登录的ENV
String envName = DesignerEnvManager.getEnvManager().getCurEnvName(); String envName = DesignerEnvManager.getEnvManager().getCurEnvName();
Env env = DesignerEnvManager.getEnvManager().getEnv(envName); EnvConfig env = DesignerEnvManager.getEnvManager().getEnv(envName);
if (env != null) { if (env != null) {
defaultTitleSB.append(env.getUser()).append('@').append(envName).append('['); defaultTitleSB.append(EnvConfigUtils.getUsername(env)).append('@').append(envName).append('[');
defaultTitleSB.append(env.getEnvDescription()); defaultTitleSB.append(Inter.getLocText("Env-Remote_Server"));
defaultTitleSB.append(']'); defaultTitleSB.append(']');
if (editingTemplate != null) { if (editingTemplate != null) {
String path = editingTemplate.getEditingFILE().getPath(); String path = editingTemplate.getEditingFILE().getPath();

32
designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java

@ -249,38 +249,6 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
} }
} }
/*
* 加锁
*/
private class GetLockAction extends UpdateAction {
public GetLockAction() {
this.setName(Inter.getLocText("FR-Designer_Get_Lock"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/lock.png"));
}
@Override
public void actionPerformed(ActionEvent evt) {
selectedOperation.lockFile();
}
}
/*
* 解锁
*/
private class ReleaseLockAction extends UpdateAction {
public ReleaseLockAction() {
this.setName(Inter.getLocText("FR-Designer_Release_Lock"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/unlock.png"));
}
@Override
public void actionPerformed(ActionEvent evt) {
selectedOperation.unLockFile();
}
}
/** /**
* 按钮状态改变 * 按钮状态改变
*/ */

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

@ -1,7 +1,7 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.Env; import com.fr.core.env.EnvConfig;
import com.fr.dav.LocalEnv; import com.fr.dav.LocalEnv;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
@ -22,8 +22,19 @@ import com.fr.stable.EnvChangedListener;
import com.fr.stable.ProductConstants; import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.swing.*; import javax.swing.BorderFactory;
import java.awt.*; import javax.swing.Icon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
@ -97,6 +108,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 是否可扩展 * 是否可扩展
*
* @return 同上 * @return 同上
*/ */
public boolean IsExpanded() { public boolean IsExpanded() {
@ -111,7 +123,7 @@ public class TemplatePane extends JPanel implements MouseListener {
private boolean envListOkAction(EnvListPane envListPane) { private boolean envListOkAction(EnvListPane envListPane) {
String selectedName = envListPane.updateEnvManager(); String selectedName = envListPane.updateEnvManager();
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
Env selectedEnv = envManager.getEnv(selectedName); EnvConfig selectedEnv = envManager.getEnv(selectedName);
GeneralContext.fireEnvWillChangeListener(); GeneralContext.fireEnvWillChangeListener();
try { try {
//如果是远程的还要先测试下,如果失败就不切换 //如果是远程的还要先测试下,如果失败就不切换
@ -120,7 +132,7 @@ public class TemplatePane extends JPanel implements MouseListener {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"})); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
return false; return false;
} else { } else {
String remoteVersion = selectedEnv.getDesignerVersion(); String remoteVersion = getDesignerVersion(selectedEnv);
if (StringUtils.isBlank(remoteVersion) || ComparatorUtils.compare(remoteVersion, ProductConstants.DESIGNER_VERSION) < 0) { if (StringUtils.isBlank(remoteVersion) || ComparatorUtils.compare(remoteVersion, ProductConstants.DESIGNER_VERSION) < 0) {
String infor = Inter.getLocText("Server-version-tip"); String infor = Inter.getLocText("Server-version-tip");
String moreInfo = Inter.getLocText("Server-version-tip-moreInfo"); String moreInfo = Inter.getLocText("Server-version-tip-moreInfo");
@ -147,6 +159,11 @@ public class TemplatePane extends JPanel implements MouseListener {
return true; return true;
} }
private String getDesignerVersion(EnvConfig selectedEnv) {
// return selectedEnv.getDesignerVersion();
throw new UnsupportedOperationException("unsupport now");
}
/** /**
* 编辑items * 编辑items
*/ */
@ -161,7 +178,7 @@ public class TemplatePane extends JPanel implements MouseListener {
} }
public void doCancel() { public void doCancel() {
envListDialog.setVisible(false); envListDialog.setVisible(false);
} }
}); });
envListDialog.setVisible(true); envListDialog.setVisible(true);
@ -209,6 +226,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 鼠标点击 * 鼠标点击
*
* @param e 事件 * @param e 事件
*/ */
@Override @Override
@ -217,6 +235,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 鼠标按下 * 鼠标按下
*
* @param e 事件 * @param e 事件
*/ */
@Override @Override
@ -231,6 +250,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 鼠标放开 * 鼠标放开
*
* @param e 事件 * @param e 事件
*/ */
@Override @Override
@ -239,6 +259,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 鼠标进入 * 鼠标进入
*
* @param e 事件 * @param e 事件
*/ */
@Override @Override
@ -247,6 +268,7 @@ public class TemplatePane extends JPanel implements MouseListener {
/** /**
* 鼠标离开 * 鼠标离开
*
* @param e 事件 * @param e 事件
*/ */
@Override @Override

5
designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java

@ -11,6 +11,7 @@ import com.fr.general.FRLogLevel;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.LogRecordTime;
import com.fr.log.LogHandler; import com.fr.log.LogHandler;
import com.fr.stable.EnvChangedListener; import com.fr.stable.EnvChangedListener;
import com.fr.stable.xml.LogRecordTimeProvider; import com.fr.stable.xml.LogRecordTimeProvider;
@ -149,6 +150,10 @@ public class DesignerLogHandler {
logHandlerArea.printStackTrace(message, level, date); logHandlerArea.printStackTrace(message, level, date);
} }
public void printRemoteLog(LogRecordTime logRecordTime) {
logHandlerArea.printStackTrace(logRecordTime);
}
private class LogHandlerArea extends JPanel { private class LogHandlerArea extends JPanel {
private static final long serialVersionUID = 8215630927304621660L; private static final long serialVersionUID = 8215630927304621660L;

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

@ -0,0 +1,88 @@
package com.fr.design.mainframe.loghandler.socketio;
import com.fr.base.env.EnvContext;
import com.fr.base.env.resource.LocalEnvConfig;
import com.fr.core.env.EnvConfig;
import com.fr.core.env.EnvConstants;
import com.fr.core.env.EnvEvents;
import com.fr.decision.webservice.utils.DecisionServiceConstants;
import com.fr.design.mainframe.loghandler.DesignerLogHandler;
import com.fr.event.Event;
import com.fr.event.EventDispatcher;
import com.fr.event.Listener;
import com.fr.event.Null;
import com.fr.general.LogRecordTime;
import com.fr.general.LogUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.third.guava.base.Optional;
import com.fr.web.WebSocketConfig;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import java.io.ByteArrayInputStream;
import java.net.URI;
import java.net.URL;
public class DesignerSocketIO {
private static Optional<Socket> socketIO = Optional.absent();
private static final Emitter.Listener printLog = new Emitter.Listener() {
@Override
public void call(Object... objects) {
try {
LogRecordTime[] logRecordTimes = LogUtils.readXMLLogRecords(new ByteArrayInputStream((byte[]) objects[0]));
for (LogRecordTime logRecordTime : logRecordTimes) {
DesignerLogHandler.getInstance().printRemoteLog(logRecordTime);
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
};
static {
EventDispatcher.listen(EnvEvents.AFTER_SIGN_OUT, new Listener<Null>() {
@Override
public void on(Event event, Null param) {
if (socketIO.isPresent()) {
socketIO.get().close();
socketIO = Optional.absent();
}
}
});
EventDispatcher.listen(EnvEvents.AFTER_SIGN_IN, new Listener<Null>() {
@Override
public void on(Event event, Null param) {
updateSocket();
}
});
}
public static void init() {
updateSocket();
}
private static void updateSocket() {
EnvConfig env = EnvContext.currentEnv();
if (env instanceof LocalEnvConfig) {
return;
}
try {
String uri = String.format("http://%s:%s%s?%s=%s",
new URL(env.getPath()).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().connect();
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
}

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

@ -1,7 +1,8 @@
package com.fr.env; package com.fr.env;
import com.fr.base.Env; import com.fr.base.env.resource.LocalEnvConfig;
import com.fr.dav.LocalEnv; import com.fr.base.env.resource.RemoteEnvConfig;
import com.fr.core.env.EnvConfig;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.JListControlPane;
import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameObjectCreator;
@ -59,9 +60,9 @@ public class EnvListPane extends JListControlPane {
@Override @Override
public NameableCreator[] createNameableCreators() { public NameableCreator[] createNameableCreators() {
NameableCreator local = new NameObjectCreator(Inter.getLocText("Env-Local_Directory"), "com/fr/design/images/data/bind/localconnect.png", NameableCreator local = new NameObjectCreator(Inter.getLocText("Env-Local_Directory"), "com/fr/design/images/data/bind/localconnect.png",
LocalEnv.class, LocalEnvPane.class); LocalEnvConfig.class, LocalEnvPane.class);
NameableCreator remote = new NameObjectCreator(Inter.getLocText("Env-Remote_Server"), "com/fr/design/images/data/bind/distanceconnect.png", NameableCreator remote = new NameObjectCreator(Inter.getLocText("Env-Remote_Server"), "com/fr/design/images/data/bind/distanceconnect.png",
RemoteEnv.class, RemoteEnvPane.class); RemoteEnvConfig.class, RemoteEnvPane.class);
return new NameableCreator[]{local, remote}; return new NameableCreator[]{local, remote};
} }
@ -104,7 +105,7 @@ public class EnvListPane extends JListControlPane {
Nameable[] res = this.update(); Nameable[] res = this.update();
for (Nameable re : res) { for (Nameable re : res) {
NameObject nameObject = (NameObject) re; NameObject nameObject = (NameObject) re;
mgr.putEnv(nameObject.getName(), (Env) nameObject.getObject()); mgr.putEnv(nameObject.getName(), (EnvConfig) nameObject.getObject());
} }
return this.getSelectedName(); return this.getSelectedName();
} }

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

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

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

File diff suppressed because it is too large Load Diff

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

@ -1,6 +1,8 @@
package com.fr.env; package com.fr.env;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.env.resource.EnvConfigUtils;
import com.fr.base.env.resource.RemoteEnvConfig;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.border.UITitledBorder; import com.fr.design.border.UITitledBorder;
@ -49,7 +51,7 @@ import static com.fr.design.layout.TableLayout.PREFERRED;
/** /**
* @author yaohwu * @author yaohwu
*/ */
public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> { public class RemoteEnvPane extends BasicBeanPane<RemoteEnvConfig> {
private static final Color TIPS_FONT_COLOR = new Color(0x8f8f92); private static final Color TIPS_FONT_COLOR = new Color(0x8f8f92);
@ -100,7 +102,7 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> {
/** /**
* 主机位置 * 主机位置
*/ */
private RemoteEnvURL remoteEnvURL; private RemoteEnvURL remoteEnvURL = new RemoteEnvURL("");
/** /**
* https 配置面板 * https 配置面板
*/ */
@ -151,6 +153,7 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> {
@Override @Override
public void removeUpdate(DocumentEvent e) { public void removeUpdate(DocumentEvent e) {
actionURLInputChange(); actionURLInputChange();
} }
@ -250,7 +253,7 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> {
} }
@Override @Override
public void populateBean(RemoteEnv ob) { public void populateBean(RemoteEnvConfig ob) {
if (StringUtils.isEmpty(ob.getPath())) { if (StringUtils.isEmpty(ob.getPath())) {
remoteEnvURL = RemoteEnvURL.createDefaultURL(); remoteEnvURL = RemoteEnvURL.createDefaultURL();
@ -265,18 +268,20 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> {
fileChooserButton.setEnabled(remoteEnvURL.getHttps()); fileChooserButton.setEnabled(remoteEnvURL.getHttps());
updateHttpsConfigPanel(); updateHttpsConfigPanel();
this.usernameInput.setText(ob.getUser() == null ? StringUtils.EMPTY : ob.getUser()); String username = EnvConfigUtils.getUsername(ob);
String pwd = EnvConfigUtils.getPassword(ob);
this.usernameInput.setText(username == null ? StringUtils.EMPTY : pwd);
this.passwordInput.setText(ob.getPassword() == null ? StringUtils.EMPTY : ob.getPassword()); this.passwordInput.setText(ob.getPassword() == null ? StringUtils.EMPTY : ob.getPassword());
} }
@Override @Override
public RemoteEnv updateBean() { public RemoteEnvConfig updateBean() {
String path = remoteEnvURL.getURL(); String path = remoteEnvURL.getURL();
String user = this.usernameInput.getText(); String user = this.usernameInput.getText();
String password = new String(this.passwordInput.getPassword()); String password = new String(this.passwordInput.getPassword());
return new RemoteEnv(path, user, password); return new RemoteEnvConfig(path, user, password);
} }
@Override @Override
@ -465,11 +470,8 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteEnv> {
} }
private boolean testConnection() { private boolean testConnection() {
RemoteEnv env = new RemoteEnv();
String url = remoteEnvURL.getURL(); String url = remoteEnvURL.getURL();
env.setPath(url); RemoteEnv env = new RemoteEnv(url, usernameInput.getText(), new String(passwordInput.getPassword()));
env.setUser(usernameInput.getText());
env.setPassword(new String(passwordInput.getPassword()));
boolean connect = false; boolean connect = false;
try { try {
if (StringUtils.isNotEmpty(url)) { if (StringUtils.isNotEmpty(url)) {

83
designer-base/src/com/fr/env/RemoteEnvUtils.java vendored

@ -57,7 +57,7 @@ public class RemoteEnvUtils {
builder.addParameter(entry.getKey(), entry.getValue()); builder.addParameter(entry.getKey(), entry.getValue());
} }
if (!isSignIn) { if (!isSignIn) {
builder.addParameter("id", env.getValidUserID()); builder.addParameter("id", env.getUserID());
} }
InputStreamEntity reqEntity = new InputStreamEntity(new ByteArrayInputStream(bytes)); InputStreamEntity reqEntity = new InputStreamEntity(new ByteArrayInputStream(bytes));
@ -82,7 +82,7 @@ public class RemoteEnvUtils {
builder.addParameter(entry.getKey(), entry.getValue()); builder.addParameter(entry.getKey(), entry.getValue());
} }
if (!isSignIn) { if (!isSignIn) {
builder.addParameter("id", env.getValidUserID()); builder.addParameter("id", env.getUserID());
} }
try (CloseableHttpClient httpClient = HttpClients.createSystem()) { try (CloseableHttpClient httpClient = HttpClients.createSystem()) {
@ -105,7 +105,7 @@ public class RemoteEnvUtils {
builder.addParameter(entry.getKey(), entry.getValue()); builder.addParameter(entry.getKey(), entry.getValue());
} }
if (!isSignIn) { if (!isSignIn) {
builder.addParameter("id", env.getValidUserID()); builder.addParameter("id", env.getUserID());
} }
try (CloseableHttpClient httpClient = HttpClients.createSystem()) { try (CloseableHttpClient httpClient = HttpClients.createSystem()) {
HttpUriRequest request = builder.build(); HttpUriRequest request = builder.build();
@ -118,57 +118,10 @@ public class RemoteEnvUtils {
} }
public static InputStream headBeatConnection(RemoteEnv env) { public static InputStream updateAuthorities(DesignAuthority[] authorities, RemoteEnv env) {
String path = env.getPath();
String username = env.getUser();
InputStream inputStream = null;
try (CloseableHttpClient httpClient = HttpClients.createSystem()) {
HttpUriRequest request = RequestBuilder.get(path)
.addParameter("op", "fr_remote_design")
.addParameter("cmd", "heart_beat")
.addParameter("user", username)
.addParameter("id", env.getValidUserID())
.build();
inputStream = httpClient.execute(request, responseHandler);
} catch (IOException | EnvException e) {
FRContext.getLogger().error(e.getMessage());
}
return inputStream;
}
public static InputStream testConnection(boolean isSignIn, RemoteEnv env) throws EnvException {
String username = env.getUser();
String path = env.getPath();
String password = env.getPassword();
InputStream inputStream = null;
try (CloseableHttpClient httpClient = HttpClients.createSystem()) {
RequestBuilder builder = RequestBuilder.get(path);
if (!isSignIn) {
builder.addParameter("id", env.getValidUserID());
}
HttpUriRequest request = builder
.addParameter("op", "fr_remote_design")
.addParameter("cmd", "test_server_connection")
.addParameter("user", username)
.addParameter("password", URLEncoder.encode(password, EncodeConstants.ENCODING_UTF_8))
.build();
inputStream = httpClient.execute(request, responseHandler);
} catch (IOException e) {
FRContext.getLogger().error(e.getMessage());
}
return inputStream;
}
public static InputStream updateAuthorities(DesignAuthority[] authorities, RemoteEnv env) throws EnvException {
String path = env.getPath(); String path = env.getPath();
// 远程设计临时用户id // 远程设计临时用户id
String userID = env.getValidUserID(); String userID = env.getUserID();
InputStream inputStream = null; InputStream inputStream = null;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
@ -194,7 +147,7 @@ public class RemoteEnvUtils {
public static InputStream getAuthorities(RemoteEnv env) throws EnvException { public static InputStream getAuthorities(RemoteEnv env) throws EnvException {
String path = env.getPath(); String path = env.getPath();
// 远程设计临时用户id // 远程设计临时用户id
String userID = env.getValidUserID(); String userID = env.getUserID();
InputStream inputStream = null; InputStream inputStream = null;
try (CloseableHttpClient httpClient = HttpClients.createSystem();) { try (CloseableHttpClient httpClient = HttpClients.createSystem();) {
@ -211,28 +164,4 @@ public class RemoteEnvUtils {
} }
public static InputStream listFile(String pFilePath, boolean isWebReport, RemoteEnv env) throws EnvException {
String path = env.getPath();
// 远程设计临时用户id
String userID = env.getValidUserID();
String username = env.getUser();
InputStream inputStream = null;
try (CloseableHttpClient httpClient = HttpClients.createSystem()) {
HttpUriRequest request = RequestBuilder.get(path)
.addParameter("op", "fs_remote_design")
.addParameter("cmd", "design_list_file")
.addParameter("file_path", pFilePath)
.addParameter("currentUserName", username)
.addParameter("currentUserId", userID)
.addParameter("id", userID)
.addParameter("isWebReport", Boolean.toString(isWebReport))
.build();
inputStream = httpClient.execute(request, responseHandler);
} catch (IOException e) {
FRContext.getLogger().error(e.getMessage());
}
return inputStream;
}
} }

62
designer-base/src/com/fr/env/SignIn.java vendored

@ -1,43 +1,61 @@
package com.fr.env; package com.fr.env;
import com.fr.base.Env;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.env.EnvContext;
import com.fr.base.env.resource.EnvConfigUtils;
import com.fr.base.env.resource.RemoteEnvConfig;
import com.fr.core.env.EnvConfig;
import com.fr.core.env.EnvEvents;
import com.fr.dav.LocalEnv;
import com.fr.design.utils.DesignUtils; 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.ComparatorUtils;
import com.fr.general.env.EnvContext; import com.fr.general.Inter;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class SignIn { public class SignIn {
public static Env lastSelectedEnv;// 记录最后登录的Env
static {
EventDispatcher.listen(EnvEvents.CONNECTION_ERROR, new Listener<Null>() {
@Override
public void on(Event event, Null param) {
if (JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Remote_Connect2Server_Again"), UIManager.getString("OptionPane.titleText"), JOptionPane.YES_NO_OPTION)
== JOptionPane.OK_OPTION) {
try {
EnvContext.signIn(EnvContext.currentEnv());
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage());
}
}
}
});
}
/** /**
* 注册入环境 * 注册入环境
* @param selectedEnv 选择的环境 * @param selectedEnv 选择的环境
* @throws Exception 异常 * @throws Exception 异常
*/ */
public static void signIn(Env selectedEnv) throws Exception { public static void signIn(EnvConfig selectedEnv) throws Exception {
boolean validServer; if (EnvContext.currentEnv() != null && !ComparatorUtils.equals(EnvContext.currentEnv(), selectedEnv)) {
signOutOldEnv(selectedEnv); EnvContext.signOut();
selectedEnv.signIn();
validServer = true;
if (validServer) {
DesignUtils.switchToEnv(selectedEnv);
lastSelectedEnv = selectedEnv;
} }
EnvContext.signIn(selectedEnv);
DesignUtils.switchToEnv(trans(selectedEnv));
} }
private static void signOutOldEnv(Env newEnv) { private static com.fr.base.Env trans(EnvConfig env) {
// 环境相同直接返回,避免浪费过多时间 if (env instanceof RemoteEnvConfig) {
if (lastSelectedEnv == null || ComparatorUtils.equals(lastSelectedEnv, newEnv)) { return new RemoteEnv(env.getPath(), EnvConfigUtils.getUsername(env), EnvConfigUtils.getPassword(env));
return; } else {
} return new LocalEnv();
try {
EnvContext.fireBeforeSignOut();
lastSelectedEnv.signOut();
EnvContext.fireAfterSignOut();
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
} }
} }
} }

3
designer-realize/src/com/fr/start/module/DesignerModuleActivator.java

@ -1,5 +1,6 @@
package com.fr.start.module; package com.fr.start.module;
import com.fr.design.mainframe.loghandler.socketio.DesignerSocketIO;
import com.fr.design.module.DesignerModule; import com.fr.design.module.DesignerModule;
import com.fr.general.ModuleContext; import com.fr.general.ModuleContext;
import com.fr.locale.InterMutableKey; import com.fr.locale.InterMutableKey;
@ -20,6 +21,8 @@ public class DesignerModuleActivator extends Activator implements Prepare {
ModuleContext.registerModuleListener(getModule().upFindSingleton(ModuleListener.class)); ModuleContext.registerModuleListener(getModule().upFindSingleton(ModuleListener.class));
ModuleContext.startModule(DesignerModule.class.getName()); ModuleContext.startModule(DesignerModule.class.getName());
ModuleContext.clearModuleListener(); ModuleContext.clearModuleListener();
DesignerSocketIO.init();
} }
@Override @Override

Loading…
Cancel
Save