diff --git a/designer/src/com/fr/poly/PolyDesignUI.java b/designer/src/com/fr/poly/PolyDesignUI.java index efe76a69aa..9fdc8788ef 100644 --- a/designer/src/com/fr/poly/PolyDesignUI.java +++ b/designer/src/com/fr/poly/PolyDesignUI.java @@ -3,12 +3,7 @@ */ package com.fr.poly; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; +import java.awt.*; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.text.DecimalFormat; @@ -29,6 +24,7 @@ import com.fr.page.PaperSettingProvider; import com.fr.page.ReportSettingsProvider; import com.fr.poly.creator.BlockCreator; import com.fr.poly.creator.ECBlockCreator; +import com.fr.poly.creator.ECBlockEditor; import com.fr.poly.model.AddedData; import com.fr.poly.model.AddingData; import com.fr.report.report.Report; @@ -101,6 +97,7 @@ public class PolyDesignUI extends ComponentUI { paintAddingData(g2d, addData); } paintPaginateLine(g2d); + designer.repaint(); } private void paintAddedData(Graphics g) { @@ -109,8 +106,8 @@ public class PolyDesignUI extends ComponentUI { BlockCreator creator = addedData.getAddedAt(i); // richer:如果当前这个组件正在编辑,那么他是完全被他的编辑器所遮挡的,不需要画出来 if (creator == designer.getSelection()) { - paintPositionLine(g, creator.getX(time), creator.getY(time), - (int) (designer.getHorizontalValue()*time), (int) (designer.getVerticalValue()*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); //如果与其他块重合了, 需要画出提示禁止重叠 @@ -121,8 +118,8 @@ public class PolyDesignUI extends ComponentUI { creator.getEditor().hideForbiddenWindow(); } } else { - paintCreator(g, creator, (int) (creator.getX()*time - designer.getHorizontalValue()*time), (int) (creator.getY()*time - designer.getVerticalValue()*time), - (int) (creator.getWidth()*time), (int) (creator.getHeight()*time)); + paintCreator(g, creator, creator.getX() - designer.getHorizontalValue(), creator.getY() - designer.getVerticalValue(), + creator.getWidth(), creator.getHeight()); } } } @@ -223,16 +220,19 @@ public class PolyDesignUI extends ComponentUI { ArrayList dbcomponents = new ArrayList(); // richer:禁止双缓冲行为,否则会出现两个图像 ComponentUtils.disableBuffer(comp, dbcomponents); -// Graphics clipg = g.create(x, y, width*resolution/ScreenResolution.getScreenResolution(), height*resolution/ScreenResolution.getScreenResolution()); -// - BufferedImage img = CoreGraphHelper.createBufferedImage(comp.getWidth(), comp.getHeight(), BufferedImage.TYPE_INT_RGB); - Graphics2D g2d = img.createGraphics(); - comp.printAll(g2d); - g2d.dispose(); - g.drawImage(img,x,y,width,height,null); + if (comp instanceof ECBlockCreator) { + Graphics clipg = g.create((int) (x * time), (int) (y * time), (int) (width * time), (int) (height * time)); + comp.paint(clipg); + clipg.dispose(); + }else { + BufferedImage img = CoreGraphHelper.createBufferedImage(comp.getWidth(), comp.getHeight(), BufferedImage.TYPE_INT_RGB); + Graphics2D g2d = img.createGraphics(); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + comp.printAll(g2d); + g2d.dispose(); + g.drawImage(img, (int) (x * time), (int) (y * time), (int) (width * time), (int) (height * time),null); + } -// comp.paint(clipg); -// clipg.dispose(); ComponentUtils.resetBuffer(dbcomponents); } diff --git a/designer/src/com/fr/poly/PolyUtils.java b/designer/src/com/fr/poly/PolyUtils.java index a0d13a0429..d9c54b2fac 100644 --- a/designer/src/com/fr/poly/PolyUtils.java +++ b/designer/src/com/fr/poly/PolyUtils.java @@ -115,11 +115,10 @@ public class PolyUtils { AddedData addedData = designer.getAddedData(); for (int count = addedData.getAddedCount() - 1; count >= 0; count--) { BlockCreator creator = addedData.getAddedAt(count); - 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); + int cx = creator.getX(); + int cy = creator.getY(); + int cw = creator.getWidth(); + int ch = creator.getHeight(); if (x >= cx && x <= (cx + cw)) { if(y >= cy && y <= (cy + ch)) { return creator; diff --git a/designer/src/com/fr/poly/creator/ECBlockEditor.java b/designer/src/com/fr/poly/creator/ECBlockEditor.java index 73d33defee..ee8f2b56c2 100644 --- a/designer/src/com/fr/poly/creator/ECBlockEditor.java +++ b/designer/src/com/fr/poly/creator/ECBlockEditor.java @@ -34,6 +34,7 @@ import java.awt.*; */ public class ECBlockEditor extends BlockEditor { private static final int HEIGHT_MORE = 5; + private int resolution = ScreenResolution.getScreenResolution(); public ECBlockEditor(PolyDesigner designer, ECBlockCreator creator) { super(designer, creator); diff --git a/designer_base/src/com/fr/design/scrollruler/HorizontalRulerUI.java b/designer_base/src/com/fr/design/scrollruler/HorizontalRulerUI.java index 61a812fda8..fb25c7d3e7 100644 --- a/designer_base/src/com/fr/design/scrollruler/HorizontalRulerUI.java +++ b/designer_base/src/com/fr/design/scrollruler/HorizontalRulerUI.java @@ -27,7 +27,7 @@ public class HorizontalRulerUI extends RulerUI { g.setColor(BaseRuler.UNIT_SIGN_COLOR); if (i % BaseRuler.SCALE_10 == 0) { double times = (double)HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getJTemplateResolution() / ScreenResolution.getScreenResolution(); - String text = Utils.convertNumberStringToString(Math.round(i / times)); + String text = Utils.convertNumberStringToString(Math.round((i / times) / showText)); Graphics2D gg = (Graphics2D) g.create((int) (toPX(i) / ratio) - extra + 1, 0, BaseRuler.NUMBER_100, size.height); BaseUtils.drawStringStyleInRotation(gg, BaseRuler.NUMBER_100, BaseRuler.NUMBER_14, text, Style.getInstance().deriveHorizontalAlignment( Style.LEFT_TO_RIGHT).deriveFRFont(BaseRuler.TEXT_FONT), ScreenResolution.getScreenResolution()); diff --git a/designer_base/src/com/fr/design/scrollruler/VerticalRulerUI.java b/designer_base/src/com/fr/design/scrollruler/VerticalRulerUI.java index e0b6a11bf0..b175c358e0 100644 --- a/designer_base/src/com/fr/design/scrollruler/VerticalRulerUI.java +++ b/designer_base/src/com/fr/design/scrollruler/VerticalRulerUI.java @@ -24,7 +24,7 @@ public class VerticalRulerUI extends RulerUI{ g.setColor(BaseRuler.UNIT_SIGN_COLOR); if (i % BaseRuler.SCALE_10 == 0) { double times = (double) HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getJTemplateResolution() / ScreenResolution.getScreenResolution(); - String text = Utils.convertNumberStringToString(Math.round(i / times)); + String text = Utils.convertNumberStringToString(Math.round((i / times) / showText)); GraphHelper.drawLine(g, size.width, toPX(i) / ratio - extra, 0, toPX(i) / ratio - extra); Graphics2D gg = (Graphics2D) g.create(0, (int) (toPX(i) / ratio - extra + 1), size.width, BaseRuler.NUMBER_99); BaseUtils.drawStringStyleInRotation(gg, BaseRuler.NUMBER_11, BaseRuler.NUMBER_100, text, Style.getInstance().deriveVerticalAlignment(1).deriveRotation( diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index cd8b3f3b08..7e746251b9 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -22,10 +22,19 @@ import com.fr.env.SignIn; import com.fr.file.FILE; import com.fr.file.FILEFactory; import com.fr.file.FileFILE; -import com.fr.general.*; +import com.fr.general.ComparatorUtils; +import com.fr.general.FRLogger; +import com.fr.general.GeneralContext; +import com.fr.general.Inter; +import com.fr.general.ModuleContext; import com.fr.plugin.PluginCollector; import com.fr.plugin.manage.PluginManager; -import com.fr.stable.*; +import com.fr.plugin.manage.PluginStartup; +import com.fr.stable.ArrayUtils; +import com.fr.stable.BuildContext; +import com.fr.stable.OperatingSystem; +import com.fr.stable.ProductConstants; +import com.fr.stable.StableUtils; import javax.swing.*; import java.awt.*; @@ -84,7 +93,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { DesignUtils.creatListeningServer(getStartPort(), startFileSuffix()); //初始化插件引擎 - PluginManager.init(); + PluginStartup.start(); // 初始化Log Handler DesignerEnvManager.loadLogSetting(); DesignerFrame df = createDesignerFrame();