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.SwingWorker;
import javax.swing.ToolTipManager;
import javax.swing.border.EmptyBorder;
import javax.swing.tree.TreePath;
import java.awt.BorderLayout;
import java.awt.Color;
@ -509,11 +508,10 @@ public class TableDataTreePane extends BasicTableDataTreePane {
} 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));
dg.setButtonEnabled(false);
} else if (oldName.length() >= PROCEDURE_NAME_INDEX && tableDataPane.updateBean() instanceof MultiResultTableData) {
if (isIncludeUnderline(tempName)) {
nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multi_Result_Table_Data_Name_Tips"));
dg.setButtonEnabled(false);
}
} else if (oldName.length() >= PROCEDURE_NAME_INDEX && tableDataPane.updateBean() instanceof MultiResultTableData
&& isIncludeUnderline(tempName)) {
nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multi_Result_Table_Data_Name_Tips"));
dg.setButtonEnabled(false);
} else if (!BasicTableDataUtils.checkName(tempName)) {
dg.setButtonEnabled(false);
} 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());
}
}
// 更改数据库类型后 数据库名称置空和之前逻辑保持一致
if (needRefresh) {
jdbcDatabase.setDatabase(StringUtils.EMPTY);
// 更改数据库类型后更新数据库名称
if (needRefresh || StringUtils.isEmpty(jdbcDatabase.getDatabase())) {
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());
JDBCConnectionDef.getInstance().setConnection((String) dbtypeComboBox.getSelectedItem(), jdbcDatabase);
DatabaseConnectionPane.JDBC.getAdvancedAttrPane().populate(jdbcDatabase);
needRefresh = true;
}
};
private HashBiMap<String, String> nameAndRepresent;
@ -414,6 +415,7 @@ public class JDBCDefPane extends JPanel {
DriverURLName[] dus = entry.getValue();
for (int i = 0, len = dus.length; i < len; i++) {
if (ComparatorUtils.equals(dus[i].getDriver(), jdbcDatabase.getDriver())) {
needRefresh = false;
this.dbtypeComboBox.setSelectedItem(entry.getKey());
out = true;
break;
@ -454,7 +456,6 @@ public class JDBCDefPane extends JPanel {
} else {
this.charSetComboBox.setSelectedItem(jdbcDatabase.getOriginalCharsetName());
}
needRefresh = false;
}
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;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIStyle;
import com.fr.design.gui.ibutton.UIButton;
import com.fine.theme.light.ui.FineComboBoxUI;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.UIComboBoxUI;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
@ -13,6 +10,7 @@ import com.fr.stable.StringUtils;
import com.fr.design.carton.FeedbackToolboxDialog;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
@ -26,6 +24,7 @@ import javax.swing.plaf.basic.ComboPopup;
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.LayoutManager;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.Serializable;
import java.text.ParseException;
@ -292,40 +291,44 @@ public class UIDatePicker extends UIComboBox implements Serializable {
@Override
protected ComboBoxUI getUIComboBoxUI() {
return new UIComboBoxUI() {
return new FineComboBoxUI() {
@Override
protected UIButton createArrowButton() {
arrowButton = new UIButton(new LazyIcon("down_arrow")) {
public boolean shouldResponseChangeListener() {
return false;
}
};
arrowButton.addMouseListener(this);
comboBox.addMouseListener(this);
FineUIStyle.setStyle(arrowButton, FineUIStyle.PLAIN_BUTTON);
return (UIButton) arrowButton;
protected JButton createArrowButton() {
JButton button = super.createArrowButton();
button.addMouseListener(getPopupMouseAdapter());
return button;
}
@Override
protected ComboPopup createPopup() {
return new DatePopup(comboBox);
}
@Override
public void mousePressed(MouseEvent e) {
if (UIDatePicker.this.isPopupVisible()) {
willHide = true;
UIDatePicker.this.hidePopup();
} else {
willHide = false;
UIDatePicker.this.showPopup();
}
protected void installListeners() {
super.installListeners();
comboBox.addMouseListener(getPopupMouseAdapter());
}
MouseAdapter getPopupMouseAdapter() {
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
public void setDateFormat(SimpleDateFormat 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.EditLockUtils;
import com.fr.report.LockItem;
import com.fr.start.common.DesignerStartupContext;
import javax.swing.Icon;
@ -41,7 +42,8 @@ public class UILockButton extends UIButton implements EditLockChangeListener {
}
private void init() {
boolean locked = EditLockUtils.isLocked(LockItem.CONNECTION);
// 设计器如果还在启动中就不需要判断上锁情况,界面都还没出现呢,直接短路掉
boolean locked = !DesignerStartupContext.getInstance().isOnStartup() && EditLockUtils.isLocked(LockItem.CONNECTION);
this.setIcon(locked ? lockedIcon : normalIcon);
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;
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.data.TableDataSource;
import com.fr.data.TableDataSourceTailor;
@ -31,19 +34,24 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
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
* @version 10.0
@ -67,49 +75,39 @@ public class MapAreaMatchPane extends BasicBeanPane<MapMatchResult> {
initButtonGroup();
initRefreshLabel();
areaNameBox = new UIComboBox();
this.setLayout(new BorderLayout(5, 5));
this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
this.add(createContentPane(), BorderLayout.NORTH);
initTable(treeNodeAndItems);
JPanel tablePane = new JPanel();
tablePane.setLayout(new BorderLayout(5, 10));
tablePane.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
tablePane.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
JScrollPane matchAreaScroll = new JScrollPane(matchAreaTable) {
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 290);
return scale(new Dimension(400, 290));
}
};
tablePane.add(matchAreaScroll, BorderLayout.CENTER);
JScrollPane matchResultScroll = new JScrollPane(matchResultTable) {
JScrollPane matchResultScroll = new JScrollPane(matchResultTable){
@Override
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")));
tablePane.add(matchResultScroll, BorderLayout.SOUTH);
Component matchResult = FineUIUtils.wrapComponentWithTitle(matchResultScroll, Toolkit.i18nText("Fine-Design_Chart_Custom_Match_List"));
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);
}
private JPanel createContentPane() {
JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
JPanel tableDataPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
panel.add(tableDataPane);
tableDataPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data") + ":"));
tableNameCombox.setPreferredSize(new Dimension(96, 20));
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;
tableNameCombox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
areaNameBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
return FineLayoutBuilder.createHorizontalLayout(10,
new UILabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data") + ":"), tableNameCombox,
new UILabel(Toolkit.i18nText("Fine-Design_Chart_Area_Name") + ":"), areaNameBox,
refreshLabel);
}
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;
import com.fr.design.layout.TableLayout;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPaneWithThemeStyle;
import com.fr.design.mainframe.chart.mode.ChartEditContext;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.JPanel;
public class VanChartAxisPaneHelper {
public static ChartTextAttrPane createAxisTextAttrPane() {
return ChartEditContext.supportTheme() ? new ChartTextAttrPaneWithThemeStyle() {
protected double getEdithAreaWidth() {
return TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH;
}
} : 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);
}
};
} : new ChartTextAttrPane();
}
}

Loading…
Cancel
Save