diff --git a/designer/src/com/fr/poly/PolyDesignUI.java b/designer/src/com/fr/poly/PolyDesignUI.java index 9fdc8788e..8cc3583d8 100644 --- a/designer/src/com/fr/poly/PolyDesignUI.java +++ b/designer/src/com/fr/poly/PolyDesignUI.java @@ -106,7 +106,7 @@ public class PolyDesignUI extends ComponentUI { BlockCreator creator = addedData.getAddedAt(i); // richer:如果当前这个组件正在编辑,那么他是完全被他的编辑器所遮挡的,不需要画出来 if (creator == designer.getSelection()) { - paintPositionLine(g, Math.round(creator.getX() * time), Math.round(creator.getY() * time), + paintPositionLine(g, Math.round(creator.getX(time)), Math.round(creator.getY(time)), Math.round(designer.getHorizontalValue()*time), Math.round(designer.getVerticalValue()*time)); if (creator.getEditor().isDragging()) { creator.getEditor().paintAbsorptionline(g); diff --git a/designer/src/com/fr/poly/PolyDesigner.java b/designer/src/com/fr/poly/PolyDesigner.java index 09d0f8f65..c8cc3362f 100644 --- a/designer/src/com/fr/poly/PolyDesigner.java +++ b/designer/src/com/fr/poly/PolyDesigner.java @@ -272,7 +272,6 @@ public class PolyDesigner extends ReportComponent= 0; count--) { BlockCreator creator = addedData.getAddedAt(count); - int cx = creator.getX(); - int cy = creator.getY(); - int cw = creator.getWidth(); - int ch = creator.getHeight(); + float times = (float) designer.getResolution()/ScreenResolution.getScreenResolution(); + int cx = (int) (creator.getX() * times); + int cy = (int) (creator.getY() * times); + int cw = (int) (creator.getWidth() * times); + int ch = (int) (creator.getHeight() * times); if (x >= cx && x <= (cx + cw)) { if(y >= cy && y <= (cy + ch)) { return creator; diff --git a/designer/src/com/fr/poly/creator/ECBlockCreator.java b/designer/src/com/fr/poly/creator/ECBlockCreator.java index 92313115e..3921bea39 100644 --- a/designer/src/com/fr/poly/creator/ECBlockCreator.java +++ b/designer/src/com/fr/poly/creator/ECBlockCreator.java @@ -23,8 +23,8 @@ import com.fr.stable.unit.UnitRectangle; */ public class ECBlockCreator extends BlockCreator { private ECBlockEditor editor; - private static final int CREATOR_WIDTH = 30; - private static final int CREATOR_HEIGHT = 19; + private static final int CREATOR_WIDTH = 20; + private static final int CREATOR_HEIGHT = 9; public ECBlockCreator() { @@ -69,12 +69,12 @@ public class ECBlockCreator extends BlockCreator { @Override public int getX(float time) { - return (int) ((this.getX() - CREATOR_WIDTH) * time) + CREATOR_WIDTH; + return Math.round ((this.getX() - CREATOR_WIDTH) * time) + CREATOR_WIDTH; } @Override public int getY(float time) { - return (int) ((this.getY() - CREATOR_HEIGHT) * time) + CREATOR_HEIGHT; + return Math.round ((this.getY() - CREATOR_HEIGHT) * time) + CREATOR_HEIGHT; } /** diff --git a/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java b/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java index 3f063e21d..84a626406 100644 --- a/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java +++ b/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java @@ -15,6 +15,7 @@ import com.fr.design.beans.location.Absorptionline; import com.fr.design.beans.location.MoveUtils; import com.fr.design.beans.location.MoveUtils.RectangleDesigner; import com.fr.design.beans.location.MoveUtils.RectangleIterator; +import com.fr.design.file.HistoryTemplateListPane; import com.fr.general.ComparatorUtils; import com.fr.poly.PolyDesigner; import com.fr.poly.PolyDesigner.SelectionType; @@ -101,6 +102,7 @@ public class BottomCornerMouseHanlder extends MouseInputAdapter { dragStart.y -= pressed.y; TemplateBlock block = editor.getValue(); + resolution = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getJTemplateResolution(); Rectangle bounds = block.getBounds().toRectangle(resolution); Point resultPoint = MoveUtils.sorption(bounds.x + dragStart.x < 0 ? 0 : bounds.x + dragStart.x, bounds.y + dragStart.y < 0 ? 0 : bounds.y + dragStart.y, bounds.width, bounds.height, rectDesigner, false); diff --git a/designer_base/src/com/fr/design/constants/UIConstants.java b/designer_base/src/com/fr/design/constants/UIConstants.java index 38979e3d2..00c2b72dc 100644 --- a/designer_base/src/com/fr/design/constants/UIConstants.java +++ b/designer_base/src/com/fr/design/constants/UIConstants.java @@ -64,6 +64,9 @@ public interface UIConstants { Constants.LINE_MEDIUM_DASH_DOT_DOT, //medium dash-dot-dot border Constants.LINE_SLANTED_DASH_DOT, //slanted dash-dot border }; + public static final Color COMBOBOX_BTN_NORMAL = new Color(0xD9DADD); + public static final Color COMBOBOX_BTN_ROLLOVER = new Color(0xC8C9CD); + public static final Color COMBOBOX_BTN_PRESS = new Color(0xD8F2FD); public static final Color LINE_COLOR = new Color(153, 153, 153); public static final Color FONT_COLOR = new Color(51, 51, 51); public static final Color LIGHT_BLUE = new Color(182, 217, 253); diff --git a/designer_base/src/com/fr/design/foldablepane/HeaderPane.java b/designer_base/src/com/fr/design/foldablepane/HeaderPane.java index f0d19ee39..8e99896bc 100644 --- a/designer_base/src/com/fr/design/foldablepane/HeaderPane.java +++ b/designer_base/src/com/fr/design/foldablepane/HeaderPane.java @@ -1,5 +1,6 @@ package com.fr.design.foldablepane; +import com.fr.base.GraphHelper; import com.fr.design.constants.UIConstants; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxUtilities; @@ -53,6 +54,7 @@ public class HeaderPane extends JPanel { RenderingHints.VALUE_ANTIALIAS_ON); BufferedImage panelImage = createPanelImage(); g2d.drawImage(panelImage, null, 0, 0); + GraphHelper.drawString(g2d, this.title, TITLE_X, headHeight - fontSize / 2 - 1); } private BufferedImage createPanelImage() { @@ -67,7 +69,6 @@ public class HeaderPane extends JPanel { if (desktopHints != null) { g2d.setRenderingHints(desktopHints); } - g2d.drawString(this.title, TITLE_X, headHeight - fontSize / 2 - 1); int leftWdith = headWidth - LEFT_X; if (this.isShow) { image = UIConstants.DRAG_DOWN_SELECTED_SMALL; @@ -103,13 +104,13 @@ public class HeaderPane extends JPanel { } public static void main(String[] args) { -// JFrame mainFrame = new JFrame("UI Demo - Gloomyfish"); -// mainFrame.getContentPane().setLayout(new BorderLayout()); -// mainFrame.getContentPane().add(new HeaderPane(Color.black, "基本", 24), BorderLayout.CENTER); -// mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); -// mainFrame.pack(); -// mainFrame.setSize(300, 400); -// mainFrame.setVisible(true); + JFrame mainFrame = new JFrame("UI Demo - Gloomyfish"); + mainFrame.getContentPane().setLayout(new BorderLayout()); + mainFrame.getContentPane().add(new HeaderPane(Color.black, "基本", 24), BorderLayout.CENTER); + mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + mainFrame.pack(); + mainFrame.setSize(300, 400); + mainFrame.setVisible(true); } } diff --git a/designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java b/designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java index 81165a2b9..617619bc2 100644 --- a/designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java +++ b/designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java @@ -6,6 +6,7 @@ import com.fr.base.chart.BasePlot; import com.fr.design.actions.UpdateAction; import com.fr.design.actions.core.ActionFactory; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.constants.UIConstants; import com.fr.design.data.tabledata.tabledatapane.GlobalMultiTDTableDataPane; import com.fr.design.data.tabledata.tabledatapane.GlobalTreeTableDataPane; import com.fr.design.data.tabledata.tabledatapane.MultiTDTableDataPane; @@ -87,6 +88,7 @@ public abstract class UIListControlPane extends UIControlPane { protected void initLeftPane(JPanel leftPane) { nameableList = createJNameList(); nameableList.setName(LIST_NAME); + nameableList.setSelectionBackground(UIConstants.ATTRIBUTE_PRESS); leftPane.add(new UIScrollPane(nameableList), BorderLayout.CENTER); diff --git a/designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java b/designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java index ee98d0928..a38011208 100644 --- a/designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java +++ b/designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java @@ -1,27 +1,16 @@ package com.fr.design.gui.ibutton; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Insets; -import java.awt.Rectangle; -import java.awt.RenderingHints; - -import javax.swing.AbstractButton; -import javax.swing.ButtonModel; -import javax.swing.Icon; -import javax.swing.JComponent; -import javax.swing.SwingUtilities; -import javax.swing.plaf.basic.BasicButtonUI; -import javax.swing.plaf.basic.BasicHTML; -import javax.swing.text.View; - import com.fr.design.constants.UIConstants; import com.fr.design.roleAuthority.ReportAndFSManagePane; +import com.fr.design.utils.gui.GUIPaintUtils; +import com.fr.stable.StringUtils; import sun.swing.SwingUtilities2; -import com.fr.stable.StringUtils; -import com.fr.design.utils.gui.GUIPaintUtils; +import javax.swing.*; +import javax.swing.plaf.basic.BasicButtonUI; +import javax.swing.plaf.basic.BasicHTML; +import javax.swing.text.View; +import java.awt.*; public class UIButtonUI extends BasicButtonUI { @@ -51,11 +40,11 @@ public class UIButtonUI extends BasicButtonUI { protected void doExtraPainting(UIButton b, Graphics2D g2d, int w, int h, String selectedRoles) { if (isPressed(b) && b.isPressedPainted()) { - GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles)); + GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), UIConstants.COMBOBOX_BTN_PRESS); } else if (isRollOver(b)) { - GUIPaintUtils.fillRollOver(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted()); + GUIPaintUtils.fillRollOver(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted(), UIConstants.COMBOBOX_BTN_ROLLOVER); } else if (b.isNormalPainted()) { - GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted()); + GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted(), UIConstants.COMBOBOX_BTN_NORMAL); } } @@ -66,7 +55,7 @@ public class UIButtonUI extends BasicButtonUI { protected boolean isPressed(AbstractButton b) { ButtonModel model = b.getModel(); - return (model.isArmed() && model.isPressed()) || b.isSelected(); + return model.isArmed() && model.isPressed(); } private void paintContent(Graphics g, AbstractButton b, String text) { @@ -127,7 +116,7 @@ public class UIButtonUI extends BasicButtonUI { return; } Icon selectedIcon = null; - /* the fallback icon should be based on the selected state */ + /* the fallback icon should be based on the selected state */ if (model.isSelected()) { selectedIcon = (Icon) b.getSelectedIcon(); if (selectedIcon != null) { diff --git a/designer_base/src/com/fr/design/gui/icombobox/UIComboBoxRenderer.java b/designer_base/src/com/fr/design/gui/icombobox/UIComboBoxRenderer.java index 7674b574f..4be4fdcf0 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/UIComboBoxRenderer.java +++ b/designer_base/src/com/fr/design/gui/icombobox/UIComboBoxRenderer.java @@ -27,7 +27,7 @@ public class UIComboBoxRenderer extends DefaultListCellRenderer { cellHasFocus = cellHasFocus && !this.isEnabled(); JLabel renderer =(JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); renderer.setForeground(Color.black); - list.setSelectionBackground(UIConstants.FLESH_BLUE); + list.setSelectionBackground(UIConstants.COMBOBOX_BTN_PRESS); list.setSelectionForeground(Color.black); renderer.setText(" " + renderer.getText()); return renderer; diff --git a/designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java b/designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java index d9d5bf7ed..8d3a66d45 100644 --- a/designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java +++ b/designer_base/src/com/fr/design/gui/itoolbar/UIToolBarUI.java @@ -25,6 +25,8 @@ import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIToolButtonBorder; import com.fr.design.gui.icheckbox.UICheckBox; +import static com.fr.design.utils.ThemeUtils.BACK_COLOR; + public class UIToolBarUI extends MetalToolBarUI { public static final String IS_TOOL_BAR_BUTTON_KEY = "JToolBar.isToolbarButton"; public static final int FLOATABLE_GRIP_SIZE = 8; @@ -89,7 +91,7 @@ public class UIToolBarUI extends MetalToolBarUI { */ public void paint(Graphics g, JComponent c) { Graphics2D g2 = (Graphics2D) g; - g2.setColor(UIConstants.TOOLBARUI_BACKGROUND); + g2.setColor(BACK_COLOR); g2.fillRect(0, 0, c.getWidth(), c.getHeight()); } diff --git a/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java b/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java index fb21725d6..286e44cd6 100644 --- a/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java +++ b/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java @@ -49,23 +49,28 @@ public class GUIPaintUtils { /** * 正常状态填充 - * @param g2d 图形对象 - * @param x x坐标 - * @param y y坐标 - * @param width 宽度 - * @param height 高度 - * @param isRound 是否圆角 - * @param rectDirection 矩形方向 + * + * @param g2d 图形对象 + * @param x x坐标 + * @param y y坐标 + * @param width 宽度 + * @param height 高度 + * @param isRound 是否圆角 + * @param rectDirection 矩形方向 * @param isAuthorityEdited 是否权限编辑 - * @param isPressedPainted 是否按压画 + * @param isPressedPainted 是否按压画 */ public static final void fillNormal(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) { + fillNormal(g2d, x, y, width, height, isRound, rectDirection, isAuthorityEdited, isPressedPainted, UIConstants.ATTRIBUTE_NORMAL); + } + + public static final void fillNormal(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted, Color color) { GradientPaint gp; if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.AUTHORITY_DARK_BLUE); } else if (isPressedPainted) { - gp = new GradientPaint(1, 1, UIConstants.ATTRIBUTE_NORMAL, 1, height - 1, UIConstants.ATTRIBUTE_NORMAL); - }else{ + gp = new GradientPaint(1, 1, color, 1, height - 1, color); + } else { gp = new GradientPaint(1, 1, UIConstants.SHADOW_GREY, 1, height - 1, UIConstants.SHADOW_GREY); } @@ -74,15 +79,16 @@ public class GUIPaintUtils { /** * 鼠标悬停状态填充 - * @param g2d 图形对象 - * @param x x坐标 - * @param y y坐标 - * @param width 宽度 - * @param height 高度 - * @param isRound 是否圆角 - * @param rectDirection 矩形方向 + * + * @param g2d 图形对象 + * @param x x坐标 + * @param y y坐标 + * @param width 宽度 + * @param height 高度 + * @param isRound 是否圆角 + * @param rectDirection 矩形方向 * @param isAuthorityEdited 是否权限编辑 - * @param isPressedPainted 是否按压画 + * @param isPressedPainted 是否按压画 */ public static final void fillRollOver(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) { fillRollOver(g2d, x, y, width, height, isRound, rectDirection, isAuthorityEdited, isPressedPainted, null); @@ -104,15 +110,15 @@ public class GUIPaintUtils { /** * 按压状态填充 - * @param g2d 图形对象 - * @param x x坐标 - * @param y y坐标 - * @param width 宽度 - * @param height 高度 - * @param isRound 是否圆角 - * @param rectDirection 矩形方向 - * @param isAuthorityEdited 是否权限编辑 * + * @param g2d 图形对象 + * @param x x坐标 + * @param y y坐标 + * @param width 宽度 + * @param height 高度 + * @param isRound 是否圆角 + * @param rectDirection 矩形方向 + * @param isAuthorityEdited 是否权限编辑 */ public static final void fillPressed(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited) { fillPressed(g2d, x, y, width, height, isRound, rectDirection, isAuthorityEdited, null); @@ -147,17 +153,19 @@ public class GUIPaintUtils { g2d.setColor(oldColor); } + /** * 自定义画笔填充 - * @param g2d 图形对象 - * @param x x坐标 - * @param y y坐标 - * @param width 宽度 - * @param height 高度 - * @param isRound 是否圆角 - * @param rectDirection 矩形方向 - * @param paint 画笔 - * @param arc 圆角尺寸 + * + * @param g2d 图形对象 + * @param x x坐标 + * @param y y坐标 + * @param width 宽度 + * @param height 高度 + * @param isRound 是否圆角 + * @param rectDirection 矩形方向 + * @param paint 画笔 + * @param arc 圆角尺寸 */ public static final void fillPaint(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, Paint paint, int arc) { Paint oldPaint = g2d.getPaint(); @@ -188,9 +196,9 @@ public class GUIPaintUtils { public static final void paintBorderShadow(Graphics2D g2, int shadowWidth, Shape shape, Color outColor, Color inColor) { g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2.setColor(outColor); - g2.setStroke(new BasicStroke(shadowWidth)); - g2.draw(shape); + g2.setColor(outColor); + g2.setStroke(new BasicStroke(shadowWidth)); + g2.draw(shape); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); }