From aad1dfbf61ad0d0cb7e038536dd0b0e4236f1fab Mon Sep 17 00:00:00 2001 From: vito Date: Fri, 6 May 2016 12:15:28 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E8=AE=BE=E7=BD=AEpart5=20in=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/report/ExcelExportPane.java | 6 +- .../com/fr/design/report/PDFExportPane.java | 4 +- .../design/report/ReportExportAttrPane.java | 139 +++++++++++------- .../com/fr/design/report/WordExportPane.java | 4 +- .../fr/design/ExtraDesignClassManager.java | 19 +++ .../com/fr/design/fun/AbstractExportPane.java | 30 ++++ .../fr/design/fun/ExportAttrTabProvider.java | 22 +++ .../impl/AbstractExportAttrTabProvider.java | 19 +++ 8 files changed, 180 insertions(+), 63 deletions(-) create mode 100644 designer_base/src/com/fr/design/fun/AbstractExportPane.java create mode 100644 designer_base/src/com/fr/design/fun/ExportAttrTabProvider.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractExportAttrTabProvider.java diff --git a/designer/src/com/fr/design/report/ExcelExportPane.java b/designer/src/com/fr/design/report/ExcelExportPane.java index 9b97c2e8e..f2b699f3b 100644 --- a/designer/src/com/fr/design/report/ExcelExportPane.java +++ b/designer/src/com/fr/design/report/ExcelExportPane.java @@ -4,8 +4,10 @@ package com.fr.design.report; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import com.fr.design.fun.AbstractExportPane; import com.fr.design.gui.ilable.UILabel; -import javax.swing.JPanel; + +import javax.swing.*; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.itextfield.UITextField; @@ -32,7 +34,7 @@ public class ExcelExportPane extends BasicPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel outnorthPane =FRGUIPaneFactory.createTitledBorderPane("Excel" + Inter.getLocText("ReportD-Excel_Export")); JPanel northPane=FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); this.add(outnorthPane); diff --git a/designer/src/com/fr/design/report/PDFExportPane.java b/designer/src/com/fr/design/report/PDFExportPane.java index 8e5e7c64c..d66ded01a 100644 --- a/designer/src/com/fr/design/report/PDFExportPane.java +++ b/designer/src/com/fr/design/report/PDFExportPane.java @@ -4,7 +4,7 @@ package com.fr.design.report; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.JPanel; +import javax.swing.*; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; @@ -26,7 +26,7 @@ public class PDFExportPane extends BasicPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel outnorthPane =FRGUIPaneFactory.createTitledBorderPane("PDF" + Inter.getLocText("ReportD-Excel_Export")); JPanel northPane=FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); this.add(outnorthPane); diff --git a/designer/src/com/fr/design/report/ReportExportAttrPane.java b/designer/src/com/fr/design/report/ReportExportAttrPane.java index 4819d9ff7..a3f114022 100644 --- a/designer/src/com/fr/design/report/ReportExportAttrPane.java +++ b/designer/src/com/fr/design/report/ReportExportAttrPane.java @@ -1,67 +1,92 @@ package com.fr.design.report; -import javax.swing.BorderFactory; -import javax.swing.BoxLayout; +import javax.swing.*; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.AbstractExportPane; +import com.fr.design.fun.ExportAttrTabProvider; +import com.fr.design.gui.frpane.UITabbedPane; import com.fr.general.Inter; +import com.fr.io.attr.ImageExportAttr; import com.fr.io.attr.ReportExportAttr; +import java.util.HashMap; +import java.util.Map; + public class ReportExportAttrPane extends BasicPane { - private ExcelExportPane excelExportPane; - private PDFExportPane pdfExportPane; - private WordExportPane wordExportPane; - - public ReportExportAttrPane() { - this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - excelExportPane = new ExcelExportPane(); - this.add(excelExportPane); - pdfExportPane = new PDFExportPane(); - this.add(pdfExportPane); - wordExportPane = new WordExportPane(); - this.add(wordExportPane); - } - - @Override - protected String title4PopupWindow() { - return Inter.getLocText("ReportD-Excel_Export"); - } - - public void populate(ReportExportAttr reportExportAttr) { - if (reportExportAttr == null) { - reportExportAttr = new ReportExportAttr(); - } - - if (this.excelExportPane != null) { - this.excelExportPane.populate(reportExportAttr.getExcelExportAttr()); - } - - if (this.pdfExportPane != null) { - this.pdfExportPane.populate(reportExportAttr.getPDFExportAttr()); - } - - if (this.wordExportPane != null) { - this.wordExportPane.populate(reportExportAttr.getWordExportAttr()); - } - } - - public ReportExportAttr update() { - - ReportExportAttr reportExportAttr = new ReportExportAttr(); - if (this.excelExportPane != null) { - reportExportAttr.setExcelExportAttr(this.excelExportPane.update()); - } - - if (this.pdfExportPane != null) { - reportExportAttr.setPDFExportAttr(this.pdfExportPane.update()); - } - - if (this.wordExportPane != null) { - reportExportAttr.setWordExportAttr(this.wordExportPane.update()); - } - - return reportExportAttr; - } + private ExcelExportPane excelExportPane; + private PDFExportPane pdfExportPane; + private WordExportPane wordExportPane; + Map paneMap; + + public ReportExportAttrPane() { + UITabbedPane uiTabbedPane = new UITabbedPane(); + this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + excelExportPane = new ExcelExportPane(); + uiTabbedPane.addTab("Excel", excelExportPane); + pdfExportPane = new PDFExportPane(); + uiTabbedPane.addTab("PDF", pdfExportPane); + wordExportPane = new WordExportPane(); + uiTabbedPane.addTab("Word", wordExportPane); + ExportAttrTabProvider[] providers = ExtraDesignClassManager.getInstance().getExportAttrTabProviders(); + paneMap = new HashMap(); + for (ExportAttrTabProvider provider : providers) { + uiTabbedPane.addTab(provider.title(), provider.toSwingComponent()); + paneMap.put(provider.tag(), provider.toExportPane()); + } + this.add(uiTabbedPane); + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("ReportD-Excel_Export"); + } + + public void populate(ReportExportAttr reportExportAttr) { + if (reportExportAttr == null) { + reportExportAttr = new ReportExportAttr(); + } + + if (this.excelExportPane != null) { + this.excelExportPane.populate(reportExportAttr.getExcelExportAttr()); + } + + if (this.pdfExportPane != null) { + this.pdfExportPane.populate(reportExportAttr.getPDFExportAttr()); + } + + if (this.wordExportPane != null) { + this.wordExportPane.populate(reportExportAttr.getWordExportAttr()); + } + + AbstractExportPane exportPane = paneMap.get("Image"); + if(exportPane != null){ + exportPane.populate(reportExportAttr.getImageExportAttr()); + } + } + + public ReportExportAttr update() { + + ReportExportAttr reportExportAttr = new ReportExportAttr(); + if (this.excelExportPane != null) { + reportExportAttr.setExcelExportAttr(this.excelExportPane.update()); + } + + if (this.pdfExportPane != null) { + reportExportAttr.setPDFExportAttr(this.pdfExportPane.update()); + } + + if (this.wordExportPane != null) { + reportExportAttr.setWordExportAttr(this.wordExportPane.update()); + } + + AbstractExportPane exportPane = paneMap.get("Image"); + if(exportPane != null){ + reportExportAttr.setImageExportAttr(exportPane.update(ImageExportAttr.class)); + } + return reportExportAttr; + } } \ No newline at end of file diff --git a/designer/src/com/fr/design/report/WordExportPane.java b/designer/src/com/fr/design/report/WordExportPane.java index e220583ea..aa58795d2 100644 --- a/designer/src/com/fr/design/report/WordExportPane.java +++ b/designer/src/com/fr/design/report/WordExportPane.java @@ -4,7 +4,7 @@ package com.fr.design.report; import java.awt.Color; import java.awt.Dimension; -import javax.swing.JPanel; +import javax.swing.*; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.MultilineLabel; @@ -23,7 +23,7 @@ public class WordExportPane extends BasicPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel outnorthPane =FRGUIPaneFactory.createTitledBorderPane("Word" + Inter.getLocText("ReportD-Excel_Export")); this.add(outnorthPane); diff --git a/designer_base/src/com/fr/design/ExtraDesignClassManager.java b/designer_base/src/com/fr/design/ExtraDesignClassManager.java index a861772c9..7099bf3a0 100644 --- a/designer_base/src/com/fr/design/ExtraDesignClassManager.java +++ b/designer_base/src/com/fr/design/ExtraDesignClassManager.java @@ -132,6 +132,8 @@ public class ExtraDesignClassManager extends XMLFileManager implements ExtraDesi private Set widgetAttrProviders; + private Set exportAttrTabProviders; + public TableDataTreePaneProcessor getTableDataTreePaneProcessor() { return tableDataTreePaneProcessor; } @@ -753,6 +755,21 @@ public class ExtraDesignClassManager extends XMLFileManager implements ExtraDesi widgetAttrProviders.add((WidgetAttrProvider) level); } + public ExportAttrTabProvider[] getExportAttrTabProviders() { + if (exportAttrTabProviders == null) { + return new ExportAttrTabProvider[0]; + } + return exportAttrTabProviders.toArray(new ExportAttrTabProvider[exportAttrTabProviders.size()]); + } + + public void addExportAttrTabProvider(Level level, PluginSimplify simplify) throws Exception { + if (exportAttrTabProviders == null) { + exportAttrTabProviders = new HashSet(); + } + validAPILevel(level, ExportAttrTabProvider.CURRENT_LEVEL, simplify.getPluginName()); + exportAttrTabProviders.add((ExportAttrTabProvider) level); + } + /** * 文件名 * @@ -847,6 +864,8 @@ public class ExtraDesignClassManager extends XMLFileManager implements ExtraDesi addElementUIProvider(impl, simplify); } else if (tagName.equals(WidgetAttrProvider.XML_TAG)) { addWidgetAttrProvider(impl, simplify); + } else if (tagName.equals(ExportAttrTabProvider.XML_TAG)) { + addExportAttrTabProvider(impl, simplify); } } catch (PluginInvalidLevelException e) { PluginMessage.remindUpdate(e.getMessage()); diff --git a/designer_base/src/com/fr/design/fun/AbstractExportPane.java b/designer_base/src/com/fr/design/fun/AbstractExportPane.java new file mode 100644 index 000000000..22d6ada01 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/AbstractExportPane.java @@ -0,0 +1,30 @@ +package com.fr.design.fun; + +import com.fr.design.dialog.BasicPane; + +/** + * Created by vito on 16/5/5. + */ +public abstract class AbstractExportPane extends BasicPane { + + public abstract void populate(Object t); + + public abstract Object update(); + +// public void populate(Object object,Class clazz){ +// if(object.getClass().isAssignableFrom(clazz)){ +// this.populate(clazz.cast(object)); +// } +// } + + public T update(Class clazz){ + Object object = this.update(); + if(object == null){ + return null; + } + if(object.getClass().isAssignableFrom(clazz)){ + return clazz.cast(object); + } + return null; + } +} diff --git a/designer_base/src/com/fr/design/fun/ExportAttrTabProvider.java b/designer_base/src/com/fr/design/fun/ExportAttrTabProvider.java new file mode 100644 index 000000000..d16db4ea1 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/ExportAttrTabProvider.java @@ -0,0 +1,22 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.Level; + +import javax.swing.*; + +/** + * Created by vito on 16/5/5. + */ +public interface ExportAttrTabProvider extends Level{ + String XML_TAG = "ExportAttrTabProvider"; + + int CURRENT_LEVEL = 1; + + JComponent toSwingComponent(); + + AbstractExportPane toExportPane(); + + String title(); + + String tag(); +} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractExportAttrTabProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractExportAttrTabProvider.java new file mode 100644 index 000000000..f1654ff6b --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractExportAttrTabProvider.java @@ -0,0 +1,19 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.ExportAttrTabProvider; +import com.fr.stable.fun.impl.AbstractProvider; + +/** + * Created by vito on 16/5/5. + */ +public abstract class AbstractExportAttrTabProvider extends AbstractProvider implements ExportAttrTabProvider { + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public String mark4Provider() { + return this.getClass().getName(); + } +} From f7229f3608ef393695074b2a278f3ddbff14a43b Mon Sep 17 00:00:00 2001 From: vito Date: Fri, 6 May 2016 14:41:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=94=B9=E6=88=90=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E5=AD=98=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/report/ReportExportAttrPane.java | 24 +++++++++---------- .../com/fr/design/fun/AbstractExportPane.java | 12 +++------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/designer/src/com/fr/design/report/ReportExportAttrPane.java b/designer/src/com/fr/design/report/ReportExportAttrPane.java index a3f114022..7e3f157e8 100644 --- a/designer/src/com/fr/design/report/ReportExportAttrPane.java +++ b/designer/src/com/fr/design/report/ReportExportAttrPane.java @@ -8,18 +8,17 @@ import com.fr.design.fun.AbstractExportPane; import com.fr.design.fun.ExportAttrTabProvider; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.general.Inter; -import com.fr.io.attr.ImageExportAttr; import com.fr.io.attr.ReportExportAttr; -import java.util.HashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; public class ReportExportAttrPane extends BasicPane { private ExcelExportPane excelExportPane; private PDFExportPane pdfExportPane; private WordExportPane wordExportPane; - Map paneMap; + List paneList; public ReportExportAttrPane() { UITabbedPane uiTabbedPane = new UITabbedPane(); @@ -32,10 +31,10 @@ public class ReportExportAttrPane extends BasicPane { wordExportPane = new WordExportPane(); uiTabbedPane.addTab("Word", wordExportPane); ExportAttrTabProvider[] providers = ExtraDesignClassManager.getInstance().getExportAttrTabProviders(); - paneMap = new HashMap(); + paneList = new ArrayList(); for (ExportAttrTabProvider provider : providers) { uiTabbedPane.addTab(provider.title(), provider.toSwingComponent()); - paneMap.put(provider.tag(), provider.toExportPane()); + paneList.add(provider.toExportPane()); } this.add(uiTabbedPane); } @@ -62,9 +61,8 @@ public class ReportExportAttrPane extends BasicPane { this.wordExportPane.populate(reportExportAttr.getWordExportAttr()); } - AbstractExportPane exportPane = paneMap.get("Image"); - if(exportPane != null){ - exportPane.populate(reportExportAttr.getImageExportAttr()); + for (AbstractExportPane exportpane : paneList) { + exportpane.populate(reportExportAttr); } } @@ -83,9 +81,11 @@ public class ReportExportAttrPane extends BasicPane { reportExportAttr.setWordExportAttr(this.wordExportPane.update()); } - AbstractExportPane exportPane = paneMap.get("Image"); - if(exportPane != null){ - reportExportAttr.setImageExportAttr(exportPane.update(ImageExportAttr.class)); + for (AbstractExportPane exportPane : paneList) { + ReportExportAttr exportAttr = exportPane.update(reportExportAttr, ReportExportAttr.class); + if (exportAttr != null) { + reportExportAttr = exportAttr; + } } return reportExportAttr; } diff --git a/designer_base/src/com/fr/design/fun/AbstractExportPane.java b/designer_base/src/com/fr/design/fun/AbstractExportPane.java index 22d6ada01..2986a7f7d 100644 --- a/designer_base/src/com/fr/design/fun/AbstractExportPane.java +++ b/designer_base/src/com/fr/design/fun/AbstractExportPane.java @@ -9,16 +9,10 @@ public abstract class AbstractExportPane extends BasicPane { public abstract void populate(Object t); - public abstract Object update(); + public abstract Object update(Object t); -// public void populate(Object object,Class clazz){ -// if(object.getClass().isAssignableFrom(clazz)){ -// this.populate(clazz.cast(object)); -// } -// } - - public T update(Class clazz){ - Object object = this.update(); + public T update(Object t,Class clazz){ + Object object = this.update(t); if(object == null){ return null; } From 9e247b7337db2d4b9e4c0849819da30dc95e2b0f Mon Sep 17 00:00:00 2001 From: vito Date: Fri, 6 May 2016 15:09:35 +0800 Subject: [PATCH 3/4] private --- designer/src/com/fr/design/report/ReportExportAttrPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/report/ReportExportAttrPane.java b/designer/src/com/fr/design/report/ReportExportAttrPane.java index 7e3f157e8..4dea276bd 100644 --- a/designer/src/com/fr/design/report/ReportExportAttrPane.java +++ b/designer/src/com/fr/design/report/ReportExportAttrPane.java @@ -18,7 +18,7 @@ public class ReportExportAttrPane extends BasicPane { private ExcelExportPane excelExportPane; private PDFExportPane pdfExportPane; private WordExportPane wordExportPane; - List paneList; + private List paneList; public ReportExportAttrPane() { UITabbedPane uiTabbedPane = new UITabbedPane(); From d941231d760c72ad4861bd9146b884d88788b301 Mon Sep 17 00:00:00 2001 From: vito Date: Fri, 6 May 2016 17:11:56 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/report/ReportExportAttrPane.java | 5 +---- .../src/com/fr/design/fun/AbstractExportPane.java | 13 +------------ 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/designer/src/com/fr/design/report/ReportExportAttrPane.java b/designer/src/com/fr/design/report/ReportExportAttrPane.java index 4dea276bd..93a690bb9 100644 --- a/designer/src/com/fr/design/report/ReportExportAttrPane.java +++ b/designer/src/com/fr/design/report/ReportExportAttrPane.java @@ -82,10 +82,7 @@ public class ReportExportAttrPane extends BasicPane { } for (AbstractExportPane exportPane : paneList) { - ReportExportAttr exportAttr = exportPane.update(reportExportAttr, ReportExportAttr.class); - if (exportAttr != null) { - reportExportAttr = exportAttr; - } + exportPane.update(reportExportAttr); } return reportExportAttr; } diff --git a/designer_base/src/com/fr/design/fun/AbstractExportPane.java b/designer_base/src/com/fr/design/fun/AbstractExportPane.java index 2986a7f7d..bb585a02d 100644 --- a/designer_base/src/com/fr/design/fun/AbstractExportPane.java +++ b/designer_base/src/com/fr/design/fun/AbstractExportPane.java @@ -9,16 +9,5 @@ public abstract class AbstractExportPane extends BasicPane { public abstract void populate(Object t); - public abstract Object update(Object t); - - public T update(Object t,Class clazz){ - Object object = this.update(t); - if(object == null){ - return null; - } - if(object.getClass().isAssignableFrom(clazz)){ - return clazz.cast(object); - } - return null; - } + public abstract void update(Object t); }