Browse Source

Merge pull request #2782 in DESIGN/design from release/10.0 to bugfix/10.0

* commit 'bb46ae10c7a967235674be15a782a100b8219b37':
  REPORT-42540 更新一下
  REPORT-39772 提示控件/组件名称不能为空
  REPORT-39772 提示控件/组件名称不能为空
  REPORT-42604 远程对接平台密码-测试连接锁定时 无错误日志
  REPORT-42551 & REPORT-42552 日文屏蔽更新升级
  CHART-16560 仪表盘半径设置
  REPORT-42540 设计面板新增sheet的缩放率逻辑确认 【问题原因】之前改这个的时候REPORT-37950只关注了缩放条可以单独控制每个sheet,没注意新增sheet的缩放条初值问题 【改动思路】与产品确认后,将每个新增sheet的缩放初值设置为100
  REPORT-42551 & REPORT-42552 日文屏蔽更新升级
  CHART-15436 箱型图结果数据分类增加无
  REPORT-39772 提示控件/组件名称不能为空
  去掉空行
  CHART-16126 预定义样式预览界面修改
  REPORT-42551 & REPORT-42552 日文屏蔽更新升级
  REPORT-39772 提示控件/组件名称不能为空
  REPORT-39772 提示控件/组件名称不能为空
  REPORT-42551 & REPORT-42552 日文屏蔽更新升级
bugfix/10.0
superman 4 years ago
parent
commit
5a40a78d2c
  1. 15
      designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java
  2. 21
      designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/ChartPreStylePreView.java
  3. 11
      designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/ElementCasePreview.java
  4. 58
      designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/PredefinedStylePreviewPane.java
  5. 43
      designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
  6. 26
      designer-base/src/main/java/com/fr/design/upm/UpmFinder.java
  7. 1
      designer-base/src/main/java/com/fr/env/RemoteEnvPane.java
  8. 2
      designer-base/src/main/java/com/fr/env/TestConnectionResult.java
  9. 15
      designer-base/src/main/resources/com/fr/design/mainframe/predefined/previewData
  10. 2
      designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableResultDataSeriesPane.java
  11. 18
      designer-chart/src/main/java/com/fr/van/chart/designer/style/series/VanChartAbstractPlotSeriesPane.java
  12. 2
      designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java
  13. 30
      designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java
  14. 6
      designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java
  15. 20
      designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java

15
designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java

@ -156,5 +156,20 @@ public enum SupportLocaleImpl implements SupportLocale {
set.add(Locale.TAIWAN); set.add(Locale.TAIWAN);
return set; return set;
} }
},
/**
* 更新升级-帮助菜单下
*/
UPDATE_HELP {
@Override
public Set<Locale> support() {
Set<Locale> set = new HashSet<>();
set.add(Locale.US);
set.add(Locale.KOREA);
set.add(Locale.CHINA);
set.add(Locale.TAIWAN);
return set;
}
} }
} }

21
designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/ChartPreStylePreView.java

@ -4,15 +4,16 @@ import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BaseChartPainter; import com.fr.base.chart.BaseChartPainter;
import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.base.chart.result.WebChartIDInfo; import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.base.ChartConstants;
import com.fr.chart.base.ChartPreStyleProvider; import com.fr.chart.base.ChartPreStyleProvider;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.config.predefined.PredefinedStyle; import com.fr.config.predefined.PredefinedStyle;
import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.gui.chart.MiddleChartComponent;
import com.fr.general.Background;
import com.fr.plugin.chart.vanchart.VanChart; import com.fr.plugin.chart.vanchart.VanChart;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.stable.core.PropertyChangeListener; import com.fr.stable.core.PropertyChangeListener;
import javax.swing.BorderFactory;
import java.util.List; import java.util.List;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
@ -32,6 +33,10 @@ public class ChartPreStylePreView extends MiddleChartComponent {
private CallbackEvent callbackEvent; private CallbackEvent callbackEvent;
private static final int BOUNDS = 10;
private Background componentBackground;
public ChartPreStylePreView() { public ChartPreStylePreView() {
} }
@ -42,6 +47,7 @@ public class ChartPreStylePreView extends MiddleChartComponent {
public ChartPreStylePreView(ChartCollection cc, double scaleX, double scaleY) { public ChartPreStylePreView(ChartCollection cc, double scaleX, double scaleY) {
this.scaleX = scaleX; this.scaleX = scaleX;
this.scaleY = scaleY; this.scaleY = scaleY;
this.setBorder(BorderFactory.createEmptyBorder(5, 10, 10, 10));
populate(cc); populate(cc);
} }
@ -51,18 +57,22 @@ public class ChartPreStylePreView extends MiddleChartComponent {
public void paintComponent(Graphics g) { public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g; Graphics2D g2d = (Graphics2D) g;
g2d.translate(ChartConstants.PREGAP4BOUNDS / 2, ChartConstants.PREGAP4BOUNDS / 2); g2d.translate(BOUNDS, BOUNDS);
g2d.scale(scaleX, scaleY); g2d.scale(scaleX, scaleY);
super.paintComponent(g); super.paintComponent(g);
drawChart(g2d); drawChart(g2d);
g2d.scale(1 / scaleX, 1 / scaleY); g2d.scale(1 / scaleX, 1 / scaleY);
g2d.translate(-ChartConstants.PREGAP4BOUNDS / 2, -ChartConstants.PREGAP4BOUNDS / 2); g2d.translate(-BOUNDS, -BOUNDS);
} }
private void drawChart(Graphics2D g2d) { private void drawChart(Graphics2D g2d) {
Dimension d = getBounds().getSize(); Dimension d = getBounds().getSize();
int chartWidth = (int) (d.width / scaleX) - ChartConstants.PREGAP4BOUNDS; int chartWidth = (int) (d.width / scaleX) - BOUNDS * 2;
int chartHeight = (int) (d.height / scaleX) - ChartConstants.PREGAP4BOUNDS; int chartHeight = (int) (d.height / scaleX) - BOUNDS * 2;
if (componentBackground != null) {
Graphics clipg = g2d.create(0, 0, chartWidth, chartHeight);
componentBackground.paint(clipg, clipg.getClipBounds());
}
BaseChartPainter painter = chartCollection.createResultChartPainterWithOutDealFormula(Calculator.createCalculator(), BaseChartPainter painter = chartCollection.createResultChartPainterWithOutDealFormula(Calculator.createCalculator(),
WebChartIDInfo.createEmptyDesignerInfo(), chartWidth, chartHeight); WebChartIDInfo.createEmptyDesignerInfo(), chartWidth, chartHeight);
painter.paint(g2d, chartWidth, chartHeight, 0, null, callbackEvent); painter.paint(g2d, chartWidth, chartHeight, 0, null, callbackEvent);
@ -74,6 +84,7 @@ public class ChartPreStylePreView extends MiddleChartComponent {
for (ChartPreStyleProvider chartPreStyleProvider : chartPreStyleProviders) { for (ChartPreStyleProvider chartPreStyleProvider : chartPreStyleProviders) {
chartPreStyleProvider.updatePreDefinedStyle(style); chartPreStyleProvider.updatePreDefinedStyle(style);
} }
componentBackground = style.getComponentStyle().getBorderStyle().getBackground();
vanChart.attrChange(); vanChart.attrChange();
} }

11
designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/ElementCasePreview.java

@ -7,15 +7,15 @@ import com.fr.log.FineLoggerFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JSeparator; import javax.swing.JSeparator;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
/** /**
* Created by kerry on 2020-09-04 * Created by kerry on 2020-09-04
@ -51,8 +51,9 @@ public class ElementCasePreview extends ComponentPreviewPane {
jPanel.setOpaque(false); jPanel.setOpaque(false);
jPanel.setBackground(null); jPanel.setBackground(null);
FRFont font = FRFont.getInstance(); FRFont font = FRFont.getInstance();
FRFont titleFont = font.applySize(11).applyForeground(Color.decode("#63B2EE")); font = font.applySize(11);
FRFont endFont = font.applyForeground(Color.decode("#1B97FF")); FRFont titleFont = font.applySize(14).applyForeground(Color.decode("#63B2EE"));
FRFont endFont = font.applySize(11).applyForeground(Color.decode("#1B97FF"));
for (int i = 0; i < PREVIEW_DATA_LIST.size(); i++) { for (int i = 0; i < PREVIEW_DATA_LIST.size(); i++) {
FRFont frFont = font; FRFont frFont = font;
if (i == 0) { if (i == 0) {

58
designer-base/src/main/java/com/fr/design/mainframe/predefined/ui/preview/PredefinedStylePreviewPane.java

@ -12,13 +12,10 @@ import com.fr.design.utils.ComponentUtils;
import com.fr.general.Background; import com.fr.general.Background;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.attr.axis.VanChartAxis; import com.fr.plugin.chart.attr.axis.VanChartAxis;
import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.base.AttrLabel; import com.fr.plugin.chart.base.AttrLabel;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.column.VanChartColumnPlot; import com.fr.plugin.chart.column.VanChartColumnPlot;
import com.fr.plugin.chart.line.VanChartLinePlot;
import com.fr.plugin.chart.vanchart.VanChart; import com.fr.plugin.chart.vanchart.VanChart;
import com.fr.stable.Constants;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -38,14 +35,9 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
private double scaleX = 1.0; private double scaleX = 1.0;
private double scaleY = 1.0; private double scaleY = 1.0;
private ChartPreStylePreView columnChartPane; private ChartPreStylePreView columnChartPane;
private ChartPreStylePreView lineChartPane;
private int COLUMN_CHART_WIDTH = 297; private int COLUMN_CHART_WIDTH = 517;
private int COLUMN_CHART_HEIGHT = 300;
private int COLUMN_CHART_HEIGHT = 220;
public static final double CHART_SCALE = 0.6;
public PredefinedStylePreviewPane() { public PredefinedStylePreviewPane() {
this(1.0, 1.0); this(1.0, 1.0);
@ -57,21 +49,17 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
this.setBackground(Color.WHITE); this.setBackground(Color.WHITE);
this.elementCasePreview = new ElementCasePreview(); this.elementCasePreview = new ElementCasePreview();
this.add(initChartPreViewPane()); this.add(initChartPreViewPane());
this.elementCasePreview.setPreferredSize(new Dimension(517, 250)); this.elementCasePreview.setPreferredSize(new Dimension(517, 190));
this.add(this.elementCasePreview); this.add(this.elementCasePreview);
} }
private JPanel initChartPreViewPane() { private JPanel initChartPreViewPane() {
columnChartPane = new ChartPreStylePreView(initVanColumnChart(), CHART_SCALE, CHART_SCALE); columnChartPane = new ChartPreStylePreView(initVanColumnChart());
columnChartPane.setPreferredSize(new Dimension(COLUMN_CHART_WIDTH, COLUMN_CHART_HEIGHT)); columnChartPane.setPreferredSize(new Dimension(COLUMN_CHART_WIDTH, COLUMN_CHART_HEIGHT));
columnChartPane.setCallbackEvent(this); columnChartPane.setCallbackEvent(this);
lineChartPane = new ChartPreStylePreView(initVanLineChart(), CHART_SCALE, CHART_SCALE);
lineChartPane.setPreferredSize(new Dimension(220, 220));
lineChartPane.setCallbackEvent(this);
JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
panel.add(columnChartPane); panel.add(columnChartPane);
panel.add(lineChartPane);
return panel; return panel;
} }
@ -79,12 +67,11 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
private ChartCollection initVanColumnChart() { private ChartCollection initVanColumnChart() {
try { try {
VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID)[0].clone(); VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID)[0].clone();
chart.getTitle().setPosition(Constants.LEFT);
VanChartTools vanChartTools = chart.getVanChartTools(); VanChartTools vanChartTools = chart.getVanChartTools();
vanChartTools.setSort(false); vanChartTools.setSort(false);
vanChartTools.setExport(false); vanChartTools.setExport(false);
vanChartTools.setFullScreen(false); vanChartTools.setFullScreen(false);
VanChartPlot plot = chart.getPlot(); VanChartColumnPlot plot = chart.getPlot();
AttrLabel defaultAttrLabel = plot.getDefaultAttrLabel(); AttrLabel defaultAttrLabel = plot.getDefaultAttrLabel();
defaultAttrLabel.setEnable(true); defaultAttrLabel.setEnable(true);
defaultAttrLabel.getAttrLabelDetail().getBorder().setBorderStyle(0); defaultAttrLabel.getAttrLabelDetail().getBorder().setBorderStyle(0);
@ -92,30 +79,14 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
plot.getConditionCollection().getDefaultAttr().addDataSeriesCondition(defaultAttrLabel); plot.getConditionCollection().getDefaultAttr().addDataSeriesCondition(defaultAttrLabel);
plot.getLegend().setLegendVisible(false); plot.getLegend().setLegendVisible(false);
plot.getDataSheet().setVisible(true); plot.getDataSheet().setVisible(true);
ChartCollection chartCollection = new ChartCollection(chart);
return chartCollection;
} catch (Exception ex) {
FineLoggerFactory.getLogger().error(ex.getMessage(), ex);
}
return null;
}
//折线图 VanChartAxis defaultYAxis = plot.getDefaultYAxis();
private ChartCollection initVanLineChart() {
try {
VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartLinePlot.VAN_CHART_LINE_PLOT)[0].clone();
chart.getTitle().setPosition(Constants.LEFT);
VanChartTools vanChartTools = chart.getVanChartTools();
vanChartTools.setSort(false);
vanChartTools.setExport(false);
vanChartTools.setFullScreen(false);
VanChartLinePlot plot = chart.getPlot();
plot.getLegend().setPosition(Constants.TOP);
VanChartAxis defaultXAxis = plot.getDefaultXAxis();
Title title = new Title(); Title title = new Title();
title.setTextObject(Toolkit.i18nText("Fine-Design_Chart_Category")); title.setTextObject(Toolkit.i18nText("Fine-Design_Chart_Axis_Title"));
defaultXAxis.setTitle(title); title.getTextAttr().setRotation(-90);
defaultXAxis.setShowAxisTitle(true); defaultYAxis.setTitle(title);
defaultYAxis.setShowAxisTitle(true);
ChartCollection chartCollection = new ChartCollection(chart); ChartCollection chartCollection = new ChartCollection(chart);
return chartCollection; return chartCollection;
} catch (Exception ex) { } catch (Exception ex) {
@ -142,11 +113,9 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
background.paint(g, new Rectangle2D.Double(0, 0, 517, 500)); background.paint(g, new Rectangle2D.Double(0, 0, 517, 500));
this.columnChartPane.paintComponent(g); this.columnChartPane.paintComponent(g);
g.translate(COLUMN_CHART_WIDTH, 0); g.translate(0, COLUMN_CHART_HEIGHT);
this.lineChartPane.paintComponent(g);
g.translate(-COLUMN_CHART_WIDTH, COLUMN_CHART_HEIGHT + 10);
this.elementCasePreview.paintContent(g); this.elementCasePreview.paintContent(g);
g.translate(0, -COLUMN_CHART_HEIGHT - 10); g.translate(0, -COLUMN_CHART_HEIGHT);
// 恢复双缓冲 // 恢复双缓冲
ComponentUtils.resetBuffer(dbcomponents); ComponentUtils.resetBuffer(dbcomponents);
@ -167,7 +136,6 @@ public class PredefinedStylePreviewPane extends StyleSettingPreviewPane implemen
public void refresh(PredefinedStyle style, boolean displayFormBackground) { public void refresh(PredefinedStyle style, boolean displayFormBackground) {
elementCasePreview.refresh(style); elementCasePreview.refresh(style);
columnChartPane.refresh(style); columnChartPane.refresh(style);
lineChartPane.refresh(style);
background = displayFormBackground ? style.getFormBackground().getBackground() : style.getReportBackground(); background = displayFormBackground ? style.getFormBackground().getBackground() : style.getReportBackground();
this.repaint(); this.repaint();
} }

43
designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java

@ -54,9 +54,7 @@ import com.fr.design.mainframe.ToolBarNewTemplatePane;
import com.fr.design.menu.MenuDef; import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.SeparatorDef;
import com.fr.design.menu.ShortCut; import com.fr.design.menu.ShortCut;
import com.fr.design.menu.SnapChatMenuDef;
import com.fr.design.menu.ToolBarDef; import com.fr.design.menu.ToolBarDef;
import com.fr.design.notification.SnapChatAllTypes;
import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.os.impl.SupportOSImpl;
import com.fr.design.remote.action.RemoteDesignAuthManagerAction; import com.fr.design.remote.action.RemoteDesignAuthManagerAction;
import com.fr.design.update.actions.SoftwareUpdateAction; import com.fr.design.update.actions.SoftwareUpdateAction;
@ -530,35 +528,20 @@ public abstract class ToolBarMenuDock {
* @return 帮组菜单的子菜单 * @return 帮组菜单的子菜单
*/ */
public ShortCut[] createHelpShortCuts() { public ShortCut[] createHelpShortCuts() {
final java.util.List<ShortCut> shortCuts = new ArrayList<ShortCut>(); final java.util.List<ShortCut> shortCuts = new ArrayList<>();
Locale locale = GeneralContext.getLocale(); LocaleCenter.buildAction(() -> shortCuts.add(new VideoAction()), SupportLocaleImpl.VIDEO);
LocaleCenter.buildAction(new LocaleAction() { LocaleCenter.buildAction(() -> shortCuts.add(new TutorialAction()), SupportLocaleImpl.TUTORIAL_HELP);
@Override
public void execute() {
shortCuts.add(new VideoAction());
}
}, SupportLocaleImpl.VIDEO);
LocaleCenter.buildAction(new LocaleAction() { LocaleCenter.buildAction(() -> shortCuts.add(new TechSupportAction()), SupportLocaleImpl.TECH_SUPPORT_HELP);
@Override
public void execute() {
shortCuts.add(new TutorialAction());
}
}, SupportLocaleImpl.TUTORIAL_HELP);
LocaleCenter.buildAction(new LocaleAction() {
@Override
public void execute() {
shortCuts.add(new TechSupportAction());
}
}, SupportLocaleImpl.TECH_SUPPORT_HELP);
//远程不使用更新升级,产品演示 //远程不使用更新升级,产品演示
if (WorkContext.getCurrent().isLocal()) { if (WorkContext.getCurrent().isLocal()) {
shortCuts.add(new WebDemoAction()); shortCuts.add(new WebDemoAction());
shortCuts.add(new SoftwareUpdateAction()); if (!Locale.getDefault().equals(Locale.JAPAN) && !Locale.getDefault().equals(Locale.JAPANESE)) {
LocaleCenter.buildAction(() -> shortCuts.add(new SoftwareUpdateAction()), SupportLocaleImpl.UPDATE_HELP);
}
} }
if (AlphaFineConfigManager.isALPHALicAvailable()) { if (AlphaFineConfigManager.isALPHALicAvailable()) {
shortCuts.add(new AlphaFineAction()); shortCuts.add(new AlphaFineAction());
@ -566,12 +549,7 @@ public abstract class ToolBarMenuDock {
shortCuts.add(SeparatorDef.DEFAULT); shortCuts.add(SeparatorDef.DEFAULT);
if (DesignerEnvManager.getEnvManager().isOpenDebug()) { if (DesignerEnvManager.getEnvManager().isOpenDebug()) {
OSSupportCenter.buildAction(new OSBasedAction() { OSSupportCenter.buildAction(objects -> shortCuts.add(new FineUIAction()), SupportOSImpl.FINEUI);
@Override
public void execute(Object... objects) {
shortCuts.add(new FineUIAction());
}
}, SupportOSImpl.FINEUI);
} }
shortCuts.add(new AboutAction()); shortCuts.add(new AboutAction());
@ -656,10 +634,7 @@ public abstract class ToolBarMenuDock {
public MenuDef createCommunityMenuDef() { public MenuDef createCommunityMenuDef() {
MenuDef menuDef = new SnapChatMenuDef( MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community"), 'C');
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community"),
'C',
SnapChatAllTypes.Menu.BBS);
ShortCut[] otherCommunityShortCuts = createCommunityShortCuts(); ShortCut[] otherCommunityShortCuts = createCommunityShortCuts();
for (ShortCut shortCut : otherCommunityShortCuts) { for (ShortCut shortCut : otherCommunityShortCuts) {
menuDef.addShortCut(shortCut); menuDef.addShortCut(shortCut);

26
designer-base/src/main/java/com/fr/design/upm/UpmFinder.java

@ -10,6 +10,7 @@ import com.fr.design.update.ui.dialog.UpdateMainDialog;
import com.fr.event.Event; import com.fr.event.Event;
import com.fr.event.EventDispatcher; import com.fr.event.EventDispatcher;
import com.fr.event.Listener; import com.fr.event.Listener;
import com.fr.general.GeneralContext;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import com.fr.workspace.Workspace; import com.fr.workspace.Workspace;
@ -17,6 +18,7 @@ import com.fr.workspace.WorkspaceEvent;
import javax.swing.*; import javax.swing.*;
import java.io.File; import java.io.File;
import java.util.Locale;
/** /**
* @author richie * @author richie
@ -27,6 +29,7 @@ public class UpmFinder {
private static final String UPM_DIR = "/upm"; private static final String UPM_DIR = "/upm";
private static final String MAIN_RESOURCE_PATH = UPM_DIR + "/plugin_design.html"; private static final String MAIN_RESOURCE_PATH = UPM_DIR + "/plugin_design.html";
private static final String JXBROWSER = "com.teamdev.jxbrowser.chromium.Browser";
public static String installHome = FRContext.getCommonOperator().getWebRootPath(); public static String installHome = FRContext.getCommonOperator().getWebRootPath();
@ -56,13 +59,20 @@ public class UpmFinder {
} }
public static void showUPMDialog() { public static void showUPMDialog() {
boolean flag = true; boolean hasJxBrowser = true;
try { try {
Class.forName("com.teamdev.jxbrowser.chromium.Browser"); Class.forName(JXBROWSER);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
flag = false; hasJxBrowser = false;
} }
if (flag) { if (hasJxBrowser) {
showUpmPane();
} else {
showUpdatePane();
}
}
private static void showUpmPane() {
if (!checkUPMResourcesExist()){ if (!checkUPMResourcesExist()){
// upm下载 // upm下载
int val = FineJOptionPane.showConfirmDialog(null, Toolkit.i18nText("Fine-Design_Basic_Plugin_Shop_Need_Install"), int val = FineJOptionPane.showConfirmDialog(null, Toolkit.i18nText("Fine-Design_Basic_Plugin_Shop_Need_Install"),
@ -87,8 +97,12 @@ public class UpmFinder {
} }
dialog.setVisible(true); dialog.setVisible(true);
} }
} else { }
FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Update_Info_Plugin_Message"));
private static void showUpdatePane() {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Update_Info_Plugin_Message"));
if (!GeneralContext.getLocale().equals(Locale.JAPANESE) && !GeneralContext.getLocale().equals(Locale.JAPAN)
&& !Locale.getDefault().equals(Locale.JAPAN) && !Locale.getDefault().equals(Locale.JAPANESE)) {
UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame()); UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame());
dialog.setAutoUpdateAfterInit(); dialog.setAutoUpdateAfterInit();
dialog.showDialog(); dialog.showDialog();

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

@ -600,6 +600,7 @@ public class RemoteEnvPane extends BasicBeanPane<RemoteDesignerWorkspaceInfo> {
TestConnectionResult result = get(); TestConnectionResult result = get();
if (result.isVerifyResult()) { if (result.isVerifyResult()) {
dialog.dispose(); dialog.dispose();
FineLoggerFactory.getLogger().error(result.getText().replaceAll(TestConnectionResult.WRAP, StringUtils.EMPTY) + Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Modify_PassWord"));
FineJOptionPane.showMessageDialog(RemoteEnvPane.this, FineJOptionPane.showMessageDialog(RemoteEnvPane.this,
new MessageWithLink(result.getText(), Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Modify_PassWord"), connection.getUrl() + RemoteWorkspaceURL.SYSTEM_LOGIN_PATH), new MessageWithLink(result.getText(), Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Modify_PassWord"), connection.getUrl() + RemoteWorkspaceURL.SYSTEM_LOGIN_PATH),
Toolkit.i18nText("Fine-Design_Basic_Dialog_Message_Title"), Toolkit.i18nText("Fine-Design_Basic_Dialog_Message_Title"),

2
designer-base/src/main/java/com/fr/env/TestConnectionResult.java vendored

@ -200,6 +200,8 @@ public enum TestConnectionResult {
return false; return false;
} }
public static final String WRAP = "<br/>";
public static TestConnectionResult parse(Boolean value, WorkspaceConnectionInfo info) { public static TestConnectionResult parse(Boolean value, WorkspaceConnectionInfo info) {
if (value == null) { if (value == null) {
return AUTH_FAILED; return AUTH_FAILED;

15
designer-base/src/main/resources/com/fr/design/mainframe/predefined/previewData

@ -1,11 +1,6 @@
城市 当月目标 当月实际完成 月度完成率 城市 当月目标 当月实际完成 月度完成率
南通市 324,646 324,646 105% 南通市 324,646 324,646 100%
合肥市 248,938 348,938 103% 合肥市 248,938 348,938 140%
邵阳市 248,938 348,938 103% 邵阳市 248,938 348,938 140%
九江市 248,938 348,938 103% 苏州市 248,938 348,938 140%
武汉市 248,938 348,938 103% 合计 1,071,460 1,371,460 128%
郑州市 248,938 348,938 103%
无锡市 248,938 348,938 103%
南京市 248,938 348,938 103%
苏州市 248,938 348,938 103%
合计 3200,425 2900,300 95%

2
designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableResultDataSeriesPane.java

@ -59,6 +59,7 @@ public class BoxPlotTableResultDataSeriesPane extends AbstractTableDataContentPa
addNoneItem(); addNoneItem();
category.setSelectedItem(null);
seriesName.setSelectedItem(null); seriesName.setSelectedItem(null);
median.populateComboBox(null); median.populateComboBox(null);
} }
@ -158,6 +159,7 @@ public class BoxPlotTableResultDataSeriesPane extends AbstractTableDataContentPa
} }
private void addNoneItem() { private void addNoneItem() {
category.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None"));
seriesName.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None")); seriesName.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None"));
median.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None")); median.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None"));
} }

18
designer-chart/src/main/java/com/fr/van/chart/designer/style/series/VanChartAbstractPlotSeriesPane.java

@ -9,11 +9,16 @@ import com.fr.chart.base.AttrFillStyle;
import com.fr.chart.base.GradientStyle; import com.fr.chart.base.GradientStyle;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.frpane.UINumberDragPane; import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.style.series.AbstractPlotSeriesPane; import com.fr.design.mainframe.chart.gui.style.series.AbstractPlotSeriesPane;
import com.fr.design.widget.FRWidgetFactory;
import com.fr.plugin.chart.VanChartAttrHelper; import com.fr.plugin.chart.VanChartAttrHelper;
import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot; import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot;
@ -39,9 +44,11 @@ import com.fr.van.chart.pie.RadiusCardLayoutPane;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component;
/** /**
* 图表样式-系列抽象界面 * 图表样式-系列抽象界面
@ -183,7 +190,16 @@ public abstract class VanChartAbstractPlotSeriesPane extends AbstractPlotSeriesP
//半径界面 //半径界面
protected JPanel createRadiusPane(String title) { protected JPanel createRadiusPane(String title) {
radiusPane = initRadiusPane(); radiusPane = initRadiusPane();
radiusPaneWithTitle = TableLayout4VanChartHelper.createGapTableLayoutPane(title, radiusPane); double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, TableLayout4VanChartHelper.EDIT_AREA_WIDTH};
double[] rowSize = {p};
UILabel label = FRWidgetFactory.createLineWrapLabel(title);
label.setVerticalAlignment(SwingConstants.TOP);
Component[][] components = new Component[][]{
new Component[]{label, radiusPane},
};
radiusPaneWithTitle = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, TableLayout4VanChartHelper.COMPONENT_INTERVAL, LayoutConstants.VGAP_LARGE);
return ((VanChartPlot) plot).isInCustom() ? null : radiusPaneWithTitle; return ((VanChartPlot) plot).isInCustom() ? null : radiusPaneWithTitle;
} }

2
designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java

@ -68,7 +68,7 @@ public class VanChartGaugeSeriesPane extends VanChartAbstractPlotSeriesPane {
double f = TableLayout.FILL; double f = TableLayout.FILL;
double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
double[] columnSize = {f}; double[] columnSize = {f};
double[] rowSize = {p,p,p,p,p,p,p}; double[] rowSize = {p,p,p,p,p,p,p,p,p,p};
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
new Component[]{createGaugeLayoutPane()}, new Component[]{createGaugeLayoutPane()},
new Component[]{createGaugeStylePane(rowSize, new double[]{f,e})}, new Component[]{createGaugeStylePane(rowSize, new double[]{f,e})},

30
designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java

@ -6,15 +6,18 @@ import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.xtable.TableUtils; import com.fr.design.gui.xtable.TableUtils;
import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.design.mainframe.widget.editors.ExtendedPropertyEditor; import com.fr.design.mainframe.widget.editors.ExtendedPropertyEditor;
import com.fr.design.mainframe.widget.editors.StringEditor; import com.fr.design.mainframe.widget.editors.StringEditor;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.IOUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.Component; import java.awt.Component;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
@ -136,12 +139,37 @@ public class CRPropertyDescriptorPane {
try { try {
Object value = propertyEditor.getValue(); Object value = propertyEditor.getValue();
Method m = crPropertyDescriptor.getWriteMethod(); Method m = crPropertyDescriptor.getWriteMethod();
if (ComparatorUtils.equals(m.getName(), "setWidgetName")) {
if (!isWidgetNameValid(value, widget)) {
value = widget.getWidgetName();
}
}
m.invoke(widget, value); m.invoke(widget, value);
crPropertyDescriptor.firePropertyChanged(); crPropertyDescriptor.firePropertyChanged();
} catch (Exception e) { } catch (Exception e) {
} }
} }
/**
* 设置控件名之前校验一下不能为空不能重名
*/
private boolean isWidgetNameValid(Object value, Widget widget) {
String toSetWidgetName;
if (value != null) {
toSetWidgetName = value.toString();
} else {
return false;
}
String currentWidgetName = widget.getWidgetName();
boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName);
if (toSetWidgetName.isEmpty()) {
return false;
} else if (exist) {
//控件重名,弹出提示
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png"));
return false;
}
return true;
}
} }

6
designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java

@ -42,7 +42,6 @@ import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.BorderLayout; import java.awt.BorderLayout;
/** /**
* Created by ibm on 2017/7/25. * Created by ibm on 2017/7/25.
*/ */
@ -219,7 +218,10 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
String toSetWidgetName = widgetNameField.getText(); String toSetWidgetName = widgetNameField.getText();
String currentWidgetName = widget.getWidgetName(); String currentWidgetName = widget.getWidgetName();
boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName);
if (exist) { if (toSetWidgetName.isEmpty()) {
widgetNameField.setText(currentWidgetName);
return;
} else if (exist) {
widgetNameField.setText(currentWidgetName); widgetNameField.setText(currentWidgetName);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png"));
return; return;

20
designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java

@ -5,7 +5,7 @@ import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.designer.EditingState; import com.fr.design.designer.EditingState;
import com.fr.design.event.RemoveListener; import com.fr.design.event.RemoveListener;
import com.fr.design.event.TargetModifiedListener; import com.fr.design.event.TargetModifiedListener;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.icontainer.UIModeControlContainer; import com.fr.design.gui.icontainer.UIModeControlContainer;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.grid.Grid; import com.fr.grid.Grid;
@ -18,8 +18,6 @@ import javax.swing.JPanel;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener; import java.awt.event.MouseWheelListener;
import java.util.ArrayList; import java.util.ArrayList;
@ -85,7 +83,10 @@ public class ReportComponentComposite extends JComponent implements RemoveListen
value = value > MAX ? MAX : value; value = value > MAX ? MAX : value;
value = value < MIN ? MIN : value; value = value < MIN ? MIN : value;
int resolution = (int) (ScreenResolution.getScreenResolution() * value / HUND); int resolution = (int) (ScreenResolution.getScreenResolution() * value / HUND);
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setScale(resolution); JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (template != null) {
template.setScale(resolution);
}
} }
}; };
@ -119,8 +120,12 @@ public class ReportComponentComposite extends JComponent implements RemoveListen
templateStateList.add(null); templateStateList.add(null);
} }
centerCardPane.editingComponet.setSelection(centerCardPane.editingComponet.getDefaultSelectElement()); centerCardPane.editingComponet.setSelection(centerCardPane.editingComponet.getDefaultSelectElement());
// Yvan: REPORT-37950 普通报表-多sheet-报表块缩放失效 // 这里jSliderContainer有可能为null,做个判断
//jSliderContainer = JFormSliderPane.getInstance(); if (jSliderContainer == null) {
jSliderContainer = JFormSliderPane.getInstance();
}
// 为新建的sheet的缩放条初始值置为100
jSliderContainer.setShowValue(HUND);
} }
if (centerCardPane.editingComponet.elementCasePane == null) { if (centerCardPane.editingComponet.elementCasePane == null) {
@ -206,8 +211,9 @@ public class ReportComponentComposite extends JComponent implements RemoveListen
hbarContainer = FRGUIPaneFactory.createBorderLayout_S_Pane(); hbarContainer = FRGUIPaneFactory.createBorderLayout_S_Pane();
hbarContainer.add(centerCardPane.editingComponet.getHorizontalScrollBar()); hbarContainer.add(centerCardPane.editingComponet.getHorizontalScrollBar());
JPanel southPane = new JPanel(new BorderLayout()); JPanel southPane = new JPanel(new BorderLayout());
if (jSliderContainer == null) {
jSliderContainer = JFormSliderPane.getInstance(); jSliderContainer = JFormSliderPane.getInstance();
}
southPane.add(hbarContainer, BorderLayout.NORTH); southPane.add(hbarContainer, BorderLayout.NORTH);
southPane.add(sheetNameTab, BorderLayout.CENTER); southPane.add(sheetNameTab, BorderLayout.CENTER);
southPane.add(jSliderContainer, BorderLayout.EAST); southPane.add(jSliderContainer, BorderLayout.EAST);

Loading…
Cancel
Save