From a4c3e17d919159827aac3e4358fffcbd9ee9f000 Mon Sep 17 00:00:00 2001 From: Hades Date: Sun, 12 May 2019 20:45:31 +0800 Subject: [PATCH 1/4] =?UTF-8?q?REPORT-16711=20=E3=80=9010.0.3=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BB=8E=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E5=88=87=E6=8D=A2=E5=88=B0a1=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=A0=BC=20=20&&=20REPORT-16847=E3=80=90=E6=A6=82=E7=8E=87?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E3=80=91=20=E6=8C=89=E9=92=AE=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E9=94=99=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/ibutton/UIToggleButton.java | 40 ++++++++++++++++--- .../fr/design/mainframe/ElementCasePane.java | 12 ++++-- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java index 4b8975235..9f12bd5ed 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java @@ -29,6 +29,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ private boolean isEventBannded = false; private String toggleButtonName = ""; private GlobalNameListener globalNameListener = null; + private Icon[] icons; public UIToggleButton() { this(StringUtils.EMPTY); @@ -53,9 +54,9 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ * @param icons */ public UIToggleButton(Icon[] icons) { - super(icons[0], null, icons[1]); - setSelectedIcon(icons[1]); + super(icons[0], null, null); setExtraPainted(true); + this.icons = icons; addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { @@ -73,10 +74,10 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ * @param icons */ public UIToggleButton(Icon[] icons, boolean needRelease) { - super(icons[0], null, icons[1]); + super(icons[0], null, null); setBorderPainted(true); - setSelectedIcon(icons[1]); setExtraPainted(true); + this.icons = icons; if (!needRelease) { addActionListener(new AbstractAction() { @Override @@ -92,6 +93,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ addMouseListener(getMouseListener()); } + @Override public void setGlobalName(String name){ toggleButtonName = name ; } @@ -100,6 +102,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ * * @return */ + @Override public boolean isSelected() { return isSelected; } @@ -115,9 +118,11 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ super.setSelected(isSelected); if (this.isSelected != isSelected) { this.isSelected = isSelected; - repaint(); + refresh(isSelected); } } + + @Override protected void initListener(){ if(shouldResponseChangeListener()){ this.addChangeListener(new ChangeListener() { @@ -138,10 +143,29 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ if (this.isSelected != isSelected) { this.isSelected = isSelected; fireSelectedChanged(); - repaint(); + refresh(isSelected); } } + + + private void refresh(final boolean isSelected) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (icons != null) { + if (isSelected) { + UIToggleButton.this.setIcon(icons[1]); + } else { + UIToggleButton.this.setIcon(icons[0]); + } + } + UIToggleButton.this.repaint(); + } + }); + } + + protected MouseListener getMouseListener() { return new MouseAdapter() { @Override @@ -157,6 +181,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ this.isEventBannded = ban; } + @Override protected void fireStateChanged() { } @@ -187,6 +212,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ } } + @Override protected void paintOtherBorder(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setStroke(UIConstants.BS); @@ -200,6 +226,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ * * @return 如果需要响应观察者事件则返回true,否则返回false */ + @Override public boolean shouldResponseChangeListener() { return true; } @@ -208,6 +235,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ * * @param listener 观察者监听事件 */ + @Override public void registerNameListener(GlobalNameListener listener) { globalNameListener = listener; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java index db91d0a39..b16aa1b42 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java @@ -174,6 +174,7 @@ public abstract class ElementCasePane extends Tar private CellSelection cellNeedTOFormat = null; private FormatBrushAction formatBrushAction; private ActionListener keyListener = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (!formatBrush.isSelected()) { DesignerContext.setFormatState(DesignerContext.FORMAT_STATE_ONCE); @@ -188,6 +189,7 @@ public abstract class ElementCasePane extends Tar } }; private ActionListener escKey = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { cancelFormatBrush(); } @@ -212,6 +214,7 @@ public abstract class ElementCasePane extends Tar /** * 取消格式化 */ + @Override public void cancelFormat() { return; } @@ -240,7 +243,6 @@ public abstract class ElementCasePane extends Tar verScrollBar = new DynamicScrollBar(Adjustable.VERTICAL, this, this.resolution); horScrollBar = new DynamicScrollBar(Adjustable.HORIZONTAL, this, this.resolution); this.add(RGridLayout.VerticalBar, this.verScrollBar); -// this.add(RGridLayout.HorizontalBar, this.horScrollBar); // Init input/action map defaultly. initInputActionMap(); @@ -253,7 +255,7 @@ public abstract class ElementCasePane extends Tar initFormatBrush(); } - + @Override public int getMenuState() { return DesignState.WORK_SHEET; } @@ -265,6 +267,7 @@ public abstract class ElementCasePane extends Tar formatBrush.setSelected(DesignerContext.getFormatState() != DesignerContext.FORMAT_STATE_NULL); formatBrush.removeActionListener(formatBrushAction); formatBrush.addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { //如果没有格式刷,点击时就是想使用格式刷 if (e.getClickCount() == 1) { @@ -528,8 +531,8 @@ public abstract class ElementCasePane extends Tar FineLoggerFactory.getLogger().info("Nothing to release"); } this.selection = selection; - fireSelectionChanged(); } + fireSelectionChanged(); } @@ -1210,6 +1213,7 @@ public abstract class ElementCasePane extends Tar /** * 请求焦点 */ + @Override public void requestFocus() { super.requestFocus(); this.getGrid().requestFocus(); @@ -1338,6 +1342,7 @@ public abstract class ElementCasePane extends Tar * * @return 返回正在编辑的状态. */ + @Override public EditingState createEditingState() { return new ElementCaseEditingState(this.selection, this.verScrollBar.getValue(), this.horScrollBar.getValue(), this.resolution); } @@ -1380,7 +1385,6 @@ public abstract class ElementCasePane extends Tar ElementCasePane.this.getVerticalScrollBar().setValue(this.verticalValue); ElementCasePane.this.getHorizontalScrollBar().setValue(this.horizontalValue); -// ElementCasePane.this.setResolution(this.resolution); HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setScale(this.resolution); // 重绘. ElementCasePane.this.repaint(); From 9a06cbb35ee87ed754a9a7c68872f92136fb678d Mon Sep 17 00:00:00 2001 From: Hades Date: Sun, 12 May 2019 21:19:04 +0800 Subject: [PATCH 2/4] update --- .../main/java/com/fr/design/gui/ibutton/UIToggleButton.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java index 9f12bd5ed..12f39a7ab 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java @@ -30,6 +30,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ private String toggleButtonName = ""; private GlobalNameListener globalNameListener = null; private Icon[] icons; + private final int ICON_COUNT = 2; public UIToggleButton() { this(StringUtils.EMPTY); @@ -126,6 +127,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ protected void initListener(){ if(shouldResponseChangeListener()){ this.addChangeListener(new ChangeListener() { + @Override public void stateChanged(ChangeEvent e) { if (uiObserverListener == null) { return; @@ -153,7 +155,8 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - if (icons != null) { + Icon[] icons = UIToggleButton.this.icons; + if (icons != null && icons.length == ICON_COUNT) { if (isSelected) { UIToggleButton.this.setIcon(icons[1]); } else { From 85fa5185eb7e509b963e9ed1561e96c0cce6cc48 Mon Sep 17 00:00:00 2001 From: Hades Date: Mon, 13 May 2019 09:53:32 +0800 Subject: [PATCH 3/4] update --- .../main/java/com/fr/design/gui/ibutton/UIToggleButton.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java index 12f39a7ab..cf932be41 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java @@ -25,12 +25,13 @@ import com.fr.stable.StringUtils; * @since 2012-5-11下午4:28:24 */ public class UIToggleButton extends UIButton implements GlobalNameObserver{ + + private final int ICON_COUNT = 2; private boolean isSelected; private boolean isEventBannded = false; private String toggleButtonName = ""; private GlobalNameListener globalNameListener = null; private Icon[] icons; - private final int ICON_COUNT = 2; public UIToggleButton() { this(StringUtils.EMPTY); From 4570299e84014a098e8623f9c3b7fc9b3f125eec Mon Sep 17 00:00:00 2001 From: Hades Date: Mon, 13 May 2019 10:08:06 +0800 Subject: [PATCH 4/4] update --- .../src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java index cf932be41..45c878419 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIToggleButton.java @@ -26,7 +26,7 @@ import com.fr.stable.StringUtils; */ public class UIToggleButton extends UIButton implements GlobalNameObserver{ - private final int ICON_COUNT = 2; + private static final int ICON_COUNT = 2; private boolean isSelected; private boolean isEventBannded = false; private String toggleButtonName = "";