diff --git a/designer-base/pom.xml b/designer-base/pom.xml
index d97a420933..f4588ede41 100644
--- a/designer-base/pom.xml
+++ b/designer-base/pom.xml
@@ -15,7 +15,6 @@
0.7.0
- com.fr.report
designer-base
10.0-RELEASE-SNAPSHOT
\ No newline at end of file
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 01cdcee959..f9c6923af9 100644
--- a/designer-base/src/com/fr/design/actions/community/BBSAction.java
+++ b/designer-base/src/com/fr/design/actions/community/BBSAction.java
@@ -5,7 +5,7 @@ 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.general.CloudCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -36,7 +36,7 @@ public class BBSAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 5d5e6893c4..7f6548ca4a 100644
--- a/designer-base/src/com/fr/design/actions/community/BugAction.java
+++ b/designer-base/src/com/fr/design/actions/community/BugAction.java
@@ -4,8 +4,8 @@ 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.CloudCenter;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -30,7 +30,7 @@ public class BugAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs.bugs");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs.bugs");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 b353dcaa82..68ff2fde00 100644
--- a/designer-base/src/com/fr/design/actions/community/NeedAction.java
+++ b/designer-base/src/com/fr/design/actions/community/NeedAction.java
@@ -4,8 +4,8 @@ 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.CloudCenter;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -31,7 +31,7 @@ public class NeedAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs.needs");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs.needs");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 6cf5f479ce..d94a6e07c2 100644
--- a/designer-base/src/com/fr/design/actions/community/QuestionAction.java
+++ b/designer-base/src/com/fr/design/actions/community/QuestionAction.java
@@ -4,8 +4,8 @@ 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.CloudCenter;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -30,7 +30,7 @@ public class QuestionAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs.questions");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs.questions");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 839d2b9d78..eaa1b2ef66 100644
--- a/designer-base/src/com/fr/design/actions/community/SignAction.java
+++ b/designer-base/src/com/fr/design/actions/community/SignAction.java
@@ -5,7 +5,7 @@ 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.general.CloudCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -31,7 +31,7 @@ public class SignAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs.aut");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs.aut");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 acbe2522b1..83041d888b 100644
--- a/designer-base/src/com/fr/design/actions/community/UpAction.java
+++ b/designer-base/src/com/fr/design/actions/community/UpAction.java
@@ -5,7 +5,7 @@ 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.general.CloudCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -31,7 +31,7 @@ public class UpAction extends UpdateAction
@Override
public void actionPerformed(ActionEvent arg0)
{
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs.update");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs.update");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
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 cedbe6273a..4040c514f0 100644
--- a/designer-base/src/com/fr/design/actions/community/VideoAction.java
+++ b/designer-base/src/com/fr/design/actions/community/VideoAction.java
@@ -5,7 +5,7 @@ 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.general.CloudCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -34,9 +34,9 @@ public class VideoAction extends UpdateAction
{
String url;
if (FRContext.getLocale().equals(Locale.US)) {
- url = SiteCenter.getInstance().acquireUrlByKind("bbs.video.en");
+ url = CloudCenter.getInstance().acquireUrlByKind("bbs.video.en");
} else {
- url = SiteCenter.getInstance().acquireUrlByKind("bbs.video");
+ url = CloudCenter.getInstance().acquireUrlByKind("bbs.video");
}
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
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 00824285c6..036b82a32c 100644
--- a/designer-base/src/com/fr/design/actions/core/ActionFactory.java
+++ b/designer-base/src/com/fr/design/actions/core/ActionFactory.java
@@ -9,7 +9,8 @@ import com.fr.design.menu.MenuKeySet;
import com.fr.design.selection.QuickEditor;
import com.fr.log.FineLoggerFactory;
-import javax.swing.*;
+import javax.swing.Action;
+import javax.swing.KeyStroke;
import java.awt.event.KeyEvent;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
@@ -139,28 +140,6 @@ public class ActionFactory {
chartPreStyleAction = action;
}
- /**
- * kunsnat: 图表注册 悬浮元素编辑器 , 因为ChartCollection和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册.
- *
- * @param editorClass 悬浮元素图表编辑器类
- */
- public static void registerChartFloatEditorInEditor(Class extends QuickEditor> editorClass) {
- if (chartCollectionClass != null) {
- registerFloatEditorClass(chartCollectionClass, editorClass);
- }
- }
-
- /**
- * kunsnat: 图表注册 单元格元素编辑器 , 因为ChartCollecion和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册.
- *
- * @param editorClass 单元格元素图表编辑器类
- */
- public static void registerChartCellEditorInEditor(Class extends QuickEditor> editorClass) {
- if (chartCollectionClass != null) {
- registerCellEditorClass(chartCollectionClass, editorClass);
- }
- }
-
/**
* 图表预定义样式Action
*
diff --git a/designer-base/src/com/fr/design/actions/file/WebPreviewUtils.java b/designer-base/src/com/fr/design/actions/file/WebPreviewUtils.java
index 4dd6e412de..947fc67f68 100644
--- a/designer-base/src/com/fr/design/actions/file/WebPreviewUtils.java
+++ b/designer-base/src/com/fr/design/actions/file/WebPreviewUtils.java
@@ -20,7 +20,7 @@ import java.util.Map;
public final class WebPreviewUtils {
public static void preview(JTemplate, ?> jt) {
- preview(jt, null);
+ preview(jt, jt.getPreviewType());
}
@SuppressWarnings("unchecked")
diff --git a/designer-base/src/com/fr/design/actions/help/AboutPane.java b/designer-base/src/com/fr/design/actions/help/AboutPane.java
index 14bcf98b28..40ee0902e8 100644
--- a/designer-base/src/com/fr/design/actions/help/AboutPane.java
+++ b/designer-base/src/com/fr/design/actions/help/AboutPane.java
@@ -9,9 +9,9 @@ import com.fr.design.gui.ilable.ActionLabel;
import com.fr.design.gui.ilable.BoldFontTextLabel;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
+import com.fr.general.CloudCenter;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.bridge.StableFactory;
@@ -33,7 +33,7 @@ public class AboutPane extends JPanel {
private static final int DEFAULT_GAP = 12;
private static final String COPYRIGHT_LABEL = "\u00A9 ";
private static final String BUILD_PREFIX = " ";
- private static final String COMPANY_TELEPHONE = SiteCenter.getInstance().acquireUrlByKind("company_telephone");
+ private static final String COMPANY_TELEPHONE = CloudCenter.getInstance().acquireUrlByKind("company_telephone");
public AboutPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
@@ -71,11 +71,11 @@ public class AboutPane extends JPanel {
addPhoneAndQQPane(contentPane);
// 官网
- JPanel urlActionPane = getURLActionPane(Inter.getLocText("FR-Designer_Official_Website"), SiteCenter.getInstance().acquireUrlByKind("website." + FRContext.getLocale(), ProductConstants.WEBSITE_URL));
+ JPanel urlActionPane = getURLActionPane(Inter.getLocText("FR-Designer_Official_Website"), CloudCenter.getInstance().acquireUrlByKind("website." + FRContext.getLocale(), ProductConstants.WEBSITE_URL));
// 支持邮箱
- String defaultEmail = SiteCenter.getInstance().acquireUrlByKind("support.email", ProductConstants.SUPPORT_EMAIL);
- JPanel emailPane = getEmailActionPane(Inter.getLocText("FR-Designer_Support_Email"),SiteCenter.getInstance().acquireUrlByKind("support.email." + FRContext.getLocale(), defaultEmail));
+ String defaultEmail = CloudCenter.getInstance().acquireUrlByKind("support.email", ProductConstants.SUPPORT_EMAIL);
+ JPanel emailPane = getEmailActionPane(Inter.getLocText("FR-Designer_Support_Email"), CloudCenter.getInstance().acquireUrlByKind("support.email." + FRContext.getLocale(), defaultEmail));
contentPane.add(urlActionPane);
contentPane.add(emailPane);
@@ -90,13 +90,13 @@ public class AboutPane extends JPanel {
if (FRContext.getLocale().equals(Locale.US)) {
return;
}
- boxCenterAlignmentPane = new BoxCenterAligmentPane(Inter.getLocText("FR-Designer_Service_Phone") + SiteCenter.getInstance().acquireUrlByKind("service.phone." + FRContext.getLocale(), COMPANY_TELEPHONE));
+ boxCenterAlignmentPane = new BoxCenterAligmentPane(Inter.getLocText("FR-Designer_Service_Phone") + CloudCenter.getInstance().acquireUrlByKind("service.phone." + FRContext.getLocale(), COMPANY_TELEPHONE));
contentPane.add(boxCenterAlignmentPane);
// 繁体版不显示QQ
if (FRContext.getLocale().equals(Locale.TAIWAN)) {
return;
}
- boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ: " + SiteCenter.getInstance().acquireUrlByKind("help.qq"));
+ boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ: " + CloudCenter.getInstance().acquireUrlByKind("help.qq"));
contentPane.add(boxCenterAlignmentPane);
}
@@ -133,7 +133,7 @@ public class AboutPane extends JPanel {
private String getCopyRight() {
return append(Inter.getLocText("FR-Designer_About_CopyRight"), COPYRIGHT_LABEL,
- ProductConstants.HISTORY, StringUtils.BLANK, SiteCenter.getInstance().acquireUrlByKind("company.name", ProductConstants.COMPANY_NAME));
+ ProductConstants.HISTORY, StringUtils.BLANK, CloudCenter.getInstance().acquireUrlByKind("company.name", ProductConstants.COMPANY_NAME));
}
private String getBuildTitle() {
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 292ad13f3b..c0684cb9cf 100644
--- a/designer-base/src/com/fr/design/actions/help/ForumAction.java
+++ b/designer-base/src/com/fr/design/actions/help/ForumAction.java
@@ -9,7 +9,7 @@ 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.general.CloudCenter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
@@ -40,7 +40,7 @@ public class ForumAction extends UpdateAction {
* @param e 事件
*/
public void actionPerformed(ActionEvent e) {
- String url = SiteCenter.getInstance().acquireUrlByKind("bbs");
+ String url = CloudCenter.getInstance().acquireUrlByKind("bbs");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
diff --git a/designer-base/src/com/fr/design/actions/help/TutorialAction.java b/designer-base/src/com/fr/design/actions/help/TutorialAction.java
index 35233430b1..f51ce77cb5 100644
--- a/designer-base/src/com/fr/design/actions/help/TutorialAction.java
+++ b/designer-base/src/com/fr/design/actions/help/TutorialAction.java
@@ -6,7 +6,6 @@ import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.net.URI;
-import java.util.Locale;
import javax.swing.KeyStroke;
@@ -15,12 +14,10 @@ import com.fr.base.FRContext;
import com.fr.base.Utils;
import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet;
-import com.fr.general.ComparatorUtils;
+import com.fr.general.CloudCenter;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.stable.OperatingSystem;
-import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
public class TutorialAction extends UpdateAction {
@@ -59,7 +56,7 @@ public class TutorialAction extends UpdateAction {
* @param evt 事件
*/
public void actionPerformed(ActionEvent evt) {
- String helpURL = SiteCenter.getInstance().acquireUrlByKind("help." + FRContext.getLocale());
+ String helpURL = CloudCenter.getInstance().acquireUrlByKind("help." + FRContext.getLocale());
if (helpURL != null) {
HttpClient client = new HttpClient(helpURL);
diff --git a/designer-base/src/com/fr/design/border/UIRoundedBorder.java b/designer-base/src/com/fr/design/border/UIRoundedBorder.java
index 664d113f67..65652cbcd5 100644
--- a/designer-base/src/com/fr/design/border/UIRoundedBorder.java
+++ b/designer-base/src/com/fr/design/border/UIRoundedBorder.java
@@ -1,5 +1,8 @@
package com.fr.design.border;
+import com.fr.base.GraphHelper;
+
+import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
@@ -7,10 +10,6 @@ import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.RoundRectangle2D;
-import javax.swing.border.LineBorder;
-
-import com.fr.base.GraphHelper;
-
public class UIRoundedBorder extends LineBorder {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,15 @@ public class UIRoundedBorder extends LineBorder {
this.lineStyle = lineStyle;
this.roundedCorner = roundedCorners;
}
-
+
+ public int getRoundedCorner() {
+ return roundedCorner;
+ }
+
+ public int getLineStyle() {
+ return lineStyle;
+ }
+
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height){
Color oldColor = g.getColor();
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 c5666b81f5..e7e3ef820e 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
@@ -36,6 +36,7 @@ public abstract class DatabaseConnectionPane {
private ActionListener testConnectionListener = new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
- String uri = urlText.getText();
+ String uri = ParameterHelper.analyze4Templatee( urlText.getText(), params);
if (!checkURL(uri)) {
JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(FileTableDataPane.this), Inter.getLocText("FR-Designer_Add_JS_warning"));
return;
@@ -219,7 +221,8 @@ public class FileTableDataPane extends AbstractTableDataPane {
FRContext.getLogger().error(e.getMessage(), e);
}
if (in == null) {
- JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_failed"));
+ JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_failed"),
+ null, 0, UIManager.getIcon("OptionPane.errorIcon"));
} else {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_successfully"));
try {
@@ -318,7 +321,13 @@ public class FileTableDataPane extends AbstractTableDataPane {
}
private boolean checkURL(String uri){
- return (uri.matches("https*://.+|\\$\\{.+\\}.*"));
+ try {
+ new URL(uri);
+ return true;
+ } catch (MalformedURLException e) {
+ return false;
+ }
+ // return (uri.matches("https*://.+|\\$\\{.+\\}.*"));
}
private JPanel textSetPanel(int width,int height) {
diff --git a/designer-base/src/com/fr/design/extra/LoginWebBridge.java b/designer-base/src/com/fr/design/extra/LoginWebBridge.java
index 30f90d13c1..b22c5905a4 100644
--- a/designer-base/src/com/fr/design/extra/LoginWebBridge.java
+++ b/designer-base/src/com/fr/design/extra/LoginWebBridge.java
@@ -8,8 +8,8 @@ import com.fr.design.extra.exe.PluginLoginExecutor;
import com.fr.design.extra.ucenter.Client;
import com.fr.design.extra.ucenter.XMLHelper;
import com.fr.design.gui.ilable.UILabel;
+import com.fr.general.CloudCenter;
import com.fr.general.ComparatorUtils;
-import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.stable.EncodeConstants;
@@ -134,7 +134,7 @@ public class LoginWebBridge {
* @return
*/
private boolean testConnection() {
- HttpClient client = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("bbs.test"));
+ HttpClient client = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("bbs.test"));
return client.isServerAlive();
}
@@ -159,7 +159,7 @@ public class LoginWebBridge {
*/
public void registerHref() {
try {
- Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.register")));
+ Desktop.getDesktop().browse(new URI(CloudCenter.getInstance().acquireUrlByKind("bbs.register")));
} catch (Exception e) {
FRContext.getLogger().info(e.getMessage());
}
@@ -170,7 +170,7 @@ public class LoginWebBridge {
*/
public void forgetHref() {
try {
- Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.reset")));
+ Desktop.getDesktop().browse(new URI(CloudCenter.getInstance().acquireUrlByKind("bbs.reset")));
} catch (Exception e) {
FRContext.getLogger().info(e.getMessage());
}
@@ -300,7 +300,7 @@ public class LoginWebBridge {
//账号没有QQ授权
closeQQWindow();
try {
- Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("QQ_binding")));
+ Desktop.getDesktop().browse(new URI(CloudCenter.getInstance().acquireUrlByKind("QQ_binding")));
} catch (Exception ignored) {
// ignored
}
diff --git a/designer-base/src/com/fr/design/extra/PluginOperateUtils.java b/designer-base/src/com/fr/design/extra/PluginOperateUtils.java
index d68d0cd861..6752526d92 100644
--- a/designer-base/src/com/fr/design/extra/PluginOperateUtils.java
+++ b/designer-base/src/com/fr/design/extra/PluginOperateUtils.java
@@ -11,7 +11,7 @@ import com.fr.design.extra.exe.callback.UpdateFromDiskCallback;
import com.fr.design.extra.exe.callback.UpdateOnlineCallback;
import com.fr.design.gui.ilable.UILabel;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
@@ -108,7 +108,7 @@ public class PluginOperateUtils {
}
public static String getRecommendPlugins() {
- String plistUrl = SiteCenter.getInstance().acquireUrlByKind("shop.plugin.feature");
+ String plistUrl = CloudCenter.getInstance().acquireUrlByKind("shop.plugin.feature");
JSONArray resultArray = JSONArray.create();
try {
HttpClient httpClient = new HttpClient(plistUrl);
diff --git a/designer-base/src/com/fr/design/extra/PluginUtils.java b/designer-base/src/com/fr/design/extra/PluginUtils.java
index 781a7167a5..a804ed820b 100644
--- a/designer-base/src/com/fr/design/extra/PluginUtils.java
+++ b/designer-base/src/com/fr/design/extra/PluginUtils.java
@@ -1,8 +1,8 @@
package com.fr.design.extra;
import com.fr.base.TemplateUtils;
+import com.fr.general.CloudCenter;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
@@ -15,6 +15,7 @@ import com.fr.plugin.error.PluginErrorCode;
import com.fr.plugin.manage.PluginManager;
import com.fr.plugin.view.PluginView;
import com.fr.stable.EncodeConstants;
+import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import java.io.File;
@@ -35,6 +36,7 @@ import java.util.Map;
public class PluginUtils {
private static final String ERROR_CODE_I18N_PREFIX = "FR-Plugin_Error_";
+ public static final String FR_VERSION = "fr_version";
public static PluginMarker createPluginMarker(String pluginInfo) {
@@ -46,7 +48,7 @@ public class PluginUtils {
public static JSONObject getLatestPluginInfo(String pluginID) throws Exception {
String result = "";
- String plistUrl = SiteCenter.getInstance().acquireUrlByKind("plugin.searchAPI");
+ String plistUrl = CloudCenter.getInstance().acquireUrlByKind("plugin.searchAPI");
if (StringUtils.isNotEmpty(plistUrl)) {
StringBuilder url = new StringBuilder(plistUrl);
if (StringUtils.isNotBlank(pluginID)) {
@@ -109,7 +111,7 @@ public class PluginUtils {
private static String getDownloadPath(String id) throws Exception {
HashMap map = new HashMap();
map.put("id", id);
- HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.scripts_10"));
+ HttpClient httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("shop.script.download")+ "?" + FR_VERSION + "=" + ProductConstants.VERSION);
httpClient.asGet();
String resText = httpClient.getResponseText();
JSONObject resultJSONObject = new JSONObject(resText);
diff --git a/designer-base/src/com/fr/design/extra/PluginWebBridge.java b/designer-base/src/com/fr/design/extra/PluginWebBridge.java
index d922ae37fb..931f5d68a7 100644
--- a/designer-base/src/com/fr/design/extra/PluginWebBridge.java
+++ b/designer-base/src/com/fr/design/extra/PluginWebBridge.java
@@ -15,7 +15,7 @@ import com.fr.design.extra.exe.callback.JSCallback;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.utils.concurrent.ThreadFactoryBuilder;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
@@ -437,7 +437,7 @@ public class PluginWebBridge {
*/
public void getPriviteMessage() {
try {
- String loginUrl = SiteCenter.getInstance().acquireUrlByKind("bbs.default");
+ String loginUrl = CloudCenter.getInstance().acquireUrlByKind("bbs.default");
Desktop.getDesktop().browse(new URI(loginUrl));
} catch (Exception exp) {
FineLoggerFactory.getLogger().info(exp.getMessage());
@@ -500,7 +500,7 @@ public class PluginWebBridge {
*/
public void registerHref() {
try {
- Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.register")));
+ Desktop.getDesktop().browse(new URI(CloudCenter.getInstance().acquireUrlByKind("bbs.register")));
} catch (Exception e) {
FineLoggerFactory.getLogger().info(e.getMessage());
}
@@ -514,7 +514,7 @@ public class PluginWebBridge {
*/
public void forgetHref() {
try {
- Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.reset")));
+ Desktop.getDesktop().browse(new URI(CloudCenter.getInstance().acquireUrlByKind("bbs.reset")));
} catch (Exception e) {
FineLoggerFactory.getLogger().info(e.getMessage());
}
@@ -559,7 +559,7 @@ public class PluginWebBridge {
uiLabel.setText(Inter.getLocText("FR-Base_UnSignIn"));
}
- public void updatePluginStore(final JSObject callback){
+ public void getPackInfo(final JSObject callback){
JSCallback jsCallback = new JSCallback(webEngine, callback);
jsCallback.execute(StringUtils.EMPTY);
}
diff --git a/designer-base/src/com/fr/design/extra/PluginsReaderFromStore.java b/designer-base/src/com/fr/design/extra/PluginsReaderFromStore.java
index add9497967..06a2706d51 100644
--- a/designer-base/src/com/fr/design/extra/PluginsReaderFromStore.java
+++ b/designer-base/src/com/fr/design/extra/PluginsReaderFromStore.java
@@ -1,8 +1,8 @@
package com.fr.design.extra;
+import com.fr.general.CloudCenter;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
@@ -32,7 +32,7 @@ public class PluginsReaderFromStore {
public static List readPlugins() throws Exception {
String resText;
try {
- HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("plugin.store"));
+ HttpClient httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("plugin.store"));
resText = httpClient.getResponseText();
String charSet = EncodeConstants.ENCODING_UTF_8;
resText = URLDecoder.decode(URLDecoder.decode(resText, charSet), charSet);
@@ -49,7 +49,7 @@ public class PluginsReaderFromStore {
*/
public static List readPluginsForUpdate() throws Exception {
String resText = null;
- String url = SiteCenter.getInstance().acquireUrlByKind("plugin.update");
+ String url = CloudCenter.getInstance().acquireUrlByKind("plugin.update");
if (StringUtils.isNotEmpty(url)) {
HashMap para = new HashMap();
para.put("plugins", PluginUtils.transPluginsToString(PluginManager.getContexts()));
diff --git a/designer-base/src/com/fr/design/extra/QQLoginWebPane.java b/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
index f742196914..1d6b7c7a31 100644
--- a/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
+++ b/designer-base/src/com/fr/design/extra/QQLoginWebPane.java
@@ -102,7 +102,7 @@ public class QQLoginWebPane extends JFXPanel {
public void changed(ObservableValue extends String> observable, final String oldValue, String newValue) {
disableLink(webEngine);
// webView好像默认以手机版显示网页,浏览器里过滤掉这个跳转
- if (ComparatorUtils.equals(newValue, url) || ComparatorUtils.equals(newValue, SiteCenter.getInstance().acquireUrlByKind("bbs.mobile"))) {
+ if (ComparatorUtils.equals(newValue, url) || ComparatorUtils.equals(newValue, CloudCenter.getInstance().acquireUrlByKind("bbs.mobile"))) {
return;
}
LoginWebBridge.getHelper().openUrlAtLocalWebBrowser(webEngine, newValue);
diff --git a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
index f273b6d90a..dfca29ea80 100644
--- a/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
+++ b/designer-base/src/com/fr/design/extra/WebViewDlgHelper.java
@@ -10,7 +10,7 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
@@ -296,7 +296,7 @@ public class WebViewDlgHelper {
new SwingWorker() {
@Override
protected Void doInBackground() throws Exception {
- HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.cv_10") + "&version=" + PluginStoreConstants.getInstance().getProps("VERSION"));
+ HttpClient httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("shop.plugin.update") + "?" + PluginUtils.FR_VERSION + "=" + ProductConstants.VERSION + "&version=" + PluginStoreConstants.getInstance().getProps("VERSION"));
httpClient.asGet();
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) {
String text = httpClient.getResponseText();
diff --git a/designer-base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java b/designer-base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java
index f517d0b65a..0a3b76211d 100644
--- a/designer-base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java
@@ -2,7 +2,7 @@ package com.fr.design.extra.exe;
import com.fr.design.extra.PluginConstants;
import com.fr.design.extra.Process;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
/**
@@ -27,7 +27,7 @@ public class GetPluginCategoriesExecutor implements Executor {
@Override
public void run(Process process) {
- String url = SiteCenter.getInstance().acquireUrlByKind("shop.plugin.category");
+ String url = CloudCenter.getInstance().acquireUrlByKind("shop.plugin.category");
if (url != null) {
HttpClient httpClient = new HttpClient(url);
result = httpClient.getResponseText();
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 c5a159a10f..884b115da0 100644
--- a/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java
@@ -4,7 +4,7 @@ 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.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
@@ -52,7 +52,7 @@ public class GetPluginFromStoreExecutor implements Executor {
@Override
public void run(Process process) {
- String plistUrl = SiteCenter.getInstance().acquireUrlByKind("shop.plugin.plist") + "?";
+ String plistUrl = CloudCenter.getInstance().acquireUrlByKind("shop.plugin.plist") + "?";
boolean getRecommend = StringUtils.isEmpty(category) && StringUtils.isEmpty(seller) && StringUtils.isEmpty(fee) && StringUtils.isEmpty(scope);
if (getRecommend) {
result = PluginOperateUtils.getRecommendPlugins();
diff --git a/designer-base/src/com/fr/design/extra/exe/GetPluginPrefixExecutor.java b/designer-base/src/com/fr/design/extra/exe/GetPluginPrefixExecutor.java
index 31b4e2d3f4..7a7de6b12c 100644
--- a/designer-base/src/com/fr/design/extra/exe/GetPluginPrefixExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/GetPluginPrefixExecutor.java
@@ -1,7 +1,7 @@
package com.fr.design.extra.exe;
import com.fr.design.extra.Process;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.stable.StringUtils;
/**
@@ -26,7 +26,7 @@ public class GetPluginPrefixExecutor implements Executor {
@Override
public void run(Process process) {
- result = SiteCenter.getInstance().acquireUrlByKind("plugin.url.prefix");
+ result = CloudCenter.getInstance().acquireUrlByKind("plugin.url.prefix");
}
}
};
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 456b77dd15..a35d10588e 100644
--- a/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java
+++ b/designer-base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java
@@ -3,7 +3,7 @@ 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.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
@@ -42,7 +42,7 @@ public class SearchOnlineExecutor implements Executor {
result = PluginOperateUtils.getRecommendPlugins();
return;
}
- HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.store") + "&keyword=" + keyword);
+ HttpClient httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("shop.plugin.store") + "&keyword=" + keyword);
httpClient.asGet();
String responseText = httpClient.getResponseText();
JSONObject jsonObject = new JSONObject(responseText);
diff --git a/designer-base/src/com/fr/design/extra/ucenter/Client.java b/designer-base/src/com/fr/design/extra/ucenter/Client.java
index cceba006d2..903286476e 100644
--- a/designer-base/src/com/fr/design/extra/ucenter/Client.java
+++ b/designer-base/src/com/fr/design/extra/ucenter/Client.java
@@ -1,7 +1,7 @@
package com.fr.design.extra.ucenter;
import com.fr.base.FRContext;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import java.io.BufferedReader;
import java.io.IOException;
@@ -92,8 +92,8 @@ public class Client extends AbstractClient {
sep = "&";
}
String postData = ucApiRequestdata(module, action, str.toString(), "");
- UC_API = SiteCenter.getInstance().acquireUrlByKind("bbs.ucapi");
- UC_IP = SiteCenter.getInstance().acquireUrlByKind("bbs.ip");
+ UC_API = CloudCenter.getInstance().acquireUrlByKind("bbs.ucapi");
+ UC_IP = CloudCenter.getInstance().acquireUrlByKind("bbs.ip");
return ucFopen2(UC_API + "/index.php", 500000, postData, "", true, UC_IP, 20, true);
}
diff --git a/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java b/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
index 3fc3f1d72b..4974e53e4a 100644
--- a/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
+++ b/designer-base/src/com/fr/design/file/HistoryTemplateListPane.java
@@ -43,18 +43,22 @@ public class HistoryTemplateListPane extends JPanel implements FileOperations, C
private JTemplate, ?> editingTemplate;
private FileToolbarStateChangeListener toobarStateChangeListener;
- private static HistoryTemplateListPane THIS;
+ private static volatile HistoryTemplateListPane THIS;
private UIList list;
public static final HistoryTemplateListPane getInstance() {
if (THIS == null) {
- THIS = new HistoryTemplateListPane();
+ synchronized (HistoryTemplateListPane.class) {
+ if (THIS == null) {
+ THIS = new HistoryTemplateListPane();
+ }
+ }
}
return THIS;
}
- public HistoryTemplateListPane() {
+ private HistoryTemplateListPane() {
setLayout(new BorderLayout());
historyList = new ArrayList>();
list = new UIList(new HistoryListDataMode()) {
diff --git a/designer-base/src/com/fr/design/gui/UIDefaultTheme.java b/designer-base/src/com/fr/design/gui/UIDefaultTheme.java
index 2537ddf92d..26030c47c9 100644
--- a/designer-base/src/com/fr/design/gui/UIDefaultTheme.java
+++ b/designer-base/src/com/fr/design/gui/UIDefaultTheme.java
@@ -1,6 +1,7 @@
package com.fr.design.gui;
+import com.fr.design.constants.UIConstants;
import com.fr.design.utils.ThemeUtils;
import javax.swing.*;
@@ -79,6 +80,8 @@ public class UIDefaultTheme extends DefaultMetalTheme {
table.put("TableHeader.background", new ColorUIResource(229, 229, 229));
table.put("ProgressBar.foreground", ThemeUtils.PROCESS_COLOR);
table.put("ProgressBar.background", ThemeUtils.TEXT_BG_COLOR);
+ table.put("ProgressBar.modern.foreground", new ColorUIResource(0x3497FF));
+ table.put("ProgressBar.modern.background", UIConstants.PROPERTY_PANE_BACKGROUND);
table.put("ProgressBar.selectionForeground", ThemeUtils.NORMAL_FOREGROUND);
table.put("ProgressBar.selectionBackground", ThemeUtils.NORMAL_FOREGROUND);
table.put("PopupMenu.background", ThemeUtils.NORMAL_BG);
diff --git a/designer-base/src/com/fr/design/gui/iprogressbar/ModernUIProgressBarUI.java b/designer-base/src/com/fr/design/gui/iprogressbar/ModernUIProgressBarUI.java
new file mode 100644
index 0000000000..04ca657d16
--- /dev/null
+++ b/designer-base/src/com/fr/design/gui/iprogressbar/ModernUIProgressBarUI.java
@@ -0,0 +1,83 @@
+package com.fr.design.gui.iprogressbar;
+
+import com.fr.design.utils.ThemeUtils;
+
+import javax.swing.LookAndFeel;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * 新进度条UI(暂时只处理了非模糊场景)
+ * Created by zack on 2018/6/21.
+ */
+public class ModernUIProgressBarUI extends UIProgressBarUI {
+ // draw determinate
+ @Override
+ protected void drawXpHorzProgress(Graphics g, int x, int y,
+ int w, int h, int amountFull) {
+ Graphics2D g2d = (Graphics2D) g;
+ g2d.translate(x, y);
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ if (!progressBar.isOpaque()) {
+ //绘制进度条背板
+ g2d.setColor(progressBar.getBackground());
+ RoundRectangle2D roundedRectangle = new RoundRectangle2D.Float(0, 0, w, h, 10, 10);
+ g2d.fill(roundedRectangle);
+ }
+ //
+ g2d.setColor(progressBar.getForeground());
+ int mx = 0;
+ while (mx < amountFull) {
+ RoundRectangle2D roundedRectangle = new RoundRectangle2D.Float(0, 0, amountFull, h, 10, 10);
+ g2d.fill(roundedRectangle);
+ mx += 8;
+ }
+ g2d.translate(-x, -y);
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ }
+
+
+ // draw determinate
+ @Override
+ protected void drawXpVertProgress(Graphics g, int x, int y,
+ int w, int h, int amountFull) {
+ Graphics2D g2d = (Graphics2D) g;
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.translate(x, y);
+ // paint the track
+ if (!progressBar.isOpaque()) {
+ g.setColor(progressBar.getBackground());
+ RoundRectangle2D roundedRectangle = new RoundRectangle2D.Float(0, 0, w, h, 10, 10);
+ g2d.fill(roundedRectangle);
+ }
+ // paints bottom to top...
+ int my = 0;
+ while (my < amountFull) {
+ RoundRectangle2D roundedRectangle = new RoundRectangle2D.Float(0, 0, w, amountFull, 10, 10);
+ g2d.fill(roundedRectangle);
+ my += 8;
+ }
+ g.translate(-x, -y);
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ }
+
+ @Override
+ protected Color getSelectionForeground() {
+ return ThemeUtils.PROCESS_SELECTED_FORECOLOR;
+ }
+
+ @Override
+ protected Color getSelectionBackground() {
+ return ThemeUtils.PROCESS_SELECTED_BACKCOLOR;
+ }
+
+ @Override
+ protected void installDefaults() {
+ LookAndFeel.installBorder(progressBar, "ProgressBar.border");
+ LookAndFeel.installColorsAndFont(progressBar,
+ "ProgressBar.modern.background", "ProgressBar.modern.foreground", "ProgressBar.font");
+ }
+}
diff --git a/designer-base/src/com/fr/design/gui/iprogressbar/ProgressDialog.java b/designer-base/src/com/fr/design/gui/iprogressbar/ProgressDialog.java
new file mode 100644
index 0000000000..f5a1c3c775
--- /dev/null
+++ b/designer-base/src/com/fr/design/gui/iprogressbar/ProgressDialog.java
@@ -0,0 +1,80 @@
+package com.fr.design.gui.iprogressbar;
+
+import com.fr.design.constants.UIConstants;
+import com.fr.design.dialog.UIDialog;
+import com.fr.design.gui.ilable.UILabel;
+import com.fr.design.utils.gui.GUICoreUtils;
+import com.fr.general.FRFont;
+import com.fr.general.Inter;
+
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.plaf.ColorUIResource;
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Frame;
+
+/**
+ * 加载进度弹窗
+ */
+public class ProgressDialog extends UIDialog {
+ private JProgressBar progressBar;
+ private JDialog centerDialog;
+ private JLabel text;
+
+ public ProgressDialog(Frame parent) {
+ super(parent);
+ setUndecorated(true);
+ setSize(parent.getSize());
+ setLocationRelativeTo(null);
+ setOpacity(0.5f);
+ initComponent();
+ }
+
+ private void initComponent() {
+
+ centerDialog = new JDialog(this);
+ centerDialog.setSize(new Dimension(482, 124));
+ centerDialog.setUndecorated(true);
+ GUICoreUtils.centerWindow(centerDialog);
+ JPanel panel = new JPanel();
+ panel.setBorder(new UIProgressBorder(3, UIConstants.DEFAULT_BG_RULER, 14, 46, 47, 37, 47));
+ panel.setLayout(new BorderLayout(4, 15));
+ progressBar = new JProgressBar();
+ progressBar.setUI(new ModernUIProgressBarUI());
+ progressBar.setBorderPainted(false);
+ progressBar.setOpaque(false);
+ progressBar.setBorder(null);
+ panel.add(progressBar, BorderLayout.CENTER);
+ text = new UILabel(Inter.getLocText("Fine-Designer_Loading_Project"), JLabel.CENTER);
+ FRFont font = FRFont.getInstance().applySize(14).applyForeground(new ColorUIResource(333334));
+ text.setFont(font);
+ panel.add(text, BorderLayout.SOUTH);
+ panel.setVisible(true);
+ centerDialog.getContentPane().add(panel);
+
+ }
+
+ @Override
+ public void checkValid() throws Exception {
+
+ }
+
+ @Override
+ public void setVisible(boolean b) {
+ centerDialog.setVisible(b);
+ super.setVisible(b);
+ }
+
+ public void setProgressValue(int value) {
+ progressBar.setValue(value);
+ }
+
+ @Override
+ public void dispose() {
+ centerDialog.dispose();
+ super.dispose();
+ }
+}
diff --git a/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBarUI.java b/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBarUI.java
index 4d9d34ba05..e48de9fcdb 100644
--- a/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBarUI.java
+++ b/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBarUI.java
@@ -74,7 +74,7 @@ public class UIProgressBarUI extends BasicProgressBarUI {
}
// draw determinate
- private void drawXpHorzProgress(Graphics g, int x, int y,
+ protected void drawXpHorzProgress(Graphics g, int x, int y,
int w, int h, int amountFull) {
g.translate(x, y);
if (!progressBar.isOpaque()) {
@@ -124,7 +124,7 @@ public class UIProgressBarUI extends BasicProgressBarUI {
// draw determinate
- private void drawXpVertProgress(Graphics g, int x, int y,
+ protected void drawXpVertProgress(Graphics g, int x, int y,
int w, int h, int amountFull) {
g.translate(x, y);
// paint the track
diff --git a/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBorder.java b/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBorder.java
new file mode 100644
index 0000000000..c4df50e82a
--- /dev/null
+++ b/designer-base/src/com/fr/design/gui/iprogressbar/UIProgressBorder.java
@@ -0,0 +1,96 @@
+package com.fr.design.gui.iprogressbar;
+
+import com.fr.design.border.UIRoundedBorder;
+import com.fr.stable.OperatingSystem;
+
+import java.awt.AlphaComposite;
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Insets;
+import java.awt.RenderingHints;
+import java.awt.geom.RoundRectangle2D;
+
+/**
+ * 进度条带阴影的边框
+ */
+public class UIProgressBorder extends UIRoundedBorder {
+ private int left;
+ private int right;
+ private int top;
+ private int bottom;
+ private static final long serialVersionUID = 1L;
+
+ public UIProgressBorder(Color color) {
+ super(color);
+ }
+
+ public UIProgressBorder(Color color, int thickness) {
+ super(color, thickness);
+ }
+
+ public UIProgressBorder(Color color, int thickness, int roundedCorners) {
+ super(color, thickness, roundedCorners);
+ }
+
+ public UIProgressBorder(int lineStyle, Color color, int roundedCorners) {
+ super(lineStyle, color, roundedCorners);
+ }
+
+ public UIProgressBorder(int lineStyle, Color color, int roundedCorners, int top, int left, int bottom, int right) {
+ super(lineStyle, color, roundedCorners);
+ this.top = top;
+ this.right = right;
+ this.bottom = bottom;
+ this.left = left;
+ }
+
+ @Override
+ public Insets getBorderInsets(Component c) {
+ Insets insets = new Insets(top, left, bottom, right);
+ return insets;
+ }
+
+ @Override
+ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
+ Color oldColor = g.getColor();
+
+ Graphics2D g2d = (Graphics2D) g;
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setColor(getLineColor());
+ g2d.fill(new RoundRectangle2D.Double(x, y, width, height, 0, 0));
+ g2d.setColor(oldColor);
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ if(OperatingSystem.isWindows()){//mac下自带阴影
+ paintBorderShadow(g2d, 7, x, y, width, height);
+ }
+
+ g2d.setColor(oldColor);
+ g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f));
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+ }
+
+ private void paintBorderShadow(Graphics2D g2, int shadowWidth, int x, int y, int width, int height) {
+ g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ shadowWidth = Math.max(shadowWidth, 2);
+ int sw = shadowWidth;
+ for (int i = sw; i > 0; i--) {
+ float pct = (float) (sw - i) / (sw - 1);
+ g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.01f * i));
+ g2.setColor(getMixedColor(Color.LIGHT_GRAY, 1.0f - pct, Color.WHITE, pct));
+ g2.setStroke(new BasicStroke(i));
+ g2.draw(new RoundRectangle2D.Double(x, y, width, height, getRoundedCorner(), getRoundedCorner()));
+ }
+ }
+
+ private static Color getMixedColor(Color c1, float pct1, Color c2, float pct2) {
+ float[] clr1 = c1.getComponents(null);
+ float[] clr2 = c2.getComponents(null);
+ for (int i = 0; i < clr1.length; i++) {
+ clr1[i] = (clr1[i] * pct1) + (clr2[i] * pct2);
+ }
+ return new Color(clr1[0], clr1[1], clr1[2], clr1[3]);
+ }
+}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/hyperlink/WebHyperNorthPane.java b/designer-base/src/com/fr/design/hyperlink/WebHyperNorthPane.java
index a7a0a8077a..91608d1ce7 100644
--- a/designer-base/src/com/fr/design/hyperlink/WebHyperNorthPane.java
+++ b/designer-base/src/com/fr/design/hyperlink/WebHyperNorthPane.java
@@ -3,6 +3,7 @@ package com.fr.design.hyperlink;
import com.fr.config.ServerPreferenceConfig;
import com.fr.design.constants.LayoutConstants;
+import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
@@ -47,11 +48,9 @@ public class WebHyperNorthPane extends AbstractHyperNorthPane {
protected JPanel setHeaderPanel() {
JPanel headerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
- urlTextField = new UITextField(43);
+ urlTextField = new UITextField(headerPane.getWidth());
urlTextField.setText(ProductConstants.WEBSITE_URL);
-
- //UILabel label = new UILabel(Inter.getLocText(new String[]{"Example","Or"}, new String[]{":http://www.baidu.com","/main.jsp"}));
JPanel urlWithHelp = GUICoreUtils.createNamedPane(urlTextField, "URL:");
if (this.needRenamePane) {
diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java
index 23e2596dfd..f4766b798e 100644
--- a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java
+++ b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java
@@ -23,6 +23,7 @@ import com.fr.design.file.TemplateTreePane;
import com.fr.design.fun.TitlePlaceProcessor;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.imenu.UIMenuHighLight;
+import com.fr.design.gui.iprogressbar.ProgressDialog;
import com.fr.design.gui.iscrollbar.UIScrollBar;
import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.layout.FRGUIPaneFactory;
@@ -192,6 +193,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
closeButton.repaint();
}
};
+ private ProgressDialog progressDialog;
public DesignerFrame(ToolBarMenuDock ad) {
@@ -269,6 +271,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
this.setDropTarget(new DropTarget(this, DnDConstants.ACTION_MOVE, new FileDropTargetListener(), true));
closeMode = UIConstants.CLOSE_OF_AUTHORITY;
initMenuPane();
+ this.progressDialog = new ProgressDialog(this);
}
/**
@@ -1049,4 +1052,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
}
}
+ public ProgressDialog getProgressDialog() {
+ return progressDialog;
+ }
}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
index c35e7e3591..fddf359c53 100644
--- a/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
+++ b/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
@@ -53,7 +53,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
private static final String FILE = "file";
- private static DesignerFrameFileDealerPane THIS;
+ private static volatile DesignerFrameFileDealerPane THIS;
private CardLayout card;
@@ -81,11 +81,15 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
selectedOperation.refresh();
}
-
+
public static final DesignerFrameFileDealerPane getInstance() {
-
+
if (THIS == null) {
- THIS = new DesignerFrameFileDealerPane();
+ synchronized (DesignerFrameFileDealerPane.class) {
+ if (THIS == null) {
+ THIS = new DesignerFrameFileDealerPane();
+ }
+ }
}
return THIS;
}
diff --git a/designer-base/src/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/com/fr/design/mainframe/EastRegionContainerPane.java
index ef8729ddc3..0adf8785cd 100644
--- a/designer-base/src/com/fr/design/mainframe/EastRegionContainerPane.java
+++ b/designer-base/src/com/fr/design/mainframe/EastRegionContainerPane.java
@@ -30,7 +30,7 @@ import java.util.Map;
import java.util.Set;
public class EastRegionContainerPane extends UIEastResizableContainer {
- private static EastRegionContainerPane THIS;
+ private static volatile EastRegionContainerPane THIS;
private Map propertyItemMap;
private CardLayout propertyCard;
private JPanel leftPane;
@@ -84,13 +84,17 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
*/
public static EastRegionContainerPane getInstance() {
if (THIS == null) {
- THIS = new EastRegionContainerPane();
- THIS.setLastContainerWidth(DesignerEnvManager.getEnvManager().getLastEastRegionContainerWidth());
+ synchronized (EastRegionContainerPane.class) {
+ if (THIS == null) {
+ THIS = new EastRegionContainerPane();
+ THIS.setLastContainerWidth(DesignerEnvManager.getEnvManager().getLastEastRegionContainerWidth());
+ }
+ }
}
return THIS;
}
- public EastRegionContainerPane() {
+ private EastRegionContainerPane() {
super();
initPropertyItemList();
defaultPane = getDefaultPane(Inter.getLocText("FR-Designer_No_Settings_Available"));
diff --git a/designer-base/src/com/fr/design/mainframe/TemplatePane.java b/designer-base/src/com/fr/design/mainframe/TemplatePane.java
index fc165928b9..4107a0538e 100644
--- a/designer-base/src/com/fr/design/mainframe/TemplatePane.java
+++ b/designer-base/src/com/fr/design/mainframe/TemplatePane.java
@@ -137,7 +137,8 @@ public class TemplatePane extends JPanel implements MouseListener {
@Override
public void fail() {
- JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
+ JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}),
+ null, 0, UIManager.getIcon("OptionPane.errorIcon"));
}
@Override
@@ -152,7 +153,8 @@ public class TemplatePane extends JPanel implements MouseListener {
}
setJLabel(selectedName);
} catch (Exception e) {
- JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
+ JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}),
+ null, 0, UIManager.getIcon("OptionPane.errorIcon"));
return false;
}
TemplateTreePane.getInstance().refreshDockingView();
diff --git a/designer-base/src/com/fr/design/mainframe/loghandler/LogMessageBar.java b/designer-base/src/com/fr/design/mainframe/loghandler/LogMessageBar.java
index 71a7a7e642..8f6034f776 100644
--- a/designer-base/src/com/fr/design/mainframe/loghandler/LogMessageBar.java
+++ b/designer-base/src/com/fr/design/mainframe/loghandler/LogMessageBar.java
@@ -1,27 +1,29 @@
package com.fr.design.mainframe.loghandler;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-
-import javax.swing.JFrame;
-
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ilable.UILabel;
import com.fr.general.Inter;
+import javax.swing.JFrame;
import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
public class LogMessageBar extends JPanel {
private UILabel messageLabel;
private int width = 600;
- public static LogMessageBar THIS;
+ public static volatile LogMessageBar THIS;
private JFrame dlg = new LogDetailPane().showDialog();
public static LogMessageBar getInstance() {
if (THIS == null) {
- THIS = new LogMessageBar();
+ synchronized (LogMessageBar.class) {
+ if (THIS == null) {
+ THIS = new LogMessageBar();
+ }
+ }
}
return THIS;
}
@@ -32,7 +34,7 @@ public class LogMessageBar extends JPanel {
return bar;
}
- public LogMessageBar() {
+ private LogMessageBar() {
messageLabel = new UILabel();
setLayout(new BorderLayout());
add(messageLabel, BorderLayout.CENTER);
diff --git a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java b/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java
deleted file mode 100644
index 85f9911f20..0000000000
--- a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.fr.design.mainframe.loghandler.socketio;
-
-import com.fr.design.mainframe.loghandler.DesignerLogHandler;
-import com.fr.event.Event;
-import com.fr.event.EventDispatcher;
-import com.fr.event.Listener;
-import com.fr.general.LogRecordTime;
-import com.fr.general.LogUtils;
-import com.fr.log.FineLoggerFactory;
-import com.fr.third.guava.base.Optional;
-import com.fr.workspace.WorkContext;
-import com.fr.workspace.Workspace;
-import com.fr.workspace.WorkspaceEvent;
-import io.socket.client.Socket;
-import io.socket.emitter.Emitter;
-
-import java.io.ByteArrayInputStream;
-
-public class DesignerSocketIO {
-
- private static Optional socketIO = Optional.absent();
-
- private static final Emitter.Listener printLog = new Emitter.Listener() {
- @Override
- public void call(Object... objects) {
- try {
- LogRecordTime[] logRecordTimes = LogUtils.readXMLLogRecords(new ByteArrayInputStream((byte[]) objects[0]));
- for (LogRecordTime logRecordTime : logRecordTimes) {
- DesignerLogHandler.getInstance().printRemoteLog(logRecordTime);
- }
- } catch (Exception e) {
- FineLoggerFactory.getLogger().error(e.getMessage(), e);
- }
- }
- };
-
- static {
- EventDispatcher.listen(WorkspaceEvent.BeforeSwitch, new Listener() {
- @Override
- public void on(Event event, Workspace param) {
- if (socketIO.isPresent()) {
- socketIO.get().close();
- socketIO = Optional.absent();
- }
- }
- });
- EventDispatcher.listen(WorkspaceEvent.AfterSwitch, new Listener() {
- @Override
- public void on(Event event, Workspace param) {
- updateSocket();
- }
- });
- }
-
- public static void init() {
- updateSocket();
- }
-
- private static void updateSocket() {
-
- if (WorkContext.getCurrent().isLocal()) {
- return;
- }
- try {
-// RemoteEnvConfig config = ((RemoteEnv)env).getEnvConfig();
-// String uri = String.format("http://%s:%s%s?%s=%s",
-// config.getHost(),
-// WebSocketConfig.getInstance().getPort(),
-// EnvConstants.WS_NAMESPACE,
-// DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME,
-// EnvContext.currentToken());
-//
-// socketIO = Optional.of(IO.socket(new URI(uri)));
-// socketIO.get().on(EnvConstants.WS_LOGRECORD, printLog);
-// socketIO.get().on(EnvConstants.CONFIG, new Emitter.Listener() {
-// @Override
-// public void call(Object... objects) {
-// if (objects == null || objects.length != 1) {
-// throw new IllegalArgumentException("config should have only one param");
-// }
-// Object param = objects[0];
-// if (param instanceof Class) {
-// EventDispatcher.fire(ConfigEvent.EDIT, (Class extends Configuration>) param);
-// }
-// }
-// });
-// socketIO.get().connect();
- } catch (Exception e) {
- FineLoggerFactory.getLogger().error(e.getMessage(), e);
- }
- }
-}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java
index be286226cb..7eb5e7bfd3 100644
--- a/designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java
+++ b/designer-base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java
@@ -10,7 +10,7 @@ import com.fr.design.mainframe.SiteCenterToken;
import com.fr.general.ComparatorUtils;
import com.fr.general.GeneralUtils;
import com.fr.general.IOUtils;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
@@ -305,8 +305,8 @@ public class TemplateInfoCollector implements Serializable,
*/
public void sendTemplateInfo() {
addDayCount();
- String consumingUrl = SiteCenter.getInstance().acquireUrlByKind("tempinfo.consuming") + "/single";
- String processUrl = SiteCenter.getInstance().acquireUrlByKind("tempinfo.process") + "/single";
+ String consumingUrl = CloudCenter.getInstance().acquireUrlByKind("tempinfo.consuming") + "/single";
+ String processUrl = CloudCenter.getInstance().acquireUrlByKind("tempinfo.process") + "/single";
ArrayList> completeTemplatesInfo = getCompleteTemplatesInfo();
for (HashMap templateInfo : completeTemplatesInfo) {
String jsonConsumingMap = templateInfo.get(JSON_CONSUMING_MAP);
diff --git a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
index 11f61beb2a..cd684a6161 100644
--- a/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
+++ b/designer-base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
@@ -439,8 +439,7 @@ public abstract class ToolBarMenuDock {
}
private boolean shouldShowPlugin() {
-
- return !(WorkContext.getCurrent().isLocal()) && FRContext.isChineseEnv();
+ return WorkContext.getCurrent().isLocal() && FRContext.isChineseEnv();
}
/**
diff --git a/designer-base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java b/designer-base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java
index d5527b31c9..dcc053e126 100644
--- a/designer-base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java
+++ b/designer-base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java
@@ -9,7 +9,6 @@ import com.fr.stable.StableUtils;
import javax.swing.JPanel;
import java.util.List;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@@ -20,9 +19,9 @@ import java.util.concurrent.TimeUnit;
public class UpdateActionManager {
private static UpdateActionManager updateActionManager = null;
private List updateActions;
- private ExecutorService threadPoolExecutor = new ThreadPoolExecutor(
- 1, 1,
- 0L, TimeUnit.MILLISECONDS,
+ private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
+ 1, 2,
+ 30000L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue(),
new ThreadFactoryBuilder().setNameFormat("alphafine-thread-%s").build());//目前测下来一个线程慢慢做处理总共大概也只要两秒,暂时就这样
@@ -57,6 +56,7 @@ public class UpdateActionManager {
}
public synchronized void dealWithSearchText(final String paneClass, final UpdateAction updateAction) {
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
threadPoolExecutor.execute(new Runnable() {
@Override
public void run() {
diff --git a/designer-base/src/com/fr/design/module/DesignModule.java b/designer-base/src/com/fr/design/module/DesignModule.java
deleted file mode 100644
index 34f149ab72..0000000000
--- a/designer-base/src/com/fr/design/module/DesignModule.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.fr.design.module;
-
-import com.fr.design.ExtraDesignClassManager;
-import com.fr.design.actions.core.ActionFactory;
-import com.fr.design.fun.ElementUIProvider;
-import com.fr.design.gui.controlpane.NameObjectCreator;
-import com.fr.design.gui.controlpane.NameableCreator;
-import com.fr.design.hyperlink.ReportletHyperlinkPane;
-import com.fr.design.hyperlink.WebHyperlinkPane;
-import com.fr.design.javascript.EmailPane;
-import com.fr.design.javascript.JavaScriptImplPane;
-import com.fr.design.javascript.ParameterJavaScriptPane;
-import com.fr.design.mainframe.App;
-import com.fr.design.mainframe.DesignerFrame;
-import com.fr.general.Inter;
-import com.fr.general.ModuleContext;
-import com.fr.js.EmailJavaScript;
-import com.fr.js.JavaScriptImpl;
-import com.fr.js.ParameterJavaScript;
-import com.fr.js.ReportletHyperlink;
-import com.fr.js.WebHyperlink;
-import com.fr.module.TopModule;
-import com.fr.stable.bridge.StableFactory;
-import com.fr.stable.plugin.ExtraDesignClassManagerProvider;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Created by IntelliJ IDEA.
- * Author : Richer
- * Version: 6.5.6
- * Date : 11-11-24
- * Time : 下午2:52
- * 所有设计器模块的父类
- */
-public abstract class DesignModule extends TopModule {
- public static final String LOCALE_FILE_PATH = "com/fr/design/i18n/main";
-
- public void start() {
- super.start();
- App>[] apps = apps4TemplateOpener();
- for (App> app : apps) {
- DesignerFrame.registApp(app);
- }
- ModuleContext.registerStartedModule(DesignModule.class.getName(), this);
- StableFactory.registerMarkedClass(ExtraDesignClassManagerProvider.XML_TAG, ExtraDesignClassManager.class);
- ActionFactory.registerCellInsertActionClass(actionsForInsertCellElement());
- ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement());
- DesignModuleFactory.registerCreators4Hyperlink(hyperlinkTypes());
- }
-
- public boolean isStarted() {
- return ModuleContext.isModuleStarted(DesignModule.class.getName());
- }
-
- /**
- * 返回设计器能打开的模板类型的一个数组列表
- *
- * @return 可以打开的模板类型的数组
- */
- public abstract App>[] apps4TemplateOpener();
-
- /**
- * 国际化文件路径
- *
- * @return 国际化文件路径
- */
- public String[] getLocaleFile() {
- return new String[]{LOCALE_FILE_PATH};
- }
-
- public Class>[] actionsForInsertCellElement() {
- List> classes = new ArrayList<>();
- Set providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
- for (ElementUIProvider provider : providers) {
- classes.add(provider.actionForInsertCellElement());
- }
- return classes.toArray(new Class>[classes.size()]);
- }
-
- public Class>[] actionsForInsertFloatElement() {
- List> classes = new ArrayList<>();
- Set providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
- for (ElementUIProvider provider : providers) {
- classes.add(provider.actionForInsertFloatElement());
- }
- return classes.toArray(new Class>[classes.size()]);
- }
-
- public NameableCreator[] hyperlinkTypes() {
- return new NameableCreator[]{
- new NameObjectCreator(Inter.getLocText("FR-Hyperlink_Reportlet"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class),
- new NameObjectCreator(Inter.getLocText("FR-Designer_Email"), EmailJavaScript.class, EmailPane.class),
- new NameObjectCreator(Inter.getLocText("Hyperlink-Web_link"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class),
- new NameObjectCreator(Inter.getLocText("JavaScript-Dynamic_Parameters"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class),
- new NameObjectCreator(Inter.getLocText("FR-Designer_JavaScript"), JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class)
- };
- }
-
-}
\ No newline at end of file
diff --git a/designer-base/src/com/fr/design/utils/DesignUtils.java b/designer-base/src/com/fr/design/utils/DesignUtils.java
index 12871b1ede..4396cfc9ef 100644
--- a/designer-base/src/com/fr/design/utils/DesignUtils.java
+++ b/designer-base/src/com/fr/design/utils/DesignUtils.java
@@ -301,7 +301,7 @@ public class DesignUtils {
if (!WorkContext.getCurrent().isLocal()) {
try {
String urlPath = getWebBrowserPath();
- Desktop.getDesktop().browse(new URI(urlPath + postfixOfUri));
+ Desktop.getDesktop().browse(new URI(urlPath + baseRoute + postfixOfUri));
} catch (Exception e) {
FRContext.getLogger().error("cannot open the url Successful", e);
}
diff --git a/designer-base/src/com/fr/env/RemoteEnvPane.java b/designer-base/src/com/fr/env/RemoteEnvPane.java
index 137db5ff6d..a07e9996c8 100644
--- a/designer-base/src/com/fr/env/RemoteEnvPane.java
+++ b/designer-base/src/com/fr/env/RemoteEnvPane.java
@@ -64,7 +64,7 @@ public class RemoteEnvPane extends BasicBeanPane {
private UILabel message = new UILabel();
private UIButton okButton = new UIButton(Inter.getLocText("OK"));
private UIButton cancelButton = new UIButton(Inter.getLocText("Cancel"));
- ;
+ private UILabel uiLabel = new UILabel();
/**
* 是否启用 https 勾选框
@@ -477,6 +477,7 @@ public class RemoteEnvPane extends BasicBeanPane {
protected Boolean doInBackground() throws Exception {
final RemoteDesignerWorkspaceInfo remoteEnv = updateBean();
+
return WorkContext.getConnector().testConnection(remoteEnv.getConnection());
}
@@ -486,11 +487,14 @@ public class RemoteEnvPane extends BasicBeanPane {
try {
if (get()) {
message.setText(Inter.getLocText("Fine-Designer_Basic_Remote_Connect_Successful"));
+ uiLabel.setIcon(UIManager.getIcon("OptionPane.informationIcon"));
} else {
message.setText(Inter.getLocText("Fine-Designer_Basic_Remote_Connect_Failed"));
+ uiLabel.setIcon(UIManager.getIcon("OptionPane.errorIcon"));
}
} catch (InterruptedException | ExecutionException e) {
message.setText(Inter.getLocText("Fine-Designer_Basic_Remote_Connect_Failed"));
+ uiLabel.setIcon(UIManager.getIcon("OptionPane.errorIcon"));
}
}
};
@@ -530,7 +534,7 @@ public class RemoteEnvPane extends BasicBeanPane {
JPanel jp = new JPanel();
JPanel upPane = new JPanel();
JPanel downPane = new JPanel();
- UILabel uiLabel = new UILabel(UIManager.getIcon("OptionPane.informationIcon"));
+ uiLabel = new UILabel(UIManager.getIcon("OptionPane.informationIcon"));
upPane.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
upPane.add(uiLabel);
upPane.add(message);
diff --git a/designer-base/src/com/fr/start/BaseDesigner.java b/designer-base/src/com/fr/start/BaseDesigner.java
index e374f25998..87d87e7ba4 100644
--- a/designer-base/src/com/fr/start/BaseDesigner.java
+++ b/designer-base/src/com/fr/start/BaseDesigner.java
@@ -11,7 +11,6 @@ import com.fr.design.file.TemplateTreePane;
import com.fr.design.fun.DesignerStartOpenFileProcessor;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrame;
-import com.fr.design.mainframe.loghandler.LogMessageBar;
import com.fr.design.mainframe.toolbar.ToolBarMenuDock;
import com.fr.design.utils.DesignUtils;
import com.fr.event.EventDispatcher;
@@ -27,8 +26,6 @@ import com.fr.stable.OperatingSystem;
import java.awt.Window;
import java.io.File;
import java.lang.reflect.Method;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
/**
* The main class of Report Designer.
@@ -36,55 +33,38 @@ import java.util.concurrent.Executors;
public abstract class BaseDesigner extends ToolBarMenuDock {
private static final int LOAD_TREE_MAXNUM = 10;
-
+
public BaseDesigner(String[] args) {
-
+
init(args);
}
-
+
private void init(String[] args) {
//初始化
EventDispatcher.fire(ModuleEvent.MajorModuleStarting, InterProviderFactory.getProvider().getLocText("FR-Designer_Initializing"));
// 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到
DesignUtils.initLookAndFeel();
- // 预加载一些耗时的单例面板
- preLoadPane();
-
// 初始化Log Handler
DesignerEnvManager.loadLogSetting();
createDesignerFrame();
}
- private void preLoadPane() {
- ExecutorService service = Executors.newCachedThreadPool();
- service.submit(new Runnable() {
- @Override
- public void run() {
- LogMessageBar.getInstance();
- }
- });
-
- service.submit(new Runnable() {
- @Override
- public void run() {
- HistoryTemplateListPane.getInstance();
- }
- });
- service.shutdown();
- }
-
public void show(final String[] args) {
collectUserInformation();
+ DesignerContext.getDesignerFrame().getProgressDialog().setProgressValue(10);
showDesignerFrame(args, DesignerContext.getDesignerFrame(), false);
+ DesignerContext.getDesignerFrame().getProgressDialog().setProgressValue(60);
DesignerContext.getDesignerFrame().refreshEnv();
+ DesignerContext.getDesignerFrame().getProgressDialog().setProgressValue(90);
for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) {
TemplateTreePane.getInstance().getTemplateFileTree().refresh();
}
+ DesignerContext.getDesignerFrame().getProgressDialog().setProgressValue(100);
}
-
-
+
+
private void createDesignerFrame() {
-
+
new DesignerFrame(this);
}
@@ -128,9 +108,9 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
}
}
}
-
+
private boolean openFile(final DesignerFrame df, boolean isException, FILE file) {
-
+
//启动时打开指定文件的接口
DesignerStartOpenFileProcessor processor = ExtraDesignClassManager.getInstance().getSingle(DesignerStartOpenFileProcessor.XML_TAG);
if (processor != null) {
@@ -153,8 +133,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
df.getSelectedJTemplate().requestGridFocus();
return isException;
}
-
-
+
+
/**
* @param window
*/
@@ -172,9 +152,6 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
}
}
-
- protected abstract String module2Start();
-
// 收集用户信息码
protected void collectUserInformation() {
diff --git a/designer-base/src/com/fr/start/server/FineEmbedServerActivator.java b/designer-base/src/com/fr/start/server/FineEmbedServerActivator.java
index 61fd249cb8..1d76fd3feb 100644
--- a/designer-base/src/com/fr/start/server/FineEmbedServerActivator.java
+++ b/designer-base/src/com/fr/start/server/FineEmbedServerActivator.java
@@ -5,6 +5,7 @@ import com.fr.design.DesignerEnvManager;
import com.fr.log.FineLoggerFactory;
import com.fr.module.Activator;
import com.fr.module.ModuleRole;
+import com.fr.stable.EncodeConstants;
import com.fr.startup.FineWebApplicationInitializer;
import com.fr.third.springframework.web.SpringServletContainerInitializer;
import com.fr.third.springframework.web.context.support.AnnotationConfigWebApplicationContext;
@@ -12,6 +13,7 @@ import com.fr.workspace.WorkContext;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;
+import org.apache.catalina.connector.Connector;
import org.apache.catalina.loader.VirtualWebappLoader;
import org.apache.catalina.startup.Tomcat;
@@ -55,6 +57,8 @@ public class FineEmbedServerActivator extends Activator {
tomcat = new Tomcat();
tomcat.setPort(DesignerEnvManager.getEnvManager().getEmbedServerPort());
+ // 设置解码uri使用的字符编码
+ tomcat.getConnector().setURIEncoding(EncodeConstants.ENCODING_UTF_8);
String docBase = new File(WorkContext.getCurrent().getPath()).getParent();
String appName = "/" + FRContext.getCommonOperator().getAppName();
Context context = tomcat.addContext(appName, docBase);
diff --git a/designer-chart/src/com/fr/design/ChartTypeInterfaceManager.java b/designer-chart/src/com/fr/design/ChartTypeInterfaceManager.java
index a2d06362a9..db01883af5 100644
--- a/designer-chart/src/com/fr/design/ChartTypeInterfaceManager.java
+++ b/designer-chart/src/com/fr/design/ChartTypeInterfaceManager.java
@@ -275,26 +275,13 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
List priorityList = getPriorityInOrder();
for (Integer aPriorityList : priorityList) {
String priority = String.valueOf(aPriorityList);
- Iterator> chartUIIterator = chartTypeInterfaces.get(priority).entrySet().iterator();
- while (chartUIIterator.hasNext()) {
- Map.Entry chartUIEntry = chartUIIterator.next();
- IndependentChartUIProvider provider = chartUIEntry.getValue();
- AbstractChartTypePane pane = provider.getPlotTypePane();
- pane.setPlotID(chartUIEntry.getKey());
- paneList.add(pane);
- }
+ addPlotTypePaneList(priority, paneList);
}
}
- private static String getChartName(String plotID, IndependentChartUIProvider provider) {
- String name = provider.getPlotTypeTitle4PopupWindow();
- if (StringUtils.isEmpty(name)) {
- name = ChartTypeManager.getInstance().getChartName(plotID);
- }
- return name;
- }
- private void addTitles(String priority, List list) {
+ public void addPlotTypePaneList(String priority, List> paneList) {
+
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority)) {
Map chartUIList = chartTypeInterfaces.get(priority);
@@ -305,30 +292,31 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
String plotID = entry.getKey();
if (enabledChart(plotID)) {
- list.add(getChartName(plotID, entry.getValue()));
+ AbstractChartTypePane pane = entry.getValue().getPlotTypePane();
+ pane.setPlotID(plotID);
+ paneList.add(pane);
}
}
}
}
- public String[] getTitle4PopupWindow() {
- List priorityList = getPriorityInOrder();
-
- List result = new ArrayList();
- for (Integer priority : priorityList) {
- addTitles(String.valueOf(priority), result);
+ public void addPlotTypePaneList(List> paneList,
+ String priority, String plotID) {
+ if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) {
+ IndependentChartUIProvider provider = chartTypeInterfaces.get(priority).get(plotID);
+ AbstractChartTypePane pane = provider.getPlotTypePane();
+ pane.setPlotID(plotID);
+ paneList.add(pane);
}
-
- return result.toArray(new String[result.size()]);
}
- public String[] getTitle4PopupWindow(String priority) {
- List list = new ArrayList();
-
- addTitles(priority, list);
-
- return list.toArray(new String[list.size()]);
+ private static String getChartName(String plotID, IndependentChartUIProvider provider) {
+ String name = provider.getPlotTypeTitle4PopupWindow();
+ if (StringUtils.isEmpty(name)) {
+ name = ChartTypeManager.getInstance().getChartName(plotID);
+ }
+ return name;
}
/**
diff --git a/designer-chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java b/designer-chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java
index 961626ce3d..d5435cf02e 100644
--- a/designer-chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java
+++ b/designer-chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java
@@ -206,19 +206,30 @@ public class ChartTypePane extends AbstractChartAttrPane{
boolean enabledChart = ChartTypeManager.enabledChart(plotID);
String item = ChartTypeInterfaceManager.getInstance().getTitle4PopupWindow(priority, plotID);
- //第一步就是重构cardNames
+ //第一步就是重构cards
+ cards.clear();
if (enabledChart) {
- cardNames = collection.getState() == SwitchState.DEFAULT
- ? ChartTypeInterfaceManager.getInstance().getTitle4PopupWindow()
- : ChartTypeInterfaceManager.getInstance().getTitle4PopupWindow(priority);
+ if (collection.getState() == SwitchState.DEFAULT) {
+ ChartTypeInterfaceManager.getInstance().addPlotTypePaneList(cards);
+ } else {
+ ChartTypeInterfaceManager.getInstance().addPlotTypePaneList(priority, cards);
+ }
} else {
- cardNames = new String[]{item};
+ ChartTypeInterfaceManager.getInstance().addPlotTypePaneList(cards, priority, plotID);
}
//下拉框重构开始。为了防止重构是触发update
((FlexibleComboBox)jcb).setItemEvenType(ItemEventType.REACTOR);
//重构下拉框选项
- reactorComboBox();
+ cardNames = new String[cards.size()];
+ cardPane.removeAll();
+ jcb.removeAllItems();
+ for (int i = 0; i < this.cards.size(); i++) {
+ String name = this.cards.get(i).title4PopupWindow();// Name从各自的pane里面获取
+ cardNames[i] = name;
+ cardPane.add(this.cards.get(i), cardNames[i]);
+ addComboBoxItem(cards, i);
+ }
//重新选择选中的下拉项
jcb.setSelectedItem(item);
jcb.setEnabled(enabledChart);
@@ -233,13 +244,6 @@ public class ChartTypePane extends AbstractChartAttrPane{
cl.show(cardPane, cardNames[jcb.getSelectedIndex()]);
}
- private void reactorComboBox() {
- jcb.removeAllItems();
- for (int i = 0; i < this.cardNames.length; i++) {
- jcb.addItem(cardNames[i]);
- }
- }
-
@Override
public void populateBean(Chart ob) {
for (int i = 0; i < this.cards.size(); i++) {
diff --git a/designer-chart/src/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java b/designer-chart/src/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java
index 571380fd36..943cc57381 100644
--- a/designer-chart/src/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java
+++ b/designer-chart/src/com/fr/design/mainframe/chart/gui/style/ChartFillStylePane.java
@@ -1,5 +1,6 @@
package com.fr.design.mainframe.chart.gui.style;
+import com.fr.base.ChartPreStyleConfig;
import com.fr.base.ChartPreStyleManagerProvider;
import com.fr.base.ChartPreStyleServerManager;
import com.fr.base.Utils;
@@ -16,8 +17,13 @@ import com.fr.design.style.background.gradient.FixedGradientBar;
import com.fr.general.Inter;
import com.fr.stable.StringUtils;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.CardLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
@@ -128,10 +134,10 @@ public class ChartFillStylePane extends BasicBeanPane{
}
private String[] getNameObj() {
- ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance();
+ ChartPreStyleConfig config = ChartPreStyleConfig.getInstance();
ArrayList nameArr = new ArrayList();
nameArr.add(Inter.getLocText("FR-Designer_DEFAULT"));
- Iterator keys = manager.names();
+ Iterator keys = config.names();
while (keys.hasNext()) {
Object key = keys.next();
nameArr.add(Utils.objectToString(key));
diff --git a/designer-chart/src/com/fr/design/module/ChartDesignerModule.java b/designer-chart/src/com/fr/design/module/ChartDesignerModule.java
deleted file mode 100644
index 3b086e2750..0000000000
--- a/designer-chart/src/com/fr/design/module/ChartDesignerModule.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.fr.design.module;
-
-import com.fr.chart.base.ChartInternationalNameContentBean;
-import com.fr.chart.chartattr.Chart;
-import com.fr.chart.chartattr.ChartCollection;
-import com.fr.chart.charttypes.ChartTypeManager;
-import com.fr.design.ChartTypeInterfaceManager;
-import com.fr.design.actions.core.ActionFactory;
-import com.fr.design.chart.ChartDialog;
-import com.fr.design.chart.gui.ChartComponent;
-import com.fr.design.chart.gui.ChartWidgetOption;
-import com.fr.design.file.HistoryTemplateListPane;
-import com.fr.design.gui.core.WidgetOption;
-import com.fr.design.mainframe.App;
-import com.fr.design.mainframe.ChartPropertyPane;
-import com.fr.form.ui.ChartEditor;
-import com.fr.general.IOUtils;
-import com.fr.general.Inter;
-import com.fr.plugin.chart.vanchart.imgevent.design.DesignImageEvent;
-import com.fr.stable.ArrayUtils;
-import com.fr.stable.bridge.StableFactory;
-import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider;
-import com.fr.van.chart.DownloadOnlineSourcesHelper;
-import com.fr.van.chart.map.server.ChartMapEditorAction;
-
-import javax.swing.Icon;
-
-/**
- * Created by IntelliJ IDEA.
- * Author : Richer
- * Version: 7.0.3
- * Date: 13-7-8
- * Time: 上午9:13
- */
-public class ChartDesignerModule extends DesignModule {
-
- public static void register(){
- StableFactory.registerMarkedClass(ExtraChartDesignClassManagerProvider.XML_TAG, ChartTypeInterfaceManager.class);
- StableFactory.getStaticMarkedInstanceObjectFromClass(ExtraChartDesignClassManagerProvider.XML_TAG, ExtraChartDesignClassManagerProvider.class);
-
- DesignModuleFactory.registerHyperlinkGroupType(new ChartHyperlinkGroup());
-
- DesignModuleFactory.registerChartEditorClass(ChartEditor.class);
- DesignModuleFactory.registerChartComponentClass(ChartComponent.class);
-
- DesignModuleFactory.registerChartDialogClass(ChartDialog.class);
-
- DesignModuleFactory.registerChartPropertyPaneClass(ChartPropertyPane.class);
-
- ActionFactory.registerChartPreStyleAction(new ChartPreStyleAction());
- ActionFactory.registerChartMapEditorAction(new ChartMapEditorAction());
-
- ActionFactory.registerChartCollection(ChartCollection.class);
-
- DesignModuleFactory.registerExtraWidgetOptions(ChartTypeInterfaceManager.initWidgetOption());
-
- DesignImageEvent.registerDefaultCallbackEvent(HistoryTemplateListPane.getInstance());
- DesignImageEvent.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper());
- }
-
- /**
- * 返回设计器能打开的模板类型的一个数组列表
- *
- * @return 可以打开的模板类型的数组
- */
- public App>[] apps4TemplateOpener() {
- return new App[0];
- }
- protected WidgetOption[] options4Show() {
- ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstance().getAllChartBaseNames();
- ChartWidgetOption[] child = new ChartWidgetOption[typeName.length];
- for (int i = 0; i < typeName.length; i++) {
- String plotID = typeName[i].getPlotID();
- Chart[] rowChart = ChartTypeManager.getInstance().getChartTypes(plotID);
- if (ArrayUtils.isEmpty(rowChart)) {
- continue;
- }
- String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(plotID);
- Icon icon = IOUtils.readIcon(iconPath);
- child[i] = new ChartWidgetOption(Inter.getLocText(typeName[i].getName()), icon, ChartEditor.class, rowChart[0]);
- }
- return child;
- }
-
- public String getInterNationalName() {
- return Inter.getLocText("FR-Chart-Design_ChartModule");
- }
-
-
-}
diff --git a/designer-chart/src/com/fr/design/module/ChartPreStyleManagerPane.java b/designer-chart/src/com/fr/design/module/ChartPreStyleManagerPane.java
index 10e041a639..64e68fff8b 100644
--- a/designer-chart/src/com/fr/design/module/ChartPreStyleManagerPane.java
+++ b/designer-chart/src/com/fr/design/module/ChartPreStyleManagerPane.java
@@ -1,7 +1,6 @@
package com.fr.design.module;
-import com.fr.base.ChartPreStyleManagerProvider;
-import com.fr.base.ChartPreStyleServerManager;
+import com.fr.base.ChartPreStyleConfig;
import com.fr.base.Utils;
import com.fr.chart.base.ChartPreStyle;
import com.fr.design.gui.controlpane.JListControlPane;
@@ -42,14 +41,14 @@ public class ChartPreStyleManagerPane extends JListControlPane {
}
public void populateBean() {
- ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance();
+ ChartPreStyleConfig config = ChartPreStyleConfig.getInstance();
ArrayList list = new ArrayList();
- Iterator keys = manager.names();
+ Iterator keys = config.names();
while(keys.hasNext()) {
Object key = keys.next();
- ChartPreStyle value = (ChartPreStyle)manager.getPreStyle(key);
+ ChartPreStyle value = (ChartPreStyle)config.getPreStyle(key);
list.add(new NameObject(Utils.objectToString(key), value));
}
@@ -57,26 +56,23 @@ public class ChartPreStyleManagerPane extends JListControlPane {
Nameable[] values = (Nameable[])list.toArray(new Nameable[list.size()]);
populate(values);
- if(manager.containsName(manager.getCurrentStyle())) {
- this.setSelectedName(manager.getCurrentStyle());
+ if(config.containsName(config.getCurrentStyle())) {
+ this.setSelectedName(config.getCurrentStyle());
}
}
public void updateBean() {
- ChartPreStyleManagerProvider manager = ChartPreStyleServerManager.getProviderInstance();
- manager.clearPreStyles();
-
+ ChartPreStyleConfig config = ChartPreStyleConfig.getInstance();
+
Nameable[] values = this.update();
-
- manager.setCurrentStyle(getSelectedName());
+
+ config.setCurrentStyle(getSelectedName());
for(int i = 0; i < values.length; i++) {
Nameable value = values[i];
- manager.putPreStyle(value.getName(), ((NameObject)value).getObject());
+ config.putPreStyle(value.getName(), ((NameObject)value).getObject());
}
-
- manager.writerPreChartStyle();
-
+
// 通知报表整个刷新.
DesignerFrame frame = DesignerContext.getDesignerFrame();
if(frame != null) {
diff --git a/designer-chart/src/com/fr/van/chart/DownloadOnlineSourcesHelper.java b/designer-chart/src/com/fr/van/chart/DownloadOnlineSourcesHelper.java
index d90fb4d4bd..f7caf5d2cf 100644
--- a/designer-chart/src/com/fr/van/chart/DownloadOnlineSourcesHelper.java
+++ b/designer-chart/src/com/fr/van/chart/DownloadOnlineSourcesHelper.java
@@ -7,7 +7,7 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.general.http.HttpClient;
import com.fr.plugin.chart.DownloadSourcesEvent;
import com.fr.stable.StableUtils;
@@ -68,7 +68,7 @@ public class DownloadOnlineSourcesHelper implements DownloadSourcesEvent {
//本地有这个资源,不下载
return;
}
- httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(siteKind));
+ httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind(siteKind));
if (httpClient.getResponseCode() != HttpURLConnection.HTTP_OK) {
//服务器连不上,不下载
return;
@@ -116,7 +116,7 @@ public class DownloadOnlineSourcesHelper implements DownloadSourcesEvent {
for (int i = 0; i < list.size(); i++) {
SiteInfo siteInfo = list.get(i);
- httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind(siteInfo.siteKind));
+ httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind(siteInfo.siteKind));
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream reader = httpClient.getResponseStream();
String temp = StableUtils.pathJoin(PluginConstants.DOWNLOAD_PATH, PluginConstants.TEMP_FILE);
diff --git a/designer-chart/src/com/fr/van/chart/gantt/designer/style/axis/GanttTimeAxisPane.java b/designer-chart/src/com/fr/van/chart/gantt/designer/style/axis/GanttTimeAxisPane.java
index 1a02c5f080..cadb9cb851 100644
--- a/designer-chart/src/com/fr/van/chart/gantt/designer/style/axis/GanttTimeAxisPane.java
+++ b/designer-chart/src/com/fr/van/chart/gantt/designer/style/axis/GanttTimeAxisPane.java
@@ -22,7 +22,9 @@ import java.awt.Component;
public class GanttTimeAxisPane extends AbstractVanChartScrollPane {
private static final ZoomLevel[] ZOOM_LEVELS = new ZoomLevel[]{ZoomLevel.AUTO, ZoomLevel.ZERO, ZoomLevel.ONE,
ZoomLevel.TWO, ZoomLevel.THREE, ZoomLevel.FOUR, ZoomLevel.FIVE, ZoomLevel.SIX, ZoomLevel.SEVEN,
- ZoomLevel.EIGHT, ZoomLevel.NINE, ZoomLevel.TEN, ZoomLevel.ELEVEN, ZoomLevel.TWELVE};
+ ZoomLevel.EIGHT, ZoomLevel.NINE, ZoomLevel.TEN, ZoomLevel.ELEVEN, ZoomLevel.TWELVE, ZoomLevel.THIRTEEN,
+ ZoomLevel.FOURTEEN, ZoomLevel.FIFTEEN, ZoomLevel.SIXTEEN, ZoomLevel.SEVENTEEN, ZoomLevel.EIGHTEEN,
+ ZoomLevel.NINETEEN, ZoomLevel.TWENTY, ZoomLevel.TWENTY_ONE};
private UIButtonGroup timeZoom;
private UIComboBox initialLevel;
diff --git a/designer-form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java b/designer-form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java
index 75190ba3bf..05da6975c7 100644
--- a/designer-form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java
+++ b/designer-form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java
@@ -620,8 +620,8 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter {
} else {
currentCreator.setLocation(finalX, finalY);
currentCreator.setSize(finalW, finalH);
- currentCreator.recalculateChildWidth(finalW);
- currentCreator.recalculateChildHeight(finalH);
+ currentCreator.recalculateChildWidth(finalW, false);
+ currentCreator.recalculateChildHeight(finalH, false);
child.setLocation(xL, yL);
child.setSize(dim);
}
@@ -1078,7 +1078,7 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter {
int offset = comp.getHeight() - length;
comp.setSize(comp.getWidth(), offset);
XCreator creator = (XCreator) comp;
- creator.recalculateChildHeight(offset);
+ creator.recalculateChildHeight(offset, false);
}
}
@@ -1100,7 +1100,7 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter {
int offset = comp.getHeight() - length;
comp.setSize(comp.getWidth(), offset);
XCreator creator = (XCreator) comp;
- creator.recalculateChildHeight(offset);
+ creator.recalculateChildHeight(offset, false);
}
}
childY += actualVal;
@@ -1134,7 +1134,7 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter {
int offset = comp.getWidth() - length;
comp.setSize(offset, comp.getHeight());
XCreator creator = (XCreator) comp;
- creator.recalculateChildWidth(offset);
+ creator.recalculateChildWidth(offset, false);
}
}
childX += actualVal;
@@ -1155,7 +1155,7 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter {
int offset = comp.getWidth() - length;
comp.setSize(offset, comp.getHeight());
XCreator creator = (XCreator) comp;
- creator.recalculateChildWidth(offset);
+ creator.recalculateChildWidth(offset, false);
}
}
diff --git a/designer-form/src/com/fr/design/designer/creator/XCreator.java b/designer-form/src/com/fr/design/designer/creator/XCreator.java
index 8aa2f215e3..d71f81387a 100644
--- a/designer-form/src/com/fr/design/designer/creator/XCreator.java
+++ b/designer-form/src/com/fr/design/designer/creator/XCreator.java
@@ -576,15 +576,17 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
/**
* 重新调整子组件宽度
* @param width 宽度
+ * @param actualSize 是否按照实际大小计算
*/
- public void recalculateChildWidth(int width){
+ public void recalculateChildWidth(int width, boolean actualSize){
return;
}
/**
* 重新调整子组件高度
* @param height 高度
+ * @param actualSize 是否按照实际大小计算
*/
- public void recalculateChildHeight(int height){
+ public void recalculateChildHeight(int height, boolean actualSize){
return;
}
diff --git a/designer-form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer-form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java
index 0122fc971b..b66add8e63 100644
--- a/designer-form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java
+++ b/designer-form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java
@@ -248,10 +248,10 @@ public class XWAbsoluteLayout extends XLayoutContainer {
for (int i = 0; i < this.getComponentCount(); i++) {
XCreator creator = getXCreator(i);
Rectangle rec = new Rectangle(creator.getBounds());
- rec.x = (int) (rec.x / prevContainerPercent * containerPercent);
- rec.y = (int) (rec.y / prevContainerPercent * containerPercent);
- rec.height = (int) (rec.height / prevContainerPercent * containerPercent);
- rec.width = (int) (rec.width / prevContainerPercent * containerPercent);
+ rec.x = (int)Math.round (rec.x / prevContainerPercent * containerPercent);
+ rec.y = (int)Math.round (rec.y / prevContainerPercent * containerPercent);
+ rec.height = (int)Math.round (rec.height / prevContainerPercent * containerPercent);
+ rec.width = (int)Math.round (rec.width / prevContainerPercent * containerPercent);
BoundsWidget wgt = (BoundsWidget) toData().getBoundsWidget(creator.toData());
wgt.setBounds(rec);
creator.setBounds(rec);
diff --git a/designer-form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer-form/src/com/fr/design/designer/creator/XWFitLayout.java
index 722e866766..a5d4537ef3 100644
--- a/designer-form/src/com/fr/design/designer/creator/XWFitLayout.java
+++ b/designer-form/src/com/fr/design/designer/creator/XWFitLayout.java
@@ -373,7 +373,7 @@ public class XWFitLayout extends XLayoutContainer {
if (x == 0) {
int width = notHasRightCreator(rec) ? this.getWidth() : rec.width+dw;
creator.setBounds(0, rec.y, width, rec.height);
- creator.recalculateChildWidth(width);
+ creator.recalculateChildWidth(width, true);
} else {
XCreator leftCreator = getCreatorAt(rec.x-1, rec.y);
int posX = getPosX(leftCreator);
@@ -502,6 +502,7 @@ public class XWFitLayout extends XLayoutContainer {
if (y==0) {
int height = notHasBottomCreator(rec) ? this.getHeight() : rec.height+dh;
creator.setBounds(rec.x, 0, rec.width, height);
+ creator.recalculateChildHeight(height, true);
} else {
XCreator topCreator = getCreatorAt(rec.x, rec.y-1);
int posY = getPosY(topCreator);
diff --git a/designer-form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer-form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
index 9a32c3987c..fa43b57fe3 100644
--- a/designer-form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
+++ b/designer-form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
@@ -260,74 +260,90 @@ public class XWCardMainBorderLayout extends XWBorderLayout {
return tabLayoutList;
}
- /**
- * 重新调整子组件的宽度
- * @param width 宽度
- */
- @Override
- public void recalculateChildWidth(int width){
+ /**
+ * 重新调整子组件的宽度
+ * @param width 宽度
+ * @param actualSize 是否按照实际大小计算
+ */
+ @Override
+ public void recalculateChildWidth(int width, boolean actualSize){
ArrayList> childrenList = this.getTargetChildrenList();
int size = childrenList.size();
if (size > 0) {
for (int j = 0; j < size; j++) {
XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList
.get(j);
- tabLayout.setBackupBound(tabLayout.getBounds());
- int refSize = tabLayout.getWidth();
+
+
+ Dimension d = new Dimension(tabLayout.toData().getContainerWidth(), tabLayout.toData().getContainerHeight());
+ Rectangle rec = actualSize? new Rectangle(d): tabLayout.getBounds();
+ // 容器大小改变时,设下backupBound为其之前的实际大小
+ tabLayout.setBackupBound(rec);
+ int refSize = rec.width;
int offest = width - refSize;
double percent = (double) offest / refSize;
if (percent < 0 && !tabLayout.canReduce(percent)) {
return;
}
- tabLayout.setSize(tabLayout.getWidth() + offest,
- tabLayout.getHeight());
- for (int m = 0; m < tabLayout.getComponentCount(); m++) {
- XCreator childCreator = tabLayout.getXCreator(m);
- BoundsWidget wgt = (BoundsWidget) tabLayout.toData()
- .getBoundsWidget(childCreator.toData());
- wgt.setBounds(tabLayout.getComponent(m).getBounds());
+ tabLayout.setSize(rec.width + offest, rec.height);
+ if(!actualSize){
+ updateChildWidgetBounds(tabLayout);
}
tabLayout.adjustCreatorsWidth(percent);
}
}
- }
+ }
- /**
- * 重新调整子组件的高度
- * @param height 高度
- */
- @Override
- public void recalculateChildHeight(int height){
+ /**
+ * 重新调整子组件的高度
+ * @param height 高度
+ * @param actualSize 是否按照实际大小计算
+ */
+ @Override
+ public void recalculateChildHeight(int height, boolean actualSize){
ArrayList> childrenList = this.getTargetChildrenList();
int size = childrenList.size();
if (size > 0) {
for (int j = 0; j < size; j++) {
XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList
.get(j);
- tabLayout.setBackupBound(tabLayout.getBounds());
- int refSize = tabLayout.getHeight();
+ Dimension d = new Dimension(tabLayout.toData().getContainerWidth(), tabLayout.toData().getContainerHeight());
+ Rectangle rec = actualSize? new Rectangle(d): tabLayout.getBounds();
+ // 容器大小改变时,设下backupBound为其之前的实际大小
+ tabLayout.setBackupBound(rec);
+ int refSize = rec.height;
int offset = height - refSize - WCardMainBorderLayout.TAB_HEIGHT;
- if(offset < 0){
- // 缩放时需要备份原tab布局宽高
- tabLayout.setReferDim(new Dimension(tabLayout.getWidth(),tabLayout.getHeight()));
- }
+ if(offset < 0){
+ // 缩放时需要备份原tab布局宽高
+ tabLayout.setReferDim(new Dimension(rec.width, rec.height));
+ }
double percent = (double) offset / refSize;
if (percent < 0 && !tabLayout.canReduce(percent)) {
return;
}
- tabLayout.setSize(tabLayout.getWidth(),
- tabLayout.getHeight() + offset);
- for (int m = 0; m < tabLayout.getComponentCount(); m++) {
- XCreator childCreator = tabLayout.getXCreator(m);
- BoundsWidget wgt = (BoundsWidget) tabLayout.toData()
- .getBoundsWidget(childCreator.toData());
- wgt.setBounds(tabLayout.getComponent(m).getBounds());
+ tabLayout.setSize(rec.width, rec.height + offset);
+ if(!actualSize){
+ updateChildWidgetBounds(tabLayout);
}
tabLayout.adjustCreatorsHeight(percent);
}
}
- }
+ }
+
+
+ /**
+ * 更新下子组件bounds
+ * @param tabLayout tabFit布局
+ */
+ private void updateChildWidgetBounds(XWTabFitLayout tabLayout){
+ for (int m = 0; m < tabLayout.getComponentCount(); m++) {
+ XCreator childCreator = tabLayout.getXCreator(m);
+ BoundsWidget wgt = (BoundsWidget) tabLayout.toData()
+ .getBoundsWidget(childCreator.toData());
+ wgt.setBounds(tabLayout.getComponent(m).getBounds());
+ }
+ }
@Override
public void paint(Graphics g) {
diff --git a/designer-form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java b/designer-form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java
index b6f3a41a66..8e0b76bece 100644
--- a/designer-form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java
+++ b/designer-form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java
@@ -222,8 +222,8 @@ public class FRAbsoluteBodyLayoutPropertiesGroupModel extends FRAbsoluteLayoutPr
}
for (int i = 0;i < components.length;i++){
if (components[i] instanceof XWCardMainBorderLayout){
- ((XWCardMainBorderLayout)components[i]).recalculateChildWidth(components[i].getWidth());
- ((XWCardMainBorderLayout)components[i]).recalculateChildHeight(components[i].getHeight());
+ ((XWCardMainBorderLayout)components[i]).recalculateChildWidth(components[i].getWidth(), false);
+ ((XWCardMainBorderLayout)components[i]).recalculateChildHeight(components[i].getHeight(), false);
}
xwFitLayout.dealDirections((XCreator)components[i], false);
}
diff --git a/designer-form/src/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer-form/src/com/fr/design/mainframe/FormWidgetDetailPane.java
index 1285b7115c..f94fe16649 100644
--- a/designer-form/src/com/fr/design/mainframe/FormWidgetDetailPane.java
+++ b/designer-form/src/com/fr/design/mainframe/FormWidgetDetailPane.java
@@ -11,7 +11,7 @@ import com.fr.form.share.ShareLoader;
import com.fr.form.ui.SharableWidgetBindInfo;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
-import com.fr.general.SiteCenter;
+import com.fr.general.CloudCenter;
import com.fr.share.ShareConstants;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
@@ -298,7 +298,7 @@ public class FormWidgetDetailPane extends FormDockView{
downloadButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- String url = SiteCenter.getInstance().acquireUrlByKind("reuse.url");
+ String url = CloudCenter.getInstance().acquireUrlByKind("reuse.url");
if (StringUtils.isEmpty(url)) {
FRContext.getLogger().info("The URL is empty!");
return;
diff --git a/designer-form/src/com/fr/design/mainframe/JForm.java b/designer-form/src/com/fr/design/mainframe/JForm.java
index 23aeaa3550..5b06619515 100644
--- a/designer-form/src/com/fr/design/mainframe/JForm.java
+++ b/designer-form/src/com/fr/design/mainframe/JForm.java
@@ -340,7 +340,6 @@ public class JForm extends JTemplate