Browse Source

Merge pull request #6360 in DESIGN/design from final/11.0 to release/11.0

* commit '519ff1131dc640aa47e7a3698cf13b3781cd3c5e':
  REPORT-61505 导出-导出事件-模板保存问题
  REPORT-58538 适配平台支持服务器数据集权限
  REPORT-61510 组件埋点版本由jartime更换成jar版本
  REPORT-61338 设计器主题-主题配色修改保存后出现异常空白提示框
  CHART-21579 模版主题编辑页面-图表-系列-渐变色的色值联动逻辑修改
  REPORT-61338 设计器主题-主题配色修改保存后出现异常空白提示框
  REPORT-61366 FR11决策报表的报表块对应的单元格样式问题
bugfix/11.0
superman 3 years ago
parent
commit
ad25855ae0
  1. 16
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  2. 8
      designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java
  3. 4
      designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java
  4. 2
      designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java
  5. 23
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java
  6. 13
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java
  7. 33
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java
  8. 7
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java
  9. 5
      designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java
  10. 6
      designer-base/src/main/java/com/fr/design/style/background/gradient/FixedGradientBar.java
  11. 29
      designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java
  12. 65
      designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java
  13. 3
      designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellStringQuickEditor.java

16
designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java

@ -53,6 +53,7 @@ import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.manage.PluginFilter; import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.StringUtils;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -74,6 +75,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
@ -180,16 +182,20 @@ public class TableDataTreePane extends BasicTableDataTreePane {
} }
private void initServerDatasetAuthTipJPanel() { private void initServerDatasetAuthTipJPanel() {
String[] lineTips = Toolkit.i18nText("Fine-Design_Server_Dataset_Auth_Tip").split("\n"); String datasetAuthTip = Toolkit.i18nText("Fine-Design_Server_Dataset_Auth_Tip");
List<String> lineTips = new ArrayList(Arrays.asList(datasetAuthTip.split("\n")));
if (datasetAuthTip.endsWith("\n")) {
lineTips.add(StringUtils.EMPTY);
}
serverDatasetAuthTipJPanel = new JPanel(); serverDatasetAuthTipJPanel = new JPanel();
serverDatasetAuthTipJPanel.setLayout(new GridLayout(lineTips.length, 1)); serverDatasetAuthTipJPanel.setLayout(new GridLayout(lineTips.size(), 1));
for (int i = 0; i < lineTips.length; i++) { for (int i = 0; i < lineTips.size(); i++) {
String lineTip = lineTips[i]; String lineTip = lineTips.get(i);
List<JLabel> jLabels = new ArrayList<>(); List<JLabel> jLabels = new ArrayList<>();
JLabel lineJLabel = new JLabel(lineTip); JLabel lineJLabel = new JLabel(lineTip);
lineJLabel.setForeground(Color.lightGray); lineJLabel.setForeground(Color.lightGray);
jLabels.add(lineJLabel); jLabels.add(lineJLabel);
if (i == (lineTips.length - 1)) { if (i == (lineTips.size() - 1)) {
JLabel jLabel = new JLabel(Toolkit.i18nText("Fine-Design_Basic_Alphafine_No_Remind")); JLabel jLabel = new JLabel(Toolkit.i18nText("Fine-Design_Basic_Alphafine_No_Remind"));
jLabel.setForeground(Color.blue); jLabel.setForeground(Color.blue);
jLabel.addMouseListener(new MouseAdapter() { jLabel.addMouseListener(new MouseAdapter() {

8
designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java

@ -43,6 +43,7 @@ import java.awt.event.ItemListener;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.Format; import java.text.Format;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays;
/** /**
* @author Starryi * @author Starryi
@ -151,16 +152,17 @@ public class TextFormatPane extends AbstractBasicStylePane implements GlobalName
protected JPanel createContentPane (Component[][] components) { protected JPanel createContentPane (Component[][] components) {
double f = TableLayout.FILL; double f = TableLayout.FILL;
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p, p, p}; double[] rowSize = new double[components.length];
Arrays.fill(rowSize, p);
double[] columnSize = {p, f}; double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; int[][] rowCount = new int[components.length][2];
Arrays.fill(rowCount, new int[] {1, 1});
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM);
} }
protected Component[][] getComponent (JPanel centerPane, JPanel typePane) { protected Component[][] getComponent (JPanel centerPane, JPanel typePane) {
return new Component[][]{ return new Component[][]{
new Component[]{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Report_Base_Format"), SwingConstants.LEFT), typePane}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Report_Base_Format"), SwingConstants.LEFT), typePane},
new Component[]{centerPane, null}, new Component[]{centerPane, null},
new Component[]{optionPane, null}, new Component[]{optionPane, null},

4
designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java

@ -696,7 +696,9 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane<ExportJavaScript
return; return;
} }
SingleJavaScript js = getList().get(table.getSelectedRow()); SingleJavaScript js = getList().get(table.getSelectedRow());
js.setParameters(parameterArr); if (parameterArr != null) {
js.setParameters(parameterArr);
}
fireTableDataChanged(); fireTableDataChanged();
} }
}); });

2
designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java

@ -525,7 +525,7 @@ public class ComponentCollector implements XMLable {
jo.put("userId", MarketConfig.getInstance().getBBSAttr().getBbsUid()); jo.put("userId", MarketConfig.getInstance().getBBSAttr().getBbsUid());
jo.put("uuid", uuid); jo.put("uuid", uuid);
jo.put("cmpBoardClickDaily", cmpBoardClickDaily()); jo.put("cmpBoardClickDaily", cmpBoardClickDaily());
jo.put("pluginVersion", GeneralUtils.readBuildNO()); jo.put("pluginVersion", GeneralUtils.getVersion());
jo.put("localCmpNumber", localCmpNumber); jo.put("localCmpNumber", localCmpNumber);
jo.put("remoteCmpNumber", remoteCmpNumber); jo.put("remoteCmpNumber", remoteCmpNumber);
jo.put("uploadCmpNumber", uploadCmpNumber); jo.put("uploadCmpNumber", uploadCmpNumber);

23
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java

@ -22,6 +22,7 @@ import com.fr.design.menu.ToolBarDef;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.javax.annotation.Nullable;
import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.CallBackAdaptor;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -67,19 +68,19 @@ public class TemplateThemeGridControlPane<T extends TemplateTheme> extends Basic
private final Window window; private final Window window;
public static TemplateThemeGridControlPane<FormTheme> createFormThemesManagerPane(Window window) { public static TemplateThemeGridControlPane<FormTheme> createFormThemesManagerPane(@Nullable Window window) {
FormThemeConfig config = FormThemeConfig.getInstance(); FormThemeConfig config = FormThemeConfig.getInstance();
FormThemeProfilePane editPane = new FormThemeProfilePane(config); FormThemeProfilePane editPane = new FormThemeProfilePane(config);
return new TemplateThemeGridControlPane<>(window, config, editPane); return new TemplateThemeGridControlPane<>(window, config, editPane);
} }
public static TemplateThemeGridControlPane<ReportTheme> createReportThemesManagerPane(Window window) { public static TemplateThemeGridControlPane<ReportTheme> createReportThemesManagerPane(@Nullable Window window) {
ReportThemeConfig config = ReportThemeConfig.getInstance(); ReportThemeConfig config = ReportThemeConfig.getInstance();
ReportThemeProfilePane editPane = new ReportThemeProfilePane(config); ReportThemeProfilePane editPane = new ReportThemeProfilePane(config);
return new TemplateThemeGridControlPane<>(window, config, editPane); return new TemplateThemeGridControlPane<>(window, config, editPane);
} }
public TemplateThemeGridControlPane(Window window, TemplateThemeConfig<T> config, TemplateThemeProfilePane<T> profilePane) { public TemplateThemeGridControlPane(@Nullable Window window, TemplateThemeConfig<T> config, TemplateThemeProfilePane<T> profilePane) {
this.window = window; this.window = window;
this.config = config; this.config = config;
this.profilePane = profilePane; this.profilePane = profilePane;
@ -124,13 +125,15 @@ public class TemplateThemeGridControlPane<T extends TemplateTheme> extends Basic
} }
private void registerWindowListener() { private void registerWindowListener() {
window.addWindowListener(new WindowAdapter() { if (window != null) {
@Override window.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) { @Override
super.windowClosed(e); public void windowClosed(WindowEvent e) {
asyncThemeFetcher.shutdown(); super.windowClosed(e);
} asyncThemeFetcher.shutdown();
}); }
});
}
} }
private void resetEnableRemoveAction(T selectedTheme, RemoveThemeAction removeAction) { private void resetEnableRemoveAction(T selectedTheme, RemoveThemeAction removeAction) {

13
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java

@ -22,6 +22,7 @@ import com.fr.design.mainframe.theme.provider.ThemeManageActionProvider;
import com.fr.design.mainframe.theme.ui.BreadcrumbBar; import com.fr.design.mainframe.theme.ui.BreadcrumbBar;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.unit.FU; import com.fr.stable.unit.FU;
import com.fr.third.javax.annotation.Nullable;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -62,11 +63,15 @@ public class TemplateThemeGridPagesPane extends JPanel {
private PageChangeListener pageChangeListener; private PageChangeListener pageChangeListener;
private TemplateThemeGridPagePane currentTemplateThemeGridPagePane; private TemplateThemeGridPagePane currentTemplateThemeGridPagePane;
public TemplateThemeGridPagesPane(Window window) { public TemplateThemeGridPagesPane() {
initializePane(null);
}
public TemplateThemeGridPagesPane(@Nullable Window window) {
initializePane(window); initializePane(window);
} }
private void initializePane(Window window) { private void initializePane(@Nullable Window window) {
setLayout(new BorderLayout()); setLayout(new BorderLayout());
setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10));
@ -234,7 +239,7 @@ public class TemplateThemeGridPagesPane extends JPanel {
private final JTemplate<?,?> template; private final JTemplate<?,?> template;
public final TemplateThemeGridPane<? extends TemplateTheme> themeListPane; public final TemplateThemeGridPane<? extends TemplateTheme> themeListPane;
public TemplateThemeUsingPane(Window window) { public TemplateThemeUsingPane(@Nullable Window window) {
super(); super();
setLayout(new BorderLayout()); setLayout(new BorderLayout());
setBorder(new CompoundBorder( setBorder(new CompoundBorder(
@ -273,7 +278,7 @@ public class TemplateThemeGridPagesPane extends JPanel {
public static class TemplateThemeManagingPane extends TemplateThemeGridPagePane { public static class TemplateThemeManagingPane extends TemplateThemeGridPagePane {
private final UITabbedPane tabbedPane; private final UITabbedPane tabbedPane;
public TemplateThemeManagingPane(Window window) { public TemplateThemeManagingPane(@Nullable Window window) {
setLayout(FRGUIPaneFactory.createBorderLayout()); setLayout(FRGUIPaneFactory.createBorderLayout());
tabbedPane = new UITabbedPane(); tabbedPane = new UITabbedPane();

33
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java

@ -9,6 +9,7 @@ import com.fr.design.event.ChangeListener;
import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.javax.annotation.Nullable;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -56,7 +57,7 @@ public class TemplateThemeGridPane<T extends TemplateTheme> extends BasicPane {
private final Window window; private final Window window;
public TemplateThemeGridPane(Window window, boolean displayTheme4NewTemplateMarker, TemplateThemeConfig<T> config, TemplateThemeProfilePane<T> profilePane) { public TemplateThemeGridPane(@Nullable Window window, boolean displayTheme4NewTemplateMarker, TemplateThemeConfig<T> config, TemplateThemeProfilePane<T> profilePane) {
this.window = window; this.window = window;
this.displayTheme4NewTemplateMarker = displayTheme4NewTemplateMarker; this.displayTheme4NewTemplateMarker = displayTheme4NewTemplateMarker;
this.config = config; this.config = config;
@ -90,21 +91,23 @@ public class TemplateThemeGridPane<T extends TemplateTheme> extends BasicPane {
} }
private void registerWindowListener() { private void registerWindowListener() {
window.addWindowListener(new WindowAdapter() { if (window != null) {
@Override window.addWindowListener(new WindowAdapter() {
public void windowOpened(WindowEvent e) { @Override
super.windowOpened(e); public void windowOpened(WindowEvent e) {
startListenThemeConfig(); super.windowOpened(e);
asyncFetchThemes(); startListenThemeConfig();
} asyncFetchThemes();
}
@Override @Override
public void windowClosed(WindowEvent e) { public void windowClosed(WindowEvent e) {
super.windowClosed(e); super.windowClosed(e);
stopListenThemeConfig(); stopListenThemeConfig();
asyncThemeFetcher.shutdown(); asyncThemeFetcher.shutdown();
} }
}); });
}
} }
public void fillContentListPane() { public void fillContentListPane() {

7
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java

@ -220,7 +220,12 @@ public abstract class TemplateThemeProfilePane<T extends TemplateTheme> extends
saveButton.setEnabled(false); saveButton.setEnabled(false);
saveAsButton.setEnabled(true); saveAsButton.setEnabled(true);
actionListener.onSaved(config.cachedFetch(getName())); actionListener.onSaved(config.cachedFetch(getName()));
DesignerToastMsgUtil.toastPrompt(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Save_Successfully")); SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
DesignerToastMsgUtil.toastPrompt(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Save_Successfully"));
}
});
} }
}); });
} }

5
designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.theme.edit.chart; package com.fr.design.mainframe.theme.edit.chart;
import com.fr.base.FineColor;
import com.fr.base.theme.settings.ThemedChartStyle; import com.fr.base.theme.settings.ThemedChartStyle;
import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
@ -7,12 +8,12 @@ import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.theme.dialog.TemplateThemeProfileDialog; import com.fr.design.mainframe.theme.dialog.TemplateThemeProfileDialog;
import com.fr.design.style.background.gradient.FixedGradientBar; import com.fr.design.style.background.gradient.FixedGradientBar;
import java.util.List;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.List;
/** /**
* @author Bjorn * @author Bjorn
@ -66,7 +67,7 @@ public class ChartSeriesStylePane extends AbstractChartStylePane {
if (chartStyle.getThemedChartSeriesColor().isCombineColor()) { if (chartStyle.getThemedChartSeriesColor().isCombineColor()) {
List<Color> editingColorScheme = TemplateThemeProfileDialog.getEditingColorScheme(); List<Color> editingColorScheme = TemplateThemeProfileDialog.getEditingColorScheme();
colorTypeButton.setSelectedIndex(0); colorTypeButton.setSelectedIndex(0);
gradientBar.updateColor(editingColorScheme.get(0), editingColorScheme.get(1)); gradientBar.updateColor(new FineColor(0, 0, editingColorScheme.get(0)), new FineColor(1, 0, editingColorScheme.get(1)));
} else { } else {
colorTypeButton.setSelectedIndex(1); colorTypeButton.setSelectedIndex(1);
gradientBar.updateColor(chartStyle.getThemedChartSeriesColor().getBeginColor(), chartStyle.getThemedChartSeriesColor().getEndColor()); gradientBar.updateColor(chartStyle.getThemedChartSeriesColor().getBeginColor(), chartStyle.getThemedChartSeriesColor().getEndColor());

6
designer-base/src/main/java/com/fr/design/style/background/gradient/FixedGradientBar.java

@ -14,6 +14,12 @@ public class FixedGradientBar extends GradientBar {
super(minvalue, maxvalue); super(minvalue, maxvalue);
} }
@Override
protected void clickButton(int select) {
setColor(getList().get(select).getColorInner());
super.clickButton(select);
}
@Override @Override
protected void addMouseDragListener() { protected void addMouseDragListener() {
//不添加拖拽事件 //不添加拖拽事件

29
designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

@ -42,6 +42,7 @@ import com.fr.report.cell.cellattr.core.group.DSColumn;
import com.fr.report.cell.cellattr.core.group.FilterTypeEnum; import com.fr.report.cell.cellattr.core.group.FilterTypeEnum;
import com.fr.report.cell.cellattr.core.group.SelectCount; import com.fr.report.cell.cellattr.core.group.SelectCount;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.jodd.util.ArraysUtil;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.Icon; import javax.swing.Icon;
@ -60,6 +61,7 @@ import java.awt.event.ActionListener;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import static com.fr.report.cell.cellattr.core.group.FilterTypeEnum.BOTTOM; import static com.fr.report.cell.cellattr.core.group.FilterTypeEnum.BOTTOM;
import static com.fr.report.cell.cellattr.core.group.FilterTypeEnum.EVEN; import static com.fr.report.cell.cellattr.core.group.FilterTypeEnum.EVEN;
@ -472,6 +474,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
if (cellElement != null) { if (cellElement != null) {
sortPane.update(cellElement); sortPane.update(cellElement);
valuePane.update(cellElement); valuePane.update(cellElement);
formatAttrPane.update(cellElement);
filterPane.update(cellElement); filterPane.update(cellElement);
//更新单元格扩展属性 //更新单元格扩展属性
updateExtendConfig(); updateExtendConfig();
@ -486,6 +489,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
disableListener(); disableListener();
sortPane.populate(cellElement); sortPane.populate(cellElement);
valuePane.populate(cellElement); valuePane.populate(cellElement);
formatAttrPane.populate(cellElement);
filterPane.populate(cellElement); filterPane.populate(cellElement);
CellExpandAttr cellExpandAttr = cellElement.getCellExpandAttr(); CellExpandAttr cellExpandAttr = cellElement.getCellExpandAttr();
if (cellExpandAttr == null) { if (cellExpandAttr == null) {
@ -614,15 +618,19 @@ public class CellDSColumnEditor extends CellQuickEditor {
enableListener(); enableListener();
double[] rowSize = {P, P, P, P, P, P};
double[] columnSize = {F};
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
{sortPane}, {sortPane},
{filterPane}, {filterPane},
{valuePane}, {valuePane},
{formatAttrPane},
{extendableDirectionPane}, {extendableDirectionPane},
{multiNumPane} {multiNumPane}
}; };
double[] rowSize = new double[components.length];
Arrays.fill(rowSize, P);
double[] columnSize = {F};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, HGAP, VGAP); return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, HGAP, VGAP);
} }
@ -1233,15 +1241,20 @@ public class CellDSColumnEditor extends CellQuickEditor {
} }
public class FormatAttrPane extends AbstractAttrNoScrollPane { public class FormatAttrPane extends AbstractAttrNoScrollPane {
private final TextFormatPane formatPane; private TextFormatPane formatPane;
public FormatAttrPane() { @Override
protected JPanel createContentPane() {
this.formatPane = new TextFormatPane(); this.formatPane = new TextFormatPane();
return this.formatPane;
} }
@Override @Override
protected JPanel createContentPane() { public Dimension getPreferredSize() {
return formatPane; if (formatPane == null) {
return super.getPreferredSize();
}
return formatPane.getPreferredSize();
} }
protected void initContentPane() { protected void initContentPane() {
@ -1253,13 +1266,13 @@ public class CellDSColumnEditor extends CellQuickEditor {
} }
public void populate(CellElement cellElement) { public void populate(CellElement cellElement) {
if (cellElement != null) { if (cellElement != null && formatPane != null) {
formatPane.populateBean(cellElement.getStyle()); formatPane.populateBean(cellElement.getStyle());
} }
} }
public void update(CellElement cellElement) { public void update(CellElement cellElement) {
if (cellElement != null) { if (cellElement != null && formatPane != null) {
cellElement.setStyle(formatPane.update(cellElement.getStyle())); cellElement.setStyle(formatPane.update(cellElement.getStyle()));
} }
} }

65
designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java

@ -8,8 +8,11 @@ import com.fr.design.actions.insert.cell.FormulaCellAction;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.formula.FormulaFactory; import com.fr.design.formula.FormulaFactory;
import com.fr.design.formula.UIFormula; import com.fr.design.formula.UIFormula;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.style.TextFormatPane;
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.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
@ -35,6 +38,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter; import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.util.Arrays;
/** /**
* 公式快速编辑面板同文本数字编辑拆分 * 公式快速编辑面板同文本数字编辑拆分
@ -46,6 +50,7 @@ import java.awt.event.KeyEvent;
public class CellFormulaQuickEditor extends CellQuickEditor { public class CellFormulaQuickEditor extends CellQuickEditor {
//文本域 //文本域
private UITextField formulaTextField; private UITextField formulaTextField;
private TextFormatPane formatPane;
//编辑状态 //编辑状态
private boolean isEditing = false; private boolean isEditing = false;
@ -136,10 +141,59 @@ public class CellFormulaQuickEditor extends CellQuickEditor {
pane.add(formulaButton, BorderLayout.EAST); pane.add(formulaButton, BorderLayout.EAST);
content.add(pane, BorderLayout.NORTH); content.add(pane, BorderLayout.NORTH);
Component[][] componentLines = new Component[][] {
new Component[]{EMPTY_LABEL, content},
new Component[]{createFormatPane(), null},
};
double[] rowSize = new double[componentLines.length];
Arrays.fill(rowSize, TableLayout.PREFERRED);
double[] columnSize = new double[] {TableLayout.PREFERRED, TableLayout.FILL };
return TableLayoutHelper.createGapTableLayoutPane(new Component[][]{ return TableLayoutHelper.createGapTableLayoutPane(new Component[][]{
new Component[]{EMPTY_LABEL, content}}, new Component[]{EMPTY_LABEL, content},
new double[]{TableLayout.PREFERRED}, new Component[]{createFormatPane(), null},
new double[]{TableLayout.PREFERRED, TableLayout.FILL}, HGAP, VGAP); },
rowSize, columnSize, HGAP, VGAP);
}
private JPanel createFormatPane() {
formatPane = new TextFormatPane();
AbstractAttrNoScrollPane container = new AbstractAttrNoScrollPane() {
@Override
protected JPanel createContentPane() {
return formatPane;
}
protected void initContentPane() {
leftContentPane = createContentPane();
if (leftContentPane != null) {
leftContentPane.setBorder(BorderFactory.createEmptyBorder());
this.add(leftContentPane, BorderLayout.CENTER);
}
}
};
container.addAttributeChangeListener(new AttributeChangeListener() {
@Override
public void attributeChange() {
isEditing = true;
CellSelection cs1 = (CellSelection) tc.getSelection();
cellElement = tc.getEditingElementCase().getTemplateCellElement(cs1.getColumn(), cs1.getRow());
if (cellElement == null) {
CellSelection cs = (CellSelection) tc.getSelection();
cellElement = DefaultThemedTemplateCellElementCase.createInstance(cs.getColumn(), cs.getRow());
tc.getEditingElementCase().addCellElement(cellElement, false);
}
cellElement.setStyle(formatPane.update(cellElement.getStyle()));
fireTargetModified();
isEditing = false;
}
});
return container;
} }
@Override @Override
@ -202,6 +256,11 @@ public class CellFormulaQuickEditor extends CellQuickEditor {
} }
showText(str); showText(str);
formulaTextField.setEditable(tc.isSelectedOneCell()); formulaTextField.setEditable(tc.isSelectedOneCell());
if (cellElement != null) {
Style style = cellElement.getStyle();
formatPane.populateBean(style);
}
} }
/** /**

3
designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellStringQuickEditor.java

@ -3,6 +3,7 @@ package com.fr.quickeditor.cellquick;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.base.Style; import com.fr.base.Style;
import com.fr.base.TextFormat; import com.fr.base.TextFormat;
import com.fr.design.designer.IntervalConstants;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.gui.itextarea.UITextArea; import com.fr.design.gui.itextarea.UITextArea;
@ -65,7 +66,7 @@ public class CellStringQuickEditor extends CellQuickEditor {
*/ */
@Override @Override
public JComponent createCenterBody() { public JComponent createCenterBody() {
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(new BorderLayout(0, IntervalConstants.INTERVAL_L1));
stringTextArea = new UITextArea(); stringTextArea = new UITextArea();
stringTextArea.addKeyListener(new KeyAdapter() { stringTextArea.addKeyListener(new KeyAdapter() {

Loading…
Cancel
Save