From 2aeb9e7a58a84d6536c31719f078d8f146533176 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 13 Oct 2016 16:00:10 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=82=AC=E6=B5=AE=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_chart/src/com/fr/design/chart/gui/ChartComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index 56c85327dc..58a15f245c 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -312,7 +312,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // chartGlyph.draw(g2d, ScreenResolution.getScreenResolution()); //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 - Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); + Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution(), this); g2d.drawImage(chartImage, 0, 0, null); } } From 75a1b9b7dabe7d609cbba87117800718789aba10 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Mon, 17 Oct 2016 09:56:33 +0800 Subject: [PATCH 2/8] update --- designer_chart/src/com/fr/design/chart/gui/ChartComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index 58a15f245c..56c85327dc 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -312,7 +312,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // chartGlyph.draw(g2d, ScreenResolution.getScreenResolution()); //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 - Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution(), this); + Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); g2d.drawImage(chartImage, 0, 0, null); } } From 7573a154d2b552bb1d132b3e921b9556cf734e50 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 18 Oct 2016 10:24:55 +0800 Subject: [PATCH 3/8] updaet --- .../com/fr/design/chart/gui/ChartComponent.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index 56c85327dc..3c274a82fc 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -5,6 +5,7 @@ import com.fr.base.ScreenResolution; import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartGlyph; +import com.fr.base.chart.chartdata.ChartDataEvent; import com.fr.chart.base.ChartConstants; import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Chart; @@ -31,7 +32,7 @@ import java.util.List; * 类说明: 事件说明: 工具栏编辑--> 是刷新ChartComponent 然后响应整个设计块的改变事件 右键编辑 ---> 刷新ChartCompment 刷新对应的工具栏(加入事件) 然后响应整个设计块的改变事件 */ -public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener { +public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener, ChartDataEvent { private static final long serialVersionUID = 744164838619052097L; private final List listeners = new ArrayList(); private ChartCollection chartCollection4Design; @@ -312,10 +313,21 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // chartGlyph.draw(g2d, ScreenResolution.getScreenResolution()); //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 + //注册获取图片后续事件 + registerChartDataEvent(chartGlyph); Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); g2d.drawImage(chartImage, 0, 0, null); } } + @Override + public void registerChartDataEvent(BaseChartGlyph glyph) { + glyph.addChartDataEvent(this); + } + + @Override + public void callback() { + this.repaint(); + } } \ No newline at end of file From 04ab068ce7c897dbb9a7a16037619b667512f9fa Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 18 Oct 2016 14:43:04 +0800 Subject: [PATCH 4/8] updaet --- .../fr/design/chart/gui/ChartComponent.java | 42 +++++++++++-------- .../design/chart/gui/ChartGlyphDrawEvent.java | 31 ++++++++++++++ 2 files changed, 55 insertions(+), 18 deletions(-) create mode 100644 designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index 3c274a82fc..aaf4dc8337 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -5,7 +5,6 @@ import com.fr.base.ScreenResolution; import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartGlyph; -import com.fr.base.chart.chartdata.ChartDataEvent; import com.fr.chart.base.ChartConstants; import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Chart; @@ -32,7 +31,7 @@ import java.util.List; * 类说明: 事件说明: 工具栏编辑--> 是刷新ChartComponent 然后响应整个设计块的改变事件 右键编辑 ---> 刷新ChartCompment 刷新对应的工具栏(加入事件) 然后响应整个设计块的改变事件 */ -public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener, ChartDataEvent { +public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener{ private static final long serialVersionUID = 744164838619052097L; private final List listeners = new ArrayList(); private ChartCollection chartCollection4Design; @@ -46,6 +45,8 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene private boolean supportEdit = true; + private ChartGlyphDrawEvent glyphDrawEvent = null; + private final int[] resizeCursors = new int[]{ Cursor.NW_RESIZE_CURSOR, Cursor.N_RESIZE_CURSOR, Cursor.NE_RESIZE_CURSOR, Cursor.E_RESIZE_CURSOR, Cursor.W_RESIZE_CURSOR, @@ -182,8 +183,9 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // 反锯齿 g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - drawChartGlyph(g2d); - + //画图 + drawImage(g2d); + ActiveGlyph ag = this.getActiveGlyph(); if (ag != null) { ag.paint4ActiveGlyph(g2d, chartGlyph); @@ -197,6 +199,13 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, lastHint); } + /** + * 事件结束后,释放事件 + */ + public void deleteDrawEvent(){ + glyphDrawEvent = null; + } + /* * ChartGlyph改变大小的时候做的操作 */ @@ -205,6 +214,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene this.editingChart = this.chartCollection4Design.getSelectedChart();// kunsnat: 切换选中时 同步切换Plot if (editingChart != null) { this.chartGlyph = editingChart.createGlyph(editingChart.defaultChartData()); + //注册ChartData监听器 this.activeGlyph = ActiveGlyphFactory.createActiveGlyph(this, chartGlyph); } this.chartWidth = d.width - ChartConstants.PREGAP4BOUNDS; @@ -303,7 +313,16 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene return chartGlyph == null || chartWidth != this.getBounds().width || chartHeight != this.getBounds().height; } - private void drawChartGlyph(Graphics2D g2d) { + private void drawImage(Graphics2D g2d){ + //画图事件处理 + glyphDrawEvent = new ChartGlyphDrawEvent(this, g2d); + //注册事件执行者 + chartGlyph.addChartDataEvent(glyphDrawEvent); + //处理画图事件 + glyphDrawEvent.run(); + } + + public void drawChartGlyph(Graphics2D g2d) { if (chartGlyph != null) { if (chartGlyph.isRoundBorder()) { chartGlyph.setBounds(new RoundRectangle2D.Double(0, 0, chartWidth, chartHeight, 10, 10)); @@ -313,21 +332,8 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // chartGlyph.draw(g2d, ScreenResolution.getScreenResolution()); //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 - //注册获取图片后续事件 - registerChartDataEvent(chartGlyph); Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); g2d.drawImage(chartImage, 0, 0, null); } } - - - @Override - public void registerChartDataEvent(BaseChartGlyph glyph) { - glyph.addChartDataEvent(this); - } - - @Override - public void callback() { - this.repaint(); - } } \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java b/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java new file mode 100644 index 0000000000..c6acf9cf8a --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java @@ -0,0 +1,31 @@ +package com.fr.design.chart.gui; +import com.fr.base.chart.chartdata.CallbackEvent; + +import java.awt.*; + +/** + * Created by hufan on 2016/10/18. + */ +public class ChartGlyphDrawEvent implements CallbackEvent { + private ChartComponent painter; + private Graphics2D g2d; + + public ChartGlyphDrawEvent() { + } + + public ChartGlyphDrawEvent(ChartComponent painter, Graphics2D g2d) { + this.painter = painter; + this.g2d = g2d; + } + + @Override + public void run() { + painter.drawChartGlyph(g2d); + } + + @Override + public void callback() { + painter.repaint(); + painter.deleteDrawEvent(); + } +} From 6388743153baae7cd1dd99b4fb4b760b392a9541 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 18 Oct 2016 14:43:55 +0800 Subject: [PATCH 5/8] updaet --- designer_chart/src/com/fr/design/chart/gui/ChartComponent.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index aaf4dc8337..bb4239537e 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -214,7 +214,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene this.editingChart = this.chartCollection4Design.getSelectedChart();// kunsnat: 切换选中时 同步切换Plot if (editingChart != null) { this.chartGlyph = editingChart.createGlyph(editingChart.defaultChartData()); - //注册ChartData监听器 this.activeGlyph = ActiveGlyphFactory.createActiveGlyph(this, chartGlyph); } this.chartWidth = d.width - ChartConstants.PREGAP4BOUNDS; From bd7dda013fc0398165f467b947ea484aea947551 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 18 Oct 2016 17:19:58 +0800 Subject: [PATCH 6/8] update --- .../fr/design/chart/gui/ChartComponent.java | 25 +++------------ .../design/chart/gui/ChartGlyphDrawEvent.java | 31 ------------------- 2 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index bb4239537e..be31c1c381 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -10,6 +10,7 @@ import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartglyph.AxisGlyph; +import com.fr.chart.chartimage.ChartGlyphToImageManager; import com.fr.design.chart.gui.active.ActiveGlyph; import com.fr.design.chart.gui.active.ChartActiveGlyph; import com.fr.design.gui.chart.MiddleChartComponent; @@ -45,8 +46,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene private boolean supportEdit = true; - private ChartGlyphDrawEvent glyphDrawEvent = null; - private final int[] resizeCursors = new int[]{ Cursor.NW_RESIZE_CURSOR, Cursor.N_RESIZE_CURSOR, Cursor.NE_RESIZE_CURSOR, Cursor.E_RESIZE_CURSOR, Cursor.W_RESIZE_CURSOR, @@ -184,7 +183,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //画图 - drawImage(g2d); + drawChartGlyph(g2d); ActiveGlyph ag = this.getActiveGlyph(); if (ag != null) { @@ -199,13 +198,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, lastHint); } - /** - * 事件结束后,释放事件 - */ - public void deleteDrawEvent(){ - glyphDrawEvent = null; - } - /* * ChartGlyph改变大小的时候做的操作 */ @@ -312,15 +304,6 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene return chartGlyph == null || chartWidth != this.getBounds().width || chartHeight != this.getBounds().height; } - private void drawImage(Graphics2D g2d){ - //画图事件处理 - glyphDrawEvent = new ChartGlyphDrawEvent(this, g2d); - //注册事件执行者 - chartGlyph.addChartDataEvent(glyphDrawEvent); - //处理画图事件 - glyphDrawEvent.run(); - } - public void drawChartGlyph(Graphics2D g2d) { if (chartGlyph != null) { if (chartGlyph.isRoundBorder()) { @@ -331,7 +314,9 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene // chartGlyph.draw(g2d, ScreenResolution.getScreenResolution()); //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 - Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); + //处理画图事件 + Image chartImage = ChartGlyphToImageManager.toImage(g2d, chartGlyph, chartWidth, chartHeight, ScreenResolution.getScreenResolution()); + //Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); g2d.drawImage(chartImage, 0, 0, null); } } diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java b/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java deleted file mode 100644 index c6acf9cf8a..0000000000 --- a/designer_chart/src/com/fr/design/chart/gui/ChartGlyphDrawEvent.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.fr.design.chart.gui; -import com.fr.base.chart.chartdata.CallbackEvent; - -import java.awt.*; - -/** - * Created by hufan on 2016/10/18. - */ -public class ChartGlyphDrawEvent implements CallbackEvent { - private ChartComponent painter; - private Graphics2D g2d; - - public ChartGlyphDrawEvent() { - } - - public ChartGlyphDrawEvent(ChartComponent painter, Graphics2D g2d) { - this.painter = painter; - this.g2d = g2d; - } - - @Override - public void run() { - painter.drawChartGlyph(g2d); - } - - @Override - public void callback() { - painter.repaint(); - painter.deleteDrawEvent(); - } -} From ec1201808f7a42e167cca38439c1ebb4ece9c409 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 18 Oct 2016 17:37:00 +0800 Subject: [PATCH 7/8] update --- .../fr/design/chart/gui/ChartComponent.java | 4 +- .../chartimage/ChartGlyphToImageEvent.java | 43 +++++++++++++++++++ .../chartimage/ChartGlyphToImageManager.java | 23 ++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java create mode 100644 designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index be31c1c381..69129ab7c2 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -10,7 +10,7 @@ import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartglyph.AxisGlyph; -import com.fr.chart.chartimage.ChartGlyphToImageManager; +import com.fr.design.chart.gui.chartimage.ChartGlyphToImageManager; import com.fr.design.chart.gui.active.ActiveGlyph; import com.fr.design.chart.gui.active.ChartActiveGlyph; import com.fr.design.gui.chart.MiddleChartComponent; @@ -315,7 +315,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 //处理画图事件 - Image chartImage = ChartGlyphToImageManager.toImage(g2d, chartGlyph, chartWidth, chartHeight, ScreenResolution.getScreenResolution()); + Image chartImage = ChartGlyphToImageManager.toImage(this, chartGlyph, chartWidth, chartHeight, ScreenResolution.getScreenResolution()); //Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); g2d.drawImage(chartImage, 0, 0, null); } diff --git a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java new file mode 100644 index 0000000000..01eb49a19a --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java @@ -0,0 +1,43 @@ +package com.fr.design.chart.gui.chartimage; +import com.fr.base.chart.BaseChartGlyph; +import com.fr.base.chart.chartdata.CallbackEvent; + +import java.awt.*; + +/** + * Created by hufan on 2016/10/18. + */ +public class ChartGlyphToImageEvent implements CallbackEvent { + private Component painter; + private BaseChartGlyph glyph; + private int width; + private int height; + private int resolution; + + private Image image; + + public ChartGlyphToImageEvent() { + } + + public ChartGlyphToImageEvent(Component painter) { + this.painter = painter; + } + + public ChartGlyphToImageEvent setImageArgs(BaseChartGlyph glyph, int width, int height, int resolution){ + this.glyph = glyph; + this.width = width; + this.height = height; + this.resolution = resolution; + return this; + } + + public Image run() { + glyph.addChartDataEvent(this); + this.image = glyph.toImage(width, height, resolution); + return image; + } + + public void callback() { + painter.repaint(); + } +} diff --git a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java new file mode 100644 index 0000000000..464d345dc0 --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java @@ -0,0 +1,23 @@ +package com.fr.design.chart.gui.chartimage; + +import com.fr.base.chart.BaseChartGlyph; + +import java.awt.*; + +/** + * Created by hufan on 2016/10/18. + */ +public class ChartGlyphToImageManager { + private static ChartGlyphToImageManager toImageManager = new ChartGlyphToImageManager(); + + public static Image toImage(Component listener, BaseChartGlyph glyph, int width, int height, int resolution){ + //初始化新的图片处理 + ChartGlyphToImageEvent imageEvent = toImageManager.initImageEvent(listener); + //获取图片 + return imageEvent.setImageArgs(glyph, width, height, resolution).run(); + } + + private ChartGlyphToImageEvent initImageEvent(Component listener){ + return new ChartGlyphToImageEvent(listener); + } +} From a128fcfb1c836bf22f0cf7c7aea44021c5c488d8 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 20 Oct 2016 14:02:19 +0800 Subject: [PATCH 8/8] update --- .../fr/design/chart/gui/ChartComponent.java | 12 ++++-- .../chartimage/ChartGlyphToImageEvent.java | 43 ------------------- .../chartimage/ChartGlyphToImageManager.java | 23 ---------- 3 files changed, 8 insertions(+), 70 deletions(-) delete mode 100644 designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java delete mode 100644 designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java diff --git a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java index 69129ab7c2..9b4a91f1a4 100644 --- a/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java +++ b/designer_chart/src/com/fr/design/chart/gui/ChartComponent.java @@ -5,12 +5,12 @@ import com.fr.base.ScreenResolution; import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartGlyph; +import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.chart.base.ChartConstants; import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartglyph.AxisGlyph; -import com.fr.design.chart.gui.chartimage.ChartGlyphToImageManager; import com.fr.design.chart.gui.active.ActiveGlyph; import com.fr.design.chart.gui.active.ChartActiveGlyph; import com.fr.design.gui.chart.MiddleChartComponent; @@ -32,7 +32,7 @@ import java.util.List; * 类说明: 事件说明: 工具栏编辑--> 是刷新ChartComponent 然后响应整个设计块的改变事件 右键编辑 ---> 刷新ChartCompment 刷新对应的工具栏(加入事件) 然后响应整个设计块的改变事件 */ -public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener{ +public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener, CallbackEvent{ private static final long serialVersionUID = 744164838619052097L; private final List listeners = new ArrayList(); private ChartCollection chartCollection4Design; @@ -315,9 +315,13 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene //不直接画chartGlyph而画image的原因是表单的柱形图会溢出表单 //其他图都ok,其实感觉应该是柱形图画的不对,应该也可以改那边 //处理画图事件 - Image chartImage = ChartGlyphToImageManager.toImage(this, chartGlyph, chartWidth, chartHeight, ScreenResolution.getScreenResolution()); - //Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution()); + Image chartImage = chartGlyph.toImage(chartWidth,chartHeight,ScreenResolution.getScreenResolution(), this); g2d.drawImage(chartImage, 0, 0, null); } } + + @Override + public void callback() { + this.repaint(); + } } \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java deleted file mode 100644 index 01eb49a19a..0000000000 --- a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.fr.design.chart.gui.chartimage; -import com.fr.base.chart.BaseChartGlyph; -import com.fr.base.chart.chartdata.CallbackEvent; - -import java.awt.*; - -/** - * Created by hufan on 2016/10/18. - */ -public class ChartGlyphToImageEvent implements CallbackEvent { - private Component painter; - private BaseChartGlyph glyph; - private int width; - private int height; - private int resolution; - - private Image image; - - public ChartGlyphToImageEvent() { - } - - public ChartGlyphToImageEvent(Component painter) { - this.painter = painter; - } - - public ChartGlyphToImageEvent setImageArgs(BaseChartGlyph glyph, int width, int height, int resolution){ - this.glyph = glyph; - this.width = width; - this.height = height; - this.resolution = resolution; - return this; - } - - public Image run() { - glyph.addChartDataEvent(this); - this.image = glyph.toImage(width, height, resolution); - return image; - } - - public void callback() { - painter.repaint(); - } -} diff --git a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java b/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java deleted file mode 100644 index 464d345dc0..0000000000 --- a/designer_chart/src/com/fr/design/chart/gui/chartimage/ChartGlyphToImageManager.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.fr.design.chart.gui.chartimage; - -import com.fr.base.chart.BaseChartGlyph; - -import java.awt.*; - -/** - * Created by hufan on 2016/10/18. - */ -public class ChartGlyphToImageManager { - private static ChartGlyphToImageManager toImageManager = new ChartGlyphToImageManager(); - - public static Image toImage(Component listener, BaseChartGlyph glyph, int width, int height, int resolution){ - //初始化新的图片处理 - ChartGlyphToImageEvent imageEvent = toImageManager.initImageEvent(listener); - //获取图片 - return imageEvent.setImageArgs(glyph, width, height, resolution).run(); - } - - private ChartGlyphToImageEvent initImageEvent(Component listener){ - return new ChartGlyphToImageEvent(listener); - } -}