Browse Source

Merge remote-tracking branch 'origin/feature/10.0' into feature/10.0

research/11.0
Bryant 5 years ago
parent
commit
ac8e518882
  1. 292
      designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java
  2. 3
      designer-base/src/main/java/com/fr/design/gui/chart/MiddleChartComponent.java
  3. 6
      designer-base/src/main/java/com/fr/design/gui/frpane/CommitTabbedPane.java
  4. 4
      designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIScrollBarUI.java
  5. 6
      designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java
  6. 43
      designer-base/src/main/java/com/fr/design/gui/ispinner/UnsignedIntUISpinner.java
  7. 22
      designer-base/src/main/java/com/fr/design/gui/itextfield/UIIntNumberField.java
  8. 8
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/RSyntaxTextArea.java
  9. 9
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/Style.java
  10. 9
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/SyntaxScheme.java
  11. 2
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/folding/HtmlFoldParser.java
  12. 11
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java
  13. 24
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/RTextAreaBase.java
  14. 3
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/SearchEngine.java
  15. 5
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java
  16. 13
      designer-base/src/main/java/com/fr/design/layout/TableLayout.java
  17. 4
      designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java
  18. 3
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionCellEditor.java
  19. 3
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionCellRender.java
  20. 4
      designer-base/src/main/java/com/fr/design/report/WatermarkPane.java
  21. 3
      designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java
  22. 9
      designer-base/src/main/java/com/fr/design/utils/gui/GUICoreUtils.java
  23. 269
      designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java
  24. 45
      designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java
  25. 139
      designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java
  26. 99
      designer-chart/src/main/java/com/fr/design/chart/fun/IndependentChartUIProvider.java
  27. 91
      designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java
  28. 66
      designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartUI.java
  29. 28
      designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java
  30. 27
      designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java
  31. 26
      designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java
  32. 2
      designer-chart/src/main/java/com/fr/design/chart/gui/ChartWidgetOption.java
  33. 30
      designer-chart/src/main/java/com/fr/design/chartx/AbstractVanSingleDataPane.java
  34. 25
      designer-chart/src/main/java/com/fr/design/chartx/GanttChartDataPane.java
  35. 21
      designer-chart/src/main/java/com/fr/design/chartx/MultiPieChartDataPane.java
  36. 23
      designer-chart/src/main/java/com/fr/design/chartx/StructureChartDataPane.java
  37. 20
      designer-chart/src/main/java/com/fr/design/chartx/WordCloudChartDataPane.java
  38. 68
      designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractDataPane.java
  39. 42
      designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractOtherPane.java
  40. 79
      designer-chart/src/main/java/com/fr/design/chartx/impl/DefaultTypePane.java
  41. 8
      designer-chart/src/main/java/com/fr/design/mainframe/chart/ChartsEditPane.java
  42. 5
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java
  43. 19
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypePane.java
  44. 19
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java
  45. 21
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/ChartImagePane.java
  46. 19
      designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartUIProvider.java
  47. 3
      designer-chart/src/main/java/com/fr/extended/chart/ExtendedTypePane.java
  48. 37
      designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java
  49. 37
      designer-chart/src/main/java/com/fr/van/chart/area/VanChartAreaPlotPane.java
  50. 38
      designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java
  51. 36
      designer-chart/src/main/java/com/fr/van/chart/bar/VanChartBarPlotPane.java
  52. 26
      designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java
  53. 29
      designer-chart/src/main/java/com/fr/van/chart/bubble/VanChartBubblePlotPane.java
  54. 44
      designer-chart/src/main/java/com/fr/van/chart/column/ColumnIndependentVanChartInterface.java
  55. 37
      designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotPane.java
  56. 30
      designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java
  57. 32
      designer-chart/src/main/java/com/fr/van/chart/custom/VanChartCustomPlotPane.java
  58. 16
      designer-chart/src/main/java/com/fr/van/chart/designer/type/AbstractVanChartTypePane.java
  59. 27
      designer-chart/src/main/java/com/fr/van/chart/drillmap/DrillMapIndependentVanChartInterface.java
  60. 31
      designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/type/VanChartDrillMapPlotPane.java
  61. 16
      designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java
  62. 29
      designer-chart/src/main/java/com/fr/van/chart/funnel/designer/type/VanChartFunnelTypePane.java
  63. 18
      designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java
  64. 22
      designer-chart/src/main/java/com/fr/van/chart/gantt/designer/type/VanChartGanttPlotPane.java
  65. 32
      designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java
  66. 30
      designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugePlotPane.java
  67. 17
      designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/HeatMapIndependentVanChartInterface.java
  68. 29
      designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/type/VanChartHeatMapTypePane.java
  69. 28
      designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java
  70. 30
      designer-chart/src/main/java/com/fr/van/chart/line/VanChartLinePlotPane.java
  71. 32
      designer-chart/src/main/java/com/fr/van/chart/map/MapIndependentVanChartInterface.java
  72. 34
      designer-chart/src/main/java/com/fr/van/chart/map/designer/type/VanChartMapPlotPane.java
  73. 26
      designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java
  74. 22
      designer-chart/src/main/java/com/fr/van/chart/multilayer/VanChartMultiPiePlotPane.java
  75. 3
      designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java
  76. 3
      designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotTableDataContentPane.java
  77. 29
      designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java
  78. 32
      designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPiePlotPane.java
  79. 26
      designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java
  80. 31
      designer-chart/src/main/java/com/fr/van/chart/radar/VanChartRadarPlotPane.java
  81. 3
      designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java
  82. 17
      designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java
  83. 31
      designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterPlotPane.java
  84. 24
      designer-chart/src/main/java/com/fr/van/chart/structure/desinger/StructureIndependentVanChartInterface.java
  85. 28
      designer-chart/src/main/java/com/fr/van/chart/structure/desinger/type/VanChartStructureTypePane.java
  86. 16
      designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java
  87. 13
      designer-chart/src/main/java/com/fr/van/chart/treemap/VanChartTreeMapPlotPane.java
  88. 26
      designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java
  89. 10
      designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/type/VanChartWordCloudTypePane.java
  90. 3
      designer-form/src/main/java/com/fr/design/designer/beans/AdapterBus.java
  91. 16
      designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java
  92. 11
      designer-form/src/main/java/com/fr/design/designer/creator/XCheckBox.java
  93. 9
      designer-form/src/main/java/com/fr/design/designer/creator/XDateEditor.java
  94. 7
      designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java
  95. 7
      designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java
  96. 4
      designer-form/src/main/java/com/fr/design/gui/xpane/ToolTipEditor.java
  97. 16
      designer-form/src/main/java/com/fr/design/mainframe/FormArea.java
  98. 20
      designer-form/src/main/java/com/fr/design/mainframe/FormDesignerDropTarget.java
  99. 10
      designer-form/src/main/java/com/fr/design/widget/ui/designer/component/FormWidgetValuePane.java
  100. 2
      designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java
  101. Some files were not shown because too many files have changed in this diff Show More

292
designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java

@ -1,6 +1,6 @@
package com.fr.design.actions.file; package com.fr.design.actions.file;
import com.fr.base.BaseUtils; import com.fr.cluster.engine.base.FineClusterConfig;
import com.fr.config.Configuration; import com.fr.config.Configuration;
import com.fr.config.ServerPreferenceConfig; import com.fr.config.ServerPreferenceConfig;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
@ -18,12 +18,14 @@ import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.UIDictionaryComboBox; import com.fr.design.gui.icombobox.UIDictionaryComboBox;
import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.ActionLabel;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.iprogressbar.UIProgressBarUI;
import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.layout.VerticalFlowLayout;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.vcs.VcsConfigManager; import com.fr.design.mainframe.vcs.VcsConfigManager;
import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.mainframe.vcs.common.VcsHelper;
@ -36,22 +38,39 @@ import com.fr.general.IOUtils;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.log.Log4jConfig; import com.fr.general.log.Log4jConfig;
import com.fr.locale.InterProviderFactory; import com.fr.locale.InterProviderFactory;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import com.fr.third.apache.log4j.Level; import com.fr.third.apache.log4j.Level;
import com.fr.transaction.Configurations; import com.fr.transaction.Configurations;
import com.fr.transaction.Worker; import com.fr.transaction.Worker;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.vcs.VcsOperator;
import com.fr.workspace.server.vcs.git.config.GcConfig;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.BoxLayout;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JDialog;
import javax.swing.Timer;
import javax.swing.SwingWorker;
import javax.swing.UIManager;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
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; import java.awt.Component;
import java.awt.Dialog;
import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
import java.awt.FlowLayout;
import java.awt.Window; import java.awt.Window;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -59,9 +78,15 @@ import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.io.File; import java.io.File;
import java.text.DecimalFormat;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
/** /**
* 选项对话框 * 选项对话框
@ -148,9 +173,17 @@ public class PreferencePane extends BasicPane {
private UICheckBox saveCommitCheckBox; private UICheckBox saveCommitCheckBox;
private UICheckBox useIntervalCheckBox; private UICheckBox useIntervalCheckBox;
private IntegerEditor saveIntervalEditor; private IntegerEditor saveIntervalEditor;
private UICheckBox gcEnableCheckBox;
private UIButton gcButton;
private UILabel remindVcsLabel; private UILabel remindVcsLabel;
private JDialog gcDialog;
private UILabel gcMessage = new UILabel();
private JPanel gcDialogDownPane = new JPanel();
private JPanel gcProgressBarPanel = new JPanel();
private JProgressBar gcProgressBar;
private Timer gcProgressTimer;
private UIButton gcOkButton = new UIButton(Toolkit.i18nText("Fine-Design_Report_OK"));
public PreferencePane() { public PreferencePane() {
this.initComponents(); this.initComponents();
@ -230,6 +263,10 @@ public class PreferencePane extends BasicPane {
saveCommitCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Vcs_No_Delete")); saveCommitCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Vcs_No_Delete"));
saveIntervalEditor = new IntegerEditor(60); saveIntervalEditor = new IntegerEditor(60);
useIntervalCheckBox = new UICheckBox(); useIntervalCheckBox = new UICheckBox();
//gc面板
JPanel gcControlPane = createGcControlPane();
JPanel enableVcsPanel = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); JPanel enableVcsPanel = new JPanel(FRGUIPaneFactory.createLeftZeroLayout());
enableVcsPanel.add(vcsEnableCheckBox); enableVcsPanel.add(vcsEnableCheckBox);
enableVcsPanel.add(remindVcsLabel); enableVcsPanel.add(remindVcsLabel);
@ -262,6 +299,42 @@ public class PreferencePane extends BasicPane {
vcsPane.add(enableVcsPanel); vcsPane.add(enableVcsPanel);
vcsPane.add(intervalPanel); vcsPane.add(intervalPanel);
vcsPane.add(saveCommitCheckBox); vcsPane.add(saveCommitCheckBox);
vcsPane.add(gcControlPane);
}
/**
* 模创建板版本gc 配置操作面板
*
* @return 面板
*/
private JPanel createGcControlPane() {
//gc面板
JPanel gcControlPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
JPanel gcButtonPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 40, 0));
gcEnableCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Vcs_Storage_Optimization"));
gcButton = initGcButton();
gcButtonPane.add(gcButton);
gcControlPane.add(gcEnableCheckBox);
gcControlPane.add(gcButtonPane);
gcButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
tryGc();
}
});
gcEnableCheckBox.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
gcButton.setEnabled(gcEnableCheckBox.isSelected());
}
});
//集群下禁用
if (FineClusterConfig.getInstance().isCluster()) {
gcEnableCheckBox.setEnabled(false);
gcButton.setEnabled(false);
}
return gcControlPane;
} }
private void createFunctionPane(JPanel generalPane) { private void createFunctionPane(JPanel generalPane) {
@ -629,7 +702,8 @@ public class PreferencePane extends BasicPane {
saveIntervalEditor.setValue(vcsConfigManager.getSaveInterval()); saveIntervalEditor.setValue(vcsConfigManager.getSaveInterval());
saveCommitCheckBox.setSelected(vcsConfigManager.isSaveCommit()); saveCommitCheckBox.setSelected(vcsConfigManager.isSaveCommit());
useIntervalCheckBox.setSelected(vcsConfigManager.isUseInterval()); useIntervalCheckBox.setSelected(vcsConfigManager.isUseInterval());
gcEnableCheckBox.setSelected(GcConfig.getInstance().isGcEnable());
gcButton.setEnabled(gcEnableCheckBox.isSelected());
supportCellEditorDefCheckBox.setSelected(designerEnvManager.isSupportCellEditorDef()); supportCellEditorDefCheckBox.setSelected(designerEnvManager.isSupportCellEditorDef());
isDragPermitedCheckBox.setSelected(designerEnvManager.isDragPermited()); isDragPermitedCheckBox.setSelected(designerEnvManager.isDragPermited());
@ -726,6 +800,18 @@ public class PreferencePane extends BasicPane {
vcsConfigManager.setVcsEnable(this.vcsEnableCheckBox.isSelected()); vcsConfigManager.setVcsEnable(this.vcsEnableCheckBox.isSelected());
vcsConfigManager.setSaveCommit(this.saveCommitCheckBox.isSelected()); vcsConfigManager.setSaveCommit(this.saveCommitCheckBox.isSelected());
vcsConfigManager.setUseInterval(this.useIntervalCheckBox.isSelected()); vcsConfigManager.setUseInterval(this.useIntervalCheckBox.isSelected());
Configurations.update(new Worker() {
@Override
public void run() {
GcConfig.getInstance().setGcEnable(gcEnableCheckBox.isSelected());
}
@Override
public Class<? extends Configuration>[] targets() {
return new Class[]{GcConfig.class};
}
});
if (this.autoPushUpdateCheckBox != null) { if (this.autoPushUpdateCheckBox != null) {
designerEnvManager.setAutoPushUpdateEnabled(this.autoPushUpdateCheckBox.isSelected()); designerEnvManager.setAutoPushUpdateEnabled(this.autoPushUpdateCheckBox.isSelected());
} }
@ -762,7 +848,6 @@ public class PreferencePane extends BasicPane {
} }
// 如果语言设置改变了,则显示重启对话框 // 如果语言设置改变了,则显示重启对话框
public void showRestartDialog() { public void showRestartDialog() {
if (!languageChanged) { if (!languageChanged) {
@ -797,4 +882,203 @@ public class PreferencePane extends BasicPane {
public BasicDialog showWindow(Window window, DialogActionListener l) { public BasicDialog showWindow(Window window, DialogActionListener l) {
return showWindowWithCustomSize(window, l, new Dimension(BasicDialog.DEFAULT.width, this.getPreferredSize().height + OFFSET_HEIGHT)); return showWindowWithCustomSize(window, l, new Dimension(BasicDialog.DEFAULT.width, this.getPreferredSize().height + OFFSET_HEIGHT));
} }
private void tryGc() {
final SwingWorker<Boolean, Void> worker = new SwingWorker<Boolean, Void>() {
private long size = 0;
@Override
protected Boolean doInBackground() {
size = WorkContext.getCurrent().get(VcsOperator.class).immediatelyGc();
return true;
}
@Override
protected void done() {
try {
get();
} catch (ExecutionException e) {
updateGcDialogPanelInfo(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_Need_Update_Remote_Server_Jar"));
return;
} catch (InterruptedException e) {
FineLoggerFactory.getLogger().error(e, e.getMessage());
}
updateGcDialogPanelInfo(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_Reduce_File_Size") + fileSizeConvert(size));
gcDialogDownPane.revalidate();
gcDialogDownPane.repaint();
gcDialogDownPane.add(gcOkButton);
}
};
worker.execute();
initGcDialog();
gcOkButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
gcDialog.dispose();
}
});
gcDialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
stopGcProgressTimer();
worker.cancel(true);
}
});
gcDialog.setVisible(true);
gcDialog.dispose();
}
/**
* gc 后更新进度条面板信息
*
* @param message
*/
private void updateGcDialogPanelInfo(String message) {
stopGcProgressTimer();
gcMessage.setText(message);
if (null != gcProgressBar) {
gcProgressBarPanel.remove(gcProgressBar);
}
if (null != gcDialog) {
gcDialog.setTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"));
}
}
/**
* 初始化 gc 对话框
*/
private void initGcDialog() {
gcDialog = new JDialog((Dialog) SwingUtilities.getWindowAncestor(PreferencePane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_Clean_Progress") + "...", true);
gcDialog.setSize(new Dimension(340, 140));
JPanel jp = new JPanel();
//中上
JPanel gcUpPane = new JPanel();
gcUpPane.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
gcUpPane.add(new UILabel(UIManager.getIcon("OptionPane.informationIcon")));
gcProgressBarPanel = createProgressBarPane();
gcUpPane.add(gcProgressBarPanel);
//中下
gcDialogDownPane = new JPanel();
gcDialogDownPane.setLayout(new FlowLayout(FlowLayout.CENTER, 6, 0));
jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
jp.add(gcUpPane);
jp.add(gcDialogDownPane);
gcDialog.add(jp);
gcDialog.setResizable(false);
gcDialog.setLocationRelativeTo(SwingUtilities.getWindowAncestor(PreferencePane.this));
}
/**
* gc 进度条面板
*
* @return
*/
private JPanel createProgressBarPane() {
JPanel jp = new JPanel();
VerticalFlowLayout layout = new VerticalFlowLayout();
layout.setAlignLeft(true);
jp.setLayout(layout);
//提示
gcMessage = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_Cleaning"));
// 创建一个进度条
gcProgressBar = createGcProgressBar(0, 30, 240, 15, Color.GREEN);
gcProgressTimer = createGcProgressTimer(500, gcProgressBar);
gcProgressTimer.start();
jp.add(gcMessage);
jp.add(gcProgressBar);
return jp;
}
/**
* 创建 gc 进度条
*
* @param min 最小值
* @param max 最大值
* @param width 宽度
* @param height 高度
* @param color 填充的图片颜色
* @return
*/
private JProgressBar createGcProgressBar(int min, int max, int width, int height, Color color) {
// 创建一个进度条
JProgressBar progressBar = new JProgressBar(min, max);
UIProgressBarUI progressBarUI = new UIProgressBarUI();
progressBar.setUI(progressBarUI);
//颜色(进度条里的小方块)
progressBar.setForeground(color);
progressBar.setOpaque(false);
progressBar.setPreferredSize(new Dimension(width, height));
return progressBar;
}
/**
* @param delay 每隔 delay 毫秒更新进度
* @param progressBar 要更新的进度条
* @return
*/
private Timer createGcProgressTimer(int delay, final JProgressBar progressBar) {
if (null == progressBar) {
return null;
}
// 模拟延时操作进度, 每隔 delay / 1000 秒更新进度
Timer timer = new Timer(delay, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int currentProgress = progressBar.getValue() + 1;
if (currentProgress > progressBar.getMaximum()) {
currentProgress = progressBar.getMinimum();
}
progressBar.setValue(currentProgress);
}
});
return timer;
}
/**
* 停止进度条模拟计时器
*/
private void stopGcProgressTimer() {
if (null == gcProgressTimer) {
return;
}
gcProgressTimer.stop();
}
/**
* 将字节转换成 KB or MB or GB 保留两位小数
*
* @param size
* @return
*/
private String fileSizeConvert(long size) {
DecimalFormat df = new DecimalFormat("0.00");
double n = 1024d;
if (size > Math.pow(n, 3)) {
return df.format(size / Math.pow(n, 3)) + "GB";
}
if (size > Math.pow(n, 2)) {
return df.format(size / Math.pow(n, 2)) + "MB";
}
return new StringBuilder().append(df.format(size / n)).append("KB").toString();
}
/**
* 立即清理的Button
*
* @return
*/
private UIButton initGcButton() {
UIButton gcButton = new UIButton(Toolkit.i18nText("Fine-Design_Vcs_Clean"));
gcButton.setPreferredSize(new Dimension(100, 15));
gcButton.setRoundBorder(true, Constants.LEFT);
return gcButton;
}
} }

3
designer-base/src/main/java/com/fr/design/gui/chart/MiddleChartComponent.java

@ -1,7 +1,6 @@
package com.fr.design.gui.chart; package com.fr.design.gui.chart;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.chartx.attr.ChartProvider;
import com.fr.stable.core.PropertyChangeListener; import com.fr.stable.core.PropertyChangeListener;
import javax.swing.JComponent; import javax.swing.JComponent;
@ -18,7 +17,5 @@ public abstract class MiddleChartComponent extends JComponent {
public abstract void reset(); public abstract void reset();
public abstract ChartProvider getEditingChart();
public abstract void addStopEditingListener(PropertyChangeListener list); public abstract void addStopEditingListener(PropertyChangeListener list);
} }

6
designer-base/src/main/java/com/fr/design/gui/frpane/CommitTabbedPane.java

@ -296,7 +296,7 @@ public class CommitTabbedPane extends JComponent implements MouseListener, Mous
double[] x = {startX, startX, startX + tabWidth, startX + tabWidth, startX}; double[] x = {startX, startX, startX + tabWidth, startX + tabWidth, startX};
double[] y = {-1, getHeight(), getHeight(), -1, -1}; double[] y = {-1, getHeight(), getHeight(), -1, -1};
RoundRectangle2D.Double rect1 = new RoundRectangle2D.Double(startX, 1, this.getWidth(), this.getHeight(), 7, 7); RoundRectangle2D.Double rect1 = new RoundRectangle2D.Double(startX, 1, this.getWidth(), this.getHeight(), 7, 7);
g2d.setPaint(new GradientPaint(1, 1, new Color(255, 255, 255), 1, getHeight() - 1, UIConstants.NORMAL_BACKGROUND)); g2d.setPaint(new GradientPaint(1, 1, new Color(255, 255, 255), 1, getHeight() - 1f, UIConstants.NORMAL_BACKGROUND));
GeneralPath generalPath = new GeneralPath(Path2D.WIND_EVEN_ODD, x.length); GeneralPath generalPath = new GeneralPath(Path2D.WIND_EVEN_ODD, x.length);
generalPath.moveTo((float) x[0] + CORNOR_RADIUS, (float) y[0]); generalPath.moveTo((float) x[0] + CORNOR_RADIUS, (float) y[0]);
@ -345,9 +345,9 @@ public class CommitTabbedPane extends JComponent implements MouseListener, Mous
double[] x = {startX, startX, startX + tabWidth, startX + tabWidth, startX}; double[] x = {startX, startX, startX + tabWidth, startX + tabWidth, startX};
double[] y = {-1, getHeight() - 1, getHeight() - 1, -1, -1}; double[] y = {-1, getHeight() - 1, getHeight() - 1, -1, -1};
if (selfIndex == mouseOveredIndex) { if (selfIndex == mouseOveredIndex) {
g2d.setPaint(new GradientPaint(1, 1, new Color(255, 255, 255), 1, getHeight() - 1, UIConstants.NORMAL_BACKGROUND)); g2d.setPaint(new GradientPaint(1, 1, new Color(255, 255, 255), 1, getHeight() - 1f, UIConstants.NORMAL_BACKGROUND));
} else { } else {
g2d.setPaint(new GradientPaint(1, 1, UIConstants.NORMAL_BACKGROUND, 1, getHeight() - 1, UIConstants.NORMAL_BACKGROUND)); g2d.setPaint(new GradientPaint(1, 1, UIConstants.NORMAL_BACKGROUND, 1, getHeight() - 1f, UIConstants.NORMAL_BACKGROUND));
} }

4
designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIScrollBarUI.java

@ -1326,9 +1326,9 @@ public class UIScrollBarUI extends ScrollBarUI implements LayoutManager, SwingCo
newModel.addChangeListener(modelListener); newModel.addChangeListener(modelListener);
scrollbar.repaint(); scrollbar.repaint();
scrollbar.revalidate(); scrollbar.revalidate();
} else if ("orientation" == propertyName) { } else if (StringUtils.equals("orientation", propertyName)) {
updateButtonDirections(); updateButtonDirections();
} else if ("componentOrientation" == propertyName) { } else if (StringUtils.equals("componentOrientation", propertyName)) {
updateButtonDirections(); updateButtonDirections();
InputMap inputMap = getInputMap(JComponent.WHEN_FOCUSED); InputMap inputMap = getInputMap(JComponent.WHEN_FOCUSED);
SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_FOCUSED, inputMap); SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_FOCUSED, inputMap);

6
designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java

@ -9,9 +9,11 @@ import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ibutton.UIButtonUI; import com.fr.design.gui.ibutton.UIButtonUI;
import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.gui.itextfield.UINumberField;
import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.stable.CommonUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.collections.utils.MathUtils;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
@ -109,7 +111,7 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver
} }
value = value < minValue ? minValue : value; value = value < minValue ? minValue : value;
value = value > maxValue ? maxValue : value; value = value > maxValue ? maxValue : value;
if (value == this.value) { if (CommonUtils.equals(value, this.value)) {
return; return;
} }
this.value = value; this.value = value;
@ -132,7 +134,7 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver
value = value < minValue ? minValue : value; value = value < minValue ? minValue : value;
value = value > maxValue ? maxValue : value; value = value > maxValue ? maxValue : value;
if (value == this.value) { if (CommonUtils.equals(value, this.value)) {
return; return;
} }
this.value = value; this.value = value;

43
designer-base/src/main/java/com/fr/design/gui/ispinner/UnsignedIntUISpinner.java

@ -3,6 +3,9 @@ package com.fr.design.gui.ispinner;
import com.fr.design.gui.itextfield.UIIntNumberField; import com.fr.design.gui.itextfield.UIIntNumberField;
import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.gui.itextfield.UINumberField;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
* Author : Hugh.C * Author : Hugh.C
@ -11,21 +14,59 @@ import com.fr.design.gui.itextfield.UINumberField;
*/ */
public class UnsignedIntUISpinner extends UISpinner { public class UnsignedIntUISpinner extends UISpinner {
private double minValue;
private double maxValue;
public UnsignedIntUISpinner(double minValue, double maxValue, double dierta) { public UnsignedIntUISpinner(double minValue, double maxValue, double dierta) {
super(minValue, maxValue, dierta); super(minValue, maxValue, dierta);
this.minValue = minValue;
this.maxValue = maxValue;
} }
public UnsignedIntUISpinner(double minValue, double maxValue, double dierta, double defaultValue) { public UnsignedIntUISpinner(double minValue, double maxValue, double dierta, double defaultValue) {
super(minValue, maxValue, dierta, defaultValue); super(minValue, maxValue, dierta, defaultValue);
this.minValue = minValue;
this.maxValue = maxValue;
} }
@Override @Override
protected UINumberField initNumberField() { protected UINumberField initNumberField() {
return new UIIntNumberField() { final UIIntNumberField numberField = new UIIntNumberField() {
public boolean shouldResponseChangeListener() { public boolean shouldResponseChangeListener() {
return false; return false;
} }
public NumberDocument createNumberDocument() {
return new NumberDocument() {
public boolean isContinueInsertWhenOverMaxOrMinValue() {
return true;
}
};
}
}; };
numberField.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
}
/**
* 失去焦点后再做范围限制不然最小值为 100 输个 1 都不让....
* @param e
*/
@Override
public void focusLost(FocusEvent e) {
double value = numberField.getValue();
if (!isOverMaxOrMinValue(value)) {
return;
}
numberField.setValue(value < minValue ? minValue : maxValue);
}
private boolean isOverMaxOrMinValue(double value) {
return value < minValue || value > maxValue;
}
});
return numberField;
} }
} }

22
designer-base/src/main/java/com/fr/design/gui/itextfield/UIIntNumberField.java

@ -1,11 +1,10 @@
package com.fr.design.gui.itextfield; package com.fr.design.gui.itextfield;
import com.fr.design.gui.itextfield.UINumberField;
import javax.swing.text.AttributeSet; import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException; import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument; import javax.swing.text.PlainDocument;
import java.awt.*; import java.awt.Toolkit;
/** /**
* Created with IntelliJ IDEA. * Created with IntelliJ IDEA.
@ -16,10 +15,10 @@ import java.awt.*;
*/ */
public class UIIntNumberField extends UINumberField { public class UIIntNumberField extends UINumberField {
public void setFieldDocument() { public void setFieldDocument() {
setDocument(new NumberDocument()); setDocument(createNumberDocument());
} }
class NumberDocument extends PlainDocument { public class NumberDocument extends PlainDocument {
public NumberDocument() { public NumberDocument() {
} }
@ -33,7 +32,7 @@ public class UIIntNumberField extends UINumberField {
String strNew = str.substring(0, offset) + s + str.substring(offset, getLength()); String strNew = str.substring(0, offset) + s + str.substring(offset, getLength());
if (isOverMaxOrMinValue(strNew)) { if (isOverMaxOrMinValue(strNew) && !isContinueInsertWhenOverMaxOrMinValue()) {
Toolkit.getDefaultToolkit().beep(); Toolkit.getDefaultToolkit().beep();
return; return;
} }
@ -42,8 +41,21 @@ public class UIIntNumberField extends UINumberField {
super.insertString(offset, s, a); super.insertString(offset, s, a);
} }
/**
* 是否继续插入输入的字符 - 当超出范围时
*
* @return true : 继续插入输入的字符
*/
public boolean isContinueInsertWhenOverMaxOrMinValue() {
return false;
}
private boolean isOverMaxOrMinValue( String strNew) { private boolean isOverMaxOrMinValue( String strNew) {
return (Double.parseDouble(strNew)<getMinValue() || Double.parseDouble(strNew)>getMaxValue()); return (Double.parseDouble(strNew)<getMinValue() || Double.parseDouble(strNew)>getMaxValue());
} }
} }
public NumberDocument createNumberDocument() {
return new NumberDocument();
}
} }

8
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/RSyntaxTextArea.java

@ -3016,11 +3016,6 @@ private boolean fractionalFontMetricsEnabled;
return he; return he;
} }
private final boolean equal(LinkGeneratorResult e1,
LinkGeneratorResult e2) {
return e1.getSourceOffset()==e2.getSourceOffset();
}
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if (getHyperlinksEnabled() && isScanningForLinks && if (getHyperlinksEnabled() && isScanningForLinks &&
@ -3080,8 +3075,7 @@ private boolean fractionalFontMetricsEnabled;
isLinkAtOffset(RSyntaxTextArea.this, offs); isLinkAtOffset(RSyntaxTextArea.this, offs);
if (newResult!=null) { if (newResult!=null) {
// Repaint if we're at a new link now. // Repaint if we're at a new link now.
if (linkGeneratorResult==null || if (linkGeneratorResult==null || newResult.getSourceOffset() != linkGeneratorResult.getSourceOffset()) {
!equal(newResult, linkGeneratorResult)) {
repaint(); repaint();
} }
linkGeneratorResult = newResult; linkGeneratorResult = newResult;

9
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/Style.java

@ -9,6 +9,7 @@
*/ */
package com.fr.design.gui.syntax.ui.rsyntaxtextarea; package com.fr.design.gui.syntax.ui.rsyntaxtextarea;
import com.fr.log.FineLoggerFactory;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;
import java.awt.FontMetrics; import java.awt.FontMetrics;
@ -123,15 +124,15 @@ public class Style implements Cloneable {
Style clone = null; Style clone = null;
try { try {
clone = (Style)super.clone(); clone = (Style)super.clone();
} catch (CloneNotSupportedException cnse) { // Never happens
cnse.printStackTrace();
return null;
}
clone.foreground = foreground; clone.foreground = foreground;
clone.background = background; clone.background = background;
clone.font = font; clone.font = font;
clone.underline = underline; clone.underline = underline;
clone.fontMetrics = fontMetrics; clone.fontMetrics = fontMetrics;
} catch (CloneNotSupportedException cnse) { // Never happens
FineLoggerFactory.getLogger().error(cnse.getMessage(), cnse);
clone = null;
}
return clone; return clone;
} }

9
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/SyntaxScheme.java

@ -9,6 +9,7 @@
*/ */
package com.fr.design.gui.syntax.ui.rsyntaxtextarea; package com.fr.design.gui.syntax.ui.rsyntaxtextarea;
import com.fr.log.FineLoggerFactory;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;
import java.awt.Graphics2D; import java.awt.Graphics2D;
@ -122,10 +123,6 @@ public class SyntaxScheme implements Cloneable, TokenTypes {
SyntaxScheme shcs = null; SyntaxScheme shcs = null;
try { try {
shcs = (SyntaxScheme) super.clone(); shcs = (SyntaxScheme) super.clone();
} catch (CloneNotSupportedException cnse) { // Never happens
cnse.printStackTrace();
return null;
}
shcs.styles = new Style[styles.length]; shcs.styles = new Style[styles.length];
for (int i = 0; i < styles.length; i++) { for (int i = 0; i < styles.length; i++) {
Style s = styles[i]; Style s = styles[i];
@ -133,6 +130,10 @@ public class SyntaxScheme implements Cloneable, TokenTypes {
shcs.styles[i] = (Style) s.clone(); shcs.styles[i] = (Style) s.clone();
} }
} }
} catch (CloneNotSupportedException cnse) { // Never happens
FineLoggerFactory.getLogger().error(cnse.getMessage(), cnse);
shcs = null;
}
return shcs; return shcs;
} }

2
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/folding/HtmlFoldParser.java

@ -149,7 +149,7 @@ public class HtmlFoldParser implements FoldParser {
} }
// ?> or %> // ?> or %>
else if (t.startsWith(LANG_END[language])) { else if (currentFold != null && t.startsWith(LANG_END[language])) {
int phpEnd = t.getEndOffset() - 1; int phpEnd = t.getEndOffset() - 1;
currentFold.setEndOffset(phpEnd); currentFold.setEndOffset(phpEnd);
Fold parentFold = currentFold.getParent(); Fold parentFold = currentFold.getParent();

11
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java

@ -10,12 +10,13 @@
*/ */
package com.fr.design.gui.syntax.ui.rsyntaxtextarea.modes; package com.fr.design.gui.syntax.ui.rsyntaxtextarea.modes;
import java.io.*; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.AbstractJFlexTokenMaker;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.Token;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.TokenImpl;
import java.io.IOException;
import java.util.Stack; import java.util.Stack;
import javax.swing.text.Segment; import javax.swing.text.Segment;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.*;
/** /**
* Scanner for makefiles.<p> * Scanner for makefiles.<p>
@ -763,7 +764,7 @@ public final void yybegin(int newState) {
} }
case 25: break; case 25: break;
case 12: case 12:
{ if (!varDepths.empty() && varDepths.peek()==Boolean.TRUE) { { if (!varDepths.empty() && Boolean.TRUE.equals(varDepths.peek())) {
varDepths.pop(); varDepths.pop();
if (varDepths.empty()) { if (varDepths.empty()) {
addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL); addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL);
@ -772,7 +773,7 @@ public final void yybegin(int newState) {
} }
case 26: break; case 26: break;
case 11: case 11:
{ if (!varDepths.empty() && varDepths.peek()==Boolean.FALSE) { { if (!varDepths.empty() && Boolean.FALSE.equals(varDepths.peek())) {
varDepths.pop(); varDepths.pop();
if (varDepths.empty()) { if (varDepths.empty()) {
addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL); addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL);

24
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/RTextAreaBase.java

@ -723,7 +723,6 @@ int currentCaretY; // Used to know when to rehighlight current line.
// If we're wrapping lines we need to check the actual y-coordinate // If we're wrapping lines we need to check the actual y-coordinate
// of the caret, not just the line number, since a single logical // of the caret, not just the line number, since a single logical
// line can span multiple physical lines. // line can span multiple physical lines.
if (getLineWrap()) {
try { try {
Rectangle temp = modelToView(dot); Rectangle temp = modelToView(dot);
if (temp != null) { if (temp != null) {
@ -732,29 +731,6 @@ int currentCaretY; // Used to know when to rehighlight current line.
} catch (BadLocationException ble) { } catch (BadLocationException ble) {
ble.printStackTrace(); // Should never happen. ble.printStackTrace(); // Should never happen.
} }
}
// No line wrap - we can simply check the line number (quicker).
else {
// Document doc = getDocument();
// if (doc!=null) {
// Element map = doc.getDefaultRootElement();
// int caretLine = map.getElementIndex(dot);
// Rectangle alloc = ((RTextAreaUI)getUI()).
// getVisibleEditorRect();
// if (alloc!=null)
// currentCaretY = alloc.y + caretLine*lineHeight;
// }
// Modified for code folding requirements
try {
Rectangle temp = modelToView(dot);
if (temp!=null) {
currentCaretY = temp.y;
}
} catch (BadLocationException ble) {
ble.printStackTrace(); // Should never happen.
}
}
// Repaint current line (to fill in entire highlight), and old line // Repaint current line (to fill in entire highlight), and old line
// (to erase entire old highlight) if necessary. Always repaint // (to erase entire old highlight) if necessary. Always repaint

3
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/SearchEngine.java

@ -25,6 +25,7 @@ import javax.swing.text.Caret;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.DocumentRange; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.DocumentRange;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.folding.FoldManager; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.folding.FoldManager;
import org.jetbrains.annotations.NotNull;
/** /**
@ -174,6 +175,7 @@ public class SearchEngine {
* @param forward Whether we're searching forward or backward. * @param forward Whether we're searching forward or backward.
* @return The character sequence. * @return The character sequence.
*/ */
@NotNull
private static CharSequence getFindInCharSequence(RTextArea textArea, private static CharSequence getFindInCharSequence(RTextArea textArea,
int start, boolean forward) { int start, boolean forward) {
RDocument doc = (RDocument)textArea.getDocument(); RDocument doc = (RDocument)textArea.getDocument();
@ -752,7 +754,6 @@ public class SearchEngine {
int start = makeMarkAndDotEqual(textArea, forward); int start = makeMarkAndDotEqual(textArea, forward);
CharSequence findIn = getFindInCharSequence(textArea, start, forward); CharSequence findIn = getFindInCharSequence(textArea, start, forward);
if (findIn==null) return new SearchResult();
int markAllCount = 0; int markAllCount = 0;
if (context.getMarkAll()) { if (context.getMarkAll()) {

5
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java

@ -103,6 +103,9 @@ public class VolatileImageBackgroundPainterStrategy
} finally { } finally {
tracker.removeImage(i, 1); tracker.removeImage(i, 1);
} }
if(bgImage == null) {
continue;
}
bgImage.getGraphics().drawImage(i, 0,0, null); bgImage.getGraphics().drawImage(i, 0,0, null);
tracker.addImage(bgImage, 0); tracker.addImage(bgImage, 0);
try { try {
@ -114,7 +117,7 @@ public class VolatileImageBackgroundPainterStrategy
} finally { } finally {
tracker.removeImage(bgImage, 0); tracker.removeImage(bgImage, 0);
} }
} while (bgImage.contentsLost()); } while (bgImage != null && bgImage.contentsLost());
} // End of if (master!=null). } // End of if (master!=null).
else { else {
bgImage = null; bgImage = null;

13
designer-base/src/main/java/com/fr/design/layout/TableLayout.java

@ -323,7 +323,6 @@ public class TableLayout implements LayoutManager2, Serializable {
public static final double MINIMUM = -3.0; public static final double MINIMUM = -3.0;
//****************************************************************************** //******************************************************************************
//** Constructors *** //** Constructors ***
//****************************************************************************** //******************************************************************************
@ -1808,8 +1807,8 @@ public class TableLayout implements LayoutManager2, Serializable {
for (counter = entry.cr1[z]; counter <= entry.cr2[z]; counter++) for (counter = entry.cr1[z]; counter <= entry.cr2[z]; counter++)
if (crSpec[z][counter] >= 1.0) if (crSpec[z][counter] >= 1.0)
scalableSize -= crSpec[z][counter]; scalableSize -= crSpec[z][counter];
else if ((crSpec[z][counter] == PREFERRED) || else if (AssistUtils.equals(crSpec[z][counter], PREFERRED) ||
(crSpec[z][counter] == MINIMUM)) { AssistUtils.equals(crSpec[z][counter], MINIMUM)) {
scalableSize -= crPrefMin[counter]; scalableSize -= crPrefMin[counter];
} }
@ -1825,13 +1824,13 @@ public class TableLayout implements LayoutManager2, Serializable {
// Add scaled size to relativeWidth // Add scaled size to relativeWidth
relativeSize += crSpec[z][counter]; relativeSize += crSpec[z][counter];
// Cr is fill // Cr is fill
else if ((crSpec[z][counter] == FILL) && (fillSizeRatio != 0.0)) else if (AssistUtils.equals(crSpec[z][counter], FILL) && !AssistUtils.equals(fillSizeRatio, 0.0))
// Add fill size to relativeWidth // Add fill size to relativeWidth
relativeSize += fillSizeRatio; relativeSize += fillSizeRatio;
} }
// Determine the total scaled size as estimated by this component // Determine the total scaled size as estimated by this component
if (relativeSize == 0) if (AssistUtils.equals(relativeSize, 0))
temp = 0; temp = 0;
else else
temp = (int) (scalableSize / relativeSize + 0.5); temp = (int) (scalableSize / relativeSize + 0.5);
@ -1852,8 +1851,8 @@ public class TableLayout implements LayoutManager2, Serializable {
if (crSpec[z][counter] >= 1.0) if (crSpec[z][counter] >= 1.0)
totalSize += (int) (crSpec[z][counter] + 0.5); totalSize += (int) (crSpec[z][counter] + 0.5);
// Is the current cr a preferred/minimum size // Is the current cr a preferred/minimum size
else if ((crSpec[z][counter] == PREFERRED) || else if (AssistUtils.equals(crSpec[z][counter], PREFERRED) ||
(crSpec[z][counter] == MINIMUM)) { AssistUtils.equals(crSpec[z][counter], MINIMUM)) {
// Add preferred/minimum width // Add preferred/minimum width
totalSize += crPrefMin[counter]; totalSize += crPrefMin[counter];
} }

4
designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java

@ -20,6 +20,7 @@ import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import com.fr.workspace.server.vcs.VcsOperator; import com.fr.workspace.server.vcs.VcsOperator;
import com.fr.workspace.server.vcs.filesystem.VcsFileSystem; import com.fr.workspace.server.vcs.filesystem.VcsFileSystem;
import com.fr.workspace.server.vcs.git.config.GcConfig;
import javax.swing.Icon; import javax.swing.Icon;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
@ -146,6 +147,9 @@ public class VcsHelper implements JTemplateActionListener {
if (needDeleteVersion(oldEntity)) { if (needDeleteVersion(oldEntity)) {
operator.deleteVersion(oldEntity.getFilename(), oldEntity.getVersion()); operator.deleteVersion(oldEntity.getFilename(), oldEntity.getVersion());
} }
if (GcConfig.getInstance().isGcEnable()) {
operator.gc();
}
} }
}).start(); }).start();

3
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionCellEditor.java

@ -10,6 +10,7 @@ import com.fr.design.mainframe.vcs.common.VcsCacheFileNodeFile;
import com.fr.file.filetree.FileNode; import com.fr.file.filetree.FileNode;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.report.entity.VcsEntity; import com.fr.report.entity.VcsEntity;
import com.fr.stable.AssistUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import com.fr.workspace.server.vcs.VcsOperator; import com.fr.workspace.server.vcs.VcsOperator;
@ -67,7 +68,7 @@ public class FileVersionCellEditor extends AbstractCellEditor implements TableCe
} }
double height = editor.getPreferredSize().getHeight(); double height = editor.getPreferredSize().getHeight();
if (table.getRowHeight(row) != height) { if (!AssistUtils.equals(table.getRowHeight(row), height)) {
table.setRowHeight(row, (int) height + VcsHelper.OFFSET); table.setRowHeight(row, (int) height + VcsHelper.OFFSET);
} }
return editor; return editor;

3
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionCellRender.java

@ -2,6 +2,7 @@ package com.fr.design.mainframe.vcs.ui;
import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.mainframe.vcs.common.VcsHelper;
import com.fr.report.entity.VcsEntity; import com.fr.report.entity.VcsEntity;
import com.fr.stable.AssistUtils;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JTable; import javax.swing.JTable;
@ -34,7 +35,7 @@ public class FileVersionCellRender implements TableCellRenderer {
editor.setBackground(isSelected ? TABLE_SELECT_BACKGROUND : TREE_BACKGROUND); editor.setBackground(isSelected ? TABLE_SELECT_BACKGROUND : TREE_BACKGROUND);
double height = editor.getPreferredSize().getHeight(); double height = editor.getPreferredSize().getHeight();
if (table.getRowHeight(row) != height) { if (!AssistUtils.equals(table.getRowHeight(row), height)) {
table.setRowHeight(row, (int) height + VcsHelper.OFFSET); table.setRowHeight(row, (int) height + VcsHelper.OFFSET);
} }
return editor; return editor;

4
designer-base/src/main/java/com/fr/design/report/WatermarkPane.java

@ -113,8 +113,8 @@ public class WatermarkPane extends BasicPane {
formulaPane = new TinyFormulaPane(); formulaPane = new TinyFormulaPane();
fontSizeComboBox = new UIComboBox(FRFontPane.FONT_SIZES); fontSizeComboBox = new UIComboBox(FRFontPane.FONT_SIZES);
fontSizeComboBox.setEditable(true); fontSizeComboBox.setEditable(true);
horizontalGapSpinner = new UnsignedIntUISpinner(0, Integer.MAX_VALUE, 1, 200); horizontalGapSpinner = new UnsignedIntUISpinner(100, Integer.MAX_VALUE, 1, 200);
verticalGapSpinner = new UnsignedIntUISpinner(0, Integer.MAX_VALUE, 1, 100); verticalGapSpinner = new UnsignedIntUISpinner(50, Integer.MAX_VALUE, 1, 100);
horizontalGapSpinner.setPreferredSize(SPINNER_DIMENSION); horizontalGapSpinner.setPreferredSize(SPINNER_DIMENSION);
verticalGapSpinner.setPreferredSize(SPINNER_DIMENSION); verticalGapSpinner.setPreferredSize(SPINNER_DIMENSION);
JPanel fontSizeTypePane = new JPanel(new BorderLayout(10,0)); JPanel fontSizeTypePane = new JPanel(new BorderLayout(10,0));

3
designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java

@ -29,6 +29,7 @@ import com.fr.design.style.color.ColorSelectConfigManager;
import com.fr.design.style.color.ColorSelectDetailPane; import com.fr.design.style.color.ColorSelectDetailPane;
import com.fr.design.style.color.ColorSelectDialog; import com.fr.design.style.color.ColorSelectDialog;
import com.fr.design.style.color.ColorSelectable; import com.fr.design.style.color.ColorSelectable;
import com.fr.stable.AssistUtils;
/** /**
* TODO:面板缩放的功能没有考虑就是尾值过大导致超过界面显示的情况原来的那个实现完全是个BUG要缩放的情况也比较少就干脆以后弄吧 * TODO:面板缩放的功能没有考虑就是尾值过大导致超过界面显示的情况原来的那个实现完全是个BUG要缩放的情况也比较少就干脆以后弄吧
@ -217,7 +218,7 @@ public class GradientBar extends JComponent implements UIObserver,ColorSelectabl
* @return 同上 * @return 同上
*/ */
public boolean isOriginalPlace() { public boolean isOriginalPlace() {
return startLabel.getValue() == min && endLabel.getValue() == max; return AssistUtils.equals(startLabel.getValue(), min) && AssistUtils.equals(endLabel.getValue(), max);
} }
/** /**

9
designer-base/src/main/java/com/fr/design/utils/gui/GUICoreUtils.java

@ -31,6 +31,7 @@ import com.fr.design.style.color.ColorFactory;
import com.fr.design.style.color.ColorSelectBox; import com.fr.design.style.color.ColorSelectBox;
import com.fr.design.style.color.ColorSelectable; import com.fr.design.style.color.ColorSelectable;
import com.fr.general.FRFont; import com.fr.general.FRFont;
import com.fr.stable.AssistUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.OperatingSystem; import com.fr.stable.OperatingSystem;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -890,10 +891,10 @@ public final class GUICoreUtils {
* @return 同上 * @return 同上
*/ */
public static boolean isTheSameRect(Rectangle oneRect, Rectangle otherRect) { public static boolean isTheSameRect(Rectangle oneRect, Rectangle otherRect) {
return oneRect.getX() == otherRect.getX() return AssistUtils.equals(oneRect.getX(), otherRect.getX())
&& oneRect.getY() == otherRect.getY() && AssistUtils.equals(oneRect.getY(), otherRect.getY())
&& oneRect.getWidth() == otherRect.getWidth() && AssistUtils.equals(oneRect.getWidth(), otherRect.getWidth())
&& oneRect.getHeight() == otherRect.getHeight(); && AssistUtils.equals(oneRect.getHeight(), otherRect.getHeight());
} }
/** /**

269
designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java

@ -1,13 +1,15 @@
package com.fr.design; package com.fr.design;
import com.fr.chart.base.ChartConstants; import com.fr.chart.base.ChartConstants;
import com.fr.chart.base.ChartInternationalNameContentBean; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chart.fun.ChartTypeProvider;
import com.fr.chartx.attr.ChartProvider; import com.fr.chartx.attr.ChartProvider;
import com.fr.common.annotations.Compatible;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider; import com.fr.design.chart.fun.ChartTypeUIProvider;
import com.fr.design.chart.gui.ChartWidgetOption; import com.fr.design.chart.gui.ChartWidgetOption;
import com.fr.design.chartinterface.AreaIndependentChartInterface; import com.fr.design.chartinterface.AreaIndependentChartInterface;
import com.fr.design.chartinterface.BarIndependentChartInterface; import com.fr.design.chartinterface.BarIndependentChartInterface;
@ -38,10 +40,13 @@ import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPa
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.design.module.DesignModuleFactory; import com.fr.design.module.DesignModuleFactory;
import com.fr.extended.chart.AbstractChart;
import com.fr.form.ui.ChartEditor; import com.fr.form.ui.ChartEditor;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.invoke.Reflect;
import com.fr.locale.InterProviderFactory; import com.fr.locale.InterProviderFactory;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.PiePlot4VanChart; import com.fr.plugin.chart.PiePlot4VanChart;
import com.fr.plugin.chart.area.VanChartAreaPlot; import com.fr.plugin.chart.area.VanChartAreaPlot;
import com.fr.plugin.chart.bubble.VanChartBubblePlot; import com.fr.plugin.chart.bubble.VanChartBubblePlot;
@ -112,8 +117,8 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
private static ChartTypeInterfaceManager classManager = new ChartTypeInterfaceManager(); private static ChartTypeInterfaceManager classManager = new ChartTypeInterfaceManager();
private static LinkedHashMap<String, CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>> chartTypeInterfaces = private static LinkedHashMap<String, CloseableContainedMap<String, ChartTypeUIProvider, LinkedHashMap>> chartTypeInterfaces =
new LinkedHashMap<String, CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>>(); new LinkedHashMap<String, CloseableContainedMap<String, ChartTypeUIProvider, LinkedHashMap>>();
private static Map<String, String> idAndPriorityMap = new HashMap<String, String>(); private static Map<String, String> idAndPriorityMap = new HashMap<String, String>();
@ -156,18 +161,18 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
public static WidgetOption[] initWidgetOption() { public static WidgetOption[] initWidgetOption() {
ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstance().getAllChartBaseNames(); String[] chartIDs = ChartTypeManager.getInstance().getAllChartIDs();
ChartWidgetOption[] child = new ChartWidgetOption[typeName.length]; ChartWidgetOption[] child = new ChartWidgetOption[chartIDs.length];
int index = 0; int index = 0;
for (ChartInternationalNameContentBean bean : typeName) { for (String chartID : chartIDs) {
String plotID = bean.getChartID(); ChartProvider[] rowChart = ChartTypeManager.getInstance().getChartTypes(chartID);
ChartProvider[] rowChart = ChartTypeManager.getInstance().getChartTypes(plotID); if (ArrayUtils.isEmpty(rowChart) && !ChartTypeManager.innerChart(chartID)) {
if (ArrayUtils.isEmpty(rowChart) && !ChartTypeManager.innerChart(plotID)) {
continue; continue;
} }
String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(plotID); String name = ChartTypeInterfaceManager.getInstance().getName(chartID);
String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(chartID);
Icon icon = IOUtils.readIcon(iconPath); Icon icon = IOUtils.readIcon(iconPath);
child[index] = new ChartWidgetOption(InterProviderFactory.getProvider().getLocText(bean.getName()), icon, ChartEditor.class, plotID); child[index] = new ChartWidgetOption(name, icon, ChartEditor.class, chartID);
index++; index++;
} }
@ -219,17 +224,17 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
addChartTypeInterface(DEPRECATED_CHART_PRIORITY, ChartConstants.FUNNEL_CHART, new FunnelIndependentChartInterface()); addChartTypeInterface(DEPRECATED_CHART_PRIORITY, ChartConstants.FUNNEL_CHART, new FunnelIndependentChartInterface());
} }
private static void addChartTypeInterface(String priority, String plotID, IndependentChartUIProvider provider) { private static void addChartTypeInterface(String priority, String plotID, ChartTypeUIProvider provider) {
if (chartTypeInterfaces != null) { if (chartTypeInterfaces != null) {
if (!chartTypeInterfaces.containsKey(priority)) { if (!chartTypeInterfaces.containsKey(priority)) {
//新建一个具体图表列表 //新建一个具体图表列表
CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap> chartUIList CloseableContainedMap<String, ChartTypeUIProvider, LinkedHashMap> chartUIList
= new CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>(LinkedHashMap.class); = new CloseableContainedMap<String, ChartTypeUIProvider, LinkedHashMap>(LinkedHashMap.class);
chartUIList.put(plotID, provider); chartUIList.put(plotID, provider);
chartTypeInterfaces.put(priority, chartUIList); chartTypeInterfaces.put(priority, chartUIList);
} else { } else {
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority); Map<String, ChartTypeUIProvider> chartUIList = chartTypeInterfaces.get(priority);
if (!chartUIList.containsKey(plotID)) { if (!chartUIList.containsKey(plotID)) {
chartUIList.put(plotID, provider); chartUIList.put(plotID, provider);
} }
@ -238,7 +243,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
} }
} }
private IndependentChartUIProvider getChartTypeInterface(String plotID) { private ChartTypeUIProvider getChartTypeInterface(String plotID) {
if (idAndPriorityMap.containsKey(plotID)) { if (idAndPriorityMap.containsKey(plotID)) {
String priority = idAndPriorityMap.get(plotID); String priority = idAndPriorityMap.get(plotID);
if (chartTypeInterfaces.containsKey(priority)) { if (chartTypeInterfaces.containsKey(priority)) {
@ -267,116 +272,210 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority)) { if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority)) {
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority); Map<String, ChartTypeUIProvider> chartUIList = chartTypeInterfaces.get(priority);
Iterator<Map.Entry<String, IndependentChartUIProvider>> iterator = chartUIList.entrySet().iterator(); Iterator<Map.Entry<String, ChartTypeUIProvider>> iterator = chartUIList.entrySet().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Map.Entry<String, IndependentChartUIProvider> entry = iterator.next(); try {
Map.Entry<String, ChartTypeUIProvider> entry = iterator.next();
String plotID = entry.getKey(); String plotID = entry.getKey();
AbstractChartTypePane pane = entry.getValue().getPlotTypePane(); AbstractChartTypePane pane = entry.getValue().getPlotTypePane();
if (AssistUtils.equals(pane.title4PopupWindow(), TYPE_PANE_DEFAULT_TITLE)) { if (AssistUtils.equals(pane.title4PopupWindow(), TYPE_PANE_DEFAULT_TITLE)) {
continue; continue;
} }
pane.setPlotID(plotID); pane.reLayout(plotID);
paneList.add(pane); paneList.add(pane);
if (allChartTypePane.get(priority) == null) { if (allChartTypePane.get(priority) == null) {
allChartTypePane.put(priority, new LinkedHashMap<String, FurtherBasicBeanPane<? extends ChartProvider>>()); allChartTypePane.put(priority, new LinkedHashMap<String, FurtherBasicBeanPane<? extends ChartProvider>>());
} }
allChartTypePane.get(priority).put(plotID, pane); allChartTypePane.get(priority).put(plotID, pane);
} catch (Throwable e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }
} }
} }
}
@Compatible
public String getTitle4PopupWindow(String plotID) {
return getName(plotID);
}
private List<Integer> getPriorityInOrder() {
private String getChartName(String plotID, IndependentChartUIProvider provider) { List<Integer> priorityList = new ArrayList<Integer>();
String name = provider.getPlotTypeTitle4PopupWindow(); if (chartTypeInterfaces != null) {
if (StringUtils.isEmpty(name)) { Iterator iterator = chartTypeInterfaces.entrySet().iterator();
name = ChartTypeManager.getInstance().getChartName(plotID); while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
priorityList.add(Integer.valueOf(priority));
} }
return name; }
return ChartTypeManager.orderInPriority(priorityList);
} }
public String getTitle4PopupWindow(String plotID) { public String getIconPath(String plotID) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID);
if (chartTypeInterfaces != null) {
ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) { if (provider != null) {
return provider.getPlotTypeTitle4PopupWindow(); return provider.getIconPath();
}
} }
return StringUtils.EMPTY; return StringUtils.EMPTY;
} }
/** public String[] getDemoImagePath(String chartID) {
* 获取指定图表的标题
*/
public String getTitle4PopupWindow(String priority, String plotID) {
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) { if (chartTypeInterfaces != null) {
IndependentChartUIProvider provider = chartTypeInterfaces.get(priority).get(plotID); ChartTypeUIProvider provider = getChartTypeInterface(chartID);
return getChartName(plotID, provider); if (provider != null) {
String[] result = null;
try {
result = provider.getDemoImagePath();
} catch (Throwable e) {
//do nothing
}
return ArrayUtils.isEmpty(result) ? getCompatibleDemoImagePath(chartID) : result;
}
} }
//兼容老的插件 return new String[0];
if (chartTypeInterfaces != null) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String defaultPriority = (String) entry.getKey();
if (chartTypeInterfaces.get(defaultPriority).containsKey(plotID)) {
return getChartName(plotID, chartTypeInterfaces.get(defaultPriority).get(plotID));
} }
private String[] getCompatibleDemoImagePath(String chartID) {
String[] result = null;
try {
//AbstractIndependentChartsProvider
ChartTypeProvider chartTypeProvider = Reflect.on(ChartTypeManager.getInstanceWithCheck()).call("getChartType", chartID).get();
result = new String[]{
Reflect.on(chartTypeProvider).call("getChartImagePath").get()
};
if (ArrayUtils.isNotEmpty(result)) {
return result;
} }
} catch (Exception e) {
//do nothing
} }
return StringUtils.EMPTY;
try {
//兼容 图表类型选择界面会调到这边
ChartProvider[] charts = ChartTypeManager.getInstanceWithCheck().getChartTypes(chartID);
result = new String[charts.length];
for (int i = 0; i < charts.length; i++) {
//Chart && AbstractChart
ChartProvider chart = charts[i];
if (!(chart instanceof AbstractChart)) {//扩展图表
chart = Reflect.on(chart).field("subChart").get();
}
result[i] = Reflect.on(chart).call("demoImagePath").get();
}
} catch (Exception e) {
//do nothing
} }
private List<Integer> getPriorityInOrder() { return new String[0];
}
List<Integer> priorityList = new ArrayList<Integer>(); public String[] getSubName(String chartID) {
if (chartTypeInterfaces != null) { if (chartTypeInterfaces != null) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator(); ChartTypeUIProvider provider = getChartTypeInterface(chartID);
while (iterator.hasNext()) { if (provider != null) {
Map.Entry entry = (Map.Entry) iterator.next(); String[] subNames = null;
String priority = (String) entry.getKey(); try {
priorityList.add(Integer.valueOf(priority)); subNames = provider.getSubName();
} catch (Throwable throwable) {
//do nothing
} }
return ArrayUtils.isEmpty(subNames) ? getCompatibleSubName(chartID, provider) : subNames;
} }
return ChartTypeManager.orderInPriority(priorityList); }
return new String[0];
} }
public String getIconPath(String plotID) { //兼容
private String[] getCompatibleSubName(String chartID, ChartTypeUIProvider provider) {
ChartProvider[] chartProviders = ChartTypeManager.getInstanceWithCheck().getChartTypes(chartID);
if (chartProviders.length == 1) {
return new String[]{getName(chartID)};
}
String[] result = new String[chartProviders.length];
for (int i = 0; i < chartProviders.length; i++) {
if (chartProviders[i] instanceof Chart) {
//Chart && AbstractChart
result[i] = ((Chart) chartProviders[i]).getChartName();
}
}
return result;
}
public String getName(String chartID) {
if (chartTypeInterfaces != null) { if (chartTypeInterfaces != null) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID); ChartTypeUIProvider provider = getChartTypeInterface(chartID);
if (provider != null) { if (provider != null) {
return provider.getIconPath(); String name = null;
try {
name = provider.getName();
} catch (Throwable throwable) {
//do nothing
}
return StringUtils.isEmpty(name) ? getCompatibleName(chartID, provider) : name;
} }
} }
return StringUtils.EMPTY; return StringUtils.EMPTY;
} }
public ChartDataPane getChartDataPane(String plotID, AttributeChangeListener listener) { //兼容
IndependentChartUIProvider provider = getChartTypeInterface(plotID); private static String getCompatibleName(String chartID, ChartTypeUIProvider provider) {
if (provider != null) {
return provider.getChartDataPane(listener); String result = null;
try {
//AbstractIndependentChartsProvider
ChartTypeProvider chartTypeProvider = Reflect.on(ChartTypeManager.getInstanceWithCheck()).call("getChartType", chartID).get();
result = Reflect.on(chartTypeProvider).call("getChartName").get();//国际化的key
result = InterProviderFactory.getProvider().getLocText(result);
if (StringUtils.isNotEmpty(result)) {
return result;
}
} catch (Exception e) {
//do nothing
} }
return new ChartDataPane(listener);
try {
ChartProvider chartProvider = ChartTypeManager.getInstanceWithCheck().getChartTypes(chartID)[0];
if (chartProvider instanceof Chart) {
//AbstractExtendedChartUIProvider
result = ((Chart) chartProvider).getChartName();
}
if (StringUtils.isNotEmpty(result) && !"Charts".equals(result)) {
return result;
} }
/** } catch (Exception e) {
* 获取对应ID的图表数量 //do nothing
* }
*/
private int getChartSize(String key) { return provider.getPlotTypePane().title4PopupWindow();
}
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(key)) { public ChartDataPane getChartDataPane(String plotID, AttributeChangeListener listener) {
return chartTypeInterfaces.get(key).size(); ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) {
return provider.getChartDataPane(listener);
} }
return 0;
return new ChartDataPane(listener);
} }
public AbstractChartAttrPane[] getAttrPaneArray(String plotID, AttributeChangeListener listener) { public AbstractChartAttrPane[] getAttrPaneArray(String plotID, AttributeChangeListener listener) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID); ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) { if (provider != null) {
return provider.getAttrPaneArray(listener); return provider.getAttrPaneArray(listener);
} }
@ -387,7 +486,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) {
IndependentChartUIProvider provider = getChartTypeInterface(plot.getPlotID()); ChartTypeUIProvider provider = getChartTypeInterface(plot.getPlotID());
if (provider != null) { if (provider != null) {
return provider.getTableDataSourcePane(plot, parent); return provider.getTableDataSourcePane(plot, parent);
} }
@ -397,7 +496,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) { public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) {
IndependentChartUIProvider provider = getChartTypeInterface(plot.getPlotID()); ChartTypeUIProvider provider = getChartTypeInterface(plot.getPlotID());
if (provider != null) { if (provider != null) {
return provider.getReportDataSourcePane(plot, parent); return provider.getReportDataSourcePane(plot, parent);
} }
@ -405,17 +504,9 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
return null; return null;
} }
private boolean plotInChart(String plotID, String priority) {
return chartTypeInterfaces != null
&& chartTypeInterfaces.containsKey(priority)
&& chartTypeInterfaces.get(priority).containsKey(plotID);
}
public ConditionAttributesPane getPlotConditionPane(Plot plot) { public ConditionAttributesPane getPlotConditionPane(Plot plot) {
IndependentChartUIProvider provider = getChartTypeInterface(plot.getPlotID()); ChartTypeUIProvider provider = getChartTypeInterface(plot.getPlotID());
if (provider != null) { if (provider != null) {
return provider.getPlotConditionPane(plot); return provider.getPlotConditionPane(plot);
} }
@ -425,7 +516,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot) { public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot) {
IndependentChartUIProvider provider = getChartTypeInterface(plot.getPlotID()); ChartTypeUIProvider provider = getChartTypeInterface(plot.getPlotID());
if (provider != null) { if (provider != null) {
return provider.getPlotSeriesPane(parent, plot); return provider.getPlotSeriesPane(parent, plot);
} }
@ -441,7 +532,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
*/ */
public boolean isUseDefaultPane(String plotID) { public boolean isUseDefaultPane(String plotID) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID); ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) { if (provider != null) {
return provider.isUseDefaultPane(); return provider.isUseDefaultPane();
} }
@ -452,7 +543,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
public boolean needChartChangePane(ChartProvider chart) { public boolean needChartChangePane(ChartProvider chart) {
if (chart != null) { if (chart != null) {
String chartID = chart.getID(); String chartID = chart.getID();
IndependentChartUIProvider provider = getChartTypeInterface(chartID); ChartTypeUIProvider provider = getChartTypeInterface(chartID);
if (provider != null) { if (provider != null) {
return provider.needChartChangePane(); return provider.needChartChangePane();
} }
@ -467,7 +558,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
if (isIndependentChartUIProvider(injection)) { if (isIndependentChartUIProvider(injection)) {
String priority = injection.getAttribute("priority", DEFAULT_PRIORITY); String priority = injection.getAttribute("priority", DEFAULT_PRIORITY);
String plotID = injection.getAttribute("plotID"); String plotID = injection.getAttribute("plotID");
IndependentChartUIProvider instance = (IndependentChartUIProvider) injection.getObject(); ChartTypeUIProvider instance = (ChartTypeUIProvider) injection.getObject();
addChartTypeInterface(priority, plotID, instance); addChartTypeInterface(priority, plotID, instance);
} }
} }
@ -487,7 +578,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
if (chartTypeInterfaces != null) { if (chartTypeInterfaces != null) {
if (chartTypeInterfaces.containsKey(priority)) { if (chartTypeInterfaces.containsKey(priority)) {
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority); Map<String, ChartTypeUIProvider> chartUIList = chartTypeInterfaces.get(priority);
chartUIList.remove(plotID); chartUIList.remove(plotID);
} }
} }
@ -496,12 +587,12 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
private boolean isIndependentChartUIProvider(PluginSingleInjection injection) { private boolean isIndependentChartUIProvider(PluginSingleInjection injection) {
return !(injection == null || injection.getObject() == null) && IndependentChartUIProvider.XML_TAG.equals(injection.getName()) && injection.getObject() instanceof IndependentChartUIProvider; return !(injection == null || injection.getObject() == null) && ChartTypeUIProvider.XML_TAG.equals(injection.getName()) && injection.getObject() instanceof ChartTypeUIProvider;
} }
public ChartEditPane getChartEditPane(String plotID) { public ChartEditPane getChartEditPane(String plotID) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID); ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) { if (provider != null) {
return provider.getChartEditPane(plotID); return provider.getChartEditPane(plotID);
} }
@ -509,7 +600,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
} }
public ChartsConfigPane getChartConfigPane(String plotID) { public ChartsConfigPane getChartConfigPane(String plotID) {
IndependentChartUIProvider provider = getChartTypeInterface(plotID); ChartTypeUIProvider provider = getChartTypeInterface(plotID);
if (provider != null) { if (provider != null) {
return provider.getChartConfigPane(plotID); return provider.getChartConfigPane(plotID);
} }

45
designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java

@ -3,14 +3,13 @@ package com.fr.design.chart;
* the Pane of the Chart * the Pane of the Chart
*/ */
import com.fr.chart.base.ChartInternationalNameContentBean;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider; import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.locale.InterProviderFactory;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -28,29 +27,7 @@ import java.awt.Component;
public class ChartTypePane extends ChartCommonWizardPane { public class ChartTypePane extends ChartCommonWizardPane {
private static final long serialVersionUID = -1175602484968520546L; private static final long serialVersionUID = -1175602484968520546L;
private ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstanceWithCheck().getAllChartBaseNames(); private String[] chartIDs = ChartTypeManager.getInstanceWithCheck().getAllChartIDs();
private ChartProvider[][] charts4Icon = null;
{
charts4Icon = new ChartProvider[this.typeName.length][];
for (int i = 0; i < this.typeName.length; i++) {
ChartProvider[] rowCharts = ChartTypeManager.getInstanceWithCheck().getChartTypes(this.typeName[i].getChartID());
int rowChartsCount = rowCharts.length;
charts4Icon[i] = new ChartProvider[rowChartsCount];
for (int j = 0; j < rowChartsCount; j++) {
try {
charts4Icon[i][j] = (ChartProvider) rowCharts[j].clone();
//todo@shinerefactor 老图表也是提供一张图片 这边就不用setTitle(null) 然后实时去画
// charts4Icon[i][j].setTitle(null);
// if(charts4Icon[i][j].getPlot() != null){
// charts4Icon[i][j].getPlot().setLegend(null);
// }
} catch (CloneNotSupportedException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
}
}
private JList mainTypeList = null; private JList mainTypeList = null;
private JList iconViewList = null; private JList iconViewList = null;
@ -61,8 +38,8 @@ public class ChartTypePane extends ChartCommonWizardPane {
DefaultListModel defaultListModel = new DefaultListModel(); DefaultListModel defaultListModel = new DefaultListModel();
mainTypeList = new JList(defaultListModel); mainTypeList = new JList(defaultListModel);
for (int i = 0; i < typeName.length; i++) { for (int i = 0; i < chartIDs.length; i++) {
defaultListModel.insertElementAt(InterProviderFactory.getProvider().getLocText(typeName[i].getName()), i); defaultListModel.insertElementAt(ChartTypeInterfaceManager.getInstance().getName(chartIDs[i]), i);
} }
mainTypeList.addListSelectionListener(listSelectionListener); mainTypeList.addListSelectionListener(listSelectionListener);
@ -115,11 +92,15 @@ public class ChartTypePane extends ChartCommonWizardPane {
protected ListSelectionListener listSelectionListener = new ListSelectionListener() { protected ListSelectionListener listSelectionListener = new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) { public void valueChanged(ListSelectionEvent e) {
int main_index = mainTypeList.getSelectedIndex(); int main_index = mainTypeList.getSelectedIndex();
ChartProvider[] sub_charts = ChartTypePane.this.charts4Icon[main_index]; String id = ChartTypePane.this.chartIDs[main_index];
String[] demoImagePath = ChartTypeInterfaceManager.getInstance().getDemoImagePath(id);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(id);
ChartTypePane.this.iconListModel.clear(); ChartTypePane.this.iconListModel.clear();
for (int i = 0; i < sub_charts.length; i++) { for (int i = 0, len = demoImagePath.length; i < len; i++) {
String ImagePath = sub_charts[i].demoImagePath(); String ImagePath = demoImagePath[i];
String chartName = sub_charts[i].getChartName(); String chartName = subName[i];
ChartTypePane.this.iconListModel.addElement(new ChartIcon(ImagePath, chartName)); ChartTypePane.this.iconListModel.addElement(new ChartIcon(ImagePath, chartName));
} }
iconViewList.setSelectedIndex(0); iconViewList.setSelectedIndex(0);
@ -143,7 +124,7 @@ public class ChartTypePane extends ChartCommonWizardPane {
ChartProvider chart4Update = cc.getSelectedChartProvider(); ChartProvider chart4Update = cc.getSelectedChartProvider();
if (chart4Update == null) { if (chart4Update == null) {
String plotID = typeName[mainTypeList.getSelectedIndex()].getChartID(); String plotID = this.chartIDs[mainTypeList.getSelectedIndex()];
ChartProvider chart = ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()]; ChartProvider chart = ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()];
try { try {
chart4Update = (ChartProvider) chart.clone(); chart4Update = (ChartProvider) chart.clone();

139
designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java

@ -0,0 +1,139 @@
package com.fr.design.chart.fun;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.plugin.injectable.SpecialLevel;
import com.fr.stable.fun.Level;
/**
* Created by eason on 14/12/29.
*
* @since 8.0
* 自定义 图表类型 界面接口
*/
public interface ChartTypeUIProvider extends Level {
String XML_TAG = SpecialLevel.IndependentChartUIProvider.getTagName();
int CURRENT_API_LEVEL = 3;
/**
* 图表 类型定义界面类型就是属性表的第一个界面
* 可以返回null 代表没有 图表类型切换界面
*
* @return 图表的类型定义界面类型
*/
AbstractChartTypePane getPlotTypePane();
/**
* 图表 数据配置界面 即属性表的第二个界面
* 可以返回null 代表没有数据配置界面
*/
ChartDataPane getChartDataPane(AttributeChangeListener listener);
/**
* 图表 属性界面数组 其他样式界面数组
* 可以返回空数组 代表没有其他样式界面
*
* @return 属性界面
*/
AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener);
/**
* 图表 名称
* eg:柱形图
*
* @return 图表 名称
*/
String getName();
/**
* 图表 名称
* 柱形图 堆积柱形图
*
* @return 图表 名称
*/
String[] getSubName();
/**
* 图表 demo图片路径
* 400*225
* 1.图表选择界面的图的路径 原样渲染
* 2.图表属性第一个界面 类型界面 缩放渲染
*
* @return demo图片路径
*/
String[] getDemoImagePath();
/**
* 小图标路径
* 表单 工具栏 图表小图标
* 16*16
*
* @return 图标路径
*/
String getIconPath();
//todo:把下面这些接口删除
@Deprecated
boolean needChartChangePane();
/**
* 数据集数据源的界面
*
* @return 数据集数据源的界面
*/
@Deprecated
AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent);
/**
* 单元格数据源的界面
*
* @return 单元格数据源的界面
*/
@Deprecated
AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent);
/**
* 条件属性界面
*
* @return 条件属性界面
*/
@Deprecated
ConditionAttributesPane getPlotConditionPane(Plot plot);
/**
* 系列界面
*
* @return 系列界面
*/
@Deprecated
BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot);
/**
* 是否使用默认的界面为了避免界面来回切换
*
* @return 是否使用默认的界面
*/
@Deprecated
boolean isUseDefaultPane();
@Deprecated
ChartEditPane getChartEditPane(String plotID);
@Deprecated
ChartsConfigPane getChartConfigPane(String plotID);
}

99
designer-chart/src/main/java/com/fr/design/chart/fun/IndependentChartUIProvider.java

@ -1,102 +1,11 @@
package com.fr.design.chart.fun; package com.fr.design.chart.fun;
import com.fr.chart.chartattr.Plot; import com.fr.common.annotations.Compatible;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.plugin.injectable.SpecialLevel;
import com.fr.stable.fun.Level;
/** /**
* Created by eason on 14/12/29. * Created by shine on 2019/09/05.
*
* @since 8.0
* 自定义图表类型设设计界面接口
*/ */
public interface IndependentChartUIProvider extends Level { @Compatible
public interface IndependentChartUIProvider extends ChartTypeUIProvider {
String XML_TAG = SpecialLevel.IndependentChartUIProvider.getTagName();
int CURRENT_API_LEVEL = 3;
boolean needChartChangePane();
/**
* 图表的类型定义界面类型就是属性表的第一个界面
*
* @return 图表的类型定义界面类型
*/
AbstractChartTypePane getPlotTypePane();
/**
* 数据集数据源的界面
*
* @return 数据集数据源的界面
*/
AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent);
/**
* 单元格数据源的界面
*
* @return 单元格数据源的界面
*/
AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent);
/**
* 条件属性界面
*
* @return 条件属性界面
*/
ConditionAttributesPane getPlotConditionPane(Plot plot);
/**
* 系列界面
*
* @return 系列界面
*/
BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot);
/**
* 图表的属性界面数组
*
* @return 属性界面
*/
AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener);
ChartDataPane getChartDataPane(AttributeChangeListener listener);
/**
* 是否使用默认的界面为了避免界面来回切换
*
* @return 是否使用默认的界面
*/
boolean isUseDefaultPane();
/**
* 图标路径
*
* @return 图标路径
*/
String getIconPath();
/**
* plot面板的标题
*/
String getPlotTypeTitle4PopupWindow();
ChartEditPane getChartEditPane(String plotID);
ChartsConfigPane getChartConfigPane(String plotID);
} }

91
designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java

@ -0,0 +1,91 @@
package com.fr.design.chart.fun.impl;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.fun.ChartTypeUIProvider;
import com.fr.design.chartx.impl.AbstractDataPane;
import com.fr.design.chartx.impl.AbstractOtherPane;
import com.fr.design.chartx.impl.DefaultTypePane;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.stable.fun.impl.AbstractProvider;
/**
* Created by shine on 2019/09/03.
*/
public abstract class AbstractChartTypeUI extends AbstractProvider implements ChartTypeUIProvider {
@Override
public AbstractChartTypePane getPlotTypePane() {
return new DefaultTypePane();
}
@Override
public abstract AbstractDataPane getChartDataPane(AttributeChangeListener listener);
@Override
public abstract AbstractOtherPane[] getAttrPaneArray(AttributeChangeListener listener);
@Override
public String[] getSubName() {
return new String[]{getName()};
}
@Override
public int currentAPILevel() {
return CURRENT_API_LEVEL;
}
@Override
public String mark4Provider() {
return getClass().getName();
}
@Override
public boolean needChartChangePane() {
return false;
}
@Override
public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) {
return null;
}
@Override
public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) {
return null;
}
@Override
public boolean isUseDefaultPane() {
return false;
}
@Override
public ChartEditPane getChartEditPane(String plotID) {
return new ChartEditPane();
}
@Override
public ConditionAttributesPane getPlotConditionPane(Plot plot) {
return null;
}
@Override
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot) {
return null;
}
@Override
public ChartsConfigPane getChartConfigPane(String plotID) {
return null;
}
}

66
designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartUI.java

@ -1,66 +0,0 @@
package com.fr.design.chart.fun.impl;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider;
import com.fr.design.chart.series.SeriesCondition.DataSeriesConditionPane;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.general.ComparatorUtils;
import com.fr.stable.StableUtils;
/**
* Created by eason on 15/4/23.
*/
@Deprecated
public abstract class AbstractIndependentChartUI implements IndependentChartUIProvider {
@Override
public int currentAPILevel() {
return -1;
}
public AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener){
return new AbstractChartAttrPane[0];
}
public ChartDataPane getChartDataPane(AttributeChangeListener listener){
return new ChartDataPane(listener);
}
/**
* 是否使用默认的界面为了避免界面来回切换
* @return 是否使用默认的界面
*/
public boolean isUseDefaultPane(){
return true;
}
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot){
return getPlotSeriesPane();
}
public BasicBeanPane<Plot> getPlotSeriesPane(){
return null;
}
public boolean equals(Object obj) {
return obj != null && ComparatorUtils.equals(obj.getClass(), this.getClass());
}
public ConditionAttributesPane getPlotConditionPane(Plot plot){
return new DataSeriesConditionPane();
}
public ChartEditPane getChartEditPane(String plotID){ return StableUtils.construct(ChartEditPane.class);}
public ChartsConfigPane getChartConfigPane(String plotID){return null;}
}

28
designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java

@ -2,7 +2,7 @@ package com.fr.design.chart.fun.impl;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider; import com.fr.design.chart.fun.ChartTypeUIProvider;
import com.fr.design.chart.series.SeriesCondition.DataSeriesConditionPane; import com.fr.design.chart.series.SeriesCondition.DataSeriesConditionPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
@ -17,7 +17,7 @@ import com.fr.stable.StableUtils;
/** /**
* Created by Mitisky on 16/3/7. * Created by Mitisky on 16/3/7.
*/ */
public abstract class AbstractIndependentChartUIWithAPILevel implements IndependentChartUIProvider { public abstract class AbstractIndependentChartUIWithAPILevel implements ChartTypeUIProvider {
//这个不能改,是做兼容用的 //这个不能改,是做兼容用的
//2016.10.14-11.24号的8.0jar因为改了这个为3,不会提示5.26号之前的插件更新 //2016.10.14-11.24号的8.0jar因为改了这个为3,不会提示5.26号之前的插件更新
private static final int OLD_PLUGIN_LEVEL = -2; private static final int OLD_PLUGIN_LEVEL = -2;
@ -37,6 +37,22 @@ public abstract class AbstractIndependentChartUIWithAPILevel implements Independ
return new ChartDataPane(listener); return new ChartDataPane(listener);
} }
//todo@bjornrefactor 适配旧版本图表后 删掉下面两个方法
@Override
public String getName() {
return null;
}
@Override
public String[] getSubName() {
return new String[0];
}
@Override
public String[] getDemoImagePath() {
return new String[0];
}
/** /**
* 是否使用默认的界面为了避免界面来回切换 * 是否使用默认的界面为了避免界面来回切换
* @return 是否使用默认的界面 * @return 是否使用默认的界面
@ -66,14 +82,6 @@ public abstract class AbstractIndependentChartUIWithAPILevel implements Independ
return new DataSeriesConditionPane(); return new DataSeriesConditionPane();
} }
/**
* plot面板的标题
* 插件兼容
*/
public String getPlotTypeTitle4PopupWindow(){
return getPlotTypePane().title4PopupWindow();
}
public ChartEditPane getChartEditPane(String plotID){ return StableUtils.construct(ChartEditPane.class);} public ChartEditPane getChartEditPane(String plotID){ return StableUtils.construct(ChartEditPane.class);}
public ChartsConfigPane getChartConfigPane(String plotID){return null;} public ChartsConfigPane getChartConfigPane(String plotID){return null;}

27
designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java

@ -3,7 +3,7 @@ package com.fr.design.chart.fun.impl;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider; import com.fr.design.chart.fun.ChartTypeUIProvider;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
@ -26,8 +26,19 @@ import com.fr.stable.fun.mark.API;
* 用户使用第三方图表需要继承的面板抽象类 * 用户使用第三方图表需要继承的面板抽象类
*/ */
@API(level = IndependentChartUIProvider.CURRENT_API_LEVEL) @Deprecated
public abstract class AbstractIndependentChartsUI extends AbstractProvider implements IndependentChartUIProvider { @API(level = ChartTypeUIProvider.CURRENT_API_LEVEL)
public abstract class AbstractIndependentChartsUI extends AbstractProvider implements ChartTypeUIProvider {
@Override
public String getName() {
return null;
}
@Override
public String[] getSubName() {
return new String[0];
}
public String mark4Provider() { public String mark4Provider() {
return getClass().getName(); return getClass().getName();
@ -96,16 +107,6 @@ public abstract class AbstractIndependentChartsUI extends AbstractProvider imple
return "com/fr/design/images/form/toolbar/ChartF-Column.png"; return "com/fr/design/images/form/toolbar/ChartF-Column.png";
} }
@Override
/**
* plot面板的标题
* 插件兼容
*/
public String getPlotTypeTitle4PopupWindow(){
return getPlotTypePane().title4PopupWindow();
}
@Override @Override
public ChartEditPane getChartEditPane(String plotID) { public ChartEditPane getChartEditPane(String plotID) {
return new ChartsEditPane(); return new ChartsEditPane();

26
designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java

@ -2,21 +2,21 @@ package com.fr.design.chart.gui;
import com.fr.base.ScreenResolution; import com.fr.base.ScreenResolution;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BaseChartPainter;
import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.chart.ChartWebPara; import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.base.ChartConstants; import com.fr.chart.base.ChartConstants;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.gui.chart.MiddleChartComponent;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.script.Calculator;
import com.fr.stable.core.PropertyChangeListener; import com.fr.stable.core.PropertyChangeListener;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Paint; import java.awt.Paint;
import java.awt.RenderingHints; import java.awt.RenderingHints;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
@ -35,7 +35,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
private static final long serialVersionUID = 744164838619052097L; private static final long serialVersionUID = 744164838619052097L;
private final List<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>(); private final List<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
private ChartCollection chartCollection4Design; private ChartCollection chartCollection4Design;
private ChartProvider editingChart;
private int chartWidth = -1; private int chartWidth = -1;
private int chartHeight = -1; private int chartHeight = -1;
@ -91,11 +90,8 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
public void reset() { public void reset() {
fireStopEditing(); fireStopEditing();
this.editingChart = null;
this.chartHeight = this.chartWidth = -1; this.chartHeight = this.chartWidth = -1;
this.editingChart = this.chartCollection4Design.getSelectedChartProvider();
refreshChartGlyph(); refreshChartGlyph();
repaint(); repaint();
@ -138,11 +134,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
return (this.chartCollection4Design == null) ? 0 : this.chartCollection4Design.getChartCount(); return (this.chartCollection4Design == null) ? 0 : this.chartCollection4Design.getChartCount();
} }
public ChartProvider getEditingChart() {
return editingChart;
}
public void paintComponent(Graphics g) { // public void paintComponent(Graphics g) { //
super.paintComponent(g); super.paintComponent(g);
@ -180,7 +171,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
*/ */
private void refreshChartGlyph() { private void refreshChartGlyph() {
Dimension d = getBounds().getSize(); Dimension d = getBounds().getSize();
this.editingChart = this.chartCollection4Design.getSelectedChartProvider();// kunsnat: 切换选中时 同步切换Plot
this.chartWidth = d.width - ChartConstants.PREGAP4BOUNDS; this.chartWidth = d.width - ChartConstants.PREGAP4BOUNDS;
this.chartHeight = d.height - ChartConstants.PREGAP4BOUNDS; this.chartHeight = d.height - ChartConstants.PREGAP4BOUNDS;
} }
@ -240,20 +230,20 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
} }
private boolean needRefreshChartGlyph() { private boolean needRefreshChartGlyph() {
return editingChart == null || chartWidth != this.getBounds().width || chartHeight != this.getBounds().height; return chartWidth != this.getBounds().width || chartHeight != this.getBounds().height;
} }
private void drawChart(Graphics2D g2d) { private void drawChart(Graphics2D g2d) {
if (editingChart != null) { if (chartCollection4Design != null) {
BaseChartPainter painter = chartCollection4Design.createResultChartPainter(Calculator.createCalculator(),
WebChartIDInfo.createEmptyDesignerInfo(), chartWidth, chartHeight);
int resolution = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getJTemplateResolution(); int resolution = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getJTemplateResolution();
if (resolution == 0){ if (resolution == 0){
resolution = ScreenResolution.getScreenResolution(); resolution = ScreenResolution.getScreenResolution();
} }
Image chartImage = editingChart.toImage(chartWidth, chartHeight, resolution, new ChartWebPara()); painter.paint(g2d, chartWidth, chartHeight, resolution, null);
g2d.drawImage(chartImage, 0, 0, null);
} }
} }

2
designer-chart/src/main/java/com/fr/design/chart/gui/ChartWidgetOption.java

@ -37,7 +37,7 @@ public class ChartWidgetOption extends WidgetOption {
Class<? extends ChartEditor> clz = widgetClass(); Class<? extends ChartEditor> clz = widgetClass();
try { try {
ChartEditor widget = clz.newInstance(); ChartEditor widget = clz.newInstance();
widget.setChartCollection(BaseChartGetter.createChartCollection(this.chartID)); widget.resetChangeChartCollection(BaseChartGetter.createChartCollection(this.chartID));
return widget; return widget;
} catch (InstantiationException e) { } catch (InstantiationException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);

30
designer-chart/src/main/java/com/fr/design/chartx/MultiCategoryChartDataPane.java → designer-chart/src/main/java/com/fr/design/chartx/AbstractVanSingleDataPane.java

@ -1,24 +1,30 @@
package com.fr.design.chartx; package com.fr.design.chartx;
import com.fr.chartx.data.AbstractDataDefinition; import com.fr.chartx.data.AbstractDataDefinition;
import com.fr.design.chartx.fields.diff.MultiCategoryCellDataFieldsPane;
import com.fr.design.chartx.fields.diff.MultiCategoryDataSetFieldsPane;
import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import javax.swing.JPanel; import javax.swing.JPanel;
/** /**
* Created by shine on 2019/5/22. * Created by shine on 2019/09/06.
*/ */
public class MultiCategoryChartDataPane extends AbstractChartDataPane<AbstractDataDefinition> { public abstract class AbstractVanSingleDataPane extends AbstractChartDataPane<AbstractDataDefinition> {
private SingleDataPane singleDataPane; private SingleDataPane singleDataPane;
public MultiCategoryChartDataPane(AttributeChangeListener listener) {
public AbstractVanSingleDataPane(AttributeChangeListener listener) {
super(listener); super(listener);
} }
@Override
protected JPanel createContentPane() {
singleDataPane = createSingleDataPane();
return singleDataPane;
}
protected abstract SingleDataPane createSingleDataPane();
@Override @Override
protected void populate(AbstractDataDefinition dataDefinition) { protected void populate(AbstractDataDefinition dataDefinition) {
singleDataPane.populateBean(dataDefinition); singleDataPane.populateBean(dataDefinition);
@ -28,16 +34,4 @@ public class MultiCategoryChartDataPane extends AbstractChartDataPane<AbstractDa
protected AbstractDataDefinition update() { protected AbstractDataDefinition update() {
return singleDataPane.updateBean(); return singleDataPane.updateBean();
} }
@Override
protected JPanel createContentPane() {
singleDataPane = createSingleDataPane();
return singleDataPane;
}
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane());
}
} }

25
designer-chart/src/main/java/com/fr/design/chartx/GanttChartDataPane.java

@ -1,6 +1,9 @@
package com.fr.design.chartx; package com.fr.design.chartx;
import com.fr.chartx.data.GanttChartDataDefinition; import com.fr.chartx.data.GanttChartDataDefinition;
import com.fr.design.chartx.fields.diff.MultiCategoryCellDataFieldsPane;
import com.fr.design.chartx.fields.diff.MultiCategoryDataSetFieldsPane;
import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.van.chart.map.designer.VanChartGroupPane; import com.fr.van.chart.map.designer.VanChartGroupPane;
@ -11,13 +14,23 @@ import javax.swing.JPanel;
*/ */
public class GanttChartDataPane extends AbstractChartDataPane<GanttChartDataDefinition> { public class GanttChartDataPane extends AbstractChartDataPane<GanttChartDataDefinition> {
private MultiCategoryChartDataPane dataPane; private AbstractVanSingleDataPane dataPane;
private MultiCategoryChartDataPane linkPane; private AbstractVanSingleDataPane linkPane;
@Override @Override
protected JPanel createContentPane() { protected JPanel createContentPane() {
dataPane = new MultiCategoryChartDataPane(listener); dataPane = new AbstractVanSingleDataPane(listener) {
linkPane = new MultiCategoryChartDataPane(listener); @Override
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane());
}
};
linkPane = new AbstractVanSingleDataPane(listener) {
@Override
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane());
}
};
return new VanChartGroupPane(new String[]{"data", "link"}, new JPanel[]{dataPane, linkPane}) { return new VanChartGroupPane(new String[]{"data", "link"}, new JPanel[]{dataPane, linkPane}) {
}; };
} }
@ -27,13 +40,13 @@ public class GanttChartDataPane extends AbstractChartDataPane<GanttChartDataDefi
} }
@Override @Override
protected void populate(GanttChartDataDefinition ganttChartDataDefinition) { public void populate(GanttChartDataDefinition ganttChartDataDefinition) {
dataPane.populate(ganttChartDataDefinition.getDataDefinition()); dataPane.populate(ganttChartDataDefinition.getDataDefinition());
linkPane.populate(ganttChartDataDefinition.getLinkDefinition()); linkPane.populate(ganttChartDataDefinition.getLinkDefinition());
} }
@Override @Override
protected GanttChartDataDefinition update() { public GanttChartDataDefinition update() {
return null; return null;
} }
} }

21
designer-chart/src/main/java/com/fr/design/chartx/MultiPieChartDataPane.java

@ -1,21 +0,0 @@
package com.fr.design.chartx;
import com.fr.design.chartx.fields.diff.MultiPieCellDataFieldsPane;
import com.fr.design.chartx.fields.diff.MultiPieDataSetFieldsPane;
import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
/**
* Created by shine on 2019/6/18.
*/
public class MultiPieChartDataPane extends MultiCategoryChartDataPane {
public MultiPieChartDataPane(AttributeChangeListener listener) {
super(listener);
}
@Override
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new MultiPieDataSetFieldsPane(), new MultiPieCellDataFieldsPane());
}
}

23
designer-chart/src/main/java/com/fr/design/chartx/StructureChartDataPane.java

@ -1,23 +0,0 @@
package com.fr.design.chartx;
import com.fr.design.chartx.fields.diff.StructureCellDataFieldsPane;
import com.fr.design.chartx.fields.diff.StructureDataSetFieldsPane;
import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
/**
* @author Bjorn
* @version 10.0
* Created by Bjorn on 2019-09-02
*/
public class StructureChartDataPane extends MultiCategoryChartDataPane {
public StructureChartDataPane(AttributeChangeListener listener) {
super(listener);
}
@Override
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new StructureDataSetFieldsPane(), new StructureCellDataFieldsPane());
}
}

20
designer-chart/src/main/java/com/fr/design/chartx/WordCloudChartDataPane.java

@ -1,20 +0,0 @@
package com.fr.design.chartx;
import com.fr.design.chartx.fields.diff.WordCloudCellDataFieldsPane;
import com.fr.design.chartx.fields.diff.WordCloudDataSetFieldsPane;
import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
/**
* Created by shine on 2019/5/22.
*/
public class WordCloudChartDataPane extends MultiCategoryChartDataPane {
public WordCloudChartDataPane(AttributeChangeListener listener) {
super(listener);
}
@Override
protected SingleDataPane createSingleDataPane() {
return new SingleDataPane(new WordCloudDataSetFieldsPane(), new WordCloudCellDataFieldsPane());
}
}

68
designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractDataPane.java

@ -0,0 +1,68 @@
package com.fr.design.chartx.impl;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.impl.AbstractChartWithData;
import com.fr.chartx.data.AbstractDataDefinition;
import com.fr.chartx.data.ChartDataDefinitionProvider;
import com.fr.design.chartx.single.SingleDataPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.plugin.chart.vanchart.VanChart;
import javax.swing.JPanel;
import java.awt.BorderLayout;
/**
* Created by shine on 2019/09/04.
*/
public abstract class AbstractDataPane extends ChartDataPane {
private SingleDataPane singleDataPane;
public AbstractDataPane(AttributeChangeListener listener) {
super(listener);
}
@Override
protected JPanel createContentPane() {
singleDataPane = createSingleDataPane();
return singleDataPane;
}
protected abstract SingleDataPane createSingleDataPane();
@Override
public void populate(ChartCollection collection) {
if (collection == null) {
return;
}
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class);
if (chart == null) {
return;
}
this.removeAll();
this.add(createContentPane(), BorderLayout.CENTER);
ChartDataDefinitionProvider dataDefinition = chart.getChartDataDefinition();
singleDataPane.populateBean((AbstractDataDefinition) dataDefinition);
this.initAllListeners();
this.validate();
}
@Override
public void update(ChartCollection collection) {
if (collection == null) {
return;
}
VanChart chart = collection.getSelectedChart(VanChart.class);
if (chart == null) {
return;
}
chart.setChartDataDefinition(singleDataPane.updateBean());
}
}

42
designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractOtherPane.java

@ -0,0 +1,42 @@
package com.fr.design.chartx.impl;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.impl.AbstractChartWithData;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
/**
* Created by shine on 2019/09/04.
*/
public abstract class AbstractOtherPane<T extends AbstractChartWithData> extends AbstractChartAttrPane {
protected abstract void populate(T chart);
protected abstract void update(T chart);
@Override
public void populate(ChartCollection collection) {
if (collection == null) {
return;
}
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class);
if (chart == null) {
return;
}
populate((T) chart);
}
@Override
public void update(ChartCollection collection) {
if (collection == null) {
return;
}
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class);
if (chart == null) {
return;
}
update((T) chart);
}
}

79
designer-chart/src/main/java/com/fr/design/chartx/impl/DefaultTypePane.java

@ -0,0 +1,79 @@
package com.fr.design.chartx.impl;
import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chart.impl.AbstractChartWithData;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.design.mainframe.chart.gui.type.ChartImagePane;
/**
* Created by shine on 2019/09/04.
*/
public class DefaultTypePane<T extends AbstractChartWithData> extends AbstractChartTypePane<AbstractChartWithData> {
@Override
protected String[] getTypeIconPath() {
return ChartTypeInterfaceManager.getInstance().getDemoImagePath(getPlotID());
}
@Override
protected String[] getTypeTipName() {
return ChartTypeInterfaceManager.getInstance().getSubName(getPlotID());
}
@Override
public ChartProvider getDefaultChart() {
return ChartTypeManager.getInstance().getChartTypes(getPlotID())[0];
}
@Override
public String title4PopupWindow() {
return ChartTypeInterfaceManager.getInstance().getName(getPlotID());
}
protected int getSelectIndexInChart(T chart) {
return 0;
}
protected void setSelectIndexInChart(T chart, int index) {
}
@Override
public void populateBean(AbstractChartWithData ob) {
if (getTypeIconPath().length > 0) {
for (ChartImagePane imagePane : typeDemo) {
imagePane.isPressing = false;
}
typeDemo.get(getSelectIndexInChart((T) ob)).isPressing = true;
checkDemosBackground();
}
}
@Override
public void updateBean(AbstractChartWithData ob) {
if (getTypeIconPath().length > 0) {
for (int index = 0, len = typeDemo.size(); index < len; index++) {
if (typeDemo.get(index).isPressing) {
setSelectIndexInChart((T) ob, index);
return;
}
}
}
}
@Override
protected String[] getTypeLayoutPath() {
return new String[0];
}
@Override
protected String[] getTypeLayoutTipName() {
return new String[0];
}
@Override
protected String getPlotTypeID() {
return null;
}
}

8
designer-chart/src/main/java/com/fr/design/mainframe/chart/ChartsEditPane.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe.chart; package com.fr.design.mainframe.chart;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
@ -30,15 +31,16 @@ public class ChartsEditPane extends ChartEditPane {
* 重新构造面板 * 重新构造面板
* @param currentChart 图表 * @param currentChart 图表
*/ */
public void reLayout(Chart currentChart) { public void reLayout(ChartProvider currentChart) {
if (currentChart != null) { if (currentChart != null) {
Chart chart = (Chart) currentChart;
this.removeAll(); this.removeAll();
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
paneList = new ArrayList<AbstractChartAttrPane>(); paneList = new ArrayList<AbstractChartAttrPane>();
String plotID = ""; String plotID = "";
if (currentChart.getPlot() != null) { if (chart.getPlot() != null) {
plotID = currentChart.getPlot().getPlotID(); plotID = chart.getPlot().getPlotID();
} }
dataPane4SupportCell = createChartDataPane(plotID); dataPane4SupportCell = createChartDataPane(plotID);

5
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java

@ -178,9 +178,8 @@ public class ChartTypeButtonPane extends BasicBeanPane<ChartCollection> implemen
*/ */
public ChartProvider getChangeStateNewChart() { public ChartProvider getChangeStateNewChart() {
ChartProvider chart = editingCollection.getSelectedChartProvider(); ChartProvider chart = editingCollection.getSelectedChartProvider();
String priority = ChartTypeManager.VAN_CHART_PRIORITY; String chartID = chart.getID();
//todo@shinerefactor String priority = ChartTypeManager.getInstanceWithCheck().getPriority(chartID);
// chart.getPriority();
return ChartTypeManager.getInstanceWithCheck().getFirstChart(priority); return ChartTypeManager.getInstanceWithCheck().getFirstChart(priority);
} }

19
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypePane.java

@ -1,6 +1,5 @@
package com.fr.design.mainframe.chart.gui; package com.fr.design.mainframe.chart.gui;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.SwitchState; import com.fr.chart.chartattr.SwitchState;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
@ -146,12 +145,6 @@ public class ChartTypePane extends AbstractChartAttrPane{
//chartID改变的话图表类型就算改变了 //chartID改变的话图表类型就算改变了
if (StringUtils.isNotEmpty(chartID)) { if (StringUtils.isNotEmpty(chartID)) {
if (chart instanceof Chart) {
//todo@shinerefactor: 这边看下是否可以删除
((Chart) chart).setWrapperName(ChartTypeManager.getInstanceWithCheck().getWrapperName(chartID));
((Chart) chart).setChartImagePath(ChartTypeManager.getInstanceWithCheck().getChartImagePath(chartID));
}
boolean isUseDefault = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(chartID); boolean isUseDefault = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(chartID);
if (editPane.isDefaultPane() != isUseDefault || (!isUseDefault && !ComparatorUtils.equals(lastPlotID, chartID))) { if (editPane.isDefaultPane() != isUseDefault || (!isUseDefault && !ComparatorUtils.equals(lastPlotID, chartID))) {
@ -217,12 +210,10 @@ public class ChartTypePane extends AbstractChartAttrPane{
private void relayout(ChartCollection collection){ private void relayout(ChartCollection collection){
//重构需要重构下拉框选项和cardNames //重构需要重构下拉框选项和cardNames
ChartProvider chart = collection.getSelectedChartProvider(); ChartProvider chart = collection.getSelectedChartProvider();
String priority = ChartTypeManager.VAN_CHART_PRIORITY; String chartID = chart.getID();
//TODO@shinerefactor String priority = ChartTypeManager.getInstanceWithCheck().getPriority(chartID);
// chart.getPriority(); boolean enabledChart = ChartTypeManager.enabledChart(chartID);
String plotID = chart.getID(); String item = ChartTypeInterfaceManager.getInstance().getName(chartID);
boolean enabledChart = ChartTypeManager.enabledChart(plotID);
String item = ChartTypeInterfaceManager.getInstance().getTitle4PopupWindow(priority, plotID);
//第一步就是重构cards //第一步就是重构cards
cards.clear(); cards.clear();
@ -233,7 +224,7 @@ public class ChartTypePane extends AbstractChartAttrPane{
addOnePriorityCards(priority); addOnePriorityCards(priority);
} }
} else { } else {
addOnePlotIDCards(priority, plotID); addOnePlotIDCards(priority, chartID);
} }
//下拉框重构开始。为了防止重构是触发update //下拉框重构开始。为了防止重构是触发update

19
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java

@ -60,6 +60,11 @@ public abstract class AbstractChartTypePane<T extends ChartProvider> extends Fur
} }
public AbstractChartTypePane() { public AbstractChartTypePane() {
}
public void reLayout(String chartID) {
this.plotID = chartID;
double vs = 4; double vs = 4;
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;
double f = TableLayout.FILL; double f = TableLayout.FILL;
@ -156,11 +161,13 @@ public abstract class AbstractChartTypePane<T extends ChartProvider> extends Fur
} }
} }
if (this.typeDemo != null && !typeDemo.isEmpty()) {
for (int i = 0; i < typeDemo.size(); i++) { for (int i = 0; i < typeDemo.size(); i++) {
typeDemo.get(i).checkBorder(); typeDemo.get(i).checkBorder();
typeDemo.get(i).repaint(); typeDemo.get(i).repaint();
} }
} }
}
/** /**
* 更新整个新的Chart类型 * 更新整个新的Chart类型
@ -197,22 +204,14 @@ public abstract class AbstractChartTypePane<T extends ChartProvider> extends Fur
return plotID; return plotID;
} }
public void setPlotID(String plotID) {
this.plotID = plotID;
}
/** /**
* *
* @param ob 对象 * @param ob 对象
* @return * @return
*/ */
public boolean accept(Object ob) { public boolean accept(Object ob) {
if(ob instanceof Chart){ if (ob instanceof ChartProvider) {
Chart chart = (Chart)ob; return ComparatorUtils.equals(((ChartProvider) ob).getID(), getPlotID());
Plot plot = chart.getPlot();
if(plot != null && ComparatorUtils.equals(plot.getPlotID(), getPlotID())){
return true;
}
} }
return false; return false;
} }

21
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/ChartImagePane.java

@ -5,9 +5,13 @@ import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import javax.swing.*; import javax.swing.BorderFactory;
import java.awt.*; import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
public class ChartImagePane extends ChartSelectDemoPane { public class ChartImagePane extends ChartSelectDemoPane {
private static final long serialVersionUID = -2785128245790568603L; private static final long serialVersionUID = -2785128245790568603L;
@ -33,9 +37,18 @@ public class ChartImagePane extends ChartSelectDemoPane {
constructImagePane(fullIconPath, tipName, isDrawRightLine); constructImagePane(fullIconPath, tipName, isDrawRightLine);
} }
private void constructImagePane(String fullIconPath, String tipName, boolean isDrawRightLine){ private void constructImagePane(final String fullIconPath, String tipName, boolean isDrawRightLine) {
UILabel image = new UILabel() {
@Override
public void paint(Graphics g) {
super.paint(g);
BufferedImage image1 = IOUtils.readImageWithCache(fullIconPath);
g.drawImage(image1, 0, 0, IMAGE_WIDTH, IMAGE_HIGTH, null);
}
};
UILabel image = new UILabel(IOUtils.readIcon(fullIconPath));
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(image, BorderLayout.CENTER); this.add(image, BorderLayout.CENTER);
addMouseListener(this); addMouseListener(this);

19
designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartUIProvider.java

@ -2,7 +2,7 @@ package com.fr.extended.chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider; import com.fr.design.chart.fun.ChartTypeUIProvider;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
@ -13,18 +13,27 @@ import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.stable.StringUtils;
import com.fr.stable.fun.impl.AbstractProvider; import com.fr.stable.fun.impl.AbstractProvider;
/** /**
* Created by shine on 2018/3/2. * Created by shine on 2018/3/2.
*/ */
public abstract class AbstractExtendedChartUIProvider extends AbstractProvider implements IndependentChartUIProvider { public abstract class AbstractExtendedChartUIProvider extends AbstractProvider implements ChartTypeUIProvider {
protected abstract AbstractExtendedChartTableDataPane getTableDataSourcePane(); protected abstract AbstractExtendedChartTableDataPane getTableDataSourcePane();
protected abstract AbstractReportDataContentPane getReportDataSourcePane(); protected abstract AbstractReportDataContentPane getReportDataSourcePane();
@Override
public String getName() {
return null;
}
@Override
public String[] getSubName() {
return new String[0];
}
@Override @Override
public boolean needChartChangePane() { public boolean needChartChangePane() {
return false; return false;
@ -85,10 +94,6 @@ public abstract class AbstractExtendedChartUIProvider extends AbstractProvider i
return null; return null;
} }
public String getPlotTypeTitle4PopupWindow(){
return StringUtils.EMPTY;
}
@Override @Override
public ChartsConfigPane getChartConfigPane(String plotID) { public ChartsConfigPane getChartConfigPane(String plotID) {
return null; return null;

3
designer-chart/src/main/java/com/fr/extended/chart/ExtendedTypePane.java

@ -2,6 +2,7 @@ package com.fr.extended.chart;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider; import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.design.mainframe.chart.gui.type.ChartImagePane; import com.fr.design.mainframe.chart.gui.type.ChartImagePane;
@ -71,7 +72,7 @@ public class ExtendedTypePane<T extends AbstractChart> extends AbstractChartType
@Override @Override
public String title4PopupWindow() { public String title4PopupWindow() {
return ChartTypeManager.getInstance().getChartName(getPlotID()); return ChartTypeInterfaceManager.getInstance().getName(getPlotID());
} }
@Override @Override

37
designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java

@ -3,6 +3,7 @@ package com.fr.van.chart.area;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI; import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI;
@ -16,6 +17,34 @@ public class AreaIndependentVanChartInterface extends AbstractMultiCategoryVanCh
return "com/fr/design/images/form/toolbar/area.png"; return "com/fr/design/images/form/toolbar/area.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Area");
}
@Override
public String[] getSubName() {
String area = Toolkit.i18nText("Fine-Design_Chart_New_Area");
String stack = Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
area,
stack + area,
percent + stack + area,
Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/14.png",
"com/fr/plugin/chart/demo/image/15.png",
"com/fr/plugin/chart/demo/image/16.png",
"com/fr/plugin/chart/demo/image/17.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartAreaPlotPane(); return new VanChartAreaPlotPane();
@ -29,12 +58,4 @@ public class AreaIndependentVanChartInterface extends AbstractMultiCategoryVanCh
return new VanChartAreaSeriesPane(parent, plot); return new VanChartAreaSeriesPane(parent, plot);
} }
/**
* plot面板的标题
* 插件兼容
*/
public String getPlotTypeTitle4PopupWindow(){
return VanChartAreaPlotPane.TITLE;
}
} }

37
designer-chart/src/main/java/com/fr/van/chart/area/VanChartAreaPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.area;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.area.AreaIndependentVanChart; import com.fr.plugin.chart.area.AreaIndependentVanChart;
import com.fr.plugin.chart.area.VanChartAreaPlot; import com.fr.plugin.chart.area.VanChartAreaPlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,8 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/11/18. * Created by Mitisky on 15/11/18.
*/ */
public class VanChartAreaPlotPane extends AbstractVanChartTypePane { public class VanChartAreaPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Area");
private static final long serialVersionUID = -8161581682558781651L;
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -25,40 +22,6 @@ public class VanChartAreaPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
String area = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Area");
String stack = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
area,
stack + area,
percent + stack + area,
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
/**
* 返回界面标题
*
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Area");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartAreaPlot.VAN_CHART_AREA_PLOT_ID;
}
protected Plot getSelectedClonedPlot() { protected Plot getSelectedClonedPlot() {
VanChartAreaPlot newPlot = null; VanChartAreaPlot newPlot = null;
Chart[] areaChart = AreaIndependentVanChart.AreaVanChartTypes; Chart[] areaChart = AreaIndependentVanChart.AreaVanChartTypes;

38
designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java

@ -4,6 +4,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -17,6 +18,35 @@ import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI;
* Created by Mitisky on 15/10/20. * Created by Mitisky on 15/10/20.
*/ */
public class BarIndependentVanChartInterface extends AbstractMultiCategoryVanChartUI { public class BarIndependentVanChartInterface extends AbstractMultiCategoryVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Bar");
}
@Override
public String[] getSubName() {
String bar = Toolkit.i18nText("Fine-Design_Chart_New_Bar");
String stack = Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
bar,
stack + bar,
percent + stack + bar,
Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/7.png",
"com/fr/plugin/chart/demo/image/8.png",
"com/fr/plugin/chart/demo/image/9.png",
"com/fr/plugin/chart/demo/image/10.png",
};
}
@Override @Override
public String getIconPath() { public String getIconPath() {
return "com/fr/design/images/form/toolbar/bar.png"; return "com/fr/design/images/form/toolbar/bar.png";
@ -45,12 +75,4 @@ public class BarIndependentVanChartInterface extends AbstractMultiCategoryVanCha
return new AbstractChartAttrPane[]{stylePane, otherPane}; return new AbstractChartAttrPane[]{stylePane, otherPane};
} }
/**
* plot面板的标题
* 插件兼容
*/
public String getPlotTypeTitle4PopupWindow(){
return VanChartBarPlotPane.TITLE;
}
} }

36
designer-chart/src/main/java/com/fr/van/chart/bar/VanChartBarPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.bar;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.bar.BarIndependentVanChart; import com.fr.plugin.chart.bar.BarIndependentVanChart;
import com.fr.plugin.chart.column.VanChartColumnPlot; import com.fr.plugin.chart.column.VanChartColumnPlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,9 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/10/20. * Created by Mitisky on 15/10/20.
*/ */
public class VanChartBarPlotPane extends AbstractVanChartTypePane { public class VanChartBarPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Bar");
private static final long serialVersionUID = 2879689884048643002L;
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -25,38 +21,6 @@ public class VanChartBarPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
String bar = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Bar");
String stack = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
bar,
stack + bar,
percent + stack + bar,
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Bar");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartColumnPlot.VAN_CHART_BAR_PLOT_ID;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartColumnPlot newPlot = null; VanChartColumnPlot newPlot = null;
Chart[] barChart = BarIndependentVanChart.BarVanChartTypes; Chart[] barChart = BarIndependentVanChart.BarVanChartTypes;

26
designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -22,6 +23,27 @@ import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
* Created by Mitisky on 16/3/31. * Created by Mitisky on 16/3/31.
*/ */
public class BubbleIndependentVanChartInterface extends AbstractIndependentVanChartUI { public class BubbleIndependentVanChartInterface extends AbstractIndependentVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Bubble");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Bubble_Chart"),
Toolkit.i18nText("Fine-Design_Chart_New_Force_Bubble")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/26.png",
"com/fr/plugin/chart/demo/image/27.png"
};
}
/** /**
* 图表的类型定义界面类型就是属性表的第一个界面 * 图表的类型定义界面类型就是属性表的第一个界面
* *
@ -79,8 +101,4 @@ public class BubbleIndependentVanChartInterface extends AbstractIndependentVanCh
public ConditionAttributesPane getPlotConditionPane(Plot plot){ public ConditionAttributesPane getPlotConditionPane(Plot plot){
return new VanChartBubbleConditionPane(plot); return new VanChartBubbleConditionPane(plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartBubblePlotPane.TITLE;
}
} }

29
designer-chart/src/main/java/com/fr/van/chart/bubble/VanChartBubblePlotPane.java

@ -7,7 +7,6 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chart.chartglyph.ConditionCollection; import com.fr.chart.chartglyph.ConditionCollection;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.base.VanChartZoom; import com.fr.plugin.chart.base.VanChartZoom;
import com.fr.plugin.chart.bubble.BubbleIndependentVanChart; import com.fr.plugin.chart.bubble.BubbleIndependentVanChart;
@ -20,7 +19,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 16/3/31. * Created by Mitisky on 16/3/31.
*/ */
public class VanChartBubblePlotPane extends AbstractVanChartTypePane { public class VanChartBubblePlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Bubble");;
private static final long serialVersionUID = -3481633368542654247L; private static final long serialVersionUID = -3481633368542654247L;
@ -35,23 +33,6 @@ public class VanChartBubblePlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Bubble_Chart"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Force_Bubble")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Bubble");
}
private void removeDefaultAttr(ConditionAttr conditionAttr, Class <? extends DataSeriesCondition> targetClass) { private void removeDefaultAttr(ConditionAttr conditionAttr, Class <? extends DataSeriesCondition> targetClass) {
DataSeriesCondition attr = conditionAttr.getExisted(targetClass); DataSeriesCondition attr = conditionAttr.getExisted(targetClass);
if (attr != null){ if (attr != null){
@ -59,16 +40,6 @@ public class VanChartBubblePlotPane extends AbstractVanChartTypePane {
} }
} }
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartBubblePlot.VAN_CHART_BUBBLE_PLOT_ID;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartBubblePlot newPlot = null; VanChartBubblePlot newPlot = null;
Chart[] bubbleChart = BubbleIndependentVanChart.BubbleVanChartTypes; Chart[] bubbleChart = BubbleIndependentVanChart.BubbleVanChartTypes;

44
designer-chart/src/main/java/com/fr/van/chart/column/ColumnIndependentVanChartInterface.java

@ -2,10 +2,8 @@ package com.fr.van.chart.column;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chartx.MultiCategoryChartDataPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI; import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI;
@ -14,6 +12,35 @@ import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI;
* Created by Mitisky on 15/9/24. * Created by Mitisky on 15/9/24.
*/ */
public class ColumnIndependentVanChartInterface extends AbstractMultiCategoryVanChartUI { public class ColumnIndependentVanChartInterface extends AbstractMultiCategoryVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Column");
}
@Override
public String[] getSubName() {
String column = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column");
String stack = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
column,
stack + column,
percent + stack + column,
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/3.png",
"com/fr/plugin/chart/demo/image/4.png",
"com/fr/plugin/chart/demo/image/5.png",
"com/fr/plugin/chart/demo/image/6.png",
};
}
@Override @Override
public String getIconPath() { public String getIconPath() {
return "com/fr/design/images/form/toolbar/column.png"; return "com/fr/design/images/form/toolbar/column.png";
@ -33,12 +60,13 @@ public class ColumnIndependentVanChartInterface extends AbstractMultiCategoryVan
return new VanChartColumnSeriesPane(parent, plot); return new VanChartColumnSeriesPane(parent, plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartColumnPlotPane.TITLE;
}
// @Override // @Override
// public ChartDataPane getChartDataPane(AttributeChangeListener listener) { // public ChartDataPane getChartDataPane(AttributeChangeListener listener) {
// return new MultiCategoryChartDataPane(listener); // return new AbstractDataPane(listener) {
// @Override
// protected SingleDataPane createSingleDataPane() {
// return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane());
// }
// };
// } // }
} }

37
designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.column;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.column.ColumnIndependentVanChart; import com.fr.plugin.chart.column.ColumnIndependentVanChart;
import com.fr.plugin.chart.column.VanChartColumnPlot; import com.fr.plugin.chart.column.VanChartColumnPlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,10 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/9/24. * Created by Mitisky on 15/9/24.
*/ */
public class VanChartColumnPlotPane extends AbstractVanChartTypePane { public class VanChartColumnPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column");
private static final long serialVersionUID = 5950923001789733745L;
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -26,38 +21,6 @@ public class VanChartColumnPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
String column = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column");
String stack = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Stacked");
String percent = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Percent");
return new String[]{
column,
stack + column,
percent + stack + column,
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartColumnPlot newPlot = null; VanChartColumnPlot newPlot = null;
Chart[] columnChart = ColumnIndependentVanChart.ColumnVanChartTypes; Chart[] columnChart = ColumnIndependentVanChart.ColumnVanChartTypes;

30
designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java

@ -1,6 +1,7 @@
package com.fr.van.chart.custom; package com.fr.van.chart.custom;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -14,6 +15,31 @@ import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
* Created by Mitisky on 16/2/16. * Created by Mitisky on 16/2/16.
*/ */
public class CustomIndependentVanChartInterface extends AbstractIndependentVanChartUI { public class CustomIndependentVanChartInterface extends AbstractIndependentVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Combine");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_New_Column_Line"),
Toolkit.i18nText("Fine-Design_Chart_New_Column_Area"),
Toolkit.i18nText("Fine-Design_Chart_New_StackColumn_Line"),
Toolkit.i18nText("Fine-Design_Chart_New_Custom_Combine")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/28.png",
"com/fr/plugin/chart/demo/image/29.png",
"com/fr/plugin/chart/demo/image/30.png",
"com/fr/plugin/chart/demo/image/31.png"
};
}
/** /**
* 图表的类型定义界面类型就是属性表的第一个界面 * 图表的类型定义界面类型就是属性表的第一个界面
* *
@ -49,8 +75,4 @@ public class CustomIndependentVanChartInterface extends AbstractIndependentVanCh
public ChartDataPane getChartDataPane(AttributeChangeListener listener){ public ChartDataPane getChartDataPane(AttributeChangeListener listener){
return new VanChartCustomDataPane(listener); return new VanChartCustomDataPane(listener);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartCustomPlotPane.TITLE;
}
} }

32
designer-chart/src/main/java/com/fr/van/chart/custom/VanChartCustomPlotPane.java

@ -10,7 +10,6 @@ import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.type.ChartImagePane; import com.fr.design.mainframe.chart.gui.type.ChartImagePane;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartAttrLine; import com.fr.plugin.chart.base.VanChartAttrLine;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.custom.CustomDefinition; import com.fr.plugin.chart.custom.CustomDefinition;
@ -35,7 +34,6 @@ import java.util.Map;
* Created by Mitisky on 16/2/16. * Created by Mitisky on 16/2/16.
*/ */
public class VanChartCustomPlotPane extends AbstractVanChartTypePane { public class VanChartCustomPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Combine");
//是否选择自定义 //是否选择自定义
private boolean isCustom = false; private boolean isCustom = false;
@ -114,26 +112,6 @@ public class VanChartCustomPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column_Line"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Column_Area"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_StackColumn_Line"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Custom_Combine")
};
}
@Override
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Combine");
}
@Override @Override
public void updateBean(Chart chart) { public void updateBean(Chart chart) {
@ -241,16 +219,6 @@ public class VanChartCustomPlotPane extends AbstractVanChartTypePane {
} }
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartCustomPlot.VAN_CHART_CUSTOM_PLOT_ID;
}
protected Plot getSelectedClonedPlot() { protected Plot getSelectedClonedPlot() {
VanChartCustomPlot newPlot = null; VanChartCustomPlot newPlot = null;
Chart[] customChart = CustomIndependentVanChart.CustomVanChartTypes; Chart[] customChart = CustomIndependentVanChart.CustomVanChartTypes;

16
designer-chart/src/main/java/com/fr/van/chart/designer/type/AbstractVanChartTypePane.java

@ -7,6 +7,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chart.chartglyph.ConditionCollection; import com.fr.chart.chartglyph.ConditionCollection;
import com.fr.chart.chartglyph.DataSheet; import com.fr.chart.chartglyph.DataSheet;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.MultilineLabel; import com.fr.design.gui.ilable.MultilineLabel;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -45,6 +46,21 @@ public abstract class AbstractVanChartTypePane extends AbstractChartTypePane<Cha
return new String[0]; return new String[0];
} }
@Override
protected String[] getTypeTipName() {
return ChartTypeInterfaceManager.getInstance().getSubName(getPlotID());
}
@Override
public String title4PopupWindow() {
return ChartTypeInterfaceManager.getInstance().getName(getPlotID());
}
@Override
protected String getPlotTypeID() {
return getPlotID();
}
protected Component[][] getComponentsWithLargeData(JPanel typePane){ protected Component[][] getComponentsWithLargeData(JPanel typePane){
largeModelCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open_Large_Data_Model")); largeModelCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open_Large_Data_Model"));
MultilineLabel prompt = new MultilineLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Large_Data_Model_Prompt")); MultilineLabel prompt = new MultilineLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Large_Data_Model_Prompt"));

27
designer-chart/src/main/java/com/fr/van/chart/drillmap/DrillMapIndependentVanChartInterface.java

@ -1,6 +1,7 @@
package com.fr.van.chart.drillmap; package com.fr.van.chart.drillmap;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -16,6 +17,28 @@ import com.fr.van.chart.map.designer.style.VanChartMapStylePane;
* Created by Mitisky on 16/6/20. * Created by Mitisky on 16/6/20.
*/ */
public class DrillMapIndependentVanChartInterface extends MapIndependentVanChartInterface { public class DrillMapIndependentVanChartInterface extends MapIndependentVanChartInterface {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_Drill_Map");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Region_Map"),
Toolkit.i18nText("Fine-Design_Chart_PointMap"),
Toolkit.i18nText("Fine-Design_Chart_Custom_Map")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/37.png",
"com/fr/plugin/chart/demo/image/38.png",
"com/fr/plugin/chart/demo/image/39.png"
};
}
/** /**
* 图标路径 * 图标路径
@ -50,8 +73,4 @@ public class DrillMapIndependentVanChartInterface extends MapIndependentVanChart
VanChartOtherPane otherPane = new VanChartDrillMapOtherPane(); VanChartOtherPane otherPane = new VanChartDrillMapOtherPane();
return new AbstractChartAttrPane[]{stylePane, otherPane}; return new AbstractChartAttrPane[]{stylePane, otherPane};
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartDrillMapPlotPane.TITLE;
}
} }

31
designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/type/VanChartDrillMapPlotPane.java

@ -2,7 +2,6 @@ package com.fr.van.chart.drillmap.designer.type;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.drillmap.DrillMapIndependentVanChart; import com.fr.plugin.chart.drillmap.DrillMapIndependentVanChart;
import com.fr.plugin.chart.drillmap.VanChartDrillMapPlot; import com.fr.plugin.chart.drillmap.VanChartDrillMapPlot;
@ -18,8 +17,6 @@ import java.util.ArrayList;
*/ */
public class VanChartDrillMapPlotPane extends VanChartMapPlotPane { public class VanChartDrillMapPlotPane extends VanChartMapPlotPane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Drill_Map");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
return new String[]{"/com/fr/van/chart/drillmap/images/area-map.png", return new String[]{"/com/fr/van/chart/drillmap/images/area-map.png",
@ -38,14 +35,6 @@ public class VanChartDrillMapPlotPane extends VanChartMapPlotPane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Region_Map"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_PointMap"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Custom_Map")
};
}
//钻取地图不全屏 //钻取地图不全屏
@Override @Override
@ -57,26 +46,6 @@ public class VanChartDrillMapPlotPane extends VanChartMapPlotPane {
return tools; return tools;
} }
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartDrillMapPlot.VAN_CHART_DRILL_MAP_ID;
}
/**
* title应该是一个属性不只是对话框的标题时用到与其他组件结合时也会用得到
*
* @return 绥化狂标题
*/
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Drill_Map");
}
protected Chart[] getDefaultCharts() { protected Chart[] getDefaultCharts() {
return DrillMapIndependentVanChart.DrillMapVanCharts; return DrillMapIndependentVanChart.DrillMapVanCharts;

16
designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -25,6 +26,18 @@ import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
* Created by Mitisky on 16/10/10. * Created by Mitisky on 16/10/10.
*/ */
public class FunnelIndependentVanChartInterface extends AbstractIndependentVanChartUI { public class FunnelIndependentVanChartInterface extends AbstractIndependentVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Funnel");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/41.png"
};
}
/** /**
* 图表的类型定义界面类型就是属性表的第一个界面 * 图表的类型定义界面类型就是属性表的第一个界面
* *
@ -77,7 +90,4 @@ public class FunnelIndependentVanChartInterface extends AbstractIndependentVanCh
return "com/fr/design/images/form/toolbar/funnel.png"; return "com/fr/design/images/form/toolbar/funnel.png";
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartFunnelTypePane.TITLE;
}
} }

29
designer-chart/src/main/java/com/fr/van/chart/funnel/designer/type/VanChartFunnelTypePane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.funnel.designer.type;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.funnel.FunnelIndependentVanChart; import com.fr.plugin.chart.funnel.FunnelIndependentVanChart;
import com.fr.plugin.chart.funnel.VanChartFunnelPlot; import com.fr.plugin.chart.funnel.VanChartFunnelPlot;
@ -13,7 +12,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 16/10/10. * Created by Mitisky on 16/10/10.
*/ */
public class VanChartFunnelTypePane extends AbstractVanChartTypePane { public class VanChartFunnelTypePane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Funnel");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -22,33 +20,6 @@ public class VanChartFunnelTypePane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Funnel")
};
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartFunnelPlot.VAN_CHART_FUNNEL_PLOT_ID;
}
/**
* title应该是一个属性不只是对话框的标题时用到与其他组件结合时也会用得到
*
* @return 绥化狂标题
*/
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Funnel");
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
Chart chart = getDefaultChart(); Chart chart = getDefaultChart();
VanChartFunnelPlot newPlot = (VanChartFunnelPlot) chart.getPlot(); VanChartFunnelPlot newPlot = (VanChartFunnelPlot) chart.getPlot();

18
designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -27,6 +28,18 @@ import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
* Created by hufan on 2017/1/9. * Created by hufan on 2017/1/9.
*/ */
public class GanttIndependentVanChartInterface extends AbstractIndependentVanChartUI { public class GanttIndependentVanChartInterface extends AbstractIndependentVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Gantt");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/44.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartGanttPlotPane(); return new VanChartGanttPlotPane();
@ -59,11 +72,6 @@ public class GanttIndependentVanChartInterface extends AbstractIndependentVanCha
return "com/fr/design/images/form/toolbar/gantt.png"; return "com/fr/design/images/form/toolbar/gantt.png";
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartGanttPlotPane.TITLE;
}
/** /**
* 图表的属性界面数组 * 图表的属性界面数组
* @return 属性界面 * @return 属性界面

22
designer-chart/src/main/java/com/fr/van/chart/gantt/designer/type/VanChartGanttPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.gantt.designer.type;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.gantt.GanttIndependentVanChart; import com.fr.plugin.chart.gantt.GanttIndependentVanChart;
import com.fr.plugin.chart.gantt.VanChartGanttPlot; import com.fr.plugin.chart.gantt.VanChartGanttPlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,33 +11,12 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by hufan on 2017/1/9. * Created by hufan on 2017/1/9.
*/ */
public class VanChartGanttPlotPane extends AbstractVanChartTypePane { public class VanChartGanttPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Gantt");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
return new String[]{"/com/fr/van/chart/gantt/images/gantt.png" return new String[]{"/com/fr/van/chart/gantt/images/gantt.png"
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gantt_Chart")
};
}
@Override
protected String getPlotTypeID() {
return VanChartGanttPlot.VAN_CHART_GANTT_PLOT_ID;
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Gantt");
}
public Chart getDefaultChart() { public Chart getDefaultChart() {
return GanttIndependentVanChart.ganttVanChartTypes[0]; return GanttIndependentVanChart.ganttVanChartTypes[0];
} }

32
designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java

@ -3,6 +3,7 @@ package com.fr.van.chart.gauge;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -31,6 +32,33 @@ public class GaugeIndependentVanChartInterface extends AbstractIndependentVanCha
return "com/fr/design/images/form/toolbar/gauge.png"; return "com/fr/design/images/form/toolbar/gauge.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Gauge");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Gauge_Pointer"),
Toolkit.i18nText("Fine-Design_Chart_Gauge_Pointer180"),
Toolkit.i18nText("Fine-Design_Chart_Gauge_Ring"),
Toolkit.i18nText("Fine-Design_Chart_Gauge_Slot"),
Toolkit.i18nText("Fine-Design_Chart_Gauge_Cuvette")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/18.png",
"com/fr/plugin/chart/demo/image/19.png",
"com/fr/plugin/chart/demo/image/20.png",
"com/fr/plugin/chart/demo/image/21.png",
"com/fr/plugin/chart/demo/image/22.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartGaugePlotPane(); return new VanChartGaugePlotPane();
@ -79,8 +107,4 @@ public class GaugeIndependentVanChartInterface extends AbstractIndependentVanCha
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot){ public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot){
return new VanChartGaugeSeriesPane(parent, plot); return new VanChartGaugeSeriesPane(parent, plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartGaugePlotPane.TITLE;
}
} }

30
designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugePlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.gauge;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.gauge.GaugeIndependentVanChart; import com.fr.plugin.chart.gauge.GaugeIndependentVanChart;
import com.fr.plugin.chart.gauge.VanChartGaugePlot; import com.fr.plugin.chart.gauge.VanChartGaugePlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,7 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/11/27. * Created by Mitisky on 15/11/27.
*/ */
public class VanChartGaugePlotPane extends AbstractVanChartTypePane { public class VanChartGaugePlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Gauge");
private static final long serialVersionUID = -4599483879031804911L; private static final long serialVersionUID = -4599483879031804911L;
@ -26,24 +24,6 @@ public class VanChartGaugePlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gauge_Pointer"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gauge_Pointer180"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gauge_Ring"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gauge_Slot"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gauge_Cuvette")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Gauge");
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartGaugePlot newPlot = null; VanChartGaugePlot newPlot = null;
Chart[] GaugeChart = GaugeIndependentVanChart.GaugeVanChartTypes; Chart[] GaugeChart = GaugeIndependentVanChart.GaugeVanChartTypes;
@ -78,16 +58,6 @@ public class VanChartGaugePlotPane extends AbstractVanChartTypePane {
} }
} }
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartGaugePlot.VAN_CHART_GAUGE_PLOT;
}
protected void cloneOldConditionCollection(Plot oldPlot, Plot newPlot) throws CloneNotSupportedException{ protected void cloneOldConditionCollection(Plot oldPlot, Plot newPlot) throws CloneNotSupportedException{
} }

17
designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/HeatMapIndependentVanChartInterface.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -32,6 +33,18 @@ public class HeatMapIndependentVanChartInterface extends MapIndependentVanChartI
return "com/fr/design/images/form/toolbar/heatmap.png"; return "com/fr/design/images/form/toolbar/heatmap.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_HeatMap");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/42.png"
};
}
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartHeatMapTypePane(); return new VanChartHeatMapTypePane();
} }
@ -62,8 +75,4 @@ public class HeatMapIndependentVanChartInterface extends MapIndependentVanChartI
}; };
return new AbstractChartAttrPane[]{stylePane, otherPane}; return new AbstractChartAttrPane[]{stylePane, otherPane};
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartHeatMapTypePane.TITLE;
}
} }

29
designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/type/VanChartHeatMapTypePane.java

@ -4,7 +4,6 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.heatmap.HeatMapIndependentVanChart; import com.fr.plugin.chart.heatmap.HeatMapIndependentVanChart;
import com.fr.plugin.chart.heatmap.VanChartHeatMapPlot; import com.fr.plugin.chart.heatmap.VanChartHeatMapPlot;
@ -16,7 +15,6 @@ import com.fr.van.chart.map.designer.type.VanChartMapSourceChoosePane;
* Created by Mitisky on 16/10/20. * Created by Mitisky on 16/10/20.
*/ */
public class VanChartHeatMapTypePane extends VanChartMapPlotPane { public class VanChartHeatMapTypePane extends VanChartMapPlotPane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_HeatMap");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -24,33 +22,6 @@ public class VanChartHeatMapTypePane extends VanChartMapPlotPane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_HeatMap")
};
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartHeatMapPlot.VAN_CHART_HEAT_MAP_ID;
}
/**
* title应该是一个属性不只是对话框的标题时用到与其他组件结合时也会用得到
*
* @return 绥化狂标题
*/
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_HeatMap");
}
@Override @Override
protected VanChartMapSourceChoosePane createSourceChoosePane() { protected VanChartMapSourceChoosePane createSourceChoosePane() {
return new VanChartHeatMapSourceChoosePane(); return new VanChartHeatMapSourceChoosePane();

28
designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java

@ -3,6 +3,7 @@ package com.fr.van.chart.line;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI; import com.fr.van.chart.vanchart.AbstractMultiCategoryVanChartUI;
@ -16,6 +17,29 @@ public class LineIndependentVanChartInterface extends AbstractMultiCategoryVanCh
return "com/fr/design/images/form/toolbar/line.png"; return "com/fr/design/images/form/toolbar/line.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Line");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Line_Chart"),
Toolkit.i18nText("Fine-Design_Chart_Stacked_Line"),
Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/11.png",
"com/fr/plugin/chart/demo/image/12.png",
"com/fr/plugin/chart/demo/image/13.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartLinePlotPane(); return new VanChartLinePlotPane();
@ -29,8 +53,4 @@ public class LineIndependentVanChartInterface extends AbstractMultiCategoryVanCh
return new VanChartLineSeriesPane(parent, plot); return new VanChartLineSeriesPane(parent, plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartLinePlotPane.TITLE;
}
} }

30
designer-chart/src/main/java/com/fr/van/chart/line/VanChartLinePlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.line;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.line.LineIndependentVanChart; import com.fr.plugin.chart.line.LineIndependentVanChart;
import com.fr.plugin.chart.line.VanChartLinePlot; import com.fr.plugin.chart.line.VanChartLinePlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,8 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/11/5. * Created by Mitisky on 15/11/5.
*/ */
public class VanChartLinePlotPane extends AbstractVanChartTypePane { public class VanChartLinePlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Line");
private static final long serialVersionUID = -8161581682558781651L;
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
@ -23,33 +20,6 @@ public class VanChartLinePlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Line_Chart"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Stacked_Line"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Line");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartLinePlot.VAN_CHART_LINE_PLOT;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartLinePlot newPlot = null; VanChartLinePlot newPlot = null;
Chart[] lineChart = LineIndependentVanChart.LineVanChartTypes; Chart[] lineChart = LineIndependentVanChart.LineVanChartTypes;

32
designer-chart/src/main/java/com/fr/van/chart/map/MapIndependentVanChartInterface.java

@ -4,6 +4,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -32,6 +33,33 @@ import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
*/ */
public class MapIndependentVanChartInterface extends AbstractIndependentVanChartUI { public class MapIndependentVanChartInterface extends AbstractIndependentVanChartUI {
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Map");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Region_Map"),
Toolkit.i18nText("Fine-Design_Chart_PointMap"),
Toolkit.i18nText("Fine-Design_Chart_LineMap"),
Toolkit.i18nText("Fine-Design_Chart_Combine_Map")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/33.png",
"com/fr/plugin/chart/demo/image/34.png",
"com/fr/plugin/chart/demo/image/35.png",
"com/fr/plugin/chart/demo/image/36.png"
};
}
/** /**
* 图表的类型定义界面类型就是属性表的第一个界面 * 图表的类型定义界面类型就是属性表的第一个界面
* *
@ -93,8 +121,4 @@ public class MapIndependentVanChartInterface extends AbstractIndependentVanChart
public ConditionAttributesPane getPlotConditionPane(Plot plot){ public ConditionAttributesPane getPlotConditionPane(Plot plot){
return new VanChartMapConditionPane(plot); return new VanChartMapConditionPane(plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartMapPlotPane.TITLE;
}
} }

34
designer-chart/src/main/java/com/fr/van/chart/map/designer/type/VanChartMapPlotPane.java

@ -19,7 +19,6 @@ import java.awt.Component;
* Created by Mitisky on 16/5/4. * Created by Mitisky on 16/5/4.
*/ */
public class VanChartMapPlotPane extends AbstractVanChartTypePane { public class VanChartMapPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Map");
private VanChartMapSourceChoosePane sourceChoosePane; private VanChartMapSourceChoosePane sourceChoosePane;
@ -32,36 +31,6 @@ public class VanChartMapPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Region_Map"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_PointMap"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LineMap"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Combine_Map")
};
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartMapPlot.VAN_CHART_MAP_ID;
}
/**
* title应该是一个属性不只是对话框的标题时用到与其他组件结合时也会用得到
*
* @return 绥化狂标题
*/
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Map");
}
protected Component[][] getPaneComponents(JPanel typePane){ protected Component[][] getPaneComponents(JPanel typePane){
try { try {
sourceChoosePane = createSourceChoosePane(); sourceChoosePane = createSourceChoosePane();
@ -146,6 +115,9 @@ public class VanChartMapPlotPane extends AbstractVanChartTypePane {
} }
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

26
designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java

@ -2,10 +2,8 @@ package com.fr.van.chart.multilayer;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chartx.MultiPieChartDataPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.van.chart.multilayer.other.VanChartMultiPieConditionPane; import com.fr.van.chart.multilayer.other.VanChartMultiPieConditionPane;
@ -26,9 +24,26 @@ public class MultiPieIndependentVanChartInterface extends AbstractIndependentVan
return "com/fr/design/images/form/toolbar/multiPie.png"; return "com/fr/design/images/form/toolbar/multiPie.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_MultiPie");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/32.png"
};
}
// @Override // @Override
// public ChartDataPane getChartDataPane(AttributeChangeListener listener) { // public ChartDataPane getChartDataPane(AttributeChangeListener listener) {
// return new MultiPieChartDataPane(listener); // return new AbstractDataPane(listener) {
// @Override
// protected SingleDataPane createSingleDataPane() {
// return new SingleDataPane(new MultiPieDataSetFieldsPane(), new MultiPieCellDataFieldsPane());
// }
// };
// } // }
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot){ public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot){
@ -39,7 +54,4 @@ public class MultiPieIndependentVanChartInterface extends AbstractIndependentVan
return new VanChartMultiPieConditionPane(plot); return new VanChartMultiPieConditionPane(plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartMultiPiePlotPane.TITLE;
}
} }

22
designer-chart/src/main/java/com/fr/van/chart/multilayer/VanChartMultiPiePlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.multilayer;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.multilayer.MultiPieIndependentVanChart; import com.fr.plugin.chart.multilayer.MultiPieIndependentVanChart;
import com.fr.plugin.chart.multilayer.VanChartMultiPiePlot; import com.fr.plugin.chart.multilayer.VanChartMultiPiePlot;
@ -14,30 +13,12 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Fangjie on 2016/6/15. * Created by Fangjie on 2016/6/15.
*/ */
public class VanChartMultiPiePlotPane extends AbstractVanChartTypePane { public class VanChartMultiPiePlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_MultiPie");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
return new String[]{"/com/fr/van/chart/multilayer/image/multiPie.png" return new String[]{"/com/fr/van/chart/multilayer/image/multiPie.png"
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_MultiPie_Chart")
};
}
@Override
protected String getPlotTypeID() {
return VanChartMultiPiePlot.VAN_CHART_MULTILAYER_PLOT_ID;
}
@Deprecated
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_MultiPie");
}
@Override @Override
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartMultiPiePlot newPlot = null; VanChartMultiPiePlot newPlot = null;
@ -49,6 +30,9 @@ public class VanChartMultiPiePlotPane extends AbstractVanChartTypePane {
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

3
designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java

@ -14,6 +14,7 @@ import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.plugin.chart.multilayer.data.MultiPieReportDataDefinition; import com.fr.plugin.chart.multilayer.data.MultiPieReportDataDefinition;
import com.fr.stable.AssistUtils;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -81,7 +82,7 @@ public class MultiPiePlotReportDataContentPane extends AbstractReportDataContent
@Override @Override
public void setTextFieldValue(double value) { public void setTextFieldValue(double value) {
//如果为0,则没有改变值 //如果为0,则没有改变值
if (value == 0){ if (AssistUtils.equals(0, value)) {
return; return;
} }
super.setTextFieldValue(value); super.setTextFieldValue(value);

3
designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotTableDataContentPane.java

@ -18,6 +18,7 @@ import com.fr.general.ComparatorUtils;
import com.fr.plugin.chart.multilayer.data.MultiPieValueDefinition; import com.fr.plugin.chart.multilayer.data.MultiPieValueDefinition;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.TableLayout4VanChartHelper;
@ -170,7 +171,7 @@ public class MultiPiePlotTableDataContentPane extends AbstractTableDataContentPa
@Override @Override
public void setTextFieldValue(double value) { public void setTextFieldValue(double value) {
//如果为0,则没有改变值 //如果为0,则没有改变值
if (value == 0){ if (AssistUtils.equals(0, value)) {
return; return;
} }
super.setTextFieldValue(value); super.setTextFieldValue(value);

29
designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java

@ -3,6 +3,7 @@ package com.fr.van.chart.pie;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
@ -23,6 +24,30 @@ public class PieIndependentVanChartInterface extends AbstractIndependentVanChart
return "com/fr/design/images/form/toolbar/pie.png"; return "com/fr/design/images/form/toolbar/pie.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Pie");
}
@Override
public String[] getSubName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Pie"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_SameArc_Pie"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_DifferArc_Pie")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/0.png",
"com/fr/plugin/chart/demo/image/1.png",
"com/fr/plugin/chart/demo/image/2.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartPiePlotPane(); return new VanChartPiePlotPane();
@ -48,8 +73,4 @@ public class PieIndependentVanChartInterface extends AbstractIndependentVanChart
public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent){ public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent){
return (parent instanceof VanChartDataPane) ? new CategoryCustomPlotTableDataContentPane(parent) : new CategoryPlotTableDataContentPane(parent); return (parent instanceof VanChartDataPane) ? new CategoryCustomPlotTableDataContentPane(parent) : new CategoryPlotTableDataContentPane(parent);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartPiePlotPane.TITLE;
}
} }

32
designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPiePlotPane.java

@ -4,7 +4,6 @@ package com.fr.van.chart.pie;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.PiePlot4VanChart; import com.fr.plugin.chart.PiePlot4VanChart;
import com.fr.plugin.chart.pie.PieIndependentVanChart; import com.fr.plugin.chart.pie.PieIndependentVanChart;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -13,7 +12,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* 饼图(新特性) 属性表 选择类型 布局界面. * 饼图(新特性) 属性表 选择类型 布局界面.
*/ */
public class VanChartPiePlotPane extends AbstractVanChartTypePane { public class VanChartPiePlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Pie");
private static final long serialVersionUID = 6163246902689597259L; private static final long serialVersionUID = 6163246902689597259L;
@ -25,33 +23,6 @@ public class VanChartPiePlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Pie"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_SameArc_Pie"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_DifferArc_Pie")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Pie");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return PiePlot4VanChart.VAN_CHART_PIE_PLOT;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
PiePlot4VanChart newPlot = null; PiePlot4VanChart newPlot = null;
Chart[] pieChart = PieIndependentVanChart.newPieChartTypes; Chart[] pieChart = PieIndependentVanChart.newPieChartTypes;
@ -62,6 +33,9 @@ public class VanChartPiePlotPane extends AbstractVanChartTypePane {
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

26
designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java

@ -3,6 +3,7 @@ package com.fr.van.chart.radar;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI; import com.fr.van.chart.vanchart.AbstractIndependentVanChartUI;
@ -16,6 +17,27 @@ public class RadarIndependentVanChartInterface extends AbstractIndependentVanCha
return "com/fr/design/images/form/toolbar/radar.png"; return "com/fr/design/images/form/toolbar/radar.png";
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Radar");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Radar_Chart"),
Toolkit.i18nText("Fine-Design_Chart_StackColumn_Radar")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/23.png",
"com/fr/plugin/chart/demo/image/24.png"
};
}
@Override @Override
public AbstractChartTypePane getPlotTypePane() { public AbstractChartTypePane getPlotTypePane() {
return new VanChartRadarPlotPane(); return new VanChartRadarPlotPane();
@ -28,8 +50,4 @@ public class RadarIndependentVanChartInterface extends AbstractIndependentVanCha
public ConditionAttributesPane getPlotConditionPane(Plot plot){ public ConditionAttributesPane getPlotConditionPane(Plot plot){
return new VanChartRadarConditionPane(plot); return new VanChartRadarConditionPane(plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartRadarPlotPane.TITLE;
}
} }

31
designer-chart/src/main/java/com/fr/van/chart/radar/VanChartRadarPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.radar;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.radar.RadarIndependentVanChart; import com.fr.plugin.chart.radar.RadarIndependentVanChart;
import com.fr.plugin.chart.radar.VanChartRadarPlot; import com.fr.plugin.chart.radar.VanChartRadarPlot;
import com.fr.van.chart.designer.type.AbstractVanChartTypePane; import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
@ -12,7 +11,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 15/12/28. * Created by Mitisky on 15/12/28.
*/ */
public class VanChartRadarPlotPane extends AbstractVanChartTypePane { public class VanChartRadarPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Radar");
private static final long serialVersionUID = -4599483879031804911L; private static final long serialVersionUID = -4599483879031804911L;
@ -23,32 +21,6 @@ public class VanChartRadarPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Radar_Chart"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_StackColumn_Radar")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Radar");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartRadarPlot.VAN_CHART_RADAR_PLOT;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartRadarPlot newPlot = null; VanChartRadarPlot newPlot = null;
Chart[] RadarChart = RadarIndependentVanChart.RadarVanChartTypes; Chart[] RadarChart = RadarIndependentVanChart.RadarVanChartTypes;
@ -59,6 +31,9 @@ public class VanChartRadarPlotPane extends AbstractVanChartTypePane {
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

3
designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java

@ -13,6 +13,7 @@ import com.fr.design.style.color.ColorSelectDialog;
import com.fr.design.style.color.ColorSelectable; import com.fr.design.style.color.ColorSelectable;
import com.fr.plugin.chart.range.GradualIntervalConfig; import com.fr.plugin.chart.range.GradualIntervalConfig;
import com.fr.plugin.chart.range.glyph.GradualColorDist; import com.fr.plugin.chart.range.glyph.GradualColorDist;
import com.fr.stable.AssistUtils;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
@ -224,7 +225,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
//防止位置重复,设置偏移 //防止位置重复,设置偏移
private int setOffset(int x, int index, int offset) { private int setOffset(int x, int index, int offset) {
for (int i = 0; i < selectColorPointBtnList.size(); i++){ for (int i = 0; i < selectColorPointBtnList.size(); i++){
if (i != index && x == selectColorPointBtnList.get(i).getX()){ if (i != index && AssistUtils.equals(x, selectColorPointBtnList.get(i).getX())) {
if (x >= (min+max)/2) { if (x >= (min+max)/2) {
x -= offset; x -= offset;
x = setOffset(x, index, offset+OFFSETSTEP); x = setOffset(x, index, offset+OFFSETSTEP);

17
designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java

@ -6,6 +6,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -34,6 +35,18 @@ public class ScatterIndependentVanChartInterface extends AbstractIndependentVanC
return new VanChartScatterPlotPane(); return new VanChartScatterPlotPane();
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Scatter");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/25.png"
};
}
/** /**
* 图标路径 * 图标路径
* *
@ -78,8 +91,4 @@ public class ScatterIndependentVanChartInterface extends AbstractIndependentVanC
public ConditionAttributesPane getPlotConditionPane(Plot plot){ public ConditionAttributesPane getPlotConditionPane(Plot plot){
return new VanChartScatterConditionPane(plot); return new VanChartScatterConditionPane(plot);
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartScatterPlotPane.TITLE;
}
} }

31
designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterPlotPane.java

@ -6,7 +6,6 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chart.chartglyph.ConditionCollection; import com.fr.chart.chartglyph.ConditionCollection;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartAttrLine; import com.fr.plugin.chart.base.VanChartAttrLine;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.scatter.ScatterIndependentVanChart; import com.fr.plugin.chart.scatter.ScatterIndependentVanChart;
@ -17,8 +16,6 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 16/2/16. * Created by Mitisky on 16/2/16.
*/ */
public class VanChartScatterPlotPane extends AbstractVanChartTypePane { public class VanChartScatterPlotPane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Scatter");
private static final long serialVersionUID = -3481633368542654247L; private static final long serialVersionUID = -3481633368542654247L;
@Override @Override
@ -27,31 +24,6 @@ public class VanChartScatterPlotPane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Scatter")
};
}
/**
* 返回界面标题
* @return 界面标题
*/
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Scatter");
}
/**
* 获取各图表类型界面ID, 本质是plotID
*
* @return 图表类型界面ID
*/
@Override
protected String getPlotTypeID() {
return VanChartScatterPlot.VAN_CHART_SCATTER_PLOT_ID;
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartScatterPlot newPlot = null; VanChartScatterPlot newPlot = null;
Chart[] scatterChart = ScatterIndependentVanChart.ScatterVanChartTypes; Chart[] scatterChart = ScatterIndependentVanChart.ScatterVanChartTypes;
@ -61,6 +33,9 @@ public class VanChartScatterPlotPane extends AbstractVanChartTypePane {
} }
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

24
designer-chart/src/main/java/com/fr/van/chart/structure/desinger/StructureIndependentVanChartInterface.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
@ -31,6 +32,29 @@ public class StructureIndependentVanChartInterface extends AbstractIndependentVa
return new VanChartStructureTypePane(); return new VanChartStructureTypePane();
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_Structure");
}
@Override
public String[] getSubName() {
return new String[]{
Toolkit.i18nText("Fine-Design_Chart_Vertical_Structure"),
Toolkit.i18nText("Fine-Design_Chart_Horizontal_Structure"),
Toolkit.i18nText("Fine-Design_Chart_Radial_Structure")
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/45.png",
"com/fr/plugin/chart/demo/image/46.png",
"com/fr/plugin/chart/demo/image/47.png"
};
}
@Override @Override
public String getIconPath() { public String getIconPath() {
return "com/fr/design/images/form/toolbar/structure.png"; return "com/fr/design/images/form/toolbar/structure.png";

28
designer-chart/src/main/java/com/fr/van/chart/structure/desinger/type/VanChartStructureTypePane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.structure.desinger.type;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.structure.StructureIndependentVanChart; import com.fr.plugin.chart.structure.StructureIndependentVanChart;
import com.fr.plugin.chart.structure.VanChartStructurePlot; import com.fr.plugin.chart.structure.VanChartStructurePlot;
@ -23,30 +22,6 @@ public class VanChartStructureTypePane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Vertical_Structure"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Horizontal_Structure"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Radial_Structure")
};
}
@Override
protected String getPlotTypeID() {
return VanChartStructurePlot.STRUCTURE_PLOT_ID;
}
/**
* title应该是一个属性不只是对话框的标题时用到与其他组件结合时也会用得到
*
* @return 绥化狂标题
*/
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_Structure");
}
protected Plot getSelectedClonedPlot(){ protected Plot getSelectedClonedPlot(){
VanChartStructurePlot newPlot = null; VanChartStructurePlot newPlot = null;
Chart[] charts = StructureIndependentVanChart.StructureVanCharts; Chart[] charts = StructureIndependentVanChart.StructureVanCharts;
@ -57,6 +32,9 @@ public class VanChartStructureTypePane extends AbstractVanChartTypePane {
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

16
designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java

@ -4,6 +4,7 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
@ -22,6 +23,18 @@ public class TreeMapIndependentVanChartInterface extends MultiPieIndependentVanC
return new VanChartTreeMapPlotPane(); return new VanChartTreeMapPlotPane();
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_New_TreeMap");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/40.png"
};
}
@Override @Override
public String getIconPath() { public String getIconPath() {
return "com/fr/design/images/form/toolbar/treeMap.png"; return "com/fr/design/images/form/toolbar/treeMap.png";
@ -43,7 +56,4 @@ public class TreeMapIndependentVanChartInterface extends MultiPieIndependentVanC
return new AbstractChartAttrPane[]{stylePane, otherPane}; return new AbstractChartAttrPane[]{stylePane, otherPane};
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartTreeMapPlotPane.TITLE;
}
} }

13
designer-chart/src/main/java/com/fr/van/chart/treemap/VanChartTreeMapPlotPane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.treemap;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.treemap.TreeMapIndependentVanChart; import com.fr.plugin.chart.treemap.TreeMapIndependentVanChart;
import com.fr.plugin.chart.treemap.VanChartTreeMapPlot; import com.fr.plugin.chart.treemap.VanChartTreeMapPlot;
import com.fr.van.chart.multilayer.VanChartMultiPiePlotPane; import com.fr.van.chart.multilayer.VanChartMultiPiePlotPane;
@ -12,19 +11,12 @@ import com.fr.van.chart.multilayer.VanChartMultiPiePlotPane;
* Created by Fangjie on 2016/7/11. * Created by Fangjie on 2016/7/11.
*/ */
public class VanChartTreeMapPlotPane extends VanChartMultiPiePlotPane { public class VanChartTreeMapPlotPane extends VanChartMultiPiePlotPane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_New_TreeMap");
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
return new String[]{"/com/fr/van/chart/treemap/images/treeMap.png" return new String[]{"/com/fr/van/chart/treemap/images/treeMap.png"
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_TreeMap_Chart")
};
}
@Override @Override
protected String getPlotTypeID() { protected String getPlotTypeID() {
return VanChartTreeMapPlot.VAN_CHART_TREE_MAP_PLOT_ID; return VanChartTreeMapPlot.VAN_CHART_TREE_MAP_PLOT_ID;
@ -45,6 +37,9 @@ public class VanChartTreeMapPlotPane extends VanChartMultiPiePlotPane {
} }
Plot cloned = null; Plot cloned = null;
if (null == newPlot) {
return cloned;
}
try { try {
cloned = (Plot)newPlot.clone(); cloned = (Plot)newPlot.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

26
designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java

@ -3,12 +3,11 @@ package com.fr.van.chart.wordcloud.designer;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chartx.WordCloudChartDataPane;
import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.plugin.chart.base.VanChartConstants; import com.fr.plugin.chart.base.VanChartConstants;
@ -36,6 +35,18 @@ public class WordCloudIndependentVanChartInterface extends AbstractIndependentVa
return new VanChartWordCloudTypePane(); return new VanChartWordCloudTypePane();
} }
@Override
public String getName() {
return Toolkit.i18nText("Fine-Design_Chart_Word_Cloud");
}
@Override
public String[] getDemoImagePath() {
return new String[]{
"com/fr/plugin/chart/demo/image/43.png"
};
}
/** /**
* 图标路径 * 图标路径
* *
@ -87,12 +98,13 @@ public class WordCloudIndependentVanChartInterface extends AbstractIndependentVa
return new AbstractChartAttrPane[]{stylePane, otherPane}; return new AbstractChartAttrPane[]{stylePane, otherPane};
} }
public String getPlotTypeTitle4PopupWindow(){
return VanChartWordCloudTypePane.TITLE;
}
// @Override // @Override
// public ChartDataPane getChartDataPane(AttributeChangeListener listener) { // public ChartDataPane getChartDataPane(AttributeChangeListener listener) {
// return new WordCloudChartDataPane(listener); // return new AbstractDataPane(listener) {
// @Override
// protected SingleDataPane createSingleDataPane() {
// return new SingleDataPane(new WordCloudDataSetFieldsPane(), new WordCloudCellDataFieldsPane());
// }
// };
// } // }
} }

10
designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/type/VanChartWordCloudTypePane.java

@ -3,7 +3,6 @@ package com.fr.van.chart.wordcloud.designer.type;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartTools;
import com.fr.plugin.chart.wordcloud.VanChartWordCloudPlot; import com.fr.plugin.chart.wordcloud.VanChartWordCloudPlot;
import com.fr.plugin.chart.wordcloud.WordCloudIndependentVanChart; import com.fr.plugin.chart.wordcloud.WordCloudIndependentVanChart;
@ -13,7 +12,7 @@ import com.fr.van.chart.designer.type.AbstractVanChartTypePane;
* Created by Mitisky on 16/11/29. * Created by Mitisky on 16/11/29.
*/ */
public class VanChartWordCloudTypePane extends AbstractVanChartTypePane { public class VanChartWordCloudTypePane extends AbstractVanChartTypePane {
public static final String TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Word_Cloud");
@Override @Override
protected String[] getTypeIconPath() { protected String[] getTypeIconPath() {
return new String[]{ return new String[]{
@ -21,13 +20,6 @@ public class VanChartWordCloudTypePane extends AbstractVanChartTypePane {
}; };
} }
@Override
protected String[] getTypeTipName() {
return new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Word_Cloud")
};
}
/** /**
* 获取各图表类型界面ID, 本质是plotID * 获取各图表类型界面ID, 本质是plotID
* *

3
designer-form/src/main/java/com/fr/design/designer/beans/AdapterBus.java

@ -41,6 +41,9 @@ public class AdapterBus {
*/ */
public static ComponentAdapter getComponentAdapter(FormDesigner designer, JComponent creator) { public static ComponentAdapter getComponentAdapter(FormDesigner designer, JComponent creator) {
JComponent jcomponent = getJComponent(creator); JComponent jcomponent = getJComponent(creator);
if (null == jcomponent) {
return null;
}
ComponentAdapter adapter = (ComponentAdapter) jcomponent.getClientProperty("component.adapter"); ComponentAdapter adapter = (ComponentAdapter) jcomponent.getClientProperty("component.adapter");
if (adapter == null) { if (adapter == null) {
adapter = new CompositeComponentAdapter(designer, creator); adapter = new CompositeComponentAdapter(designer, creator);

16
designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java

@ -176,16 +176,21 @@ public class XChartEditor extends XBorderStyleWidgetCreator {
* @return 控件. * @return 控件.
*/ */
public JComponent createToolPane(final BaseJForm jform, final FormDesigner formDesigner) { public JComponent createToolPane(final BaseJForm jform, final FormDesigner formDesigner) {
getDesignerEditorTarget().addStopEditingListener(new PropertyChangeAdapter() { MiddleChartComponent middleChartComponent = getDesignerEditorTarget();
if (null != middleChartComponent) {
middleChartComponent.addStopEditingListener(new PropertyChangeAdapter() {
public void propertyChange() { public void propertyChange() {
JComponent pane = jform.getEditingPane(); JComponent pane = jform.getEditingPane();
if (pane instanceof BaseChartPropertyPane) { if (pane instanceof BaseChartPropertyPane) {
((BaseChartPropertyPane) pane).setSupportCellData(true); ((BaseChartPropertyPane) pane).setSupportCellData(true);
((BaseChartPropertyPane) pane).populateChartPropertyPane(getDesignerEditorTarget().update(), formDesigner); MiddleChartComponent middleChartComponent = getDesignerEditorTarget();
if (null != middleChartComponent) {
((BaseChartPropertyPane) pane).populateChartPropertyPane(middleChartComponent.update(), formDesigner);
}
} }
} }
}); });
}
if (isEditing){ if (isEditing){
final BaseChartPropertyPane propertyPane = DesignModuleFactory.getChartPropertyPane(); final BaseChartPropertyPane propertyPane = DesignModuleFactory.getChartPropertyPane();
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@ -193,7 +198,10 @@ public class XChartEditor extends XBorderStyleWidgetCreator {
public void run() { public void run() {
if (getDesignerEditor().getEditorTarget() != null) { if (getDesignerEditor().getEditorTarget() != null) {
propertyPane.setSupportCellData(true); propertyPane.setSupportCellData(true);
propertyPane.populateChartPropertyPane(getDesignerEditorTarget().update(), formDesigner); MiddleChartComponent middleChartComponent = getDesignerEditorTarget();
if (null != middleChartComponent) {
propertyPane.populateChartPropertyPane(middleChartComponent.update(), formDesigner);
}
} }
} }
}); });

11
designer-form/src/main/java/com/fr/design/designer/creator/XCheckBox.java

@ -7,13 +7,12 @@ import com.fr.design.form.util.XCreatorConstants;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.mainframe.widget.editors.WidgetValueEditor; import com.fr.design.mainframe.widget.editors.WidgetValueEditor;
import com.fr.form.ui.CheckBox; import com.fr.form.ui.CheckBox;
import com.fr.form.ui.WidgetValue; import com.fr.form.ui.concept.data.ValueInitializer;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.BorderFactory; import javax.swing.*;
import javax.swing.JComponent; import java.awt.*;
import java.awt.Dimension;
import java.beans.IntrospectionException; import java.beans.IntrospectionException;
/** /**
@ -45,7 +44,7 @@ public class XCheckBox extends XWidgetCreator {
@Override @Override
public void propertyChange() { public void propertyChange() {
WidgetValue value = ((CheckBox) data).getWidgetValue(); ValueInitializer value = ((CheckBox) data).getWidgetValue();
if (value != null && value.getValue() instanceof Boolean) { if (value != null && value.getValue() instanceof Boolean) {
((UICheckBox) editor).setSelected((Boolean) value.getValue()); ((UICheckBox) editor).setSelected((Boolean) value.getValue());
} }
@ -84,7 +83,7 @@ public class XCheckBox extends XWidgetCreator {
public void firePropertyChange() { public void firePropertyChange() {
((UICheckBox) editor).setText(((CheckBox) data).getText()); ((UICheckBox) editor).setText(((CheckBox) data).getText());
WidgetValue value = ((CheckBox) data).getWidgetValue(); ValueInitializer value = ((CheckBox) data).getWidgetValue();
if (value != null && value.getValue() instanceof Boolean) { if (value != null && value.getValue() instanceof Boolean) {
((UICheckBox) editor).setSelected((Boolean) value.getValue()); ((UICheckBox) editor).setSelected((Boolean) value.getValue());
} }

9
designer-form/src/main/java/com/fr/design/designer/creator/XDateEditor.java

@ -12,15 +12,14 @@ import com.fr.design.mainframe.widget.editors.WidgetValueEditor;
import com.fr.design.mainframe.widget.renderer.DateCellRenderer; import com.fr.design.mainframe.widget.renderer.DateCellRenderer;
import com.fr.form.ui.DateEditor; import com.fr.form.ui.DateEditor;
import com.fr.form.ui.WidgetValue; import com.fr.form.ui.WidgetValue;
import com.fr.form.ui.concept.data.ValueInitializer;
import com.fr.general.DateUtils; import com.fr.general.DateUtils;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.JComponent; import javax.swing.*;
import java.awt.BorderLayout; import java.awt.*;
import java.awt.Color;
import java.awt.Dimension;
import java.beans.IntrospectionException; import java.beans.IntrospectionException;
import java.util.Date; import java.util.Date;
@ -84,7 +83,7 @@ public class XDateEditor extends XDirectWriteEditor {
private void initFieldText() { private void initFieldText() {
DateEditor dateEditor = (DateEditor) data; DateEditor dateEditor = (DateEditor) data;
if (dateEditor.getWidgetValue() != null) { if (dateEditor.getWidgetValue() != null) {
WidgetValue widgetValue = dateEditor.getWidgetValue(); ValueInitializer widgetValue = dateEditor.getWidgetValue();
//控件值.toString //控件值.toString
String valueStr = widgetValue.toString(); String valueStr = widgetValue.toString();
//控件值 //控件值

7
designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java

@ -31,6 +31,7 @@ import com.fr.general.FRScreen;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.share.ShareConstants; import com.fr.share.ShareConstants;
import com.fr.stable.AssistUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import javax.swing.Icon; import javax.swing.Icon;
@ -108,7 +109,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
Toolkit toolkit = Toolkit.getDefaultToolkit(); Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension scrnsize = toolkit.getScreenSize(); Dimension scrnsize = toolkit.getScreenSize();
double screenValue = FRScreen.getByDimension(scrnsize).getValue(); double screenValue = FRScreen.getByDimension(scrnsize).getValue();
if (screenValue != FormArea.DEFAULT_SLIDER) { if (!AssistUtils.equals(screenValue, FormArea.DEFAULT_SLIDER)) {
this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER);
} }
} }
@ -167,7 +168,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
* 界面容器大小不是默认的时处理控件的BoundsWidget且避免出现空隙 * 界面容器大小不是默认的时处理控件的BoundsWidget且避免出现空隙
*/ */
private Rectangle dealWidgetBound(Rectangle rec) { private Rectangle dealWidgetBound(Rectangle rec) {
if (containerPercent == 1.0) { if (AssistUtils.equals(1.0, containerPercent)) {
return rec; return rec;
} }
rec.x = (int) (rec.x / containerPercent); rec.x = (int) (rec.x / containerPercent);
@ -244,7 +245,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
@Override @Override
public void updateChildBound(int minHeight) { public void updateChildBound(int minHeight) {
double prevContainerPercent = FRScreen.getByDimension(toData().getDesigningResolution()).getValue() / FormArea.DEFAULT_SLIDER; double prevContainerPercent = FRScreen.getByDimension(toData().getDesigningResolution()).getValue() / FormArea.DEFAULT_SLIDER;
if (toData().getCompState() == 0 && prevContainerPercent != containerPercent) { if (toData().getCompState() == 0 && !AssistUtils.equals(containerPercent, prevContainerPercent)) {
for (int i = 0; i < this.getComponentCount(); i++) { for (int i = 0; i < this.getComponentCount(); i++) {
XCreator creator = getXCreator(i); XCreator creator = getXCreator(i);
Rectangle rec = new Rectangle(creator.getBounds()); Rectangle rec = new Rectangle(creator.getBounds());

7
designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java

@ -21,6 +21,7 @@ import com.fr.form.ui.container.WLayout;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.FRScreen; import com.fr.general.FRScreen;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import edu.emory.mathcs.backport.java.util.Arrays; import edu.emory.mathcs.backport.java.util.Arrays;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
@ -72,7 +73,7 @@ public class XWFitLayout extends XLayoutContainer {
Toolkit toolkit = Toolkit.getDefaultToolkit(); Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension scrnsize = toolkit.getScreenSize(); Dimension scrnsize = toolkit.getScreenSize();
double screenValue = FRScreen.getByDimension(scrnsize).getValue(); double screenValue = FRScreen.getByDimension(scrnsize).getValue();
if(screenValue != FormArea.DEFAULT_SLIDER){ if (!AssistUtils.equals(FormArea.DEFAULT_SLIDER, screenValue)) {
this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER);
} }
} }
@ -717,7 +718,7 @@ public class XWFitLayout extends XLayoutContainer {
* 界面容器大小不是默认的时处理控件的BoundsWidget且避免出现空隙 * 界面容器大小不是默认的时处理控件的BoundsWidget且避免出现空隙
*/ */
private Rectangle dealWidgetBound(Rectangle rec) { private Rectangle dealWidgetBound(Rectangle rec) {
if (containerPercent == 1.0) { if (AssistUtils.equals(1.0, containerPercent)) {
return rec; return rec;
} }
rec.x = (int) (rec.x/containerPercent); rec.x = (int) (rec.x/containerPercent);
@ -731,7 +732,7 @@ public class XWFitLayout extends XLayoutContainer {
* 界面容器大小不是默认的时恢复组件实际大小 * 界面容器大小不是默认的时恢复组件实际大小
*/ */
private Rectangle dealWgtBound(Rectangle rec) { private Rectangle dealWgtBound(Rectangle rec) {
if (containerPercent == 1.0) { if (AssistUtils.equals(1.0, containerPercent)) {
return rec; return rec;
} }
rec.x = (int) (rec.x * containerPercent); rec.x = (int) (rec.x * containerPercent);

4
designer-form/src/main/java/com/fr/design/gui/xpane/ToolTipEditor.java

@ -15,7 +15,7 @@ import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.form.ui.DataControl; import com.fr.form.ui.DataControl;
import com.fr.form.ui.EditorHolder; import com.fr.form.ui.EditorHolder;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.form.ui.WidgetValue; import com.fr.form.ui.WidgetValueUtils;
import com.fr.general.Background; import com.fr.general.Background;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginContext;
@ -77,7 +77,7 @@ public class ToolTipEditor extends JWindow {
createWidget.setWidgetName(widget.getWidgetName()); createWidget.setWidgetName(widget.getWidgetName());
createWidget.setEnabled(widget.isEnabled()); createWidget.setEnabled(widget.isEnabled());
createWidget.setVisible(widget.isVisible()); createWidget.setVisible(widget.isVisible());
WidgetValue.convertWidgetValue((DataControl) createWidget, widget.getWidgetValue().getValue()); WidgetValueUtils.convertWidgetValue((DataControl) createWidget, widget.getWidgetValue().getValue());
XCreator creator = null; XCreator creator = null;
creator = parent.replace(createWidget, holder); creator = parent.replace(createWidget, holder);
Component designer = holder.getDesignerEditor().getEditorTarget().getParent(); Component designer = holder.getDesignerEditor().getEditorTarget().getParent();

16
designer-form/src/main/java/com/fr/design/mainframe/FormArea.java

@ -23,6 +23,7 @@ import com.fr.design.utils.gui.LayoutUtils;
import com.fr.form.main.mobile.FormMobileAttr; import com.fr.form.main.mobile.FormMobileAttr;
import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WBorderLayout;
import com.fr.general.FRScreen; import com.fr.general.FRScreen;
import com.fr.stable.AssistUtils;
import javax.swing.JComponent; import javax.swing.JComponent;
@ -226,7 +227,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
// slidePane.populateBean(screenValue); // slidePane.populateBean(screenValue);
if (root.acceptType(XWFitLayout.class)) { if (root.acceptType(XWFitLayout.class)) {
XWFitLayout layout = (XWFitLayout) root; XWFitLayout layout = (XWFitLayout) root;
if (screenValue != DEFAULT_SLIDER) { if ( !AssistUtils.equals(screenValue, DEFAULT_SLIDER) ) {
reCalculateRoot(screenValue, true); reCalculateRoot(screenValue, true);
} else { } else {
// 组件间隔啊 // 组件间隔啊
@ -354,7 +355,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
// double value = slidePane.updateBean(); // double value = slidePane.updateBean();
//重置滑块的值为默认值100 //重置滑块的值为默认值100
START_VALUE = DEFAULT_SLIDER; START_VALUE = DEFAULT_SLIDER;
if (screenValue == DEFAULT_SLIDER) { if ( AssistUtils.equals(screenValue, DEFAULT_SLIDER) ) {
layout.getParent().setSize(width, height + designer.getParaHeight()); layout.getParent().setSize(width, height + designer.getParaHeight());
FormArea.this.validate(); FormArea.this.validate();
} else { } else {
@ -370,7 +371,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
* @param value * @param value
*/ */
private void reCalculateRoot(double value, boolean needCalculateParaHeight) { private void reCalculateRoot(double value, boolean needCalculateParaHeight) {
if (value == START_VALUE) { if ( AssistUtils.equals(value, START_VALUE) ) {
return; return;
} }
double percent = (value - START_VALUE) / START_VALUE; double percent = (value - START_VALUE) / START_VALUE;
@ -734,15 +735,15 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
this.horicalMax = (int) totalSize.getHeight(); this.horicalMax = (int) totalSize.getHeight();
// 撤销时会refreshRoot,导致layout大小变为默认大小 // 撤销时会refreshRoot,导致layout大小变为默认大小
// 按照之前设置的宽高和百分比重置下容器size // 按照之前设置的宽高和百分比重置下容器size
if (width != widthPane.getValue()) { if ( !AssistUtils.equals(width, widthPane.getValue()) ) {
widthPane.setValue(width); widthPane.setValue(width);
reCalculateWidth((int) width); reCalculateWidth((int) width);
} }
if (height != heightPane.getValue()) { if ( !AssistUtils.equals(height, heightPane.getValue()) ) {
heightPane.setValue(height); heightPane.setValue(height);
reCalculateHeight((int) height); reCalculateHeight((int) height);
} }
if (designer.getRootComponent().acceptType(XWFitLayout.class) && slide == DEFAULT_SLIDER) { if (designer.getRootComponent().acceptType(XWFitLayout.class) && AssistUtils.equals(slide, DEFAULT_SLIDER) ) {
XWFitLayout layout = (XWFitLayout) designer.getRootComponent(); XWFitLayout layout = (XWFitLayout) designer.getRootComponent();
// 撤销时先refreshRoot了,此处去掉内边距再增加间隔 // 撤销时先refreshRoot了,此处去掉内边距再增加间隔
layout.moveContainerMargin(); layout.moveContainerMargin();
@ -817,6 +818,9 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
Rectangle rec = new Rectangle(left + (right - DESIGNERWIDTH) / 2, TOPGAP, right, bottom); Rectangle rec = new Rectangle(left + (right - DESIGNERWIDTH) / 2, TOPGAP, right, bottom);
//是否为表单 //是否为表单
if (isValid) { if (isValid) {
if (hbarPreferredSize == null) {
throw new IllegalArgumentException("hbarPreferredSize can not be null!");
}
int maxHeight = bottom - hbarPreferredSize.height - resize.height - TOPGAP * 2; int maxHeight = bottom - hbarPreferredSize.height - resize.height - TOPGAP * 2;
int maxWidth = right - vbarPreferredSize.width; int maxWidth = right - vbarPreferredSize.width;
DESIGNERWIDTH = DESIGNERWIDTH > maxWidth ? maxWidth : DESIGNERWIDTH; DESIGNERWIDTH = DESIGNERWIDTH > maxWidth ? maxWidth : DESIGNERWIDTH;

20
designer-form/src/main/java/com/fr/design/mainframe/FormDesignerDropTarget.java

@ -6,10 +6,11 @@ import com.fr.form.ui.DataControl;
import com.fr.form.ui.IframeEditor; import com.fr.form.ui.IframeEditor;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.form.ui.WidgetValue; import com.fr.form.ui.WidgetValue;
import com.fr.form.ui.concept.data.ValueInitializer;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import java.awt.Point; import java.awt.*;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.datatransfer.UnsupportedFlavorException;
@ -31,6 +32,7 @@ public class FormDesignerDropTarget extends DropTargetAdapter {
/** /**
* 响应拖拽进入事件 * 响应拖拽进入事件
*
* @param dtde 需要被处理的拖拽事件 * @param dtde 需要被处理的拖拽事件
*/ */
public void dragEnter(DropTargetDragEvent dtde) { public void dragEnter(DropTargetDragEvent dtde) {
@ -39,6 +41,7 @@ public class FormDesignerDropTarget extends DropTargetAdapter {
/** /**
* 处理拖拽经过事件 * 处理拖拽经过事件
*
* @param dtde 需要被处理的拖拽事件 * @param dtde 需要被处理的拖拽事件
*/ */
public void dragOver(DropTargetDragEvent dtde) { public void dragOver(DropTargetDragEvent dtde) {
@ -52,6 +55,7 @@ public class FormDesignerDropTarget extends DropTargetAdapter {
/** /**
* 处理拖拽释放事件 * 处理拖拽释放事件
*
* @param dtde 需要被处理的拖拽事件 * @param dtde 需要被处理的拖拽事件
*/ */
public void drop(DropTargetDropEvent dtde) { public void drop(DropTargetDropEvent dtde) {
@ -75,22 +79,16 @@ public class FormDesignerDropTarget extends DropTargetAdapter {
if (!(widget instanceof DataControl)) { if (!(widget instanceof DataControl)) {
return; return;
} }
WidgetValue oldvalue = ((DataControl) widget).getWidgetValue(); ValueInitializer oldValue = ((DataControl) widget).getWidgetValue();
WidgetValue newValue = new WidgetValue(new DataBinding((String[][]) o)); ValueInitializer newValue = new WidgetValue(new DataBinding((String[][]) o));
if (!ComparatorUtils.equals(oldvalue, newValue)) { if (!ComparatorUtils.equals(oldValue, newValue)) {
((DataControl) widget).setWidgetValue(newValue); ((DataControl) widget).setWidgetValue(newValue);
designer.fireTargetModified(); designer.fireTargetModified();
} }
creator.rebuid(); creator.rebuid();
designer.getSelectionModel().setSelectedCreator(creator); designer.getSelectionModel().setSelectedCreator(creator);
} catch (UnsupportedFlavorException e) { } catch (UnsupportedFlavorException | IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
} }
private void setSrcForIframeEditor() {
} }
} }

10
designer-form/src/main/java/com/fr/design/widget/ui/designer/component/FormWidgetValuePane.java

@ -1,7 +1,11 @@
package com.fr.design.widget.ui.designer.component; package com.fr.design.widget.ui.designer.component;
import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.LayoutConstants;
import com.fr.design.editor.editor.*; import com.fr.design.editor.editor.BooleanEditor;
import com.fr.design.editor.editor.DateEditor;
import com.fr.design.editor.editor.DoubleEditor;
import com.fr.design.editor.editor.Editor;
import com.fr.design.editor.editor.FormulaEditor;
import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.mainframe.widget.editors.DataBindingEditor; import com.fr.design.mainframe.widget.editors.DataBindingEditor;
import com.fr.design.mainframe.widget.editors.DataTableEditor; import com.fr.design.mainframe.widget.editors.DataTableEditor;
@ -9,9 +13,9 @@ import com.fr.design.mainframe.widget.editors.ServerDataBindingEditor;
import com.fr.design.mainframe.widget.editors.ServerDataTableEditor; import com.fr.design.mainframe.widget.editors.ServerDataTableEditor;
import com.fr.form.ui.DataControl; import com.fr.form.ui.DataControl;
import com.fr.form.ui.WidgetValue; import com.fr.form.ui.WidgetValue;
import com.fr.form.ui.concept.data.ValueInitializer;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -112,7 +116,7 @@ public class FormWidgetValuePane extends JPanel {
} }
public void populate(DataControl ob) { public void populate(DataControl ob) {
WidgetValue widgetValue = ob.getWidgetValue(); ValueInitializer widgetValue = ob.getWidgetValue();
if (widgetValue != null) { if (widgetValue != null) {
for (int i = 0; i < editor.length; i++) { for (int i = 0; i < editor.length; i++) {
if (editor[i].accept(widgetValue.getValue())) { if (editor[i].accept(widgetValue.getValue())) {

2
designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java

@ -110,9 +110,11 @@ public class AlignmentAction extends ButtonGroupAction implements StyleActionInt
group.setAllToolTips(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Left"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Center"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Right")}); group.setAllToolTips(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Left"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Center"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Right")});
} }
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (group != null) {
group.getButton(i).setRoundBorder(true, UIConstants.ARC); group.getButton(i).setRoundBorder(true, UIConstants.ARC);
group.getButton(i).setBorderPainted(true); group.getButton(i).setBorderPainted(true);
} }
}
return group; return group;
} }

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save