Browse Source

Merge pull request #14673 in DESIGN/design from fbp/feature to fbp/release

* commit 'fd94ed337cedbe73c6f860dab80977f0398f1b1f':
  REPORT-130599 【FBP数据源】FR设计器远程66环境,添加文件数据集选择本地文件,预览正常但添加失败
  REPORT-130846【NewUI】ComboBox边距调整
  REPORT-130846【NewUI】ComboBox边距调整
  REPORT-113994 【NewUI】图表遗留问题处理
  REPORT-131407 修复数据中心弹窗标题缺失
fbp/release
superman 3 months ago
parent
commit
030fa388bc
  1. 52
      designer-base/src/main/java/com/fr/design/data/tabledata/LocalTableDataSource.java
  2. 3
      designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DatacentersPane.java
  3. 2
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java
  4. 14
      designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java
  5. 5
      designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java
  6. 45
      designer-base/src/main/java/com/fr/file/FILEChooserPane.java
  7. 5
      designer-base/src/main/java/com/fr/file/FILEFactory.java
  8. 169
      designer-base/src/main/java/com/fr/file/FileDataFILE.java
  9. 4
      designer-base/src/main/java/com/fr/file/FileNodeFILE.java
  10. 1
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties
  11. 7
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldNamePane.java
  12. 36
      designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java
  13. 22
      designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableResultDataSeriesPane.java
  14. 22
      designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableSeriesTypeUsePane.java
  15. 24
      designer-chart/src/main/java/com/fr/van/chart/designer/other/AutoRefreshPane.java
  16. 20
      designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java
  17. 3
      designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java

52
designer-base/src/main/java/com/fr/design/data/tabledata/LocalTableDataSource.java

@ -0,0 +1,52 @@
package com.fr.design.data.tabledata;
import com.fanruan.config.impl.data.TableDataConfigProviderFactory;
import com.fr.decision.webservice.bean.entry.FileNodeBean;
import com.fr.decision.webservice.v10.datasource.dataset.processor.impl.FileProcessor;
import com.fr.stable.StringUtils;
import com.fr.workspace.server.repository.tabledata.BaseTableDataSource;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* LocalTableDataSource
*
* @author Destiny.Lin
* @since 11.0
* Created on 2024/5/29
*/
public class LocalTableDataSource extends BaseTableDataSource {
@Override
public Set<String> getAllNames(String username) {
Set<String> authServerDataSetNames = new HashSet<>();
for (String authServerDataSetName : TableDataConfigProviderFactory.getInstance().getTableDatas().keySet()) {
authServerDataSetNames.add(authServerDataSetName);
}
return authServerDataSetNames;
}
@Override
public boolean lock(String str) {
// 本地默认锁定成功,让其执行后续动作
return true;
}
@Override
public boolean unlock(String str) {
// 本地默认解锁成功
return true;
}
@Override
public boolean isLock(String str) {
// 本地默认未锁定
return false;
}
@Override
public List<FileNodeBean> getFileList(String fileType) {
return FileProcessor.KEY.getFileList(fileType, StringUtils.EMPTY);
}
}

3
designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DatacentersPane.java

@ -7,6 +7,7 @@ import com.fr.datacenters.tabledata.bean.DCTableDataBean;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane; import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.design.dialog.DialogActionListener; import com.fr.design.dialog.DialogActionListener;
import com.fr.design.dialog.UIDialog; import com.fr.design.dialog.UIDialog;
import com.fr.design.i18n.Toolkit;
import com.fr.design.jxbrowser.JxEngine; import com.fr.design.jxbrowser.JxEngine;
import com.fr.design.jxbrowser.JxUIPane; import com.fr.design.jxbrowser.JxUIPane;
import com.fr.json.revise.EmbedJson; import com.fr.json.revise.EmbedJson;
@ -125,6 +126,6 @@ public class DatacentersPane extends AbstractTableDataPane<DCTableData> {
@Override @Override
protected String title4PopupWindow() { protected String title4PopupWindow() {
return ""; return Toolkit.i18nText("Fine-Design_Report_Add_TableData");
} }
} }

2
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java

@ -448,7 +448,7 @@ public class FileTableDataPane extends AbstractTableDataPane<FileTableData> {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
FILEChooserPane fileChooser = FILEChooserPane.getInstance(true, false, new ChooseFileFilter(getFileSuffix())); FILEChooserPane fileChooser = FILEChooserPane.getFileDataChoosePane(new ChooseFileFilter(getFileSuffix()));
if (fileChooser.showOpenDialog(FileTableDataPane.this) == FILEChooserPane.OK_OPTION) { if (fileChooser.showOpenDialog(FileTableDataPane.this) == FILEChooserPane.OK_OPTION) {
final FILE file = fileChooser.getSelectedFILE(); final FILE file = fileChooser.getSelectedFILE();
if (file == null) {// 选择的文件不能是 null if (file == null) {// 选择的文件不能是 null

14
designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java

@ -1,10 +1,15 @@
package com.fr.design.gui.icombobox; package com.fr.design.gui.icombobox;
import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
/** /**
* *
@ -19,6 +24,15 @@ public class UIComboBoxRenderer extends DefaultListCellRenderer {
super(); super();
} }
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel renderer =(JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
renderer.setBorder(new ScaledEmptyBorder(FineUIUtils.getUIInsets(
"ComboBox.renderInset", "ComboBox.padding"
)));
return renderer;
}
@Override @Override
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
return new Dimension(super.getPreferredSize().width, FineUIScale.scale(24)); return new Dimension(super.getPreferredSize().width, FineUIScale.scale(24));

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

@ -2,6 +2,7 @@ package com.fr.design.gui.ispinner;
import com.fine.theme.icon.LazyIcon; import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIUtils; import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameListener;
import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.GlobalNameObserver;
import com.fr.design.event.HoverAware; import com.fr.design.event.HoverAware;
@ -284,8 +285,8 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver,
textField = initNumberField(); textField = initNumberField();
textField.setMaxValue(maxValue); textField.setMaxValue(maxValue);
textField.setMinValue(minValue); textField.setMinValue(minValue);
Insets insets = FineUIUtils.getAndScaleUIInsets("InputTextField.borderInsets", defaultInsets); Insets insets = FineUIUtils.getUIInsets("InputTextField.borderInsets", defaultInsets);
textField.setBorder(BorderFactory.createEmptyBorder(insets.top, insets.left, insets.bottom, insets.right)); textField.setBorder(new ScaledEmptyBorder(insets.top, insets.left, insets.bottom, insets.right));
textField.setOpaque(false); textField.setOpaque(false);
setValue(value); setValue(value);

45
designer-base/src/main/java/com/fr/file/FILEChooserPane.java

@ -8,7 +8,6 @@ import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.base.extension.FileExtension; import com.fr.base.extension.FileExtension;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.ExtraDesignClassManager; import com.fr.design.ExtraDesignClassManager;
@ -241,6 +240,18 @@ public class FILEChooserPane extends BasicPane {
return INSTANCE; return INSTANCE;
} }
public static FILEChooserPane getFileDataChoosePane(FILEFilter filter) {
FILEChooserPane chooserPane = new FILEChooserPane();
chooserPane.showEnv = true;
chooserPane.showLoc = false;
chooserPane.showWebReport = false;
// 替换掉 PlaceListModel
chooserPane.setFileDataPlaceListModel(FileDataFILE.parseType(filter));
chooserPane.removeAllFilter();
chooserPane.addChooseFILEFilter(filter, 0);
return chooserPane;
}
/** /**
* @param showEnv * @param showEnv
@ -1110,6 +1121,13 @@ public class FILEChooserPane extends BasicPane {
setPlaceListModel(new MultiLocalEnvPlaceListModel()); setPlaceListModel(new MultiLocalEnvPlaceListModel());
} }
protected void setFileDataPlaceListModel(String type) {
if (placesList == null) {
return;
}
setPlaceListModel(new FileDataPlaceListModel(type));
}
/* /*
* 选中文件 * 选中文件
*/ */
@ -1342,6 +1360,31 @@ public class FILEChooserPane extends BasicPane {
} }
private class FileDataPlaceListModel extends AbstractPlaceListModel {
private FileDataFILE envFILE;
FileDataPlaceListModel(String type) {
envFILE = new FileDataFILE(new FileNode(StableUtils.pathJoin(ProjectConstants.ASSETS_NAME, FileDataFILE.FILE_DATASET_NAME), true), false, StableUtils.pathJoin(ProjectConstants.ASSETS_NAME, FileDataFILE.FILE_DATASET_NAME)) {
@Override
public String getName() {
return getEnvProjectName();
}
};
envFILE.setType(type);
}
@Override
public FILE getElementAt(int index) {
return envFILE;
}
@Override
public int getSize() {
return 1 + filesOfSystem.size();
}
}
private class MultiLocalEnvPlaceListModel extends AbstractPlaceListModel { private class MultiLocalEnvPlaceListModel extends AbstractPlaceListModel {
private static final long serialVersionUID = 6300018896958532154L; private static final long serialVersionUID = 6300018896958532154L;

5
designer-base/src/main/java/com/fr/file/FILEFactory.java

@ -8,6 +8,7 @@ public class FILEFactory {
public static final String MEM_PREFIX = "mem://"; public static final String MEM_PREFIX = "mem://";
public static final String FILE_PREFIX = "file://"; public static final String FILE_PREFIX = "file://";
public static final String ENV_PREFIX = "env://"; public static final String ENV_PREFIX = "env://";
public static final String FILE_DATA_PREFIX = "filedata://";
public static final String WEBREPORT_PREFIX = "webreport://"; public static final String WEBREPORT_PREFIX = "webreport://";
public static final String SEPARATOR = "/"; public static final String SEPARATOR = "/";
@ -35,6 +36,8 @@ public class FILEFactory {
FileNodeFILE.webRootPath); FileNodeFILE.webRootPath);
} else if (path.startsWith(FILE_PREFIX)) { } else if (path.startsWith(FILE_PREFIX)) {
return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length()))); return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length())));
} else if (path.startsWith(FILE_DATA_PREFIX)) {
return new FileDataFILE(new FileNode(path.substring(FILE_DATA_PREFIX.length()), false), false, path.substring(FILE_DATA_PREFIX.length()));
} else { } else {
return new FileNodeFILE(new FileNode(path, WorkContext.getWorkResource().isDirectory(path))); return new FileNodeFILE(new FileNode(path, WorkContext.getWorkResource().isDirectory(path)));
} }
@ -53,6 +56,8 @@ public class FILEFactory {
FileNodeFILE.webRootPath); FileNodeFILE.webRootPath);
} else if (path.startsWith(FILE_PREFIX)) { } else if (path.startsWith(FILE_PREFIX)) {
return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length()))); return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length())));
} else if (path.startsWith(FILE_DATA_PREFIX)) {
return new FileDataFILE(new FileNode(path.substring(FILE_DATA_PREFIX.length()), true), false, path.substring(FILE_DATA_PREFIX.length()));
} else { } else {
return new FileNodeFILE(new FileNode(path, WorkContext.getWorkResource().isDirectory(path))); return new FileNodeFILE(new FileNode(path, WorkContext.getWorkResource().isDirectory(path)));
} }

169
designer-base/src/main/java/com/fr/file/FileDataFILE.java

@ -0,0 +1,169 @@
package com.fr.file;
import com.fr.decision.webservice.bean.entry.FileNodeBean;
import com.fr.file.filetree.FileNode;
import com.fr.file.filter.FILEFilter;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.CoreConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.workspace.server.repository.tabledata.TableDataRepository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* FileDataFILE
*
* @author Destiny.Lin
* @since 11.0
* Created on 2024/8/20
*/
public class FileDataFILE extends FileNodeFILE{
public static final String FILE_DATASET_NAME = "file_dataset";
public static final String TXT = "txt";
public static final String XML = "xml";
public static final String EXCEL = "excel";
private List<FileDataFILE> children = new ArrayList<>();
private boolean builded = false;
private String id = StringUtils.EMPTY;
private String type = "txt";
public FileDataFILE(FileNode node) {
super(node);
}
public FileDataFILE(FileNode node, boolean builded, String id) {
super(node);
this.builded = builded;
this.id = id;
}
private void addChild(FileDataFILE file) {
children.add(file);
}
public List<FileDataFILE> getChildren() {
return children;
}
public void setChildren(List<FileDataFILE> children) {
this.children = children;
}
public boolean isBuilded() {
return builded;
}
public void setBuilded(boolean builded) {
this.builded = builded;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public FILE[] listFiles() {
if (ComparatorUtils.equals(node, null)) {
node = new FileNode(CoreConstants.SEPARATOR, true);
}
if (!node.isDirectory()) {
return new FILE[]{this};
}
try {
FileDataFILE root = null;
if (!this.builded) {
root = buildTree();
FileDataFILE dataFILE = root.getFileDataFILE(this.id);
this.setChildren(dataFILE.getChildren());
this.setType(dataFILE.getType());
this.builded = true;
}
return this.getChildren().toArray(new FILE[0]);
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
return new FILE[0];
}
}
@Override
public String prefix() {
return FILEFactory.FILE_DATA_PREFIX;
}
public FileDataFILE getFileDataFILE(String id) {
if (StringUtils.equals(this.id, id) || StringUtils.equals(StableUtils.pathJoin(this.id, StringUtils.EMPTY), id)) {
return this;
}
for (FileDataFILE file : getChildren()) {
return file.getFileDataFILE(id);
}
return null;
}
private FileDataFILE buildTree() {
List<FileNodeBean> beans = TableDataRepository.getInstance().getFileList(type);
Map<String, FileDataFILE> tree = new HashMap<>();
FileDataFILE root = null;
// id , 父
for (FileNodeBean bean : beans) {
FileNode fileNode = new FileNode();
fileNode.setEnvPath(bean.getPath());
fileNode.setDirectory(bean.getIsParent());
tree.putIfAbsent(bean.getId(), new FileDataFILE(fileNode, true, bean.getId()));
if (StringUtils.isEmpty(bean.getpId())) {
root = tree.get(bean.getId());
} else {
tree.putIfAbsent(bean.getpId(), createParent(bean.getpId(), beans));
FileDataFILE file = tree.get(bean.getpId());
if (file != null) {
file.addChild(tree.get(bean.getId()));
}
}
}
return root;
}
private FileDataFILE createParent(String s, List<FileNodeBean> beans) {
for (FileNodeBean bean : beans) {
if (StringUtils.equals(bean.getId(), s)) {
FileNode fileNode = new FileNode();
fileNode.setEnvPath(bean.getPath());
fileNode.setDirectory(bean.getIsParent());
return new FileDataFILE(fileNode, true, bean.getId());
}
}
return null;
}
/**
* 获取类型
*/
public static String parseType(FILEFilter filter) {
if (filter.getDescription().contains("xls")) {
return EXCEL;
} else if (filter.getDescription().contains("xml")) {
return XML;
} else {
return TXT;
}
}
}

4
designer-base/src/main/java/com/fr/file/FileNodeFILE.java

@ -49,10 +49,10 @@ public class FileNodeFILE implements FILE {
} }
private FileNode node; protected FileNode node;
//记录下FILE对应的运行环境,每次创建都设置下当前的运行环境 //记录下FILE对应的运行环境,每次创建都设置下当前的运行环境
private String envPath; protected String envPath;
/** /**
* 是否有全部权限 * 是否有全部权限

1
designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties

@ -319,6 +319,7 @@ ComboBox.selectionArc = 0
ComboBox.borderCornerRadius = 3 ComboBox.borderCornerRadius = 3
ComboBox.comboHeight = 24 ComboBox.comboHeight = 24
ComboBox.selectBox.button.height = 22 ComboBox.selectBox.button.height = 22
ComboBox.renderInset = 0,6,0,6
#---- Component ---- #---- Component ----

7
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldNamePane.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.chart.gui.data.table; package com.fr.design.mainframe.chart.gui.data.table;
import com.fine.theme.utils.FineLayoutBuilder;
import com.fr.base.Utils; import com.fr.base.Utils;
import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.base.chart.chartdata.TopDefinitionProvider;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
@ -92,12 +93,8 @@ public class SeriesNameUseFieldNamePane extends FurtherBasicBeanPane<ChartCollec
} }
}; };
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p};
Component[][] components = getUseComponent(); Component[][] components = getUseComponent();
centerPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); centerPane = FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1});
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(centerPane, BorderLayout.CENTER); this.add(centerPane, BorderLayout.CENTER);
} }

36
designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java

@ -1,5 +1,8 @@
package com.fr.van.chart.box.data.table; package com.fr.van.chart.box.data.table;
import com.fine.swing.ui.layout.Column;
import com.fine.theme.utils.FineLayoutBuilder;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartdata.NormalTableDataDefinition; import com.fr.chart.chartdata.NormalTableDataDefinition;
@ -23,6 +26,8 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.List; import java.util.List;
import static com.fine.swing.ui.layout.Layouts.column;
public class BoxPlotTableDataContentPane extends AbstractTableDataContentPane { public class BoxPlotTableDataContentPane extends AbstractTableDataContentPane {
private UIButtonGroup dataType; private UIButtonGroup dataType;
@ -51,47 +56,30 @@ public class BoxPlotTableDataContentPane extends AbstractTableDataContentPane {
} }
private JPanel createDataTypePane() { private JPanel createDataTypePane() {
JPanel pane = new JPanel(new BorderLayout(4, 0));
pane.setBorder(BorderFactory.createMatteBorder(0, 0, 6, 1, getBackground()));
UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Data_Form")); UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Data_Form"));
label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, ChartDataPane.LABEL_HEIGHT));
String[] names = new String[]{ String[] names = new String[]{
Toolkit.i18nText("Fine-Design_Chart_Detailed_Data"), Toolkit.i18nText("Fine-Design_Chart_Detailed_Data"),
Toolkit.i18nText("Fine-Design_Chart_Result_Data") Toolkit.i18nText("Fine-Design_Chart_Result_Data")
}; };
dataType = new UIButtonGroup(names); dataType = new UIButtonGroup(names);
dataType.setSelectedIndex(0); dataType.setSelectedIndex(0);
dataType.setPreferredSize(new Dimension(100, 20)); return FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, label, dataType);
pane.add(GUICoreUtils.createBorderLayoutPane(new Component[]{dataType, null, null, label, null}));
pane.setPreferredSize(new Dimension(246, 30));
pane.setBorder(BorderFactory.createEmptyBorder(0, 24, 10, 15));
return pane;
} }
private JPanel createSeriesPane() { private JPanel createSeriesPane() {
seriesTypeComboxPane = new BoxPlotTableSeriesTypeUsePane(); seriesTypeComboxPane = new BoxPlotTableSeriesTypeUsePane();
resultDataSeriesPane = new BoxPlotTableResultDataSeriesPane(); resultDataSeriesPane = new BoxPlotTableResultDataSeriesPane();
Column column = new Column();
JPanel pane = new JPanel(new BorderLayout(4, 0)); column.setBorder(new ScaledEmptyBorder(10, 0, 0, 0));
column.setSpacing(10);
pane.add(seriesTypeComboxPane, BorderLayout.CENTER); column.add(seriesTypeComboxPane);
pane.add(resultDataSeriesPane, BorderLayout.SOUTH); column.add(resultDataSeriesPane);
return column;
return pane;
} }
private JPanel createFilterPane() { private JPanel createFilterPane() {
dataScreeningPane = new ChartDataFilterPane(initplot, parent, false); dataScreeningPane = new ChartDataFilterPane(initplot, parent, false);
dataScreeningPane.setBorder(BorderFactory.createEmptyBorder(10, 24, 10, 15));
filterPane = new UIExpandablePane(Toolkit.i18nText("Fine-Design_Chart_Data_Filter"), 290, 24, dataScreeningPane); filterPane = new UIExpandablePane(Toolkit.i18nText("Fine-Design_Chart_Data_Filter"), 290, 24, dataScreeningPane);
filterPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
return filterPane; return filterPane;
} }

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

@ -1,5 +1,6 @@
package com.fr.van.chart.box.data.table; package com.fr.van.chart.box.data.table;
import com.fine.theme.utils.FineLayoutBuilder;
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.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBox;
@ -66,16 +67,7 @@ public class BoxPlotTableResultDataSeriesPane extends AbstractTableDataContentPa
private JPanel createUIComboBoxPane(UIComboBox comboBox, String title) { private JPanel createUIComboBoxPane(UIComboBox comboBox, String title) {
UILabel label = new UILabel(title); UILabel label = new UILabel(title);
label.setPreferredSize(new Dimension(80, 20)); return FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, label, comboBox);
comboBox.setPreferredSize(new Dimension(100, 20));
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout(4, 0));
panel.add(label, BorderLayout.WEST);
panel.add(comboBox, BorderLayout.CENTER);
return panel;
} }
private UIComboBoxWithEditLabel createUIComboBoxWithEditLabel(String title) { private UIComboBoxWithEditLabel createUIComboBoxWithEditLabel(String title) {
@ -108,11 +100,6 @@ public class BoxPlotTableResultDataSeriesPane extends AbstractTableDataContentPa
} }
private JPanel createDataSeriesPane() { private JPanel createDataSeriesPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] row = {p, p, p, p, p, p, p};
double[] col = {f};
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
new Component[]{categoryPane}, new Component[]{categoryPane},
new Component[]{seriesNamePane}, new Component[]{seriesNamePane},
@ -123,10 +110,7 @@ public class BoxPlotTableResultDataSeriesPane extends AbstractTableDataContentPa
new Component[]{min} new Component[]{min}
}; };
JPanel panel = TableLayoutHelper.createTableLayoutPane(components, row, col); return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1});
panel.setBorder(BorderFactory.createEmptyBorder(0, 24, 0, 15));
return panel;
} }
public void checkBoxUse(boolean hasUse) { public void checkBoxUse(boolean hasUse) {

22
designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableSeriesTypeUsePane.java

@ -1,5 +1,6 @@
package com.fr.van.chart.box.data.table; package com.fr.van.chart.box.data.table;
import com.fine.theme.utils.FineLayoutBuilder;
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.chart.chartdata.MoreNameCDDefinition; import com.fr.chart.chartdata.MoreNameCDDefinition;
@ -69,7 +70,6 @@ public class BoxPlotTableSeriesTypeUsePane extends BasicBeanPane<ChartCollection
} }
}; };
cardPane.setBorder(BorderFactory.createEmptyBorder(0, 24, 0, 15));
cardPane.add(nameFieldValuePane, nameFieldValuePane.title4PopupWindow()); cardPane.add(nameFieldValuePane, nameFieldValuePane.title4PopupWindow());
cardPane.add(nameFieldNamePane, nameFieldNamePane.title4PopupWindow()); cardPane.add(nameFieldNamePane, nameFieldNamePane.title4PopupWindow());
@ -107,32 +107,16 @@ public class BoxPlotTableSeriesTypeUsePane extends BasicBeanPane<ChartCollection
} }
private JPanel createNorthPane() { private JPanel createNorthPane() {
JPanel north = new JPanel(new BorderLayout(4, 0));
north.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, getBackground()));
UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Style_Category")); UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Style_Category"));
label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, ChartDataPane.LABEL_HEIGHT));
categoryCombox = new UIComboBox(); categoryCombox = new UIComboBox();
categoryCombox.setPreferredSize(new Dimension(100, 20));
categoryCombox.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None")); categoryCombox.addItem(Toolkit.i18nText("Fine-Design_Chart_Use_None"));
categoryCombox.setSelectedItem(null); categoryCombox.setSelectedItem(null);
return FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, label, categoryCombox);
north.add(GUICoreUtils.createBorderLayoutPane(new Component[]{categoryCombox, null, null, label, null}));
north.setPreferredSize(new Dimension(246, 20));
north.setBorder(BorderFactory.createEmptyBorder(0, 24, 0, 15));
return north;
} }
private JPanel createCenterPane() { private JPanel createCenterPane() {
JPanel center = new JPanel(new BorderLayout(4, 0));
UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Series_Name_From")); UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Series_Name_From"));
label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, ChartDataPane.LABEL_HEIGHT)); return FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, label, seriesFrom);
center.add(GUICoreUtils.createBorderLayoutPane(new Component[]{seriesFrom, null, null, label, null}));
center.setBorder(BorderFactory.createEmptyBorder(0, 24, 0, 15));
return center;
} }
private void initListener() { private void initListener() {

24
designer-chart/src/main/java/com/fr/van/chart/designer/other/AutoRefreshPane.java

@ -1,5 +1,6 @@
package com.fr.van.chart.designer.other; package com.fr.van.chart.designer.other;
import com.fine.swing.ui.layout.Column;
import com.fine.theme.icon.LazyIcon; import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIConstants; import com.fine.theme.utils.FineUIConstants;
@ -27,6 +28,11 @@ import java.awt.Component;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
import static com.fine.swing.ui.layout.Layouts.flex;
import static com.fine.swing.ui.layout.Layouts.row;
/** /**
* Created by hufan on 2016/12/30. * Created by hufan on 2016/12/30.
@ -76,7 +82,7 @@ public class AutoRefreshPane extends BasicBeanPane<RefreshMoreLabel> {
initTooltipSet(); initTooltipSet();
JPanel jPanel = new JPanel(); JPanel jPanel = new JPanel(new BorderLayout());
jPanel.add(autoTooltip, BorderLayout.CENTER); jPanel.add(autoTooltip, BorderLayout.CENTER);
jPanel.add(tooltipSet, BorderLayout.EAST); jPanel.add(tooltipSet, BorderLayout.EAST);
@ -85,7 +91,7 @@ public class AutoRefreshPane extends BasicBeanPane<RefreshMoreLabel> {
Component[][] components = initComponent(jPanel); Component[][] components = initComponent(jPanel);
JPanel panel1 = FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1.2, 1.2, 1.2, 0.6}); JPanel panel1 = FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1.2, 3});
contentPane = new JPanel(new BorderLayout()); contentPane = new JPanel(new BorderLayout());
contentPane.add(panel1, BorderLayout.CENTER); contentPane.add(panel1, BorderLayout.CENTER);
@ -97,10 +103,18 @@ public class AutoRefreshPane extends BasicBeanPane<RefreshMoreLabel> {
protected Component[][] initComponent(JPanel autoTooltipPane){ protected Component[][] initComponent(JPanel autoTooltipPane){
Column toolTipPane = column(10,
row(
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Interval"))),
flex(),
cell(autoRefreshTime),
cell(new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Seconds")))
),
cell(autoTooltipPane)
).getComponent();
return new Component[][]{ return new Component[][]{
new Component[]{null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Interval")), new Component[]{null, toolTipPane}
autoRefreshTime, new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Seconds"))},
new Component[]{null, autoTooltip, null, tooltipSet},
}; };
} }

20
designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java

@ -1,5 +1,6 @@
package com.fr.van.chart.designer.style.label; package com.fr.van.chart.designer.style.label;
import com.fine.swing.ui.layout.Column;
import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIScale;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
@ -230,16 +231,17 @@ public class VanChartPlotLabelDetailPane extends BasicPane {
return new JPanel(); return new JPanel();
} }
autoAdjust = new UIButtonGroup<Boolean>(new String[]{Toolkit.i18nText("Fine-Design_Chart_On"), Toolkit.i18nText("Fine-Design_Chart_Off")}, new Boolean[]{true, false}); autoAdjust = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_On"), Toolkit.i18nText("Fine-Design_Chart_Off")}, new Boolean[]{true, false});
JPanel panel = new JPanel(new BorderLayout()); Column column = new Column();
column.setSpacing(10);
positionPane = new JPanel(); positionPane = new JPanel();
checkPositionPane(title); checkPositionPane(title);
panel.add(positionPane, BorderLayout.NORTH); column.add(positionPane);
if (hasLabelOrientationPane()) { if (hasLabelOrientationPane()) {
panel.add(createLabelOrientationPane(), BorderLayout.CENTER); column.add(createLabelOrientationPane());
} }
if (plot.isSupportLeadLine()) { if (plot.isSupportLeadLine()) {
@ -250,14 +252,14 @@ public class VanChartPlotLabelDetailPane extends BasicPane {
double[] row = new double[]{TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED}; double[] row = new double[]{TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED};
double[] col = new double[]{TableLayout.FILL, TableLayout4VanChartHelper.EDIT_AREA_WIDTH}; double[] col = new double[]{TableLayout.FILL, TableLayout4VanChartHelper.EDIT_AREA_WIDTH};
getLabelPositionPane(comps, row, col); getLabelPositionPane(comps, row, col);
panel.add(getLabelPositionPane(comps, row, col), BorderLayout.SOUTH); column.add(getLabelPositionPane(comps, row, col));
initPositionListener(); initPositionListener();
} else if (PlotFactory.plotAutoAdjustLabelPosition(plot)) { } else if (PlotFactory.plotAutoAdjustLabelPosition(plot)) {
panel.add(FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, column.add(FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3},
new UILabel(Toolkit.i18nText("Fine-Design_Chart_Auto_Adjust")), autoAdjust), BorderLayout.SOUTH); new UILabel(Toolkit.i18nText("Fine-Design_Chart_Auto_Adjust")), autoAdjust));
} }
return getLabelLayoutPane(panel, Toolkit.i18nText("Fine-Design_Form_Attr_Layout")); return getLabelLayoutPane(column, Toolkit.i18nText("Fine-Design_Form_Attr_Layout"));
} }
protected JPanel getLabelLayoutPane(JPanel panel, String title) { protected JPanel getLabelLayoutPane(JPanel panel, String title) {
@ -318,7 +320,7 @@ public class VanChartPlotLabelDetailPane extends BasicPane {
} }
protected JPanel getLabelPositionPane(Component[][] comps, double[] row, double[] col) { protected JPanel getLabelPositionPane(Component[][] comps, double[] row, double[] col) {
return TableLayoutHelper.createTableLayoutPane(comps, row, col); return FineLayoutBuilder.compatibleTableLayout(10, comps, new double[]{1.2, 3});
} }
protected void initPositionListener() { protected void initPositionListener() {

3
designer-realize/src/main/java/com/fanruan/boot/env/function/DesignDatasourceComponent.java vendored

@ -28,9 +28,11 @@ import com.fr.decision.webservice.v10.datasource.connection.processor.impl.JDYCo
import com.fr.decision.webservice.v10.datasource.connection.processor.impl.JNDIConnectionProcessor; import com.fr.decision.webservice.v10.datasource.connection.processor.impl.JNDIConnectionProcessor;
import com.fr.decision.webservice.v10.datasource.dataset.processor.impl.DataSetProcessorFactory; import com.fr.decision.webservice.v10.datasource.dataset.processor.impl.DataSetProcessorFactory;
import com.fr.design.data.datapane.connect.LocalConnectionSource; import com.fr.design.data.datapane.connect.LocalConnectionSource;
import com.fr.design.data.tabledata.LocalTableDataSource;
import com.fr.file.TableDataConfigWrapper; import com.fr.file.TableDataConfigWrapper;
import com.fr.workspace.server.repository.connection.ConnectionWriterShell; import com.fr.workspace.server.repository.connection.ConnectionWriterShell;
import com.fr.workspace.server.repository.connection.LocalConnectionShell; import com.fr.workspace.server.repository.connection.LocalConnectionShell;
import com.fr.workspace.server.repository.tabledata.LocalTableDataShell;
/** /**
@ -57,6 +59,7 @@ public class DesignDatasourceComponent extends DatasourceComponent {
ConnectionProcessorFactory.register(JDYConnectionProcessor.KEY); ConnectionProcessorFactory.register(JDYConnectionProcessor.KEY);
DataSetProcessorFactory.init(); DataSetProcessorFactory.init();
Carina.getApplicationContext().singleton(LocalConnectionShell.class).set(new LocalConnectionSource()); Carina.getApplicationContext().singleton(LocalConnectionShell.class).set(new LocalConnectionSource());
Carina.getApplicationContext().singleton(LocalTableDataShell.class).set(new LocalTableDataSource());
} }
/** /**

Loading…
Cancel
Save