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 0000000000..021bd2a495 Binary files /dev/null and b/designer_base/src/com/fr/design/images/expand/asc_selected.png differ diff --git a/designer_base/src/com/fr/design/images/expand/des_selected.png b/designer_base/src/com/fr/design/images/expand/des_selected.png new file mode 100644 index 0000000000..de36181059 Binary files /dev/null and b/designer_base/src/com/fr/design/images/expand/des_selected.png differ diff --git a/designer_base/src/com/fr/design/images/expand/landspace_selected@1x.png b/designer_base/src/com/fr/design/images/expand/landspace_selected@1x.png new file mode 100644 index 0000000000..05939a67b9 Binary files /dev/null and b/designer_base/src/com/fr/design/images/expand/landspace_selected@1x.png differ 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 0000000000..24daf102b0 Binary files /dev/null and b/designer_base/src/com/fr/design/images/expand/none16x16_selected@1x.png differ 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 0000000000..0c78083bc6 Binary files /dev/null and b/designer_base/src/com/fr/design/images/expand/vertical_selected@1x.png differ