diff --git a/designer-base/pom.xml b/designer-base/pom.xml
index 520ce6f2f..8d6e8bffb 100644
--- a/designer-base/pom.xml
+++ b/designer-base/pom.xml
@@ -8,6 +8,13 @@
design
10.0-FEATURE-SNAPSHOT
+
+
+ io.socket
+ socket.io-client
+ 0.7.0
+
+
com.fr.report
designer-base
10.0-FEATURE-SNAPSHOT
diff --git a/designer-base/src/com/fr/design/DesignerEnvManager.java b/designer-base/src/com/fr/design/DesignerEnvManager.java
index f372c9ef7..06d205860 100644
--- a/designer-base/src/com/fr/design/DesignerEnvManager.java
+++ b/designer-base/src/com/fr/design/DesignerEnvManager.java
@@ -4,21 +4,22 @@
package com.fr.design;
import com.fr.base.BaseXMLUtils;
-import com.fr.base.Env;
import com.fr.base.FRContext;
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.constants.UIConstants;
-import com.fr.env.RemoteEnv;
import com.fr.env.SignIn;
import com.fr.file.FILEFactory;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogFormatter;
-import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.Constants;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.ListMap;
@@ -33,10 +34,9 @@ import com.fr.stable.xml.XMLTools;
import com.fr.stable.xml.XMLWriter;
import com.fr.stable.xml.XMLableReader;
-import javax.swing.SwingWorker;
+import javax.swing.*;
import javax.swing.SwingWorker.StateValue;
-import java.awt.Color;
-import java.awt.Rectangle;
+import java.awt.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
@@ -72,7 +72,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
private boolean showPaintToolBar = true;
private int maxNumberOrPreviewRow = 200;
// name和Env的键值对
- private Map nameEnvMap = new ListMap();
+ private Map nameEnvMap = new ListMap();
// marks: 当前报表服务器名字
private String curEnvName = null;
private boolean showProjectPane = true;
@@ -191,7 +191,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, LocalEnv.createEnv(envPath));
+ designerEnvManager.putEnv(name, new LocalEnvConfig(envPath));
designerEnvManager.setCurEnvName(name);
}
}
@@ -227,7 +227,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
- FRLogger.getLogger().error("Map Save Error");
+ FineLoggerFactory.getLogger().error("Map Save Error");
}
}
}
@@ -323,7 +323,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
FRContext.getLogger().error(e.getMessage(), e);
}
// 清空前一个版本中的工作目录和最近打开
- nameEnvMap = new ListMap();
+ nameEnvMap = new ListMap();
recentOpenedFilePathList = new ArrayList();
curEnvName = null;
designerEnvManager.saveXMLFile();
@@ -470,7 +470,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @return 是默认则返回true
*/
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});
return ComparatorUtils.equals(new File(defaultEnvPath).getPath(), currentEnv.getPath());
}
@@ -478,21 +478,19 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/**
* 返回默认环境
*/
- public Env getDefaultEnv() {
+ public EnvConfig getDefaultEnv() {
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();
- if (nameEnvMap.size() >= 0) {
- Iterator> entryIt = nameEnvMap.entrySet().iterator();
- while (entryIt.hasNext()) {
- Entry entry = entryIt.next();
- Env env = entry.getValue();
- if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
- return env;
- }
+ Iterator> entryIt = nameEnvMap.entrySet().iterator();
+ while (entryIt.hasNext()) {
+ Entry entry = entryIt.next();
+ EnvConfig env = entry.getValue();
+ if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
+ return env;
}
}
- Env newDefaultEnv = LocalEnv.createEnv(defaultenvPath);
+ EnvConfig newDefaultEnv = new LocalEnvConfig(defaultenvPath);
this.putEnv(Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"}), newDefaultEnv);
return newDefaultEnv;
}
@@ -505,10 +503,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> entryIt = nameEnvMap.entrySet().iterator();
+ Iterator> entryIt = nameEnvMap.entrySet().iterator();
while (entryIt.hasNext()) {
- Entry entry = entryIt.next();
- Env env = entry.getValue();
+ Entry entry = entryIt.next();
+ EnvConfig env = entry.getValue();
if (ComparatorUtils.equals(defaultenvPath, env.getPath())) {
return entry.getKey();
}
@@ -680,7 +678,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
/**
* 根据名称返回环境
*/
- public Env getEnv(String name) {
+ public EnvConfig getEnv(String name) {
return this.nameEnvMap.get(name);
}
@@ -690,7 +688,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @param name 名称
* @param env 对应的环境
*/
- public void putEnv(String name, Env env) {
+ public void putEnv(String name, EnvConfig env) {
this.nameEnvMap.put(name, env);
}
@@ -1401,7 +1399,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if ((tmpVal = reader.getAttrAsString("webinfLocation", null)) != null) {
// marks:兼容6.1的
// marks:设置默认的目录.
- Env reportServer = LocalEnv.createEnv(tmpVal);
+ EnvConfig reportServer = new LocalEnvConfig(tmpVal);
String curReportServerName = Inter.getLocText("Server-Embedded_Server");
this.putEnv(curReportServerName, reportServer);
@@ -1454,11 +1452,11 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
}
if (reader.isChildNode()) {
- if (reader.getTagName().equals("Env")) { // description.
+ if (reader.getTagName().contains("Env")) { // description.
// marks:获取名字
String reportServerName = reader.getAttrAsString("name", null);
- Env env = readEnv(reader);
+ EnvConfig env = readEnv(reader);
if (env == null) {
return;
}
@@ -1584,7 +1582,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
Iterator nameIt = this.getEnvNameIterator();
while (nameIt.hasNext()) {
String envName = nameIt.next();
- Env env = this.getEnv(envName);
+ EnvConfig env = this.getEnv(envName);
writeEnv(writer, envName, env);
}
@@ -1743,44 +1741,44 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
}
/*
- * 写Env为xml
- */
- private static void writeEnv(XMLPrintWriter writer, String name, Env env) {
+ * 写Env为xml
+ */
+ private static void writeEnv(XMLPrintWriter writer, String name, EnvConfig env) {
if (env == null) {
return;
}
- writer.startTAG("Env");
+ writer.startTAG("EnvConfig");
writer.classAttr(env.getClass());
writer.attr("name", name);
- env.writeXML(writer);
-
+ EnvConfigXMLAdapter xmlAdapter = env instanceof RemoteEnvConfig
+ ? new RemoteEnvConfigXMLAdapter()
+ : new LocalEnvConfigXMLAdapter();
+ xmlAdapter.fromEnvConfig(env).writeXML(writer);
writer.end();
}
/*
- * 从xml读Env
- */
- private static Env readEnv(XMLableReader reader) {
- Env env = null;
-
+ * 从xml读Env
+ */
+ private static EnvConfig readEnv(XMLableReader reader) {
+ EnvConfigXMLAdapter xmlAdapter = null;
String tmpVal; //temp value
if ((tmpVal = reader.getAttrAsString("class", null)) != null) {
- if (tmpVal.endsWith(".LocalEnv")) {
- env = LocalEnv.createEnv();
- } else if (tmpVal.endsWith(".RemoteEnv")) {
- env = new RemoteEnv();
+ if (tmpVal.contains(".LocalEnv")) {
+ xmlAdapter = new LocalEnvConfigXMLAdapter();
+ } else if (tmpVal.contains(".RemoteEnv")) {
+ xmlAdapter = new RemoteEnvConfigXMLAdapter();
}
}
- if (env == null) {
- return env;
+ if (xmlAdapter == null) {
+ return null;
}
- reader.readXMLObject(env);
-
- return env;
+ reader.readXMLObject(xmlAdapter);
+ return xmlAdapter.toEnvConfig();
}
public AlphaFineConfigManager getAlphaFineConfigManager() {
@@ -1790,4 +1788,78 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
public void setAlphaFineConfigManager(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;
+ }
+ }
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/ExtraDesignClassManager.java b/designer-base/src/com/fr/design/ExtraDesignClassManager.java
index ce5878946..179251539 100644
--- a/designer-base/src/com/fr/design/ExtraDesignClassManager.java
+++ b/designer-base/src/com/fr/design/ExtraDesignClassManager.java
@@ -18,9 +18,9 @@ import com.fr.design.gui.core.WidgetOptionFactory;
import com.fr.design.menu.ShortCut;
import com.fr.design.widget.Appearance;
import com.fr.form.ui.Widget;
-import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils;
import com.fr.general.IOUtils;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.AbstractExtraClassManager;
import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.injectable.PluginSingleInjection;
@@ -208,7 +208,7 @@ public class ExtraDesignClassManager extends AbstractExtraClassManager implement
return (Feedback) clazz.newInstance();
}
} catch (Exception e) {
- FRLogger.getLogger().info("no feed back support");
+ FineLoggerFactory.getLogger().info("no feed back support");
}
return Feedback.EMPTY;
}
diff --git a/designer-base/src/com/fr/design/RestartHelper.java b/designer-base/src/com/fr/design/RestartHelper.java
index 53aa5e56b..2900e09f5 100644
--- a/designer-base/src/com/fr/design/RestartHelper.java
+++ b/designer-base/src/com/fr/design/RestartHelper.java
@@ -2,11 +2,18 @@ package com.fr.design;
import com.fr.design.mainframe.DesignerContext;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils;
-import com.fr.stable.*;
-
-import java.io.*;
+import com.fr.log.FineLoggerFactory;
+import com.fr.stable.ArrayUtils;
+import com.fr.stable.OperatingSystem;
+import com.fr.stable.StableUtils;
+import com.fr.stable.StringUtils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.ArrayList;
@@ -39,7 +46,7 @@ public class RestartHelper {
properties.load(file2DeleteInputStream);
file2DeleteInputStream.close();
} catch (IOException e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
if (ArrayUtils.getLength(files) != 0) {
@@ -53,7 +60,7 @@ public class RestartHelper {
properties.store(file2DeleteOutputStream, "save");
file2DeleteOutputStream.close();
} catch (IOException e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
@@ -71,7 +78,7 @@ public class RestartHelper {
properties.load(file2MoveInputStream);
file2MoveInputStream.close();
} catch (IOException e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
if (!map.isEmpty()) {
@@ -84,7 +91,7 @@ public class RestartHelper {
properties.store(file2MoveOutputStream, "save");
file2MoveOutputStream.close();
} catch (IOException e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
@@ -156,10 +163,10 @@ public class RestartHelper {
FileChannel restartLockFC = randomAccessFile.getChannel();
FileLock restartLock = restartLockFC.tryLock();
if(restartLock == null) {
- FRLogger.getLogger().error("restart lock null!");
+ FineLoggerFactory.getLogger().error("restart lock null!");
}
}catch (Exception e){
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
if (OperatingSystem.isMacOS()) {
restartInMacOS(installHome, filesToBeDelete);
@@ -167,7 +174,7 @@ public class RestartHelper {
restartInWindows(installHome, filesToBeDelete);
}
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
} finally {
DesignerContext.getDesignerFrame().exit();
}
diff --git a/designer-base/src/com/fr/design/actions/community/BBSAction.java b/designer-base/src/com/fr/design/actions/community/BBSAction.java
index 09add551d..01cdcee95 100644
--- a/designer-base/src/com/fr/design/actions/community/BBSAction.java
+++ b/designer-base/src/com/fr/design/actions/community/BBSAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class BBSAction extends UpdateAction
{
@@ -46,12 +45,12 @@ public class BBSAction extends UpdateAction
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
public static final MenuKeySet BBS = new MenuKeySet() {
diff --git a/designer-base/src/com/fr/design/actions/community/BugAction.java b/designer-base/src/com/fr/design/actions/community/BugAction.java
index 497a12caa..5d5e6893c 100644
--- a/designer-base/src/com/fr/design/actions/community/BugAction.java
+++ b/designer-base/src/com/fr/design/actions/community/BugAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class BugAction extends UpdateAction
{
@@ -40,12 +39,12 @@ public void actionPerformed(ActionEvent arg0)
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/community/NeedAction.java b/designer-base/src/com/fr/design/actions/community/NeedAction.java
index bf9b3a509..b353dcaa8 100644
--- a/designer-base/src/com/fr/design/actions/community/NeedAction.java
+++ b/designer-base/src/com/fr/design/actions/community/NeedAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class NeedAction extends UpdateAction
{
@@ -41,12 +40,12 @@ public class NeedAction extends UpdateAction
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/community/QuestionAction.java b/designer-base/src/com/fr/design/actions/community/QuestionAction.java
index 7e8ced10b..6cf5f479c 100644
--- a/designer-base/src/com/fr/design/actions/community/QuestionAction.java
+++ b/designer-base/src/com/fr/design/actions/community/QuestionAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class QuestionAction extends UpdateAction
{
@@ -40,12 +39,12 @@ public void actionPerformed(ActionEvent arg0)
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/community/SignAction.java b/designer-base/src/com/fr/design/actions/community/SignAction.java
index 30170bc86..839d2b9d7 100644
--- a/designer-base/src/com/fr/design/actions/community/SignAction.java
+++ b/designer-base/src/com/fr/design/actions/community/SignAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class SignAction extends UpdateAction
{
@@ -41,12 +40,12 @@ public class SignAction extends UpdateAction
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/community/UpAction.java b/designer-base/src/com/fr/design/actions/community/UpAction.java
index 999b7e9e8..acbe2522b 100644
--- a/designer-base/src/com/fr/design/actions/community/UpAction.java
+++ b/designer-base/src/com/fr/design/actions/community/UpAction.java
@@ -1,22 +1,21 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
public class UpAction extends UpdateAction
{
@@ -41,12 +40,12 @@ public class UpAction extends UpdateAction
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/community/VideoAction.java b/designer-base/src/com/fr/design/actions/community/VideoAction.java
index ea53fbf8f..cedbe6273 100644
--- a/designer-base/src/com/fr/design/actions/community/VideoAction.java
+++ b/designer-base/src/com/fr/design/actions/community/VideoAction.java
@@ -1,23 +1,22 @@
package com.fr.design.actions.community;
-import java.awt.Desktop;
-import java.awt.event.ActionEvent;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Locale;
-
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Locale;
+
public class VideoAction extends UpdateAction
{
@@ -47,12 +46,12 @@ public class VideoAction extends UpdateAction
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/core/ActionFactory.java b/designer-base/src/com/fr/design/actions/core/ActionFactory.java
index 7bc73acbb..00824285c 100644
--- a/designer-base/src/com/fr/design/actions/core/ActionFactory.java
+++ b/designer-base/src/com/fr/design/actions/core/ActionFactory.java
@@ -7,10 +7,9 @@ import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.MenuKeySet;
import com.fr.design.selection.QuickEditor;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
-import javax.swing.Action;
-import javax.swing.KeyStroke;
+import javax.swing.*;
import java.awt.event.KeyEvent;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
@@ -55,6 +54,20 @@ public class ActionFactory {
private ActionFactory() {
}
+
+ /**
+ * 元素编辑器释放模板对象
+ */
+ public static void editorRelease() {
+ for (Map.Entry entry : cellEditor.entrySet()) {
+ entry.getValue().release();
+ }
+ for (Map.Entry entry : floatEditor.entrySet()) {
+ entry.getValue().release();
+ }
+ }
+
+
/**
* 注册无需每次实例化的单元格元素编辑器
*
@@ -336,7 +349,7 @@ public class ActionFactory {
if (c == null) {
Class extends QuickEditor> cClazz = findQuickEditorClass(clazz, editorClassMap);
if (cClazz == null) {
- FRLogger.getLogger().error("No Such Editor");
+ FineLoggerFactory.getLogger().error("No Such Editor");
return null;
}
try {
diff --git a/designer-base/src/com/fr/design/actions/file/LocalePane.java b/designer-base/src/com/fr/design/actions/file/LocalePane.java
index 4dd25c504..a5017bf04 100644
--- a/designer-base/src/com/fr/design/actions/file/LocalePane.java
+++ b/designer-base/src/com/fr/design/actions/file/LocalePane.java
@@ -4,33 +4,40 @@
package com.fr.design.actions.file;
-import java.awt.BorderLayout;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.*;
-
-import javax.swing.JTable;
-import javax.swing.RowFilter;
-import javax.swing.SwingWorker;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.table.DefaultTableModel;
-import javax.swing.table.TableRowSorter;
-
import com.fr.base.Env;
import com.fr.base.FRContext;
+import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.itextfield.UITextField;
-import com.fr.design.dialog.BasicPane;
import com.fr.file.filetree.FileNode;
-import com.fr.general.*;
+import com.fr.general.GeneralUtils;
+import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils;
-import com.fr.stable.StringUtils;
import com.fr.stable.bridge.StableFactory;
import com.fr.stable.project.ProjectConstants;
+import javax.swing.*;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableRowSorter;
+import java.awt.*;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.Vector;
+
/**
* @author : richie
* @since : 8.0
@@ -235,7 +242,7 @@ public class LocalePane extends BasicPane {
out.flush();
out.close();
} catch (Exception e) {
- FRLogger.getLogger().info(e.getMessage());
+ FineLoggerFactory.getLogger().info(e.getMessage());
}
}
}
diff --git a/designer-base/src/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/com/fr/design/actions/file/PreferencePane.java
index dd6eaa9ad..fd9024293 100644
--- a/designer-base/src/com/fr/design/actions/file/PreferencePane.java
+++ b/designer-base/src/com/fr/design/actions/file/PreferencePane.java
@@ -1,7 +1,6 @@
package com.fr.design.actions.file;
import com.fr.base.BaseUtils;
-import com.fr.base.ServerConfig;
import com.fr.design.DesignerEnvManager;
import com.fr.design.RestartHelper;
import com.fr.design.dialog.BasicDialog;
@@ -23,8 +22,9 @@ import com.fr.design.mainframe.DesignerContext;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRFont;
-import com.fr.general.FRLevel;
import com.fr.general.Inter;
+import com.fr.general.log.Log4jConfig;
+import com.fr.third.apache.log4j.Level;
import javax.swing.*;
import java.awt.*;
@@ -81,7 +81,7 @@ public class PreferencePane extends BasicPane {
private static final String MINUS = "MINUS";
private static final String DISPLAY_MINUS = "-";
- private static final FRLevel[] LOG = {FRLevel.SEVERE, FRLevel.WARNING, FRLevel.INFO, FRLevel.DEBUG};
+ private static final Level[] LOG = {Level.FATAL, Level.ERROR, Level.WARN, Level.INFO, Level.DEBUG};
private static java.util.List LANGUAGE = new ArrayList<>();
private static int designerEnvLanguageIndex; // 打开设置对话框时,设计器使用的语言
@@ -125,7 +125,7 @@ public class PreferencePane extends BasicPane {
LANGUAGE.clear();
Map map = Inter.getSupportLocaleMap();
LANGUAGE.add(Inter.getLocText("FR-Designer_Language_Default"));
- for(Locale locale : map.keySet()){
+ for (Locale locale : map.keySet()) {
LANGUAGE.add(getLocaledLanguage(map.get(locale), locale));
}
}
@@ -177,7 +177,7 @@ public class PreferencePane extends BasicPane {
advancePane.add(spaceUpPane);
}
- private static String getLocaledLanguage(String key, Locale locale){
+ private static String getLocaledLanguage(String key, Locale locale) {
StringBuilder sb = new StringBuilder();
sb.append(Inter.getLocText(key)).append("(");
sb.append(Inter.getLocText(key, locale)).append(")");
@@ -362,8 +362,8 @@ public class PreferencePane extends BasicPane {
logLevelPane.add(logLevelComboBox);
logLevelComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
-
- ServerConfig.getInstance().setServerLogLevel(((FRLevel) logLevelComboBox.getSelectedItem()).getLevel());
+
+ Log4jConfig.getInstance().setRootLevel((Level) logLevelComboBox.getSelectedItem());
}
});
}
@@ -380,7 +380,7 @@ public class PreferencePane extends BasicPane {
languageLabel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- final LocalePane localePane = new LocalePane();
+ final LocalePane localePane = new LocalePane();
BasicDialog dlg = localePane.showLargeWindow(SwingUtilities.getWindowAncestor(PreferencePane.this), new DialogActionAdapter() {
@Override
public void doOk() {
@@ -542,8 +542,8 @@ public class PreferencePane extends BasicPane {
paginationLineColorTBButton.setColor(designerEnvManager.getPaginationLineColor());
this.logExportDirectoryField.setText(designerEnvManager.getLogLocation());
-
- this.logLevelComboBox.setSelectedItem(FRLevel.getByLevel(ServerConfig.getInstance().getServerLogLevel()));
+
+ this.logLevelComboBox.setSelectedItem(Log4jConfig.getInstance().getRootLevel());
this.languageComboBox.setSelectedItem(LANGUAGE.get(designerEnvManager.getLanguage()));
designerEnvLanguageIndex = designerEnvManager.getLanguage();
@@ -622,8 +622,8 @@ public class PreferencePane extends BasicPane {
if (maxUndoLimit.getSelectedIndex() == SELECTED_INDEX_5) {
designerEnvManager.setUndoLimit(MAX_UNDO_LIMIT_50);
}
-
- ServerConfig.getInstance().setServerLogLevel(((FRLevel) logLevelComboBox.getSelectedItem()).getLevel());
+
+ Log4jConfig.getInstance().setRootLevel(((Level) logLevelComboBox.getSelectedItem()));
}
diff --git a/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java
index 57574ae25..278dfe5cc 100644
--- a/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java
+++ b/designer-base/src/com/fr/design/actions/file/SwitchExistEnv.java
@@ -1,14 +1,13 @@
package com.fr.design.actions.file;
import com.fr.base.BaseUtils;
-import com.fr.base.Env;
-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.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
-import com.fr.design.dialog.InformationWarnPane;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
@@ -18,21 +17,16 @@ import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef;
import com.fr.env.RemoteEnv;
import com.fr.env.SignIn;
-import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
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.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import java.util.logging.Level;
-
public class SwitchExistEnv extends MenuDef {
@@ -42,18 +36,20 @@ public class SwitchExistEnv extends MenuDef {
this.setHasScrollSubMenu(true);
initMenuDef();
JTemplate, ?> t = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
- if(t != null) {
- GeneralContext.addEnvWillChangedListener(t.getFullPathName(), new EnvChangedListener() {
- public void envChanged() {
- SwitchExistEnv.this.clearShortCuts();
- initMenuDef();
- }
- });
+ if (t != null) {
+ GeneralContext.addEnvWillChangedListener(
+ t.getFullPathName(),
+ new EnvChangedListener() {
+ public void envChanged() {
+ SwitchExistEnv.this.clearShortCuts();
+ initMenuDef();
+ }
+ });
}
}
private void initMenuDef() {
- //ButtonGroup group = new ButtonGroup();
+ // ButtonGroup group = new ButtonGroup();
Iterator nameIt = DesignerEnvManager.getEnvManager().getEnvNameIterator();
while (nameIt.hasNext()) {
String name = nameIt.next();
@@ -66,15 +62,14 @@ public class SwitchExistEnv extends MenuDef {
public static class GetExistEnvAction extends UpdateAction implements ResponseDataSourceChange {
public GetExistEnvAction() {
-
}
public GetExistEnvAction(String envName) {
this.setName(envName);
- Env env = DesignerEnvManager.getEnvManager().getEnv(envName);
- if (env instanceof LocalEnv) {
+ 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 RemoteEnv) {
+ } else if (env instanceof RemoteEnvConfig) {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
}
}
@@ -102,28 +97,24 @@ public class SwitchExistEnv extends MenuDef {
*/
public void actionPerformed(ActionEvent e) {
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
- Env selectedEnv = envManager.getEnv(this.getName());
+ EnvConfig selectedEnv = envManager.getEnv(this.getName());
try {
if (selectedEnv instanceof RemoteEnv && !((RemoteEnv) selectedEnv).testServerConnection()) {
- JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
- 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();
+ JOptionPane.showMessageDialog(
+ DesignerContext.getDesignerFrame(),
+ Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
return;
}
SignIn.signIn(selectedEnv);
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
fireDSChanged();
} catch (Exception em) {
- FRContext.getLogger().error(em.getMessage(), em);
- JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
+ FineLoggerFactory.getLogger().error(em.getMessage(), em);
+ JOptionPane.showMessageDialog(
+ DesignerContext.getDesignerFrame(),
+ Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
TemplatePane.getInstance().editItems();
}
}
}
-}
\ No newline at end of file
+}
diff --git a/designer-base/src/com/fr/design/actions/help/FeedBackPane.java b/designer-base/src/com/fr/design/actions/help/FeedBackPane.java
index e7894e77f..d4f212f3d 100644
--- a/designer-base/src/com/fr/design/actions/help/FeedBackPane.java
+++ b/designer-base/src/com/fr/design/actions/help/FeedBackPane.java
@@ -7,6 +7,8 @@ package com.fr.design.actions.help;
import com.fr.base.FRContext;
import com.fr.base.FeedBackInfo;
import com.fr.design.constants.LayoutConstants;
+import com.fr.design.dialog.BasicDialog;
+import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
@@ -16,13 +18,11 @@ import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
-import com.fr.design.dialog.BasicDialog;
-import com.fr.design.dialog.BasicPane;
+import com.fr.design.utils.DesignUtils;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
-import com.fr.design.utils.DesignUtils;
import javax.swing.*;
import javax.swing.border.Border;
@@ -33,7 +33,12 @@ import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import java.awt.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.util.Date;
import java.util.concurrent.CancellationException;
@@ -275,7 +280,7 @@ public class FeedBackPane extends BasicPane {
try {
return DesignUtils.sendFeedBack(feedBackInfo);
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
return false;
}
}
diff --git a/designer-base/src/com/fr/design/actions/help/ForumAction.java b/designer-base/src/com/fr/design/actions/help/ForumAction.java
index 5a07cca92..292ad13f3 100644
--- a/designer-base/src/com/fr/design/actions/help/ForumAction.java
+++ b/designer-base/src/com/fr/design/actions/help/ForumAction.java
@@ -10,6 +10,7 @@ import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import javax.swing.*;
@@ -48,12 +49,12 @@ public class ForumAction extends UpdateAction {
Desktop.getDesktop().browse(new URI(url));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (Exception exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
- FRContext.getLogger().error("Can not open the browser for URL: " + url);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error("Can not open the browser for URL: " + url);
}
}
diff --git a/designer-base/src/com/fr/design/actions/help/SupportQQAction.java b/designer-base/src/com/fr/design/actions/help/SupportQQAction.java
index ae59df4a5..703c5632e 100644
--- a/designer-base/src/com/fr/design/actions/help/SupportQQAction.java
+++ b/designer-base/src/com/fr/design/actions/help/SupportQQAction.java
@@ -5,10 +5,10 @@
package com.fr.design.actions.help;
import com.fr.base.BaseUtils;
-import com.fr.base.FRContext;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.ProductConstants;
import javax.swing.*;
@@ -38,9 +38,9 @@ public class SupportQQAction extends UpdateAction {
Desktop.getDesktop().browse(new URI(ProductConstants.SUPPORT_QQ));
} catch (IOException exp) {
JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser"));
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
} catch (URISyntaxException exp) {
- FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp);
+ FineLoggerFactory.getLogger().error(exp.getMessage(), exp);
}
}
diff --git a/designer-base/src/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java b/designer-base/src/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java
index a868e404d..0ab5edd25 100644
--- a/designer-base/src/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java
+++ b/designer-base/src/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java
@@ -8,12 +8,17 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayoutHelper;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import javax.swing.*;
import java.awt.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
/**
* Created by XiaXiang on 2017/4/6.
@@ -202,7 +207,7 @@ public class AlphaFineConfigPane extends BasicPane {
DesignerEnvManager.loadLogSetting();
DesignerEnvManager.getEnvManager().saveXMLFile();
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
diff --git a/designer-base/src/com/fr/design/condition/LiteConditionPane.java b/designer-base/src/com/fr/design/condition/LiteConditionPane.java
index 58e859ba3..5efa85dc5 100644
--- a/designer-base/src/com/fr/design/condition/LiteConditionPane.java
+++ b/designer-base/src/com/fr/design/condition/LiteConditionPane.java
@@ -3,7 +3,11 @@ package com.fr.design.condition;
import com.fr.base.BaseFormula;
import com.fr.base.BaseUtils;
import com.fr.data.DataConstants;
-import com.fr.data.condition.*;
+import com.fr.data.condition.CommonCondition;
+import com.fr.data.condition.FormulaCondition;
+import com.fr.data.condition.JoinCondition;
+import com.fr.data.condition.ListCondition;
+import com.fr.data.condition.ObjectCondition;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.formula.FormulaFactory;
@@ -18,9 +22,9 @@ import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.scrollruler.ModLineBorder;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.general.data.Condition;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import javax.swing.*;
@@ -960,7 +964,7 @@ public abstract class LiteConditionPane extends BasicBeanPa
try{
newCondition = (Condition)joinCondition.getCondition().clone();
}catch (CloneNotSupportedException e){
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
return newCondition;
}
diff --git a/designer-base/src/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/com/fr/design/data/datapane/ChoosePane.java
index 5e9c16bde..5fabd7c2b 100644
--- a/designer-base/src/com/fr/design/data/datapane/ChoosePane.java
+++ b/designer-base/src/com/fr/design/data/datapane/ChoosePane.java
@@ -33,8 +33,8 @@ import com.fr.design.mainframe.DesignerFrame;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.file.ConnectionConfig;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import javax.swing.*;
@@ -85,6 +85,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
private PopupMenuListener popupMenuListener = new PopupMenuListener() {
+ @Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
new Thread() {
@Override
@@ -94,26 +95,41 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}.start();
}
+ @Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
+ @Override
public void popupMenuCanceled(PopupMenuEvent e) {
}
};
private PopupMenuListener listener = new PopupMenuListener() {
+ @Override
public void popupMenuCanceled(PopupMenuEvent e) {
}
+ @Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
+ @Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
executePopulateWorker();
}
};
+ private FocusAdapter focusAdapter = new FocusAdapter() {
+ @Override
+ public void focusGained(FocusEvent e) {
+ if (schemaBox.getSelectedIndex() == -1) {
+ schemaBox.updateUI();
+ schemaBox.showPopup();
+ }
+ }
+ };
+
public ChoosePane() {
this(null);
}
@@ -146,6 +162,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
private void initBoxListener() {
addDSBoxListener();
schemaBox.addItemListener(new ItemListener() {
+ @Override
public void itemStateChanged(ItemEvent evt) {
tableNameComboBox.setSelectedItem("");
}
@@ -176,16 +193,9 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
protected void addFocusListener() {
- schemaBox.addFocusListener(new FocusAdapter() {
- public void focusGained(FocusEvent e) {
- if (schemaBox.getSelectedIndex() == -1) {
- schemaBox.updateUI();
- schemaBox.showPopup();
- }
- }
- });
}
+ @SuppressWarnings("unchecked")
protected void initDsNameComboBox() {
dsNameComboBox.setRefreshingModel(true);
ConnectionConfig connectionConfig = ConnectionConfig.getInstance();
@@ -233,12 +243,18 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
populateWorker = new SwingWorker() {
- protected com.fr.data.impl.Connection doInBackground() throws Exception {
+ @SuppressWarnings("unchecked")
+ @Override
+ protected com.fr.data.impl.Connection doInBackground() {
+ schemaBox.setRefreshingModel(true);
schemaBox.addItem(Inter.getLocText("FR-Designer_Loading") + "...");
schemaBox.setSelectedItem(null);
+ schemaBox.setRefreshingModel(false);
return getConnection();
}
+ @SuppressWarnings("unchecked")
+ @Override
public void done() {
try {
com.fr.data.impl.Connection selectedDatabase = get();
@@ -261,12 +277,14 @@ public class ChoosePane extends BasicBeanPane implements Refresha
schemaBox.setSelectedIndex(index);
}
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
schemaBox.setRefreshingModel(false);
schemaBox.removePopupMenuListener(listener);
schemaBox.setPopupVisible(true);
schemaBox.addPopupMenuListener(listener);
+ schemaBox.removeFocusListener(focusAdapter);
+ schemaBox.addFocusListener(focusAdapter);
}
};
populateWorker.execute();
@@ -292,7 +310,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
return null; // peter:选中了当前的零长度的节点,直接返回.
}
ConnectionConfig connectionConfig = ConnectionConfig.getInstance();
- for (Map.Entry entry: connectionConfig.getConnections().entrySet()) {
+ for (Map.Entry entry : connectionConfig.getConnections().entrySet()) {
if (ComparatorUtils.equals(selectedDSName, entry.getKey())) {
return entry.getValue();
}
@@ -303,6 +321,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
/**
* 刷新没多大用。而且要刷新也不是这儿刷新。
*/
+ @Override
public void refresh() {
DBUtils.refreshDatabase();
String schema = StringUtils.isEmpty(schemaBox.getSelectedItem()) ? null : schemaBox.getSelectedItem();
@@ -312,6 +331,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
TreeCellRenderer tableNameTreeRenderer = new DefaultTreeCellRenderer() {
+ @Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if (value instanceof DefaultMutableTreeNode) {
@@ -328,6 +348,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
};
public static UIComboBoxRenderer listCellRenderer = new UIComboBoxRenderer() {
+ @Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof TreePath) {
@@ -344,16 +365,18 @@ public class ChoosePane extends BasicBeanPane implements Refresha
/**
- * 添加项目监听事件
- * @param aListener 事件监听器
+ * 添加项目监听事件
+ *
+ * @param aListener 事件监听器
*/
public void addItemListener(ItemListener aListener) {
this.tableNameComboBox.addItemListener(aListener);
}
/**
- * 删除项目监听事件
- * @param aListener 事件监听器
+ * 删除项目监听事件
+ *
+ * @param aListener 事件监听器
*/
public void removeItemListener(ItemListener aListener) {
this.tableNameComboBox.removeItemListener(aListener);
@@ -398,9 +421,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
}
((DefaultTreeModel) tree.getModel()).reload();
- /**
- * daniel 展开所有tree
- */
+ // daniel 展开所有tree
TreeNode root = (TreeNode) tree.getModel().getRoot();
TreePath parent = new TreePath(root);
TreeNode node = (TreeNode) parent.getLastPathComponent();
@@ -416,42 +437,41 @@ public class ChoosePane extends BasicBeanPane implements Refresha
/**
* 创建选中的数据集数据
- * @return 数据集数据
+ *
+ * @return 数据集数据
*/
public TableData createSelectTableData() {
DataBaseItems paras = this.updateBean();
boolean connect = false;
com.fr.data.impl.Connection database = DBUtils.checkDBConnection(paras.getDatabaseName());
if (database == null) {
- failedToFindTable();
+ failedToFindTable();
return TableData.EMPTY_TABLEDATA;
}
try {
connect = FRContext.getCurrentEnv().testConnection(database);
- } catch (Exception e1) {
- connect = false;
+ } catch (Exception ignored) {
}
if (!connect) {
DesignerFrame designerFrame = DesignerContext.getDesignerFrame();
JOptionPane.showMessageDialog(designerFrame, Inter.getLocText("Datasource-Connection_failed"),
- Inter.getLocText("FR-Designer_Failed"), JOptionPane.INFORMATION_MESSAGE);
- failedToFindTable();
+ Inter.getLocText("FR-Designer_Failed"), JOptionPane.INFORMATION_MESSAGE);
+ failedToFindTable();
return null;
}
// 显示Table数据.
TableData tableData = null;
if (FRContext.getCurrentEnv() instanceof LocalEnv) {
- TableData tableDataLocal = new DBTableData(database, DataCoreUtils.createSelectSQL(paras.getSchemaName(), paras.getTableName(),
+ tableData = new DBTableData(database, DataCoreUtils.createSelectSQL(paras.getSchemaName(), paras.getTableName(),
DialectFactory.getDialectByName(paras.getDatabaseName())));
- tableData = tableDataLocal;
} else {
try {
TableData tableDataLocal = new DBTableData(database, DataCoreUtils.createSelectSQL(paras.getSchemaName(), paras.getTableName(), DialectFactory.getDialectByName(paras.getDatabaseName())));
tableData = FRContext.getCurrentEnv().previewTableData(tableDataLocal, java.util.Collections.EMPTY_MAP,
DesignerEnvManager.getEnvManager().getMaxNumberOrPreviewRow());
} catch (Exception e) {
- failedToFindTable();
+ failedToFindTable();
FRContext.getLogger().error(e.getMessage(), e);
}
}
@@ -463,8 +483,8 @@ public class ChoosePane extends BasicBeanPane implements Refresha
return this.dsNameComboBox.getSelectedItem();
}
- protected void failedToFindTable() {
- }
+ protected void failedToFindTable() {
+ }
protected String getTableName() {
String tableName = "";
@@ -485,7 +505,8 @@ public class ChoosePane extends BasicBeanPane implements Refresha
/**
* 得到当前的ColumnName[]
- * @return 返回当前的ColumnName[]
+ *
+ * @return 返回当前的ColumnName[]
*/
public String[] currentColumnNames() {
String[] colNames = null;
@@ -493,21 +514,19 @@ public class ChoosePane extends BasicBeanPane implements Refresha
DataBaseItems paras = this.updateBean();
String selectedDSName = paras.getDatabaseName();
if (StringUtils.isBlank(selectedDSName)) {
- return colNames = new String[0]; // peter:选中了当前的零长度的节点,直接返回.
+ // peter:选中了当前的零长度的节点,直接返回.
+ return new String[0];
}
String selectedTableObject = paras.getTableName();
if (StringUtils.isEmpty(selectedTableObject)) {
- return colNames = new String[0];
+ return new String[0];
}
- java.sql.Connection conn = null;
try {
// daniel:增加参数
colNames = FRContext.getCurrentEnv().getColumns(selectedDSName, paras.getSchemaName(), selectedTableObject);
} catch (Exception e2) {
FRContext.getLogger().error(e2.getMessage(), e2);
- } finally {
- DBUtils.closeConnection(conn);
}
if (colNames == null) {
@@ -517,9 +536,10 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
/**
- * 预览key value对应的数据
+ * 预览key value对应的数据
+ *
* @param key 键
- * @param value 值
+ * @param value 值
*/
public void preview(int key, int value) {
PreviewTablePane.previewTableData(createSelectTableData(), key, value);
@@ -528,6 +548,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
/**
* 默认预览
*/
+ @Override
public void preview() {
preview(-1, -1);
}
@@ -540,10 +561,12 @@ public class ChoosePane extends BasicBeanPane implements Refresha
}
/**
- *注册listener,相应数据集改变
+ * 注册listener,相应数据集改变
*/
+ @Override
public void registerDSChangeListener() {
DesignTableDataManager.addDsChangeListener(new ChangeListener() {
+ @Override
public void stateChanged(ChangeEvent e) {
initDsNameComboBox();
}
@@ -578,6 +601,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha
this.refreshingModel = refreshingModel;
}
+ @Override
public void setSelectedItem(Object ob) {
this.getModel().setSelectedItem(ob);
if (ob != null && StringUtils.isEmpty(ob.toString())) {
@@ -591,11 +615,13 @@ public class ChoosePane extends BasicBeanPane implements Refresha
private class ComboBoxEditor extends UIComboBoxEditor {
private Object item;
+ @Override
public void setItem(Object item) {
this.item = item;
textField.setText((item == null) ? "" : item.toString());
}
+ @Override
public Object getItem() {
return this.item;
}
diff --git a/designer-base/src/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java b/designer-base/src/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
index 680a69f61..94b38f681 100644
--- a/designer-base/src/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
+++ b/designer-base/src/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
@@ -12,9 +12,10 @@ import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.scrollruler.ModLineBorder;
+import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.EncodeConstants;
-import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.*;
import java.awt.*;
@@ -121,7 +122,7 @@ public abstract class DatabaseConnectionPane {
- private ColumnRowPane crPane;
-
- public ColumnRowEditor() {
- this("");
- }
-
- public ColumnRowEditor(String name) {
- this(null, name);
- }
-
-
- public ColumnRowEditor(ColumnRow value) {
- this(value, "");
- }
-
- public ColumnRowEditor(ColumnRow value, String name) {
- this.setLayout(FRGUIPaneFactory.createBorderLayout());
- crPane = new ColumnRowPane();
- this.add(crPane, BorderLayout.CENTER);
- this.setValue(value);
- this.setName(name);
- }
-
- @Override
- public ColumnRow getValue() {
- return this.crPane.update();
- }
-
- @Override
- public void setValue(ColumnRow value) {
- if (value == null) {
- value = ColumnRow.valueOf(0, 0);
- }
-
- this.crPane.populate(value);
- }
-
- @Override
- public void setEnabled(boolean enabled) {
- super.setEnabled(enabled);
-
- this.crPane.setEnabled(enabled);
- }
-
- @Override
- public void requestFocus() {
- this.crPane.requestFocus();
- }
-
- public String getIconName() {
- return "cell";
- }
-
- @Override
- public boolean accept(Object object) {
- return object instanceof ColumnRow;
- }
+ private ColumnRowPane crPane;
+
+ public ColumnRowEditor() {
+ this("");
+ }
+
+ public ColumnRowEditor(String name) {
+ this(null, name);
+ }
+
+
+ public ColumnRowEditor(ColumnRow value) {
+ this(value, "");
+ }
+
+ public ColumnRowEditor(ColumnRow value, String name) {
+ this.setLayout(FRGUIPaneFactory.createBorderLayout());
+ crPane = new ColumnRowPane();
+ this.add(crPane, BorderLayout.CENTER);
+ this.setValue(value);
+ this.setName(name);
+ }
+
+ @Override
+ public ColumnRow getValue() {
+ return this.crPane.update();
+ }
+
+ @Override
+ public void setValue(ColumnRow value) {
+ if (value == null) {
+ value = ColumnRow.valueOf(0, 0);
+ }
+
+ this.crPane.populate(value);
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+
+ this.crPane.setEnabled(enabled);
+ }
+
+ @Override
+ public void requestFocus() {
+ this.crPane.requestFocus();
+ }
+
+ @Override
+ public String getIconName() {
+ return "cell";
+ }
+
+ @Override
+ public boolean accept(Object object) {
+ return object instanceof ColumnRow;
+ }
+
+ @Override
+ public void clearData() {
+ super.clearData();
+ this.setValue(null);
+ }
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/editor/editor/TextEditor.java b/designer-base/src/com/fr/design/editor/editor/TextEditor.java
index 8700db078..630f6956a 100644
--- a/designer-base/src/com/fr/design/editor/editor/TextEditor.java
+++ b/designer-base/src/com/fr/design/editor/editor/TextEditor.java
@@ -3,26 +3,31 @@
*/
package com.fr.design.editor.editor;
-import java.awt.BorderLayout;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fr.stable.StringUtils;
+import java.awt.BorderLayout;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+
/**
* CellEditor used to edit String object.
*
- * @editor zhou
+ * @author zhou
* @since 2012-3-29下午6:00:43
*/
public class TextEditor extends Editor {
- private UITextField textField; // text field.
- // the old value of text field.
+ /**
+ * text field.
+ */
+ private UITextField textField;
+ /**
+ * the old value of text field.
+ */
private String oldValue = StringUtils.EMPTY;
/**
@@ -93,7 +98,7 @@ public class TextEditor extends Editor {
value = StringUtils.EMPTY;
}
- oldValue = value.toString();
+ oldValue = value;
this.textField.setText(oldValue);
}
@@ -110,6 +115,7 @@ public class TextEditor extends Editor {
/**
* 请求焦点
*/
+ @Override
public void requestFocus() {
this.textField.requestFocus();
}
@@ -133,10 +139,12 @@ public class TextEditor extends Editor {
/**
* 被选中时文本输入框请求焦点
*/
+ @Override
public void selected() {
this.textField.requestFocus();
}
+ @Override
public String getIconName() {
return "type_string";
}
@@ -147,7 +155,15 @@ public class TextEditor extends Editor {
* @param object 需要判断的object
* @return 是字符类型则返回true
*/
+ @Override
public boolean accept(Object object) {
return object instanceof String;
}
+
+ @Override
+ public void clearData() {
+ super.clearData();
+ this.textField.setText(StringUtils.EMPTY);
+ this.oldValue = StringUtils.EMPTY;
+ }
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/extra/LoginDialog.java b/designer-base/src/com/fr/design/extra/LoginDialog.java
index 6ae8a63f9..33983baf2 100644
--- a/designer-base/src/com/fr/design/extra/LoginDialog.java
+++ b/designer-base/src/com/fr/design/extra/LoginDialog.java
@@ -4,8 +4,12 @@ import com.fr.design.dialog.UIDialog;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.StableUtils;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dialog;
+import java.awt.Dimension;
+import java.awt.Frame;
/**
* Created by vito on 2017/5/5.
@@ -15,6 +19,15 @@ public class LoginDialog extends UIDialog {
public LoginDialog(Frame frame, Component pane) {
super(frame);
+ init(pane);
+ }
+
+ public LoginDialog(Dialog dialog, Component pane) {
+ super(dialog);
+ init(pane);
+ }
+
+ private void init(Component pane) {
if (StableUtils.getMajorJavaVersion() == 8) {
setUndecorated(true);
}
diff --git a/designer-base/src/com/fr/design/extra/PluginDetailPane.java b/designer-base/src/com/fr/design/extra/PluginDetailPane.java
index a5d44a614..831ccbbc5 100644
--- a/designer-base/src/com/fr/design/extra/PluginDetailPane.java
+++ b/designer-base/src/com/fr/design/extra/PluginDetailPane.java
@@ -1,8 +1,8 @@
package com.fr.design.extra;
import com.fr.design.dialog.BasicPane;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.view.PluginView;
import com.fr.stable.StringUtils;
@@ -44,7 +44,7 @@ public class PluginDetailPane extends BasicPane {
try {
Desktop.getDesktop().browse(linkUrl.toURI());
} catch (IOException | URISyntaxException e1) {
- FRLogger.getLogger().error(e1.getMessage());
+ FineLoggerFactory.getLogger().error(e1.getMessage());
}
}
}
diff --git a/designer-base/src/com/fr/design/extra/PluginFromStorePane.java b/designer-base/src/com/fr/design/extra/PluginFromStorePane.java
index fe8b2a9dd..1e30a1656 100644
--- a/designer-base/src/com/fr/design/extra/PluginFromStorePane.java
+++ b/designer-base/src/com/fr/design/extra/PluginFromStorePane.java
@@ -5,9 +5,9 @@ import com.fr.config.MarketConfig;
import com.fr.design.extra.tradition.callback.UpdateOnlineCallback;
import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.design.gui.ilable.UILabel;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.json.JSONObject;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.manage.PluginManager;
import com.fr.plugin.manage.control.PluginTaskResult;
@@ -15,11 +15,7 @@ import com.fr.plugin.manage.control.ProgressCallback;
import com.fr.plugin.view.PluginView;
import com.fr.stable.StringUtils;
-import javax.swing.JComponent;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.SwingConstants;
+import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;
import java.util.List;
@@ -180,7 +176,7 @@ public class PluginFromStorePane extends PluginAbstractLoadingViewPane task = new PluginTask<>(webEngine, callback, new GetPluginFromStoreExecutor(new JSONObject(info)));
threadPoolExecutor.submit(task);
} catch (JSONException e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
}
@@ -491,10 +489,10 @@ public class PluginWebBridge {
}
} catch (NullPointerException e) {
//此为uri为空时抛出异常
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
} catch (IOException e) {
//此为无法获取系统默认浏览器
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
}
}
@@ -506,7 +504,7 @@ public class PluginWebBridge {
try {
Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.register")));
} catch (Exception e) {
- FRContext.getLogger().info(e.getMessage());
+ FineLoggerFactory.getLogger().info(e.getMessage());
}
}
diff --git a/designer-base/src/com/fr/design/extra/QQLoginWebPane.java b/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
index 82648531c..f74219691 100644
--- a/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
+++ b/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
@@ -2,6 +2,7 @@ package com.fr.design.extra;
import com.fr.base.FRContext;
import com.fr.general.*;
+import com.fr.log.FineLoggerFactory;
import javafx.application.Platform;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
@@ -148,7 +149,7 @@ public class QQLoginWebPane extends JFXPanel {
}
});
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
}
diff --git a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
index 10643e6f2..a8ca35831 100644
--- a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
+++ b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
@@ -22,6 +22,9 @@ import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
import java.awt.BorderLayout;
import java.awt.Component;
+import java.awt.Dialog;
+import java.awt.Frame;
+import java.awt.Window;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Constructor;
@@ -133,18 +136,22 @@ public class WebViewDlgHelper {
if (StableUtils.getMajorJavaVersion() == VERSION_8) {
File file = new File(StableUtils.pathJoin(installHome, "scripts"));
if (!file.exists()) {
- int rv = JOptionPane.showConfirmDialog(
- null,
- Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
- Inter.getLocText("FR-Designer-Plugin_Warning"),
- JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.INFORMATION_MESSAGE
- );
- if (rv == JOptionPane.OK_OPTION) {
- downloadShopScripts(SHOP_SCRIPTS);
- }
+ confirmDownLoadShopJS();
} else {
- showLoginDlg();
+ showLoginDlg(DesignerContext.getDesignerFrame());
+ updateShopScripts(SHOP_SCRIPTS);
+ }
+ }
+ }
+
+
+ public static void createLoginDialog(Window parent) {
+ if (StableUtils.getMajorJavaVersion() == VERSION_8) {
+ File file = new File(StableUtils.pathJoin(installHome, "scripts"));
+ if (!file.exists()) {
+ confirmDownLoadShopJS();
+ } else {
+ showLoginDlg(parent);
updateShopScripts(SHOP_SCRIPTS);
}
}
@@ -164,6 +171,20 @@ public class WebViewDlgHelper {
}
}
+
+ private static void confirmDownLoadShopJS() {
+ int rv = JOptionPane.showConfirmDialog(
+ null,
+ Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
+ Inter.getLocText("FR-Designer-Plugin_Warning"),
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.INFORMATION_MESSAGE
+ );
+ if (rv == JOptionPane.OK_OPTION) {
+ downloadShopScripts(SHOP_SCRIPTS);
+ }
+ }
+
private static void showPluginDlg(String mainJsPath) {
try {
Class> clazz = Class.forName("com.fr.design.extra.PluginWebPane");
@@ -179,13 +200,17 @@ public class WebViewDlgHelper {
}
}
- private static void showLoginDlg() {
+ private static void showLoginDlg(Window window) {
try {
Class> clazz = Class.forName("com.fr.design.extra.LoginWebPane");
Constructor constructor = clazz.getConstructor(String.class);
Component webPane = (Component) constructor.newInstance(installHome);
-
- UIDialog qqdlg = new LoginDialog(DesignerContext.getDesignerFrame(), webPane);
+ UIDialog qqdlg;
+ if (window instanceof Dialog) {
+ qqdlg = new LoginDialog((Dialog) window, webPane);
+ } else {
+ qqdlg = new LoginDialog((Frame) window, webPane);
+ }
LoginWebBridge.getHelper().setDialogHandle(qqdlg);
qqdlg.setVisible(true);
} catch (Throwable ignored) {
diff --git a/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java b/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java
index 4b4bddab4..c5a159a10 100644
--- a/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java
@@ -4,11 +4,11 @@ import com.fr.design.extra.PluginConstants;
import com.fr.design.extra.PluginOperateUtils;
import com.fr.design.extra.PluginUtils;
import com.fr.design.extra.Process;
-import com.fr.general.FRLogger;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
/**
@@ -23,7 +23,7 @@ public class GetPluginFromStoreExecutor implements Executor {
private String scope;
public GetPluginFromStoreExecutor(JSONObject info) {
- this.category = info.optString("category");
+ this.category = info.optString("categories");
this.fee = info.optString("fee");
this.seller = info.optString("seller");
this.scope = info.optString("scope");
@@ -72,7 +72,7 @@ public class GetPluginFromStoreExecutor implements Executor {
JSONArray resultJSONArray = PluginUtils.filterPluginsFromVersion(resultArr);
result = resultJSONArray.toString();
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
} else {
result = PluginConstants.CONNECTION_404;
diff --git a/designer-base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java b/designer-base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java
index 303d8aee7..2d7917d55 100644
--- a/designer-base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java
@@ -2,9 +2,9 @@ package com.fr.design.extra.exe;
import com.fr.design.extra.PluginsReaderFromStore;
import com.fr.design.extra.Process;
-import com.fr.general.FRLogger;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.view.PluginView;
import com.fr.stable.StringUtils;
@@ -42,7 +42,7 @@ public class ReadUpdateOnlineExecutor implements Executor {
}
result = jsonArray.toString();
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java b/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java
index c46dd5d4e..456b77dd1 100644
--- a/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java
@@ -3,11 +3,11 @@ package com.fr.design.extra.exe;
import com.fr.design.extra.PluginOperateUtils;
import com.fr.design.extra.PluginUtils;
import com.fr.design.extra.Process;
-import com.fr.general.FRLogger;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
/**
@@ -50,7 +50,7 @@ public class SearchOnlineExecutor implements Executor {
JSONArray resultJSONArray = PluginUtils.filterPluginsFromVersion(jsonArray);
result = resultJSONArray.toString();
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage());
+ FineLoggerFactory.getLogger().error(e.getMessage());
}
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java b/designer-base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java
index 834f4370d..b9d04ecd1 100644
--- a/designer-base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java
+++ b/designer-base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java
@@ -2,8 +2,8 @@ package com.fr.design.extra.exe.callback;
import com.fr.design.extra.PluginOperateUtils;
import com.fr.design.extra.PluginUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.PluginManager;
@@ -37,7 +37,7 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback {
public void done(PluginTaskResult result) {
if (result.isSuccess()) {
jsCallback.execute("success");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Install_Success"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Install_Success"));
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Plugin_Install_Success"));
} else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) {
int rv = JOptionPane.showOptionDialog(
@@ -76,7 +76,7 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback {
PluginOperateUtils.updatePluginFromDisk(zipFile, jsCallback);
}else {
jsCallback.execute("failed");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Install_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Install_Failed"));
JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Plugin_Install_Failed"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java b/designer-base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java
index 88f125a98..49da09b9c 100644
--- a/designer-base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java
+++ b/designer-base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java
@@ -1,8 +1,8 @@
package com.fr.design.extra.exe.callback;
import com.fr.design.extra.PluginOperateUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.control.AbstractDealPreTaskCallback;
@@ -35,7 +35,7 @@ public class InstallOnlineCallback extends AbstractDealPreTaskCallback {
String pluginInfo = PluginOperateUtils.getSuccessInfo(result);
if (result.isSuccess()) {
jsCallback.execute("success");
- FRLogger.getLogger().info(pluginInfo + Inter.getLocText("FR-Plugin_Install_Success"));
+ FineLoggerFactory.getLogger().info(pluginInfo + Inter.getLocText("FR-Plugin_Install_Success"));
JOptionPane.showMessageDialog(null, pluginInfo + Inter.getLocText("FR-Plugin_Install_Success"));
} else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){
int rv = JOptionPane.showOptionDialog(
@@ -55,7 +55,7 @@ public class InstallOnlineCallback extends AbstractDealPreTaskCallback {
PluginOperateUtils.updatePluginOnline(pluginMarker, jsCallback);
}else {
jsCallback.execute("failed");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Install_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Install_Failed"));
JOptionPane.showMessageDialog(null, pluginInfo, Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java b/designer-base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java
index 894903bff..be67ce617 100644
--- a/designer-base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java
+++ b/designer-base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java
@@ -1,8 +1,8 @@
package com.fr.design.extra.exe.callback;
import com.fr.design.extra.PluginUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.PluginManager;
@@ -25,7 +25,7 @@ public class UninstallPluginCallback extends AbstractPluginTaskCallback {
public void done(PluginTaskResult result) {
if (result.isSuccess()) {
jsCallback.execute("success");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Delete_Success"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Delete_Success"));
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Plugin_Delete_Success"));
}else if (result.errorCode() == PluginErrorCode.NeedUninstallDependingPluginFirst) {
int rv = JOptionPane.showOptionDialog(
@@ -44,7 +44,7 @@ public class UninstallPluginCallback extends AbstractPluginTaskCallback {
PluginManager.getController().uninstall(pluginMarker, true, new UninstallPluginCallback(pluginMarker, jsCallback));
} else {
jsCallback.execute("failed");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Delete_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Delete_Failed"));
JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java b/designer-base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java
index 89f5e1c05..586538a93 100644
--- a/designer-base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java
+++ b/designer-base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java
@@ -2,8 +2,8 @@ package com.fr.design.extra.exe.callback;
import com.fr.design.extra.PluginOperateUtils;
import com.fr.design.extra.PluginUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.PluginManager;
@@ -37,7 +37,7 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback {
public void done(PluginTaskResult result) {
if (result.isSuccess()) {
jsCallback.execute("success");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Update_Success"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Update_Success"));
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Plugin_Update_Success"));
} else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) {
int rv = JOptionPane.showOptionDialog(
@@ -76,7 +76,7 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback {
PluginOperateUtils.installPluginFromDisk(zipFile, jsCallback);
}else {
jsCallback.execute("failed");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Update_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Update_Failed"));
JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java b/designer-base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java
index 441e27d95..8219fbe06 100644
--- a/designer-base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java
+++ b/designer-base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java
@@ -1,9 +1,8 @@
package com.fr.design.extra.exe.callback;
-import com.fr.design.extra.PluginUtils;
import com.fr.design.extra.PluginOperateUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.manage.control.AbstractDealPreTaskCallback;
import com.fr.plugin.manage.control.PluginTask;
import com.fr.plugin.manage.control.PluginTaskResult;
@@ -32,11 +31,11 @@ public class UpdateOnlineCallback extends AbstractDealPreTaskCallback {
String pluginInfo = PluginOperateUtils.getSuccessInfo(result);
if (result.isSuccess()) {
jsCallback.execute("success");
- FRLogger.getLogger().info(pluginInfo + Inter.getLocText("FR-Plugin_Update_Success"));
+ FineLoggerFactory.getLogger().info(pluginInfo + Inter.getLocText("FR-Plugin_Update_Success"));
JOptionPane.showMessageDialog(null,pluginInfo + Inter.getLocText("FR-Plugin_Update_Success"));
} else {
jsCallback.execute("failed");
- FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Update_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Plugin_Update_Failed"));
JOptionPane.showMessageDialog(null, pluginInfo, Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/extra/tradition/callback/UpdateOnlineCallback.java b/designer-base/src/com/fr/design/extra/tradition/callback/UpdateOnlineCallback.java
index ef594f89f..78661fabd 100644
--- a/designer-base/src/com/fr/design/extra/tradition/callback/UpdateOnlineCallback.java
+++ b/designer-base/src/com/fr/design/extra/tradition/callback/UpdateOnlineCallback.java
@@ -2,8 +2,8 @@ package com.fr.design.extra.tradition.callback;
import com.fr.design.extra.PluginStatusCheckCompletePane;
import com.fr.design.extra.PluginUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.plugin.context.PluginMarker;
import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.PluginManager;
@@ -31,7 +31,7 @@ public class UpdateOnlineCallback implements ProgressCallback {
public void done(PluginTaskResult result){
if (result.isSuccess()) {
- FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success"));
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Successful"));
} else if (result.errorCode() == PluginErrorCode.OperationNotSupport) {
int rv = JOptionPane.showOptionDialog(
@@ -49,7 +49,7 @@ public class UpdateOnlineCallback implements ProgressCallback {
}
PluginManager.getController().update(pluginMarker, toPluginMarker, new UpdateOnlineCallback(pluginMarker, toPluginMarker, pane));
} else {
- FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Delete_Failed"));
+ FineLoggerFactory.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Delete_Failed"));
JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java b/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
index dfd1f123f..b9ffee91a 100644
--- a/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
+++ b/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
@@ -1,40 +1,37 @@
package com.fr.design.file;
-import java.awt.*;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.*;
-import java.util.List;
-import java.util.logging.Level;
-
-import javax.swing.*;
-
+import com.fr.base.FRContext;
import com.fr.base.chart.chartdata.CallbackEvent;
-import com.fr.design.constants.UIConstants;
+import com.fr.dav.LocalEnv;
+import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignerEnvManager;
+import com.fr.design.constants.UIConstants;
import com.fr.design.data.DesignTableDataManager;
-import com.fr.design.gui.ilable.UILabel;
-
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import com.fr.base.FRContext;
import com.fr.design.data.datapane.TableDataTreePane;
-import com.fr.dav.LocalEnv;
-import com.fr.design.DesignModelAdapter;
import com.fr.design.gui.icontainer.UIScrollPane;
+import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.UIList;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.module.DesignModuleFactory;
+import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.file.filetree.FileNode;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.Constants;
import com.fr.stable.project.ProjectConstants;
-import com.fr.design.utils.gui.GUIPaintUtils;
+
+import javax.swing.*;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
public class HistoryTemplateListPane extends JPanel implements FileOperations, CallbackEvent {
//最大保存内存中面板数,为0时关闭优化内存
@@ -120,7 +117,7 @@ public class HistoryTemplateListPane extends JPanel implements FileOperations, C
try {
historyList.remove(contains(selected));
selected.getEditingFILE().closeTemplate();
- FRLogger.getLogger().log(Level.INFO, Inter.getLocText(new String[]{"Template", "alraedy_close"}, new String[]{selected.getEditingFILE().getName(), "."}));
+ FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Template", "alraedy_close"}, new String[]{selected.getEditingFILE().getName(), "."}));
MutilTempalteTabPane.getInstance().refreshOpenedTemplate(historyList);
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
diff --git a/designer-base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer-base/src/com/fr/design/file/MutilTempalteTabPane.java
index 5a05f20d2..e2c026465 100644
--- a/designer-base/src/com/fr/design/file/MutilTempalteTabPane.java
+++ b/designer-base/src/com/fr/design/file/MutilTempalteTabPane.java
@@ -8,14 +8,13 @@ import com.fr.design.gui.imenu.UIMenuItem;
import com.fr.design.gui.imenu.UIScrollPopUpMenu;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
-import com.fr.design.mainframe.JVirtualTemplate;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.file.FILE;
import com.fr.file.FileNodeFILE;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.Constants;
import com.fr.stable.ProductConstants;
import com.fr.stable.project.ProjectConstants;
@@ -23,10 +22,18 @@ import com.fr.stable.project.ProjectConstants;
import javax.swing.*;
import javax.swing.plaf.basic.BasicMenuItemUI;
import java.awt.*;
-import java.awt.event.*;
-import java.awt.geom.*;
+import java.awt.event.AWTEventListener;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.geom.Arc2D;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Line2D;
+import java.awt.geom.Path2D;
+import java.awt.geom.RoundRectangle2D;
import java.io.File;
-import java.util.logging.Level;
/**
* Author : daisy
@@ -710,22 +717,11 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M
ProductConstants.PRODUCT_NAME, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (returnVal == JOptionPane.YES_OPTION && specifiedTemplate.saveTemplate()) {
specifiedTemplate.saveTemplate();
- FRLogger.getLogger().log(Level.INFO, Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
- HistoryTemplateListPane.getInstance().closeSelectedReport(specifiedTemplate);
- activeTemplate(filename);
- } else if (returnVal == JOptionPane.NO_OPTION) {
- //不保存
- HistoryTemplateListPane.getInstance().closeSelectedReport(specifiedTemplate);
- activeTemplate(filename);
+ FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
}
- //若是点击取消关闭,则什么都不做
- } else {
- //若是已经保存过了,则关闭即可
- HistoryTemplateListPane.getInstance().closeSelectedReport(specifiedTemplate);
- activeTemplate(filename);
}
-
-
+ HistoryTemplateListPane.getInstance().closeSelectedReport(specifiedTemplate);
+ activeTemplate(filename);
}
/**
diff --git a/designer-base/src/com/fr/design/file/SaveSomeTemplatePane.java b/designer-base/src/com/fr/design/file/SaveSomeTemplatePane.java
index 568428c4e..522495e80 100644
--- a/designer-base/src/com/fr/design/file/SaveSomeTemplatePane.java
+++ b/designer-base/src/com/fr/design/file/SaveSomeTemplatePane.java
@@ -1 +1 @@
-package com.fr.design.file;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.UIList;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.stable.ProductConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.logging.Level;
/**
* Author : daisy
* Date: 13-8-9
* Time: 下午3:41
*/
public class SaveSomeTemplatePane extends BasicPane {
private UICheckBox[] templateCheckBoxes = null;
private BasicDialog dialog;
private JPanel templatesChoosePane;
private UIScrollPane scrollPane;
private java.util.List> unSavedTemplate = new ArrayList>();
private boolean isAllSaved = false;
//该变量用来判断是在关闭其他模板或是关闭设计器的时候,是否需要判断当前模板有没有保存
private boolean isJudgeCurrentEditingTemplate = true;
public SaveSomeTemplatePane(boolean isNeedTojudgeCurrent) {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
if (this.dialog == null) {
this.dialog = this.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
for (int i = 0; i < templateCheckBoxes.length; i++) {
if (templateCheckBoxes[i].isSelected()) {
saveSelectedTemplate(unSavedTemplate.get(i));
}
}
isAllSaved = true;
}
public void doCancel() {
isAllSaved = false;
}
});
}
UILabel tip = new UILabel(Inter.getLocText("Select_The_Source_To_Save"));
this.add(tip, BorderLayout.NORTH);
templatesChoosePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
UIScrollPane scrollPane = new UIScrollPane(templatesChoosePane);
this.add(scrollPane, BorderLayout.CENTER);
this.isJudgeCurrentEditingTemplate = isNeedTojudgeCurrent;
}
private void initTemplatesChoosePane() {
templatesChoosePane.setBorder(BorderFactory.createTitledBorder(""));
for (int i = 0; i < unSavedTemplate.size(); i++) {
templateCheckBoxes[i] = new UICheckBox(unSavedTemplate.get(i).getEditingFILE().getName());
templateCheckBoxes[i].setSelected(true);
}
final UIList templatesList = new UIList(templateCheckBoxes);
templatesList.setModel(new UnSeletedTemplateListDataMode());
templatesList.setCellRenderer(new UnSelectedListCellRender());
templatesList.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
int index = templatesList.getSelectedIndex();
if (index < 0) {
return;
}
UICheckBox checkBox = (UICheckBox) templatesList.getModel().getElementAt(index);
checkBox.setSelected(!checkBox.isSelected());
templatesList.repaint();
}
});
final UICheckBox filenameCheckBox = new UICheckBox(Inter.getLocText("Choose_All"));
filenameCheckBox.setSelected(true);
filenameCheckBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
boolean isSelected = filenameCheckBox.isSelected();
for (int i = 0; i < templatesList.getModel().getSize(); i++) {
UICheckBox checkBox = (UICheckBox) templatesList.getModel().getElementAt(i);
checkBox.setSelected(isSelected);
}
templatesList.repaint();
}
});
templatesChoosePane.add(filenameCheckBox, BorderLayout.NORTH);
templatesChoosePane.add(templatesList, BorderLayout.CENTER);
}
public boolean showSavePane() {
populate();
//如果有未保存的文件 ,则跳出保存对话框,选择要存储的项目
if (!unSavedTemplate.isEmpty()) {
dialog.setVisible(true);
} else {
isAllSaved = true;
}
return isAllSaved;
}
public void populate() {
java.util.List> opendedTemplate = HistoryTemplateListPane.getInstance().getHistoryList();
JTemplate, ?> currentTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
for (int i = 0; i < opendedTemplate.size(); i++) {
if (isneedToAdd(opendedTemplate.get(i), currentTemplate)) {
unSavedTemplate.add(opendedTemplate.get(i));
}
}
templateCheckBoxes = new UICheckBox[unSavedTemplate.size()];
initTemplatesChoosePane();
}
private boolean isneedToAdd(JTemplate, ?> template, JTemplate, ?> currentTemplate) {
//所有模板都判断是不是保存
if (isJudgeCurrentEditingTemplate) {
return !template.isALLSaved();
}
//当前编辑的模板不判断是否已经保存
if (ComparatorUtils.equals(template, currentTemplate)) {
return false;
} else {
return !template.isALLSaved();
}
}
private void saveSelectedTemplate(JTemplate, ?> specifiedTemplate) {
if (!specifiedTemplate.isSaved()) {
specifiedTemplate.stopEditing();
specifiedTemplate.saveTemplate();
}
FRLogger.getLogger().log(Level.INFO, Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
}
public int saveLastOneTemplate() {
JTemplate, ?> specifiedTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
if (!specifiedTemplate.isALLSaved()) {
specifiedTemplate.stopEditing();
int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Utils-Would_you_like_to_save") + " \"" + specifiedTemplate.getEditingFILE() + "\" ?",
ProductConstants.PRODUCT_NAME, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (returnVal == JOptionPane.YES_OPTION && specifiedTemplate.saveTemplate()) {
specifiedTemplate.saveTemplate();
FRLogger.getLogger().log(Level.INFO, Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
}
return returnVal;
}
return JOptionPane.YES_OPTION;
}
protected String title4PopupWindow() {
return Inter.getLocText("Save");
}
private class UnSelectedListCellRender extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, final boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
templateCheckBoxes[index] = (UICheckBox) value;
templateCheckBoxes[index].setBackground(list.getBackground());
return templateCheckBoxes[index];
}
}
private class UnSeletedTemplateListDataMode extends AbstractListModel {
@Override
public int getSize() {
return templateCheckBoxes.length;
}
@Override
public UICheckBox getElementAt(int index) {
if (index > getSize() - 1 || index < 0) {
return null;
}
return templateCheckBoxes[index];
}
}
}
\ No newline at end of file
+package com.fr.design.file;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.UIList;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ProductConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
/**
* Author : daisy
* Date: 13-8-9
* Time: 下午3:41
*/
public class SaveSomeTemplatePane extends BasicPane {
private UICheckBox[] templateCheckBoxes = null;
private BasicDialog dialog;
private JPanel templatesChoosePane;
private UIScrollPane scrollPane;
private java.util.List> unSavedTemplate = new ArrayList>();
private boolean isAllSaved = false;
//该变量用来判断是在关闭其他模板或是关闭设计器的时候,是否需要判断当前模板有没有保存
private boolean isJudgeCurrentEditingTemplate = true;
public SaveSomeTemplatePane(boolean isNeedTojudgeCurrent) {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
if (this.dialog == null) {
this.dialog = this.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
for (int i = 0; i < templateCheckBoxes.length; i++) {
if (templateCheckBoxes[i].isSelected()) {
saveSelectedTemplate(unSavedTemplate.get(i));
}
}
isAllSaved = true;
}
public void doCancel() {
isAllSaved = false;
}
});
}
UILabel tip = new UILabel(Inter.getLocText("Select_The_Source_To_Save"));
this.add(tip, BorderLayout.NORTH);
templatesChoosePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
UIScrollPane scrollPane = new UIScrollPane(templatesChoosePane);
this.add(scrollPane, BorderLayout.CENTER);
this.isJudgeCurrentEditingTemplate = isNeedTojudgeCurrent;
}
private void initTemplatesChoosePane() {
templatesChoosePane.setBorder(BorderFactory.createTitledBorder(""));
for (int i = 0; i < unSavedTemplate.size(); i++) {
templateCheckBoxes[i] = new UICheckBox(unSavedTemplate.get(i).getEditingFILE().getName());
templateCheckBoxes[i].setSelected(true);
}
final UIList templatesList = new UIList(templateCheckBoxes);
templatesList.setModel(new UnSeletedTemplateListDataMode());
templatesList.setCellRenderer(new UnSelectedListCellRender());
templatesList.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
int index = templatesList.getSelectedIndex();
if (index < 0) {
return;
}
UICheckBox checkBox = (UICheckBox) templatesList.getModel().getElementAt(index);
checkBox.setSelected(!checkBox.isSelected());
templatesList.repaint();
}
});
final UICheckBox filenameCheckBox = new UICheckBox(Inter.getLocText("Choose_All"));
filenameCheckBox.setSelected(true);
filenameCheckBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
boolean isSelected = filenameCheckBox.isSelected();
for (int i = 0; i < templatesList.getModel().getSize(); i++) {
UICheckBox checkBox = (UICheckBox) templatesList.getModel().getElementAt(i);
checkBox.setSelected(isSelected);
}
templatesList.repaint();
}
});
templatesChoosePane.add(filenameCheckBox, BorderLayout.NORTH);
templatesChoosePane.add(templatesList, BorderLayout.CENTER);
}
public boolean showSavePane() {
populate();
//如果有未保存的文件 ,则跳出保存对话框,选择要存储的项目
if (!unSavedTemplate.isEmpty()) {
dialog.setVisible(true);
} else {
isAllSaved = true;
}
return isAllSaved;
}
public void populate() {
java.util.List> opendedTemplate = HistoryTemplateListPane.getInstance().getHistoryList();
JTemplate, ?> currentTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
for (int i = 0; i < opendedTemplate.size(); i++) {
if (isneedToAdd(opendedTemplate.get(i), currentTemplate)) {
unSavedTemplate.add(opendedTemplate.get(i));
}
}
templateCheckBoxes = new UICheckBox[unSavedTemplate.size()];
initTemplatesChoosePane();
}
private boolean isneedToAdd(JTemplate, ?> template, JTemplate, ?> currentTemplate) {
//所有模板都判断是不是保存
if (isJudgeCurrentEditingTemplate) {
return !template.isALLSaved();
}
//当前编辑的模板不判断是否已经保存
if (ComparatorUtils.equals(template, currentTemplate)) {
return false;
} else {
return !template.isALLSaved();
}
}
private void saveSelectedTemplate(JTemplate, ?> specifiedTemplate) {
if (!specifiedTemplate.isSaved()) {
specifiedTemplate.stopEditing();
specifiedTemplate.saveTemplate();
}
FineLoggerFactory.getLogger().info( Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
}
public int saveLastOneTemplate() {
JTemplate, ?> specifiedTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
if (!specifiedTemplate.isALLSaved()) {
specifiedTemplate.stopEditing();
int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Utils-Would_you_like_to_save") + " \"" + specifiedTemplate.getEditingFILE() + "\" ?",
ProductConstants.PRODUCT_NAME, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (returnVal == JOptionPane.YES_OPTION && specifiedTemplate.saveTemplate()) {
specifiedTemplate.saveTemplate();
FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Template", "already-saved"}, new String[]{specifiedTemplate.getEditingFILE().getName(), "."}));
}
return returnVal;
}
return JOptionPane.YES_OPTION;
}
protected String title4PopupWindow() {
return Inter.getLocText("Save");
}
private class UnSelectedListCellRender extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, final boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
templateCheckBoxes[index] = (UICheckBox) value;
templateCheckBoxes[index].setBackground(list.getBackground());
return templateCheckBoxes[index];
}
}
private class UnSeletedTemplateListDataMode extends AbstractListModel {
@Override
public int getSize() {
return templateCheckBoxes.length;
}
@Override
public UICheckBox getElementAt(int index) {
if (index > getSize() - 1 || index < 0) {
return null;
}
return templateCheckBoxes[index];
}
}
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/file/TemplateTreePane.java b/designer-base/src/com/fr/design/file/TemplateTreePane.java
index 9061521a4..f2fb514f7 100644
--- a/designer-base/src/com/fr/design/file/TemplateTreePane.java
+++ b/designer-base/src/com/fr/design/file/TemplateTreePane.java
@@ -15,8 +15,8 @@ import com.fr.file.FileNodeFILE;
import com.fr.file.filetree.FileNode;
import com.fr.file.filetree.IOFileNodeFilter;
import com.fr.general.ComparatorUtils;
-import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.stable.CoreConstants;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
@@ -34,7 +34,6 @@ import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.logging.Level;
public class TemplateTreePane extends JPanel implements FileOperations {
@@ -143,7 +142,7 @@ public class TemplateTreePane extends JPanel implements FileOperations {
public void openContainerFolder() {
FileNode fn = TemplateTreePane.this.reportletsTree.getSelectedFileNode();
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));
try {
Desktop.getDesktop().open(new File(filePath));
@@ -157,7 +156,7 @@ public class TemplateTreePane extends JPanel implements FileOperations {
*/
public void refresh() {
reportletsTree.refresh();
- FRLogger.getLogger().log(Level.INFO, Inter.getLocText(new String[]{"File-tree", "Refresh_Successfully"}) + "!");
+ FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"File-tree", "Refresh_Successfully"}) + "!");
}
/**
@@ -193,6 +192,16 @@ public class TemplateTreePane extends JPanel implements FileOperations {
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) {
int index = HistoryTemplateListPane.getInstance().contains(fileName);
int size = HistoryTemplateListPane.getInstance().getHistoryCount();
@@ -218,41 +227,6 @@ public class TemplateTreePane extends JPanel implements FileOperations {
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() {
return reportletsTree.getSelectedTemplatePath();
@@ -322,11 +296,11 @@ public class TemplateTreePane extends JPanel implements FileOperations {
//todo 走下这个流程,否则集群下其它节点无法同步删除
FRContext.getCurrentEnv().deleteFile(nodeFile.getPath());
} catch (IOException e) {
- FRLogger.getLogger().info(e.getMessage());
+ FineLoggerFactory.getLogger().info(e.getMessage());
FRContext.getCurrentEnv().deleteFile(nodeFile.getPath());
}
} else {
- FRLogger.getLogger().info("No Trash Available");
+ FineLoggerFactory.getLogger().info("No Trash Available");
FRContext.getCurrentEnv().deleteFile(nodeFile.getPath());
}
}
diff --git a/designer-base/src/com/fr/design/formula/JavaEditorPane.java b/designer-base/src/com/fr/design/formula/JavaEditorPane.java
index 0ba32641c..a5245d685 100644
--- a/designer-base/src/com/fr/design/formula/JavaEditorPane.java
+++ b/designer-base/src/com/fr/design/formula/JavaEditorPane.java
@@ -9,7 +9,7 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.design.layout.FRGUIPaneFactory;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
import com.fr.stable.EncodeConstants;
import com.fr.stable.JavaCompileInfo;
@@ -65,7 +65,7 @@ public class JavaEditorPane extends BasicPane {
javaText.setText("//Didn't find java source match the class");
}
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
javaText.setText("//Loading source code from server error");
}
}
@@ -162,7 +162,7 @@ public class JavaEditorPane extends BasicPane {
JOptionPane.showMessageDialog(null, Inter.getLocText(new String[]{"Save", "Successfully"}) + "!");
fireSaveActionListener();
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
JOptionPane.showMessageDialog(null, Inter.getLocText(new String[]{"Save", "Failed"}) + "!");
}
@@ -191,9 +191,9 @@ public class JavaEditorPane extends BasicPane {
}
JOptionPane.showMessageDialog(null, message);
} catch (InterruptedException e1) {
- FRLogger.getLogger().error(e1.getMessage(), e1);
+ FineLoggerFactory.getLogger().error(e1.getMessage(), e1);
} catch (ExecutionException e1) {
- FRLogger.getLogger().error(e1.getMessage(), e1);
+ FineLoggerFactory.getLogger().error(e1.getMessage(), e1);
}
}
}.execute();
diff --git a/designer-base/src/com/fr/design/gui/UILookAndFeel.java b/designer-base/src/com/fr/design/gui/UILookAndFeel.java
index ed93237f3..f02715716 100644
--- a/designer-base/src/com/fr/design/gui/UILookAndFeel.java
+++ b/designer-base/src/com/fr/design/gui/UILookAndFeel.java
@@ -29,7 +29,7 @@ import com.fr.design.gui.itoolbar.UIToolBarBorder;
import com.fr.design.gui.itoolbar.UIToolBarSeparatorUI;
import com.fr.design.gui.itooltip.UIToolTipBorder;
import com.fr.design.gui.itree.UITreeUI;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
import com.fr.general.IOUtils;
import javax.swing.ImageIcon;
@@ -195,7 +195,7 @@ public class UILookAndFeel extends MetalLookAndFeel {
"com/fr/design/images/lookandfeel/" + fileName, UILookAndFeel.class);
if (url == null) {
- FRLogger.getLogger().error("Icon directory could not be resolved.");
+ FineLoggerFactory.getLogger().error("Icon directory could not be resolved.");
return null;
}
}
diff --git a/designer-base/src/com/fr/design/gui/autocomplete/AutoCompletePopupWindow.java b/designer-base/src/com/fr/design/gui/autocomplete/AutoCompletePopupWindow.java
index 8a02bb057..6cdc26bfb 100644
--- a/designer-base/src/com/fr/design/gui/autocomplete/AutoCompletePopupWindow.java
+++ b/designer-base/src/com/fr/design/gui/autocomplete/AutoCompletePopupWindow.java
@@ -10,7 +10,7 @@
package com.fr.design.gui.autocomplete;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.PopupWindowDecorator;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
import javax.swing.*;
import javax.swing.event.CaretEvent;
@@ -303,7 +303,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
private void installKeyBindings() {
if (AutoCompletion.isDebug()) {
- FRLogger.getLogger().debug("PopupWindow: Installing keybindings");
+ FineLoggerFactory.getLogger().debug("PopupWindow: Installing keybindings");
}
if (escapeKap == null) { // Lazily create actions.
@@ -711,7 +711,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
private void uninstallKeyBindings() {
if (AutoCompletion.isDebug()) {
- FRLogger.getLogger().debug("PopupWindow: Removing keybindings");
+ FineLoggerFactory.getLogger().debug("PopupWindow: Removing keybindings");
}
JTextComponent comp = ac.getTextComponent();
diff --git a/designer-base/src/com/fr/design/gui/autocomplete/ParameterizedCompletionContext.java b/designer-base/src/com/fr/design/gui/autocomplete/ParameterizedCompletionContext.java
index 8b93f8540..a9dd305b0 100644
--- a/designer-base/src/com/fr/design/gui/autocomplete/ParameterizedCompletionContext.java
+++ b/designer-base/src/com/fr/design/gui/autocomplete/ParameterizedCompletionContext.java
@@ -14,7 +14,7 @@ import com.fr.design.gui.autocomplete.ParameterizedCompletionInsertionInfo.Repla
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.DocumentRange;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rtextarea.ChangeableHighlightPainter;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
import javax.swing.*;
import javax.swing.event.CaretEvent;
@@ -440,7 +440,7 @@ class ParameterizedCompletionContext {
*/
private void installKeyBindings() {
if (AutoCompletion.isDebug()) {
- FRLogger.getLogger().debug("CompletionContext: Installing keybindings");
+ FineLoggerFactory.getLogger().debug("CompletionContext: Installing keybindings");
}
JTextComponent tc = ac.getTextComponent();
InputMap im = tc.getInputMap();
@@ -739,7 +739,7 @@ class ParameterizedCompletionContext {
private void uninstallKeyBindings() {
if (AutoCompletion.isDebug()) {
- FRLogger.getLogger().debug("CompletionContext Uninstalling keybindings");
+ FineLoggerFactory.getLogger().debug("CompletionContext Uninstalling keybindings");
}
JTextComponent tc = ac.getTextComponent();
diff --git a/designer-base/src/com/fr/design/gui/controlpane/UIControlPane.java b/designer-base/src/com/fr/design/gui/controlpane/UIControlPane.java
index bc37a2549..d0a4c12c5 100644
--- a/designer-base/src/com/fr/design/gui/controlpane/UIControlPane.java
+++ b/designer-base/src/com/fr/design/gui/controlpane/UIControlPane.java
@@ -17,10 +17,34 @@ import com.fr.stable.ArrayUtils;
import com.fr.stable.Nameable;
import com.fr.stable.StringUtils;
-import javax.swing.*;
+import javax.swing.BorderFactory;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSplitPane;
import javax.swing.border.EmptyBorder;
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.CardLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.GraphicsEnvironment;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Toolkit;
+import java.awt.Window;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
/**
* Created by plough on 2017/7/21.
@@ -47,7 +71,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
}
public UIControlPane(BasePlot plot) {
- this.plot =plot;
+ this.plot = plot;
this.initComponentPane();
}
@@ -145,8 +169,8 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
this.checkButtonEnabled();
}
- protected void getPopupEditDialog (JPanel cardPane) {
- popupEditDialog = new PopupEditDialog(cardPane);
+ protected void getPopupEditDialog(JPanel cardPane) {
+ popupEditDialog = new PopupEditDialog(cardPane);
}
protected abstract JPanel createControlUpdatePane();
@@ -169,7 +193,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
toolbarDef.addShortCut(sj.getShortCut());
}
toolBar = ToolBarDef.createJToolBar();
- toolBar.setUI(new UIToolBarUI(){
+ toolBar.setUI(new UIToolBarUI() {
@Override
public void paint(Graphics g, JComponent c) {
Graphics2D g2 = (Graphics2D) g;
@@ -186,7 +210,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
leftContentPane.add(toolBarPane, BorderLayout.NORTH);
// 顶部标签及add按钮
- topToolBar = new UIToolbar(FlowLayout.LEFT, new UIToolBarUI(){
+ topToolBar = new UIToolbar(FlowLayout.LEFT, new UIToolBarUI() {
@Override
public void paint(Graphics g, JComponent c) {
Graphics2D g2 = (Graphics2D) g;
@@ -207,15 +231,15 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
return leftPane;
}
- protected JPanel getLeftTopPane (UIToolbar topToolBar) {
+ protected JPanel getLeftTopPane(UIToolbar topToolBar) {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
- double[] columnSize = { p, f, isNewStyle() ? TOP_TOOLBAR_WIDTH : TOP_TOOLBAR_WIDTH_SHORT};
+ double[] columnSize = {p, f, isNewStyle() ? TOP_TOOLBAR_WIDTH : TOP_TOOLBAR_WIDTH_SHORT};
double[] rowSize = {TOP_TOOLBAR_HEIGHT};
Component[][] components = new Component[][]{
new Component[]{new UILabel(getAddItemText()), new JPanel(), topToolBar},
};
- return TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize);
+ return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
/**
@@ -336,6 +360,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
initListener();
}
+ @Override
public void setTitle(String title) {
popupToolPane.setTitle(title);
}
@@ -349,10 +374,21 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
}
// 如果有可见模态对话框,则不隐藏
for (Window window : DesignerContext.getDesignerFrame().getOwnedWindows()) {
- if (window instanceof JDialog && window.isVisible() && ((JDialog)window).isModal()) {
+ if (window instanceof JDialog && window.isVisible() && ((JDialog) window).isModal()) {
return;
}
}
+
+ // 要隐藏 先检查有没有非法输入
+ // 非法输入检查放在最后,因为可能出现面板弹出新弹框而失去焦点的情况,比如 输入公式时,弹出公式编辑对话框
+ try {
+ checkValid();
+ } catch (Exception exp) {
+ // 存在非法输入 拒绝隐藏
+ JOptionPane.showMessageDialog(UIControlPane.this.controlUpdatePane, exp.getMessage());
+ this.requestFocus();
+ return;
+ }
saveSettings();
setVisible(false);
}
@@ -361,7 +397,6 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
addWindowFocusListener(new WindowAdapter() {
@Override
public void windowLostFocus(WindowEvent e) {
- super.windowLostFocus(e);
hideDialog();
}
});
@@ -389,6 +424,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
}
repaint();
}
+
@Override
public void mouseReleased(MouseEvent e) {
mouseDownCompCoords = null;
@@ -396,6 +432,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
contentPane.setBackground(originColor);
}
}
+
@Override
public void mousePressed(MouseEvent e) {
mouseDownCompCoords = e.getPoint();
@@ -409,6 +446,7 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
contentPane.setBackground(UIConstants.POPUP_TITLE_BACKGROUND);
repaint();
}
+
@Override
public void mouseDragged(MouseEvent e) {
if (mouseDownCompCoords != null) {
diff --git a/designer-base/src/com/fr/design/gui/demo/ComboBoxDemo.java b/designer-base/src/com/fr/design/gui/demo/ComboBoxDemo.java
index a47ea5b0c..a29d78dd0 100644
--- a/designer-base/src/com/fr/design/gui/demo/ComboBoxDemo.java
+++ b/designer-base/src/com/fr/design/gui/demo/ComboBoxDemo.java
@@ -1,34 +1,37 @@
package com.fr.design.gui.demo;
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.util.ArrayList;
-
-import javax.swing.DefaultListCellRenderer;
-import com.fr.design.gui.ilable.UILabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JTree;
-import javax.swing.ListCellRenderer;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreeCellRenderer;
-import javax.swing.tree.TreePath;
-
import com.fr.base.FRContext;
-import com.fr.design.gui.icombobox.filter.Filter;
+import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.icombobox.ComboCheckBox;
import com.fr.design.gui.icombobox.DictionaryComboBox;
import com.fr.design.gui.icombobox.ExtendedComboBox;
import com.fr.design.gui.icombobox.FRTreeComboBox;
import com.fr.design.gui.icombobox.FilterComboBox;
import com.fr.design.gui.icombobox.LazyComboBox;
+import com.fr.design.gui.icombobox.filter.Filter;
+import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
+import com.fr.design.mainframe.DesignerContext;
+import com.fr.design.parameter.ParameterInputPane;
import com.fr.general.Inter;
+import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JTree;
+import javax.swing.ListCellRenderer;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.TreeCellRenderer;
+import javax.swing.tree.TreePath;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.util.ArrayList;
+
/**
* Created by IntelliJ IDEA.
* User: Richer
@@ -42,12 +45,12 @@ public class ComboBoxDemo extends JPanel {
double f = TableLayout.FILL;
Component[][] coms = new Component[][]{
- {new UILabel(Inter.getLocText("Form-ComboCheckBox")+":"), createComboCheckBox()},
- {new UILabel(Inter.getLocText(new String[]{"DS-Dictionary", "Form-ComboBox"})+":"), createDictComboBox()},
- {new UILabel(Inter.getLocText("long_data_can_not_show_fully")+":"), createExtendedComboBox()},
- {new UILabel(Inter.getLocText(new String[]{"Filter", "Form-ComboBox"})+":"), createFilterComboBox()},
- {new UILabel(Inter.getLocText("Form-ComboBox")+":"), createTreeComboBox()},
- {new UILabel(Inter.getLocText(new String[]{"Delay", "Load", "Form-ComboBox"})+":"), createLazyComboBox()}
+ {new UILabel(Inter.getLocText("Form-ComboCheckBox") + ":"), createComboCheckBox()},
+ {new UILabel(Inter.getLocText(new String[]{"DS-Dictionary", "Form-ComboBox"}) + ":"), createDictComboBox()},
+ {new UILabel(Inter.getLocText("long_data_can_not_show_fully") + ":"), createExtendedComboBox()},
+ {new UILabel(Inter.getLocText(new String[]{"Filter", "Form-ComboBox"}) + ":"), createFilterComboBox()},
+ {new UILabel(Inter.getLocText("Form-ComboBox") + ":"), createTreeComboBox()},
+ {new UILabel(Inter.getLocText(new String[]{"Delay", "Load", "Form-ComboBox"}) + ":"), createLazyComboBox()}
};
double[] rowSize = new double[coms.length];
double[] columnSize = {p, f};
@@ -165,6 +168,7 @@ public class ComboBoxDemo extends JPanel {
// 睡5秒
try {
Thread.sleep(5000);
+
} catch (InterruptedException e) {
FRContext.getLogger().error(e.getMessage(), e);
}
diff --git a/designer-base/src/com/fr/design/gui/demo/SwingComponentsDemo.java b/designer-base/src/com/fr/design/gui/demo/SwingComponentsDemo.java
index 6a08e38b0..a3771ce23 100644
--- a/designer-base/src/com/fr/design/gui/demo/SwingComponentsDemo.java
+++ b/designer-base/src/com/fr/design/gui/demo/SwingComponentsDemo.java
@@ -1,16 +1,15 @@
package com.fr.design.gui.demo;
-import java.awt.BorderLayout;
+import com.fr.design.layout.FRGUIPaneFactory;
+import com.fr.design.utils.DesignUtils;
+import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
-
-import com.fr.design.layout.FRGUIPaneFactory;
-import com.fr.design.utils.DesignUtils;
-import com.fr.design.utils.gui.GUICoreUtils;
+import java.awt.BorderLayout;
/**
* Created by IntelliJ IDEA.
@@ -19,10 +18,10 @@ import com.fr.design.utils.gui.GUICoreUtils;
* Time: 下午4:54
*/
public class SwingComponentsDemo extends JFrame {
- public SwingComponentsDemo() {
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ private SwingComponentsDemo() {
+ this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
init();
- JPanel contentPane = (JPanel)getContentPane();
+ JPanel contentPane = (JPanel) getContentPane();
contentPane.setLayout(FRGUIPaneFactory.createBorderLayout());
JTabbedPane tab = new JTabbedPane();
contentPane.add(tab, BorderLayout.CENTER);
@@ -40,12 +39,12 @@ public class SwingComponentsDemo extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
+ @Override
public void run() {
JFrame f = new SwingComponentsDemo();
f.setSize(500, 500);
f.setVisible(true);
GUICoreUtils.centerWindow(f);
- f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
});
}
diff --git a/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java b/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java
index 5e7ce6627..17a33419e 100644
--- a/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java
+++ b/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java
@@ -44,15 +44,12 @@ public abstract class HyperlinkGroupPane extends UIListControlPane {
@Override
public void on(PluginEvent event) {
-
- refreshNameableCreator(createNameableCreators());
-
+ refreshNameableCreator(createNameableCreators());
}
}, new PluginFilter() {
@Override
public boolean accept(PluginContext context) {
-
return context.contain(HyperlinkProvider.XML_TAG);
}
});
@@ -63,6 +60,7 @@ public abstract class HyperlinkGroupPane extends UIListControlPane {
*
* @return 返回Nameable按钮数组.
*/
+ @Override
public NameableCreator[] createNameableCreators() {
Map nameCreators = new ListMap<>();
NameableCreator[] creators = DesignModuleFactory.getHyperlinkGroupType().getHyperlinkCreators();
@@ -82,6 +80,7 @@ public abstract class HyperlinkGroupPane extends UIListControlPane {
*
* @return 返回标题字符串.
*/
+ @Override
public String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Hyperlink");
}
@@ -91,11 +90,11 @@ public abstract class HyperlinkGroupPane extends UIListControlPane {
return Inter.getLocText("FR-Designer_Add_Hyperlink");
}
- public void populate(NameJavaScriptGroup nameHyperlink_array) {
- java.util.List list = new ArrayList();
- if (nameHyperlink_array != null) {
- for (int i = 0; i < nameHyperlink_array.size(); i++) {
- list.add(new NameObject(nameHyperlink_array.getNameHyperlink(i).getName(), nameHyperlink_array.getNameHyperlink(i).getJavaScript()));
+ public void populate(NameJavaScriptGroup hyperlinkArray) {
+ java.util.List list = new ArrayList<>();
+ if (hyperlinkArray != null) {
+ for (int i = 0; i < hyperlinkArray.size(); i++) {
+ list.add(new NameObject(hyperlinkArray.getNameHyperlink(i).getName(), hyperlinkArray.getNameHyperlink(i).getJavaScript()));
}
}
@@ -113,20 +112,29 @@ public abstract class HyperlinkGroupPane extends UIListControlPane {
*/
public NameJavaScriptGroup updateJSGroup() {
Nameable[] res = this.update();
- NameJavaScript[] res_array = new NameJavaScript[res.length];
+ NameJavaScript[] resArray = new NameJavaScript[res.length];
for (int i = 0; i < res.length; i++) {
NameObject no = (NameObject) res[i];
- res_array[i] = new NameJavaScript(no.getName(), (JavaScript) no.getObject());
+ resArray[i] = new NameJavaScript(no.getName(), (JavaScript) no.getObject());
}
- return new NameJavaScriptGroup(res_array);
+ return new NameJavaScriptGroup(resArray);
}
@Override
public void saveSettings() {
- if (isPopulating) {
+ if (isPopulating || !needAutoSave()) {
return;
}
hyperlinkGroupPaneActionProvider.saveSettings(this);
}
+
+ /**
+ * 是否需要自动保存到超级链接属性中
+ *
+ * @return 是否需要自动保存
+ */
+ public boolean needAutoSave() {
+ return true;
+ }
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java b/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java
index a5f7ae9a6..525bb5b79 100644
--- a/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java
+++ b/designer-base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java
@@ -3,9 +3,23 @@ package com.fr.design.gui.frpane;
import com.fr.design.designer.TargetComponent;
/**
+ * @author plough
* Created by plough on 2017/7/26.
*/
public interface HyperlinkGroupPaneActionProvider {
+
+ /**
+ * 刷新面板展示
+ *
+ * @param hyperlinkGroupPane 超链面板
+ * @param elementCasePane 模板
+ */
void populate(HyperlinkGroupPane hyperlinkGroupPane, TargetComponent elementCasePane);
+
+ /**
+ * 保存到文件
+ *
+ * @param hyperlinkGroupPane 超联面板
+ */
void saveSettings(HyperlinkGroupPane hyperlinkGroupPane);
}
diff --git a/designer-base/src/com/fr/design/gui/frpane/UITabbedPaneUI.java b/designer-base/src/com/fr/design/gui/frpane/UITabbedPaneUI.java
index 38d33984c..d95740798 100644
--- a/designer-base/src/com/fr/design/gui/frpane/UITabbedPaneUI.java
+++ b/designer-base/src/com/fr/design/gui/frpane/UITabbedPaneUI.java
@@ -2,7 +2,7 @@ package com.fr.design.gui.frpane;
import com.fr.base.BaseUtils;
import com.fr.design.constants.UIConstants;
-import com.fr.general.FRLogger;
+import com.fr.log.FineLoggerFactory;
import com.fr.general.GeneralUtils;
import javax.swing.*;
@@ -129,7 +129,7 @@ public class UITabbedPaneUI extends BasicTabbedPaneUI {
tabPane.addTab(tabName,
(Component) GeneralUtils.classForName(classpath).newInstance());
} catch (Exception ex) {
- FRLogger.getLogger().error(ex.getMessage(), ex);
+ FineLoggerFactory.getLogger().error(ex.getMessage(), ex);
}
}
}
diff --git a/designer-base/src/com/fr/design/gui/icombobox/LazyComboBox.java b/designer-base/src/com/fr/design/gui/icombobox/LazyComboBox.java
index fa4464cfc..575ab630b 100644
--- a/designer-base/src/com/fr/design/gui/icombobox/LazyComboBox.java
+++ b/designer-base/src/com/fr/design/gui/icombobox/LazyComboBox.java
@@ -3,212 +3,190 @@
*/
package com.fr.design.gui.icombobox;
-import java.awt.Dimension;
-import java.util.ArrayList;
-import java.util.List;
+import com.fr.log.FineLoggerFactory;
+import com.fr.general.Inter;
-import javax.swing.*;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.SwingWorker;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
-import javax.swing.plaf.basic.BasicComboPopup;
-
-import com.fr.general.Inter;
+import java.awt.Dimension;
+import java.util.concurrent.ExecutionException;
/**
* @author richer
+ * @version 2018年2月6日14点43分 by @yaoh.wu
* @since 6.5.5 创建于2011-6-15 延迟加载的下拉框
*/
public abstract class LazyComboBox extends UIComboBox implements PopupMenuListener {
- protected boolean loaded = false;
- private List ls = new ArrayList();
- private Object initialSelected = null;
- private static final int NUM=80;
-
- public static final Object PENDING = new Object() {
-
- @Override
- public String toString() {
- return Inter.getLocText("Loading") + "...";
- }
- };
-
- public LazyComboBox() {
- super();
- this.setEditor(new FilterComboBoxEditor());
- addPopupMenuListener(this);
-// updateUI();
- }
-
- public void setLoaded(boolean loaded) {
- this.loaded = loaded;
- }
-
- public abstract Object[] load();
-
- public void setSelectedItem(Object anObject) {
- initialSelected = anObject;
- if (loaded) {
- super.setSelectedItem(anObject);
- } else {
-
- setModel(new DefaultComboBoxModel(new Object[] { anObject }));
- super.setSelectedItem(anObject);
- }
- }
-
- /**
- * 通过调用该方法,在点击下拉框按钮之前就加载好数据
- */
- public void loadInstant() {
- if (loaded) {
- return;
- }
- setModel(new DefaultComboBoxModel(load()));
- loaded = true;
- }
-
- @Override
- public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
+
+ private static final int NUM = 80;
+ private static final String[] PENDING_CONTENT = new String[]{"", Inter.getLocText("Loading") + "..."};
+
+ /**
+ * 是否加载完成
+ */
+ protected boolean loaded = false;
+
+ /**
+ * 初始化选项
+ */
+ private Object initialSelected = null;
+
+
+ protected LazyComboBox() {
+ super();
+ this.setEditor(new FilterComboBoxEditor());
+ addPopupMenuListener(this);
+ }
+
+ public void setLoaded(boolean loaded) {
+ this.loaded = loaded;
+ }
+
+ /**
+ * 加载下拉框中的选项
+ *
+ * @return 下拉框中的选项
+ */
+ public abstract Object[] load();
+
+ @Override
+ public void setSelectedItem(Object anObject) {
+ initialSelected = anObject;
+ if (loaded) {
+ super.setSelectedItem(anObject);
+ } else {
+ this.setModel(new DefaultComboBoxModel<>(new Object[]{anObject}));
+ super.setSelectedItem(anObject);
+ }
+ }
+
+ @Override
+ public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
if (loaded) {
return;
}
- DefaultComboBoxModel loadingModel = new DefaultComboBoxModel(new String[]{"", Inter.getLocText("Loading") + "..."});
- LazyComboBox.this.setModel(loadingModel);
- new SwingWorker() {
+ DefaultComboBoxModel loadingModel = new DefaultComboBoxModel<>(PENDING_CONTENT);
+ this.setModel(loadingModel);
+ new SwingWorker