diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/refreshabletree/RefreshableJTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/refreshabletree/RefreshableJTree.java index 1a86525d28..079247a9fa 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/refreshabletree/RefreshableJTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/refreshabletree/RefreshableJTree.java @@ -316,4 +316,20 @@ public abstract class RefreshableJTree extends CheckBoxTree { tip.setOpaque(false); return tip; } + + @Override + public TreePath getPathForLocation(int x, int y) { + // NewUI树组件全选行,仅考虑y坐标即可 + TreePath closestPath = getClosestPathForLocation(x, y); + + if (closestPath != null) { + Rectangle pathBounds = getPathBounds(closestPath); + + if(pathBounds != null && + y >= pathBounds.y && y < (pathBounds.y + pathBounds.height)) { + return closestPath; + } + } + return null; + } } diff --git a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java index 06620ba719..ade89dbf93 100644 --- a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java +++ b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java @@ -1926,15 +1926,15 @@ public class FILEChooserPane extends BasicPane { nameField.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { - validInput(); + resetInputChecker(); } public void insertUpdate(DocumentEvent e) { - validInput(); + resetInputChecker(); } public void removeUpdate(DocumentEvent e) { - validInput(); + resetInputChecker(); } }); nameField.selectAll(); @@ -1993,7 +1993,9 @@ public class FILEChooserPane extends BasicPane { } private void confirmClose() { - + if (!validInput()) { + return; + }; String userInput = nameField.getText().trim(); // 处理不合法的文件夹名称 @@ -2028,12 +2030,13 @@ public class FILEChooserPane extends BasicPane { } - private void validInput() { - + private boolean validInput() { + boolean valid = true; String userInput = nameField.getText().trim(); if (StringUtils.isEmpty(userInput)) { confirmButton.setEnabled(false); + valid = false; } boolean duplicate = false; @@ -2045,7 +2048,7 @@ public class FILEChooserPane extends BasicPane { break; } } - + valid = valid && !duplicate; if (duplicate) { nameField.selectAll(); // 如果文件名已存在,则灰掉确认按钮 @@ -2059,6 +2062,12 @@ public class FILEChooserPane extends BasicPane { warnLabel.setVisible(false); confirmButton.setEnabled(true); } + return valid; + } + + private void resetInputChecker() { + warnLabel.setVisible(false); + confirmButton.setEnabled(true); } } } diff --git a/designer-realize/src/main/java/com/fr/start/MainDesigner.java b/designer-realize/src/main/java/com/fr/start/MainDesigner.java index 1262253cd3..18d1aab0a4 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -337,8 +337,8 @@ public class MainDesigner extends BaseDesigner { } private UICombinationButton createRunButton() { - run = new UICombinationButton(new UISaveForbiddenButton(Toolkit.i18nText("Fine-Design_Basic_Preview"), new LazyIcon("run").white()), - new UISaveForbiddenButton(new LazyIcon("triangle_down").white())); + run = new UICombinationButton(new UIButton(Toolkit.i18nText("Fine-Design_Basic_Preview"), new LazyIcon("run").white()), + new UIButton(new LazyIcon("triangle_down").white())); run.addLeftClickLister(mouseEvent -> { JTemplate jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (jt == null || jt.isSaving()) {