From 5769e260e6011f24d72901b23b3bedd4868d3b8c Mon Sep 17 00:00:00 2001 From: MoMeak Date: Tue, 19 Sep 2017 14:43:20 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-4604=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E4=BF=AE=E6=94=B9=201.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=B8=AAUIToggleButton(Icon[]=20icons)=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9B=E4=BE=9B=E9=9C=80=E8=A6=81=E5=8F=8D?= =?UTF-8?q?=E7=99=BD=E7=9A=84=E6=8C=89=E9=92=AE=E8=B0=83=E7=94=A8=202.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8D=95=E5=85=83=E6=A0=BC=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E7=9A=84=E5=8F=8D=E7=99=BD=E6=8C=89=E9=92=AE?= =?UTF-8?q?=EF=BC=8810=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/expand/SortExpandAttrPane.java | 12 +++--- .../cell/settingpane/CellExpandAttrPane.java | 8 ++-- .../fr/design/gui/ibutton/UIButtonGroup.java | 36 ++++++++++++++++++ .../fr/design/gui/ibutton/UIToggleButton.java | 24 +++++++++++- .../fr/design/images/expand/asc_selected.png | Bin 0 -> 306 bytes .../fr/design/images/expand/des_selected.png | Bin 0 -> 305 bytes .../images/expand/landspace_selected@1x.png | Bin 0 -> 139 bytes .../images/expand/none16x16_selected@1x.png | Bin 0 -> 383 bytes .../images/expand/vertical_selected@1x.png | Bin 0 -> 128 bytes 9 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/expand/asc_selected.png create mode 100644 designer_base/src/com/fr/design/images/expand/des_selected.png create mode 100644 designer_base/src/com/fr/design/images/expand/landspace_selected@1x.png create mode 100644 designer_base/src/com/fr/design/images/expand/none16x16_selected@1x.png create mode 100644 designer_base/src/com/fr/design/images/expand/vertical_selected@1x.png diff --git a/designer/src/com/fr/design/expand/SortExpandAttrPane.java b/designer/src/com/fr/design/expand/SortExpandAttrPane.java index d346dd890c..284135bddd 100644 --- a/designer/src/com/fr/design/expand/SortExpandAttrPane.java +++ b/designer/src/com/fr/design/expand/SortExpandAttrPane.java @@ -24,13 +24,13 @@ public class SortExpandAttrPane extends JPanel { public SortExpandAttrPane() { this.setLayout(new BorderLayout(0, 4)); - Icon[] iconArray = { - BaseUtils.readIcon("/com/fr/design/images/expand/none16x16.png"), - BaseUtils.readIcon("/com/fr/design/images/expand/asc.png"), - BaseUtils.readIcon("/com/fr/design/images/expand/des.png") - }; + Icon[][] iconArray = { + {BaseUtils.readIcon("/com/fr/design/images/expand/none16x16.png"), BaseUtils.readIcon("/com/fr/design/images/expand/none16x16_selected@1x.png")}, + {BaseUtils.readIcon("/com/fr/design/images/expand/asc.png"), BaseUtils.readIcon("/com/fr/design/images/expand/asc_selected.png")}, + {BaseUtils.readIcon("/com/fr/design/images/expand/des.png"), BaseUtils.readIcon("/com/fr/design/images/expand/des_selected.png")} + }; String[] nameArray = { Inter.getLocText("Sort-Original"), Inter.getLocText("Sort-Ascending"), Inter.getLocText("Sort-Descending") }; - sort_type_pane = new UIButtonGroup(iconArray); + sort_type_pane = new UIButtonGroup(iconArray, null); sort_type_pane.setAllToolTips(nameArray); sort_type_pane.setGlobalName(Inter.getLocText("ExpandD-Sort_After_Expand")); this.add(sort_type_pane, BorderLayout.NORTH); diff --git a/designer/src/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java b/designer/src/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java index 4eedd4f7c5..b903e68048 100644 --- a/designer/src/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java +++ b/designer/src/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java @@ -45,10 +45,10 @@ public class CellExpandAttrPane extends AbstractCellAttrPane { */ public JPanel createContentPane() { String[] nameArray = {Inter.getLocText("ExpandD-Not_Expand"), Inter.getLocText("Utils-Top_to_Bottom"), Inter.getLocText("Utils-Left_to_Right")}; - Icon[] iconArray = { - BaseUtils.readIcon("/com/fr/design/images/expand/none16x16.png"), - BaseUtils.readIcon("/com/fr/design/images/expand/vertical.png"), - BaseUtils.readIcon("/com/fr/design/images/expand/landspace.png") + Icon[][] iconArray = { + {BaseUtils.readIcon("/com/fr/design/images/expand/none16x16.png"), BaseUtils.readIcon("/com/fr/design/images/expand/none16x16_selected@1x.png")}, + {BaseUtils.readIcon("/com/fr/design/images/expand/vertical.png"), BaseUtils.readIcon("/com/fr/design/images/expand/vertical_selected@1x.png")}, + {BaseUtils.readIcon("/com/fr/design/images/expand/landspace.png"), BaseUtils.readIcon("/com/fr/design/images/expand/landspace_selected@1x.png")} }; Byte[] valueArray = {Constants.NONE, Constants.TOP_TO_BOTTOM, Constants.LEFT_TO_RIGHT}; expandDirectionButton = new UIButtonGroup(iconArray, valueArray); diff --git a/designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java b/designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java index 0683fc7c2b..4133e109cd 100644 --- a/designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java +++ b/designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java @@ -80,6 +80,42 @@ public class UIButtonGroup extends JPanel implements GlobalNameObserver { } } + public UIButtonGroup(Icon[][] iconArray, T[] objects) { + if (!ArrayUtils.isEmpty(objects) && iconArray.length == objects.length) { + this.objectList = Arrays.asList(objects); + } + labelButtonList = new ArrayList(iconArray.length); + this.setLayout(getGridLayout(iconArray.length)); + this.setBorder(getGroupBorder()); + for (int i = 0; i < iconArray.length; i++) { + final int index = i; + Icon[] icon = iconArray[i]; + final UIToggleButton labelButton = new UIToggleButton(icon) { + @Override + protected MouseListener getMouseListener() { + return new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + isClick = true; + if (!isEnabled()) { + return; + } + if (globalNameListener != null) { + globalNameListener.setGlobalName(buttonGroupName); + } + setSelectedWithFireChanged(index); + } + }; + } + + public boolean shouldResponseNameListener() { + return false; + } + }; + initButton(labelButton); + } + } + public boolean hasClick() { return isClick; } diff --git a/designer_base/src/com/fr/design/gui/ibutton/UIToggleButton.java b/designer_base/src/com/fr/design/gui/ibutton/UIToggleButton.java index 0a766e2e91..21c8bb419a 100644 --- a/designer_base/src/com/fr/design/gui/ibutton/UIToggleButton.java +++ b/designer_base/src/com/fr/design/gui/ibutton/UIToggleButton.java @@ -3,12 +3,13 @@ package com.fr.design.gui.ibutton; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; +import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.geom.RoundRectangle2D; -import javax.swing.Icon; +import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -46,6 +47,26 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ addMouseListener(getMouseListener()); } + /** + * 需要反白的按钮接口 + * support icons[normalIcon, selectedIcon] + * @param icons + */ + public UIToggleButton(Icon[] icons) { + super(icons[0], null, icons[1]); + setSelectedIcon(icons[1]); + setExtraPainted(true); + addActionListener(new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + if (!UIToggleButton.super.isSelected()) { + UIToggleButton.super.setSelected(!UIToggleButton.super.isSelected()); + } + } + }); + addMouseListener(getMouseListener()); + } + public void setGlobalName(String name){ toggleButtonName = name ; } @@ -66,6 +87,7 @@ public class UIToggleButton extends UIButton implements GlobalNameObserver{ @Override public void setSelected(boolean isSelected) { + super.setSelected(isSelected); if (this.isSelected != isSelected) { this.isSelected = isSelected; repaint(); diff --git a/designer_base/src/com/fr/design/images/expand/asc_selected.png b/designer_base/src/com/fr/design/images/expand/asc_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..021bd2a495f4e992888853a60b5d991bd3b199a7 GIT binary patch literal 306 zcmV-20nPr2P)Px#>`6pHR5%f>k}(c~KoCXISQ{Iot%-U7J1aPaXE5;uUc+n9TiX*$VuCk-(#lHT zY?yUf)`-SQ9y|MI=CfppqJPBWO}O5)9AU1j)&`pN2+d^`Pj^o~fuXaSvNZ?{n1)Xe zYtZ2YL9c#L{X$fOYhWg%wc3mU$6xxDkmmQuUQZCJb<&IhH&Dnec#(H;u%95eAi+=q z73@I%hlQ+uppRkH_ymNQ#uPSqo$8?!eP8Fg%t$g=s~~TRp@hVWBPx#>q$gGR5%f>k-ZMVU=)U1F^i>Pm0+>iOk9O)khlW3VQ>@Ot?Z3aBy|ZLO{RLz zm!8jQsfIYou@XN6nJA+@3y#d7zA~;~Ck&2)x+9KflPMU;ud;c5M37Y2a1@h*1 zLiu0c&F##;K*Tmwg!f2mo0&(@^#(MhFyffS#`IDSAc2`Qfn2)6eCUkahYQ?c3MaV1 z%FAhL4MfCRO}5k-JdX>()w>l1qSCA|NnVbthu`)Ol^C-vwr2s500000NkvXXu0mjf D29tVJLo5W7 z|M0W$Okv1jo1k>erSqx6UgmrTWwZa29_flrNLn8JKj6z7<7B0%oCk*+lEedKI(Tj* jHHsK^?KSwo2IMiQwpzUAyk9p7Xdr{9tDnm{r-UW|8sjTh literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/expand/none16x16_selected@1x.png b/designer_base/src/com/fr/design/images/expand/none16x16_selected@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..24daf102b07ce54a8a26d00e07bfe041b4627493 GIT binary patch literal 383 zcmV-_0f7FAP)Px$IY~r8R5%fplQC|?FbqZG4gtDn$r*ewujxGkI72!$C&-#PLk^LX1TDH0?t8Kr z%W8|Z1U^KGpA<<^i$x{FFtnftS8&Tv_pGhx(-z|r?7;_k11GQr&)@=Hfi^kI$rH^3 za0bc|tY(Cfv*!FD0g*ceVPjOKs~yWdcFPFaCmTC!Hnn3(u669;?D~>@TGQVFYyOgU z1i^N9_Kdyd*puFk9XIX literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/expand/vertical_selected@1x.png b/designer_base/src/com/fr/design/images/expand/vertical_selected@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c78083bc6aebbcf5fec9333c9306b80ca50f05b GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|tUO&DLo5W7 z|M0W$h%ksvh;vhLFk?<&(L_L!%~64g Z!8_7W_zT0@-#}9sJYD@<);T3K0RWjAA}{~| literal 0 HcmV?d00001