From ba36ebec3108ff9a432fc4324a5f35f0c170f826 Mon Sep 17 00:00:00 2001 From: "Leo.Qin" Date: Thu, 11 Jan 2024 16:58:29 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=20REPORT-107973=20windows=E4=B8=8B?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E9=80=89=E6=8B=A9=E5=BC=B9=E7=AA=97=E7=AB=8B?= =?UTF-8?q?=E5=8D=B3=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/style/color/ColorControlWindow.java | 2 ++ .../java/com/fr/design/actions/cell/UIToolbarBorderButton.java | 1 + 2 files changed, 3 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/style/color/ColorControlWindow.java b/designer-base/src/main/java/com/fr/design/style/color/ColorControlWindow.java index d8e98965a..a112c0076 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/ColorControlWindow.java +++ b/designer-base/src/main/java/com/fr/design/style/color/ColorControlWindow.java @@ -56,6 +56,8 @@ public abstract class ColorControlWindow extends JPopupMenu { private void initComponents(boolean isSupportTransparent) { setLightWeightPopupEnabled(JPopupMenu.getDefaultLightWeightPopupEnabled()); + // windows下 需要手动处理焦点,不去抢占焦点,防止菜单栏弹窗消失 + setFocusable(false); this.setLayout(FRGUIPaneFactory.createBorderLayout()); initSelectionPopupPane(isSupportTransparent); this.pack(); diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java b/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java index 8ef66cb9f..b5bf07e5e 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java @@ -129,6 +129,7 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH setLightWeightPopupEnabled(JPopupMenu.getDefaultLightWeightPopupEnabled()); this.setLayout(FRGUIPaneFactory.createBorderLayout()); + // windows下 需要手动处理焦点,不去抢占焦点,防止菜单栏弹窗消失 setFocusable(false); setStyle(this, POPUP_MENU_DROPDOWN); From e9ac59ea0dfe87b14d0493dd16c28faa20d9cca2 Mon Sep 17 00:00:00 2001 From: "Leo.Qin" Date: Thu, 11 Jan 2024 17:39:44 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=20REPORT-107973=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/EastRegionContainerPane.java | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index d7fcf9e63..4466c27ed 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -7,6 +7,7 @@ import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIUtils; import com.formdev.flatlaf.FlatDarkLaf; import com.fr.base.FRContext; +import com.fr.base.svg.IconUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -756,6 +757,14 @@ public class EastRegionContainerPane extends UIEastResizableContainer { // 完整icon路径为 ICON_BASE_DIR + btnIconName + iconSuffix private static final String ICON_BASE_DIR = "/com/fr/design/standard/propertiestab/"; + + @Deprecated + private static final String ICON_SUFFIX_NORMAL_DEPRECATED = "_normal.svg"; + @Deprecated + private static final String ICON_SUFFIX_DISABLED_DEPRECATED = "_disabled.svg"; + @Deprecated + private static final String ICON_SUFFIX_SELECTED_DEPRECATED = "_selected.svg"; + private static final String ICON_SUFFIX_NORMAL = StringUtils.EMPTY; private static final String ICON_SUFFIX_DISABLED = "_disabled"; private static final String ICON_SUFFIX_SELECTED = "_selected"; @@ -968,13 +977,22 @@ public class EastRegionContainerPane extends UIEastResizableContainer { iconSuffix = ICON_SUFFIX_NORMAL; button.setIcon(new LazyIcon(getBtnIconId())); button.setOpaque(false); + } else if (ICON_SUFFIX_SELECTED_DEPRECATED.equals(iconSuffix)) { + iconSuffix = ICON_SUFFIX_NORMAL_DEPRECATED; + button.setIcon(IconUtils.readIcon(getBtnIconUrl())); + button.setOpaque(false); } } public void setTabButtonSelected() { resetPropertyIcons(); - iconSuffix = ICON_SUFFIX_SELECTED; - button.setIcon(new LazyIcon(getBtnIconId())); + if (iconBaseDir == null || StringUtils.isEmpty(iconBaseDir)) { + button.setIcon(new LazyIcon(getBtnIconId())); + iconSuffix = ICON_SUFFIX_SELECTED; + } else { + iconSuffix = ICON_SUFFIX_SELECTED_DEPRECATED; + button.setIcon(IconUtils.readIcon(getBtnIconUrl())); + } button.setBackground(selectedBtnBackground); button.setOpaque(true); selectedItem = this; @@ -985,12 +1003,12 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } private void initButton() { - button = new UIButton(new LazyIcon(getBtnIconId())) { + button = new UIButton() { public Dimension getPreferredSize() { return new Dimension(TAB_BUTTON_WIDTH, TAB_BUTTON_HEIGHT); } }; - button.setDisabledIcon(new LazyIcon(btnIconName + ICON_SUFFIX_DISABLED)); + initButtonIcon(); button.set4LargeToolbarButton(); button.setUI(new RectangleButtonUI(false)); setStyle(button, STYLE_TEXT); @@ -1013,6 +1031,16 @@ public class EastRegionContainerPane extends UIEastResizableContainer { button.setName(name); } + private void initButtonIcon() { + if (iconBaseDir == null || StringUtils.isEmpty(iconBaseDir)) { + button.setIcon(new LazyIcon(getBtnIconId())); + button.setDisabledIcon(new LazyIcon(btnIconName + ICON_SUFFIX_DISABLED)); + } else { + button.setIcon(IconUtils.readIcon(getBtnIconUrl())); + button.setDisabledIcon(IconUtils.readIcon(getIconBaseDir() + btnIconName + ICON_SUFFIX_DISABLED_DEPRECATED)); + } + } + public void processSnapChat() { if (snapChat != null && !snapChat.hasRead()) { snapChat.markRead(); From 5b893778c59f78cd81cca80571a05d489a9ad8d6 Mon Sep 17 00:00:00 2001 From: "Leo.Qin" Date: Fri, 12 Jan 2024 10:38:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=20REPORT-107973=20=E4=B8=9C=E5=8C=BA?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E5=85=BC=E5=AE=B9=E6=8F=92=E4=BB=B6=E5=9B=BE?= =?UTF-8?q?=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/EastRegionContainerPane.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index 4466c27ed..7a3e533ec 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -778,15 +778,15 @@ public class EastRegionContainerPane extends UIEastResizableContainer { public PropertyItem(String name, String title, String btnIconName, PropertyMode[] visibleModes, PropertyMode[] enableModes) { - this(name, title, btnIconName, ICON_BASE_DIR, visibleModes, enableModes, null, null); + this(name, title, btnIconName, null, visibleModes, enableModes, null, null); } public PropertyItem(String name, String title, String btnIconName, PropertyMode[] visibleModes, PropertyMode[] enableModes, SnapChat snapChat, PromptWindow promptWindow, ActionListener actionListener) { - this(name, title, btnIconName, ICON_BASE_DIR, visibleModes, enableModes, snapChat, promptWindow, actionListener); + this(name, title, btnIconName, null, visibleModes, enableModes, snapChat, promptWindow, actionListener); } public PropertyItem(String name, String title, String btnIconName, PropertyMode[] visibleModes, PropertyMode[] enableModes, ActionListener actionListener) { - this(name, title, btnIconName, ICON_BASE_DIR, visibleModes, enableModes, null, null, actionListener); + this(name, title, btnIconName, null, visibleModes, enableModes, null, null, actionListener); } public PropertyItem(String name, String title, String btnIconName, String iconBaseDir, PropertyMode[] visibleModes, PropertyMode[] enableModes, SnapChat snapChat, PromptWindow promptWindow) { @@ -986,7 +986,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { public void setTabButtonSelected() { resetPropertyIcons(); - if (iconBaseDir == null || StringUtils.isEmpty(iconBaseDir)) { + if (StringUtils.isEmpty(iconBaseDir)) { button.setIcon(new LazyIcon(getBtnIconId())); iconSuffix = ICON_SUFFIX_SELECTED; } else { @@ -1032,7 +1032,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } private void initButtonIcon() { - if (iconBaseDir == null || StringUtils.isEmpty(iconBaseDir)) { + if (StringUtils.isEmpty(iconBaseDir)) { button.setIcon(new LazyIcon(getBtnIconId())); button.setDisabledIcon(new LazyIcon(btnIconName + ICON_SUFFIX_DISABLED)); } else { From bc891be86ad1a5e53d536167f2d630c08dc60237 Mon Sep 17 00:00:00 2001 From: "Leo.Qin" Date: Fri, 12 Jan 2024 17:08:57 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=20REPORT-107973=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A5=BF=E5=8C=BA=E6=90=9C=E7=B4=A2=E9=9D=A2=E6=9D=BF=E4=BB=A5?= =?UTF-8?q?=E5=8F=8Atoolbar=E9=97=B4=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/pane/FineSearchPane.java | 30 +++--- .../fr/design/gui/itextfield/UITextField.java | 31 +------ .../com/fr/design/gui/itoolbar/UIToolbar.java | 5 +- .../pane/TemplateTreeSearchToolbarPane.java | 93 ++++--------------- .../java/com/fr/design/menu/ToolBarDef.java | 14 +-- 5 files changed, 54 insertions(+), 119 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/FineSearchPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/FineSearchPane.java index 4e50f695f..ab199f3bc 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/FineSearchPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/FineSearchPane.java @@ -8,6 +8,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import javax.swing.BorderFactory; +import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.event.DocumentListener; import java.awt.BorderLayout; @@ -60,7 +61,24 @@ public class FineSearchPane extends JPanel implements HoverAware { // 中间输入框 searchTextField = new UITextField(); setStyle(searchTextField, TRANSPARENT_TEXT_FIELD); - searchTextField.addMouseListener(new MouseAdapter() { + + // 右侧返回图标 + clearButton = new UIButton(new LazyIcon("clear")); + setStyle(clearButton, STYLE_TEXT); + Insets buttonInsets = FineUIUtils.getAndScaleUIInsets("SearchPanel.buttonBorderInsets", defaultButtonInsets); + clearButton.setBorder(BorderFactory.createEmptyBorder(buttonInsets.top, buttonInsets.left, buttonInsets.bottom, buttonInsets.right)); + + this.add(searchLabel, BorderLayout.WEST); + this.add(searchTextField, BorderLayout.CENTER); + this.add(clearButton, BorderLayout.EAST); + + addHoverStatusListener(searchLabel); + addHoverStatusListener(searchTextField); + addHoverStatusListener(clearButton); + } + + private void addHoverStatusListener(JComponent component) { + component.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { hover = true; @@ -73,16 +91,6 @@ public class FineSearchPane extends JPanel implements HoverAware { repaint(); } }); - - // 右侧返回图标 - clearButton = new UIButton(new LazyIcon("clear")); - setStyle(clearButton, STYLE_TEXT); - Insets buttonInsets = FineUIUtils.getAndScaleUIInsets("SearchPanel.buttonBorderInsets", defaultButtonInsets); - clearButton.setBorder(BorderFactory.createEmptyBorder(buttonInsets.top, buttonInsets.left, buttonInsets.bottom, buttonInsets.right)); - - this.add(searchLabel, BorderLayout.WEST); - this.add(searchTextField, BorderLayout.CENTER); - this.add(clearButton, BorderLayout.EAST); } @Override diff --git a/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java b/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java index b7bb6a545..61f1b6b62 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java +++ b/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java @@ -7,22 +7,20 @@ import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.HoverAware; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; -import com.fr.design.utils.gui.GUICoreUtils; import com.fr.stable.Constants; import com.fr.stable.StringUtils; -import javax.swing.JFrame; -import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; import java.awt.Color; import java.awt.Dimension; -import java.awt.LayoutManager; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import static com.formdev.flatlaf.FlatClientProperties.PLACEHOLDER_TEXT; + /** * 文本框 @@ -40,7 +38,6 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs private String textFieldName = StringUtils.EMPTY; private GlobalNameListener globalNameListener = null; private Dimension preferredSize = null; - private String placeholder = StringUtils.EMPTY; //有些情况下setText的时候不希望触发attributeChange,添加一个属性标识 private boolean isSetting = false; @@ -121,11 +118,11 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs } public String getPlaceholder() { - return placeholder; + return (String) this.getClientProperty(PLACEHOLDER_TEXT); } public void setPlaceholder(String placeholder) { - this.placeholder = placeholder; + this.putClientProperty(PLACEHOLDER_TEXT, placeholder); } @@ -212,26 +209,6 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs return true; } - /** - * 主函数 - * - * @param args 参数 - */ - public static void main(String... args) { - LayoutManager layoutManager = null; - JFrame jf = new JFrame("test"); - jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - JPanel content = (JPanel) jf.getContentPane(); - content.setLayout(layoutManager); - - UITextField bb = new UITextField(5); - bb.setBounds(20, 20, bb.getPreferredSize().width, bb.getPreferredSize().height); - content.add(bb); - GUICoreUtils.centerWindow(jf); - jf.setSize(400, 400); - jf.setVisible(true); - } - public void setBorderPainted(boolean isBorderPainted) { this.isBorderPainted = isBorderPainted; } diff --git a/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java b/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java index 618f4c551..5fa997a21 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java +++ b/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java @@ -1,5 +1,7 @@ package com.fr.design.gui.itoolbar; +import com.fine.theme.utils.FineUIScale; + import javax.swing.JToolBar; import java.awt.Component; import java.awt.FlowLayout; @@ -8,6 +10,7 @@ import java.util.HashMap; import java.util.Map; public class UIToolbar extends JToolBar { + int hgap = 2; public UIToolbar() { this(FlowLayout.LEFT); @@ -17,7 +20,7 @@ public class UIToolbar extends JToolBar { super(); setFloatable(false); setRollover(true); - setLayout(new FlowLayout(align, 4, 0)); + setLayout(new FlowLayout(align, FineUIScale.scale(hgap), 0)); setBorderPainted(false); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java b/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java index cfb080913..8cc747123 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java @@ -1,13 +1,9 @@ package com.fr.design.mainframe.manager.search.searcher.control.pane; -import com.fine.theme.icon.LazyIcon; -import com.fr.base.svg.IconUtils; -import com.fr.design.constants.UIConstants; +import com.formdev.flatlaf.util.ScaledEmptyBorder; +import com.fr.design.data.datapane.management.search.pane.FineSearchPane; import com.fr.design.file.TemplateTreePane; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itoolbar.UIToolbar; -import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.manager.search.TemplateTreeSearchManager; import com.fr.design.search.TreeSearchStatus; @@ -15,20 +11,13 @@ import com.fr.design.search.event.TreeSearchStatusChangeEvent; import com.fr.design.search.event.TreeSearchStatusChangeListener; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.BorderLayout; import java.awt.CardLayout; -import java.awt.Color; -import java.awt.Insets; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; /** * 模板搜索工具栏 @@ -57,12 +46,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS /** * 搜索面板 */ - private JPanel searchPane; - - /** - * 搜索输入框 - */ - private UITextField searchTextField; + private FineSearchPane searchPane; /** * 内容面板 @@ -78,7 +62,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { - TemplateTreeSearchManager.getInstance().startSearch(searchTextField.getText()); + TemplateTreeSearchManager.getInstance().startSearch(searchPane.getText()); } } }; @@ -99,63 +83,24 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS contentPane.add(searchPane, SEARCH_PANE); contentPane.add(toolbarPane, TOOLBAR_PANE); cardLayout.show(contentPane, TOOLBAR_PANE); + contentPane.setBorder(new ScaledEmptyBorder(6, 8, 6, 8)); } private void initSearchPane() { - searchPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); - searchPane.setBackground(Color.WHITE); - // 左侧搜索图标 - UILabel searchLabel = new UILabel(new LazyIcon("search")); - searchLabel.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0)); - searchLabel.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - // do nothing - } - }); - // 中间输入框 - initSearchTextField(); - // 右侧返回图标 - UILabel returnLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/clear")); - returnLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Tree_Search_Return")); - returnLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 11)); - returnLabel.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - TemplateTreeSearchManager.getInstance().outOfSearchMode(); - TemplateTreePane.getInstance().refreshDockingView(); - } - }); - searchPane.add(searchLabel, BorderLayout.WEST); - searchPane.add(searchTextField, BorderLayout.CENTER); - searchPane.add(returnLabel, BorderLayout.EAST); - } + searchPane = new FineSearchPane(); + searchPane.setPlaceholder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Template_Search_Press_Enter_For_Search")); - private void initSearchTextField() { - searchTextField = new UITextField(){ - @Override - public Insets getInsets() { - return new Insets(2, 4, 0, 4); - } - }; - searchTextField.setBorderPainted(false); - searchTextField.setPlaceholder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Template_Search_Press_Enter_For_Search")); - searchTextField.addFocusListener(new FocusListener() { - @Override - public void focusGained(FocusEvent e) { - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.NORMAL_BLUE)); - searchPane.repaint(); - } + initSearchTextFieldListener(); - @Override - public void focusLost(FocusEvent e) { - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); - searchPane.repaint(); - } + searchPane.addClearActionListener(e -> { + TemplateTreeSearchManager.getInstance().outOfSearchMode(); + TemplateTreePane.getInstance().refreshDockingView(); }); - this.searchTextField.getDocument().addDocumentListener(new DocumentListener() { + } + + private void initSearchTextFieldListener() { + searchPane.addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { } @@ -169,11 +114,11 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS public void changedUpdate(DocumentEvent e) { } }); - this.searchTextField.addKeyListener(enterPressed); + searchPane.addKeyListener(enterPressed); } private void dealWithTextChange() { - if (StringUtils.isEmpty(searchTextField.getText()) && TemplateTreeSearchManager.getInstance().isInSearchMode()) { + if (StringUtils.isEmpty(searchPane.getText()) && TemplateTreeSearchManager.getInstance().isInSearchMode()) { // 如果是搜索模式下,看作是用户删除输入框文字,仅复原TemplateTreePane TemplateTreeSearchManager.getInstance().restoreTreePane(); TemplateTreePane.getInstance().refreshDockingView(); @@ -195,7 +140,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS } public void setPlaceHolder(String placeHolder) { - this.searchTextField.setPlaceholder(placeHolder); + this.searchPane.setPlaceholder(placeHolder); } /** @@ -207,7 +152,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS public void updateTreeSearchChange(TreeSearchStatusChangeEvent event) { TreeSearchStatus treeSearchStatus = event.getTreeSearchStatus(); if (treeSearchStatus == TreeSearchStatus.NOT_IN_SEARCH_MODE) { - this.searchTextField.setText(StringUtils.EMPTY); + searchPane.setText(StringUtils.EMPTY); switchPane(TOOLBAR_PANE); } else { switchPane(SEARCH_PANE); diff --git a/designer-base/src/main/java/com/fr/design/menu/ToolBarDef.java b/designer-base/src/main/java/com/fr/design/menu/ToolBarDef.java index 8617ded9b..b35818c61 100644 --- a/designer-base/src/main/java/com/fr/design/menu/ToolBarDef.java +++ b/designer-base/src/main/java/com/fr/design/menu/ToolBarDef.java @@ -5,14 +5,18 @@ import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.itoolbar.UIToolBarUI; import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.mainframe.JTemplate; -import java.util.Set; import org.jetbrains.annotations.Nullable; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Set; /** * Define toolbar.. @@ -43,9 +47,7 @@ public class ToolBarDef { * 一个static的方法生成一个JToolBar */ public static UIToolbar createJToolBar() { - UIToolbar toolbar = new UIToolbar(FlowLayout.LEFT); - toolbar.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0)); - return toolbar; + return new UIToolbar(FlowLayout.LEFT); } public ToolBarDef() {