Browse Source

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

* commit 'dead79e8563fa699e3d6247f17f938cce83a6483':
  REPORT-133840 【fr-fbp回归】关闭起始页,先进会失败的工作目录,再进会成功的工作目录会失败
  无jira 漏翻面板整改
  REPORT-134842 & REPORT-134740 fix:存储过程命名交互问题 & 日期下拉框问题
  REPORT-134241 【安全】FBP远程设计的相关接口均没有做权限校验,任意用户均可访问
  REPORT-134241 【安全】FBP远程设计的相关接口均没有做权限校验,任意用户均可访问
  REPORT-134415 【fr-fbp回归】hive平台和设计器 数据连接类型不一致
  REPORT-134212 fix: 【FBP】字号选择下拉框的编辑框显示不全/不显示
fbp/research
superman 5 months ago
parent
commit
833ab697ed
  1. 10
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  2. 11
      designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
  3. 51
      designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java
  4. 4
      designer-base/src/main/java/com/fr/design/gui/ibutton/UILockButton.java
  5. 50
      designer-chart/src/main/java/com/fr/design/chartx/component/MapAreaMatchPane.java
  6. 16
      designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPaneHelper.java

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

@ -81,7 +81,6 @@ import javax.swing.JScrollBar;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import javax.swing.ToolTipManager; import javax.swing.ToolTipManager;
import javax.swing.border.EmptyBorder;
import javax.swing.tree.TreePath; import javax.swing.tree.TreePath;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
@ -509,11 +508,10 @@ public class TableDataTreePane extends BasicTableDataTreePane {
} else if (!ComparatorUtils.equals(oldName, tempName) && isDsNameRepeaded(tempName)) { } else if (!ComparatorUtils.equals(oldName, tempName) && isDsNameRepeaded(tempName)) {
nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Table_Data_Duplicate_Name_Tips", tempName)); nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Table_Data_Duplicate_Name_Tips", tempName));
dg.setButtonEnabled(false); dg.setButtonEnabled(false);
} else if (oldName.length() >= PROCEDURE_NAME_INDEX && tableDataPane.updateBean() instanceof MultiResultTableData) { } else if (oldName.length() >= PROCEDURE_NAME_INDEX && tableDataPane.updateBean() instanceof MultiResultTableData
if (isIncludeUnderline(tempName)) { && isIncludeUnderline(tempName)) {
nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multi_Result_Table_Data_Name_Tips")); nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multi_Result_Table_Data_Name_Tips"));
dg.setButtonEnabled(false); dg.setButtonEnabled(false);
}
} else if (!BasicTableDataUtils.checkName(tempName)) { } else if (!BasicTableDataUtils.checkName(tempName)) {
dg.setButtonEnabled(false); dg.setButtonEnabled(false);
} else { } else {

11
designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java

@ -173,14 +173,15 @@ public class JDBCDefPane extends JPanel {
urlTextField.setText(dus[i].getURL()); urlTextField.setText(dus[i].getURL());
} }
} }
// 更改数据库类型后 数据库名称置空和之前逻辑保持一致 // 更改数据库类型后更新数据库名称
if (needRefresh) { if (needRefresh || StringUtils.isEmpty(jdbcDatabase.getDatabase())) {
jdbcDatabase.setDatabase(StringUtils.EMPTY); jdbcDatabase.setDatabase(dbTypeMap.getOrDefault(GeneralUtils.objectToString(dbtypeComboBox.getSelectedItem()), DefaultDatabaseType.OTHER.getType()));
} }
jdbcDatabase.setDatabase(dbTypeMap.getOrDefault(GeneralUtils.objectToString(dbtypeComboBox.getSelectedItem()), DefaultDatabaseType.OTHER.getType()));
changePane(dbtypeComboBox.getSelectedItem()); changePane(dbtypeComboBox.getSelectedItem());
JDBCConnectionDef.getInstance().setConnection((String) dbtypeComboBox.getSelectedItem(), jdbcDatabase); JDBCConnectionDef.getInstance().setConnection((String) dbtypeComboBox.getSelectedItem(), jdbcDatabase);
DatabaseConnectionPane.JDBC.getAdvancedAttrPane().populate(jdbcDatabase); DatabaseConnectionPane.JDBC.getAdvancedAttrPane().populate(jdbcDatabase);
needRefresh = true;
} }
}; };
private HashBiMap<String, String> nameAndRepresent; private HashBiMap<String, String> nameAndRepresent;
@ -414,6 +415,7 @@ public class JDBCDefPane extends JPanel {
DriverURLName[] dus = entry.getValue(); DriverURLName[] dus = entry.getValue();
for (int i = 0, len = dus.length; i < len; i++) { for (int i = 0, len = dus.length; i < len; i++) {
if (ComparatorUtils.equals(dus[i].getDriver(), jdbcDatabase.getDriver())) { if (ComparatorUtils.equals(dus[i].getDriver(), jdbcDatabase.getDriver())) {
needRefresh = false;
this.dbtypeComboBox.setSelectedItem(entry.getKey()); this.dbtypeComboBox.setSelectedItem(entry.getKey());
out = true; out = true;
break; break;
@ -454,7 +456,6 @@ public class JDBCDefPane extends JPanel {
} else { } else {
this.charSetComboBox.setSelectedItem(jdbcDatabase.getOriginalCharsetName()); this.charSetComboBox.setSelectedItem(jdbcDatabase.getOriginalCharsetName());
} }
needRefresh = false;
} }
public JDBCDatabaseConnection update() { public JDBCDatabaseConnection update() {

51
designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java

@ -1,10 +1,7 @@
package com.fr.design.gui.date; package com.fr.design.gui.date;
import com.fine.theme.icon.LazyIcon; import com.fine.theme.light.ui.FineComboBoxUI;
import com.fine.theme.utils.FineUIStyle;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.UIComboBoxUI;
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.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
@ -13,6 +10,7 @@ import com.fr.stable.StringUtils;
import com.fr.design.carton.FeedbackToolboxDialog; import com.fr.design.carton.FeedbackToolboxDialog;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -26,6 +24,7 @@ import javax.swing.plaf.basic.ComboPopup;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.LayoutManager; import java.awt.LayoutManager;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.io.Serializable; import java.io.Serializable;
import java.text.ParseException; import java.text.ParseException;
@ -292,40 +291,44 @@ public class UIDatePicker extends UIComboBox implements Serializable {
@Override @Override
protected ComboBoxUI getUIComboBoxUI() { protected ComboBoxUI getUIComboBoxUI() {
return new UIComboBoxUI() {
return new FineComboBoxUI() {
@Override @Override
protected UIButton createArrowButton() { protected JButton createArrowButton() {
arrowButton = new UIButton(new LazyIcon("down_arrow")) { JButton button = super.createArrowButton();
public boolean shouldResponseChangeListener() { button.addMouseListener(getPopupMouseAdapter());
return false; return button;
}
};
arrowButton.addMouseListener(this);
comboBox.addMouseListener(this);
FineUIStyle.setStyle(arrowButton, FineUIStyle.PLAIN_BUTTON);
return (UIButton) arrowButton;
} }
@Override @Override
protected ComboPopup createPopup() { protected ComboPopup createPopup() {
return new DatePopup(comboBox); return new DatePopup(comboBox);
} }
@Override @Override
public void mousePressed(MouseEvent e) { protected void installListeners() {
if (UIDatePicker.this.isPopupVisible()) { super.installListeners();
willHide = true; comboBox.addMouseListener(getPopupMouseAdapter());
UIDatePicker.this.hidePopup(); }
} else {
willHide = false; MouseAdapter getPopupMouseAdapter() {
UIDatePicker.this.showPopup(); return new MouseAdapter() {
} @Override
public void mousePressed(MouseEvent e) {
if (UIDatePicker.this.isPopupVisible()) {
willHide = true;
UIDatePicker.this.hidePopup();
} else {
willHide = false;
UIDatePicker.this.showPopup();
}
}
};
} }
}; };
} }
//设置dataFormat //设置dataFormat
public void setDateFormat(SimpleDateFormat format){ public void setDateFormat(SimpleDateFormat format){
this.dateFormat = format; this.dateFormat = format;

4
designer-base/src/main/java/com/fr/design/gui/ibutton/UILockButton.java

@ -4,6 +4,7 @@ import com.fr.design.editlock.EditLockChangeEvent;
import com.fr.design.editlock.EditLockChangeListener; import com.fr.design.editlock.EditLockChangeListener;
import com.fr.design.editlock.EditLockUtils; import com.fr.design.editlock.EditLockUtils;
import com.fr.report.LockItem; import com.fr.report.LockItem;
import com.fr.start.common.DesignerStartupContext;
import javax.swing.Icon; import javax.swing.Icon;
@ -41,7 +42,8 @@ public class UILockButton extends UIButton implements EditLockChangeListener {
} }
private void init() { private void init() {
boolean locked = EditLockUtils.isLocked(LockItem.CONNECTION); // 设计器如果还在启动中就不需要判断上锁情况,界面都还没出现呢,直接短路掉
boolean locked = !DesignerStartupContext.getInstance().isOnStartup() && EditLockUtils.isLocked(LockItem.CONNECTION);
this.setIcon(locked ? lockedIcon : normalIcon); this.setIcon(locked ? lockedIcon : normalIcon);
this.setToolTipText(locked ? lockedTooltips : normalTooltips); this.setToolTipText(locked ? lockedTooltips : normalTooltips);
} }

50
designer-chart/src/main/java/com/fr/design/chartx/component/MapAreaMatchPane.java

@ -1,6 +1,9 @@
package com.fr.design.chartx.component; package com.fr.design.chartx.component;
import com.fine.theme.icon.LazyIcon; import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.chartx.TwoTuple; import com.fr.chartx.TwoTuple;
import com.fr.data.TableDataSource; import com.fr.data.TableDataSource;
import com.fr.data.TableDataSourceTailor; import com.fr.data.TableDataSourceTailor;
@ -31,19 +34,24 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel; import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE;
import static com.fine.theme.utils.FineUIScale.scale;
/** /**
* @author Bjorn * @author Bjorn
* @version 10.0 * @version 10.0
@ -67,49 +75,39 @@ public class MapAreaMatchPane extends BasicBeanPane<MapMatchResult> {
initButtonGroup(); initButtonGroup();
initRefreshLabel(); initRefreshLabel();
areaNameBox = new UIComboBox(); areaNameBox = new UIComboBox();
this.setLayout(new BorderLayout(5, 5)); this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
this.add(createContentPane(), BorderLayout.NORTH); this.add(createContentPane(), BorderLayout.NORTH);
initTable(treeNodeAndItems); initTable(treeNodeAndItems);
JPanel tablePane = new JPanel(); JPanel tablePane = new JPanel();
tablePane.setLayout(new BorderLayout(5, 10)); tablePane.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
tablePane.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
JScrollPane matchAreaScroll = new JScrollPane(matchAreaTable) { JScrollPane matchAreaScroll = new JScrollPane(matchAreaTable) {
@Override @Override
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
return new Dimension(400, 290); return scale(new Dimension(400, 290));
} }
}; };
tablePane.add(matchAreaScroll, BorderLayout.CENTER); tablePane.add(matchAreaScroll, BorderLayout.CENTER);
JScrollPane matchResultScroll = new JScrollPane(matchResultTable) { JScrollPane matchResultScroll = new JScrollPane(matchResultTable){
@Override @Override
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
return new Dimension(400, 200); return scale(new Dimension(400, 200));
} }
}; };
matchResultScroll.setBorder(BorderFactory.createTitledBorder(Toolkit.i18nText("Fine-Design_Chart_Custom_Match_List"))); Component matchResult = FineUIUtils.wrapComponentWithTitle(matchResultScroll, Toolkit.i18nText("Fine-Design_Chart_Custom_Match_List"));
tablePane.add(matchResultScroll, BorderLayout.SOUTH); tablePane.add(matchResult, BorderLayout.SOUTH);
this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10)); this.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
this.add(tablePane, BorderLayout.CENTER); this.add(tablePane, BorderLayout.CENTER);
} }
private JPanel createContentPane() { private JPanel createContentPane() {
JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); tableNameCombox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
areaNameBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
JPanel tableDataPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); return FineLayoutBuilder.createHorizontalLayout(10,
panel.add(tableDataPane); new UILabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data") + ":"), tableNameCombox,
tableDataPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data") + ":")); new UILabel(Toolkit.i18nText("Fine-Design_Chart_Area_Name") + ":"), areaNameBox,
tableNameCombox.setPreferredSize(new Dimension(96, 20)); refreshLabel);
tableDataPane.add(tableNameCombox);
JPanel areaNamePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
panel.add(areaNamePane);
areaNamePane.add(new UILabel(Toolkit.i18nText("Fine-Design_Chart_Area_Name") + ":"));
areaNamePane.add(areaNameBox);
areaNameBox.setPreferredSize(new Dimension(96, 20));
panel.add(refreshLabel);
return panel;
} }
private void initTable(TwoTuple<DefaultMutableTreeNode, Set<String>> treeNodeAndItems) { private void initTable(TwoTuple<DefaultMutableTreeNode, Set<String>> treeNodeAndItems) {

16
designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPaneHelper.java

@ -1,30 +1,16 @@
package com.fr.van.chart.designer.style.axis; package com.fr.van.chart.designer.style.axis;
import com.fr.design.layout.TableLayout;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane; import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPaneWithThemeStyle; import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPaneWithThemeStyle;
import com.fr.design.mainframe.chart.mode.ChartEditContext; import com.fr.design.mainframe.chart.mode.ChartEditContext;
import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.JPanel;
public class VanChartAxisPaneHelper { public class VanChartAxisPaneHelper {
public static ChartTextAttrPane createAxisTextAttrPane() { public static ChartTextAttrPane createAxisTextAttrPane() {
return ChartEditContext.supportTheme() ? new ChartTextAttrPaneWithThemeStyle() { return ChartEditContext.supportTheme() ? new ChartTextAttrPaneWithThemeStyle() {
protected double getEdithAreaWidth() { protected double getEdithAreaWidth() {
return TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH; return TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH;
} }
} : new ChartTextAttrPane() { } : new ChartTextAttrPane();
@Override
protected JPanel getContentPane(JPanel buttonPane) {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double e = TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH;
double[] columnSize = {f, e};
double[] rowSize = {p, p, p};
return TableLayout4VanChartHelper.createGapTableLayoutPane(getComponents(buttonPane), rowSize, columnSize);
}
};
} }
} }

Loading…
Cancel
Save