Qin Xiaofu
7 years ago
24 changed files with 862 additions and 765 deletions
@ -1,415 +1,415 @@ |
|||||||
package com.fr.design.module; |
package com.fr.design.module; |
||||||
|
|
||||||
import com.fr.base.*; |
import com.fr.base.*; |
||||||
import com.fr.base.io.XMLEncryptUtils; |
import com.fr.base.io.XMLEncryptUtils; |
||||||
import com.fr.base.process.ProcessOperator; |
import com.fr.base.process.ProcessOperator; |
||||||
import com.fr.base.remote.RemoteDeziConstants; |
import com.fr.base.remote.RemoteDeziConstants; |
||||||
import com.fr.design.DesignerEnvManager; |
import com.fr.design.DesignerEnvManager; |
||||||
import com.fr.design.ExtraDesignClassManager; |
import com.fr.design.ExtraDesignClassManager; |
||||||
import com.fr.design.actions.core.ActionFactory; |
import com.fr.design.actions.core.ActionFactory; |
||||||
import com.fr.design.actions.insert.cell.*; |
import com.fr.design.actions.insert.cell.*; |
||||||
import com.fr.design.actions.insert.flot.ChartFloatAction; |
import com.fr.design.actions.insert.flot.ChartFloatAction; |
||||||
import com.fr.design.actions.insert.flot.FormulaFloatAction; |
import com.fr.design.actions.insert.flot.FormulaFloatAction; |
||||||
import com.fr.design.actions.insert.flot.ImageFloatAction; |
import com.fr.design.actions.insert.flot.ImageFloatAction; |
||||||
import com.fr.design.actions.insert.flot.TextBoxFloatAction; |
import com.fr.design.actions.insert.flot.TextBoxFloatAction; |
||||||
import com.fr.design.actions.server.StyleListAction; |
import com.fr.design.actions.server.StyleListAction; |
||||||
import com.fr.design.fun.ElementUIProvider; |
import com.fr.design.fun.ElementUIProvider; |
||||||
import com.fr.design.gui.ibutton.UIButton; |
import com.fr.design.gui.ibutton.UIButton; |
||||||
import com.fr.design.gui.ilable.UILabel; |
import com.fr.design.gui.ilable.UILabel; |
||||||
import com.fr.design.javascript.ProcessTransitionAdapter; |
import com.fr.design.javascript.ProcessTransitionAdapter; |
||||||
import com.fr.design.mainframe.*; |
import com.fr.design.mainframe.*; |
||||||
import com.fr.design.mainframe.bbs.BBSGuestPane; |
import com.fr.design.mainframe.bbs.BBSGuestPane; |
||||||
import com.fr.design.mainframe.form.FormECCompositeProvider; |
import com.fr.design.mainframe.form.FormECCompositeProvider; |
||||||
import com.fr.design.mainframe.form.FormECDesignerProvider; |
import com.fr.design.mainframe.form.FormECDesignerProvider; |
||||||
import com.fr.design.mainframe.form.FormElementCaseDesigner; |
import com.fr.design.mainframe.form.FormElementCaseDesigner; |
||||||
import com.fr.design.mainframe.form.FormReportComponentComposite; |
import com.fr.design.mainframe.form.FormReportComponentComposite; |
||||||
import com.fr.design.mainframe.loghandler.DesignerLogImpl; |
import com.fr.design.mainframe.loghandler.DesignerLogImpl; |
||||||
import com.fr.design.parameter.WorkBookParameterReader; |
import com.fr.design.parameter.WorkBookParameterReader; |
||||||
import com.fr.design.utils.gui.GUICoreUtils; |
import com.fr.design.utils.gui.GUICoreUtils; |
||||||
import com.fr.file.FILE; |
import com.fr.file.FILE; |
||||||
import com.fr.general.*; |
import com.fr.general.*; |
||||||
import com.fr.general.xml.GeneralXMLTools; |
import com.fr.general.xml.GeneralXMLTools; |
||||||
import com.fr.io.importer.Excel2007ReportImporter; |
import com.fr.io.importer.Excel2007ReportImporter; |
||||||
import com.fr.io.importer.ExcelReportImporter; |
import com.fr.io.importer.ExcelReportImporter; |
||||||
import com.fr.main.impl.WorkBook; |
import com.fr.main.impl.WorkBook; |
||||||
import com.fr.quickeditor.ChartQuickEditor; |
import com.fr.quickeditor.chartquick.BasicChartQuickEditor; |
||||||
import com.fr.quickeditor.cellquick.*; |
import com.fr.quickeditor.chartquick.FloatChartQuickEditor; |
||||||
import com.fr.quickeditor.floatquick.FloatImageQuickEditor; |
import com.fr.quickeditor.cellquick.*; |
||||||
import com.fr.quickeditor.floatquick.FloatStringQuickEditor; |
import com.fr.quickeditor.floatquick.FloatImageQuickEditor; |
||||||
import com.fr.report.cell.CellElementValueConverter; |
import com.fr.quickeditor.floatquick.FloatStringQuickEditor; |
||||||
import com.fr.report.cell.cellattr.core.RichText; |
import com.fr.report.cell.CellElementValueConverter; |
||||||
import com.fr.report.cell.cellattr.core.SubReport; |
import com.fr.report.cell.cellattr.core.RichText; |
||||||
import com.fr.report.cell.cellattr.core.group.DSColumn; |
import com.fr.report.cell.cellattr.core.SubReport; |
||||||
import com.fr.report.cell.painter.BiasTextPainter; |
import com.fr.report.cell.cellattr.core.group.DSColumn; |
||||||
import com.fr.stable.ArrayUtils; |
import com.fr.report.cell.painter.BiasTextPainter; |
||||||
import com.fr.stable.ParameterProvider; |
import com.fr.stable.ArrayUtils; |
||||||
import com.fr.stable.StringUtils; |
import com.fr.stable.ParameterProvider; |
||||||
import com.fr.stable.bridge.StableFactory; |
import com.fr.stable.StringUtils; |
||||||
import com.fr.stable.fun.LogProvider; |
import com.fr.stable.bridge.StableFactory; |
||||||
import com.fr.stable.script.CalculatorProviderContext; |
import com.fr.stable.fun.LogProvider; |
||||||
import com.fr.stable.script.ValueConverter; |
import com.fr.stable.script.CalculatorProviderContext; |
||||||
import com.fr.stable.web.ServletContext; |
import com.fr.stable.script.ValueConverter; |
||||||
import com.fr.stable.web.ServletContextAdapter; |
import com.fr.stable.web.ServletContext; |
||||||
import com.fr.stable.xml.ObjectTokenizer; |
import com.fr.stable.web.ServletContextAdapter; |
||||||
import com.fr.stable.xml.ObjectXMLWriterFinder; |
import com.fr.stable.xml.ObjectTokenizer; |
||||||
import com.fr.start.BBSGuestPaneProvider; |
import com.fr.stable.xml.ObjectXMLWriterFinder; |
||||||
import com.fr.xml.ReportXMLUtils; |
import com.fr.start.BBSGuestPaneProvider; |
||||||
|
import com.fr.xml.ReportXMLUtils; |
||||||
import javax.swing.*; |
|
||||||
import java.awt.*; |
import javax.swing.*; |
||||||
import java.awt.event.ActionEvent; |
import java.awt.*; |
||||||
import java.awt.event.ActionListener; |
import java.awt.event.ActionEvent; |
||||||
import java.awt.image.BufferedImage; |
import java.awt.event.ActionListener; |
||||||
import java.util.ArrayList; |
import java.awt.image.BufferedImage; |
||||||
import java.util.Iterator; |
import java.util.ArrayList; |
||||||
import java.util.Set; |
import java.util.Iterator; |
||||||
|
import java.util.Set; |
||||||
public class DesignerModule extends DesignModule { |
|
||||||
|
public class DesignerModule extends DesignModule { |
||||||
static { |
|
||||||
ServletContext.addServletContextListener(new ServletContextAdapter() { |
static { |
||||||
|
ServletContext.addServletContextListener(new ServletContextAdapter() { |
||||||
public void onServletStart() { |
|
||||||
ModuleContext.startModule(DesignerModule.class.getName()); |
public void onServletStart() { |
||||||
} |
ModuleContext.startModule(DesignerModule.class.getName()); |
||||||
}); |
} |
||||||
} |
}); |
||||||
|
} |
||||||
/** |
|
||||||
* 启动设计器模块 |
/** |
||||||
*/ |
* 启动设计器模块 |
||||||
public void start() { |
*/ |
||||||
super.start(); |
public void start() { |
||||||
|
super.start(); |
||||||
justStartModules4Engine(); |
|
||||||
justStartModules4Designer(); |
justStartModules4Engine(); |
||||||
|
justStartModules4Designer(); |
||||||
CalculatorProviderContext.setValueConverter(valueConverter()); |
|
||||||
GeneralXMLTools.Object_Tokenizer = startXMLReadObjectTokenizer(); |
CalculatorProviderContext.setValueConverter(valueConverter()); |
||||||
GeneralXMLTools.Object_XML_Writer_Finder = startObjectXMLWriterFinder(); |
GeneralXMLTools.Object_Tokenizer = startXMLReadObjectTokenizer(); |
||||||
addAdapterForPlate(); |
GeneralXMLTools.Object_XML_Writer_Finder = startObjectXMLWriterFinder(); |
||||||
|
addAdapterForPlate(); |
||||||
registerCellEditor(); |
|
||||||
registerFloatEditor(); |
registerCellEditor(); |
||||||
registerData4Form(); |
registerFloatEditor(); |
||||||
registerOtherPane(); |
registerData4Form(); |
||||||
|
registerOtherPane(); |
||||||
InformationCollector.getInstance().collectStartTime(); |
|
||||||
|
InformationCollector.getInstance().collectStartTime(); |
||||||
ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); |
|
||||||
StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); |
ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); |
||||||
} |
StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); |
||||||
|
} |
||||||
private void registerOtherPane() { |
|
||||||
StableFactory.registerMarkedClass(BBSGuestPaneProvider.XML_TAG, BBSGuestPane.class); |
private void registerOtherPane() { |
||||||
} |
StableFactory.registerMarkedClass(BBSGuestPaneProvider.XML_TAG, BBSGuestPane.class); |
||||||
|
} |
||||||
/** |
|
||||||
* kunsnat:注册单元格选中Editor |
/** |
||||||
*/ |
* kunsnat:注册单元格选中Editor |
||||||
|
*/ |
||||||
private void registerCellEditor() { |
|
||||||
ActionFactory.registerCellEditor(String.class, CellStringQuickEditor.class); |
private void registerCellEditor() { |
||||||
ActionFactory.registerCellEditor(Number.class, CellStringQuickEditor.class); |
ActionFactory.registerCellEditor(String.class, CellStringQuickEditor.class); |
||||||
ActionFactory.registerCellEditor(Formula.class, CellFormulaQuickEditor.class); |
ActionFactory.registerCellEditor(Number.class, CellStringQuickEditor.class); |
||||||
ActionFactory.registerCellEditor(SubReport.class, CellSubReportEditor.class); |
ActionFactory.registerCellEditor(Formula.class, CellFormulaQuickEditor.class); |
||||||
ActionFactory.registerCellEditor(RichText.class, CellRichTextEditor.class); |
ActionFactory.registerCellEditor(SubReport.class, CellSubReportEditor.class); |
||||||
ActionFactory.registerCellEditor(DSColumn.class, CellDSColumnEditor.class); |
ActionFactory.registerCellEditor(RichText.class, CellRichTextEditor.class); |
||||||
ActionFactory.registerCellEditor(Image.class, CellImageQuickEditor.class); |
ActionFactory.registerCellEditor(DSColumn.class, CellDSColumnEditor.class); |
||||||
ActionFactory.registerCellEditor(BiasTextPainter.class, CellBiasTextPainterEditor.class); |
ActionFactory.registerCellEditor(Image.class, CellImageQuickEditor.class); |
||||||
ActionFactory.registerCellEditor(BufferedImage.class, CellImageQuickEditor.class); |
ActionFactory.registerCellEditor(BiasTextPainter.class, CellBiasTextPainterEditor.class); |
||||||
|
ActionFactory.registerCellEditor(BufferedImage.class, CellImageQuickEditor.class); |
||||||
ActionFactory.registerChartCellEditorInEditor(ChartQuickEditor.class); |
|
||||||
|
ActionFactory.registerChartCellEditorInEditor(BasicChartQuickEditor.class); |
||||||
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING); |
|
||||||
for (ElementUIProvider provider : providers) { |
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING); |
||||||
ActionFactory.registerCellEditor(provider.targetObjectClass(), provider.quickEditor()); |
for (ElementUIProvider provider : providers) { |
||||||
} |
ActionFactory.registerCellEditor(provider.targetObjectClass(), provider.quickEditor()); |
||||||
} |
} |
||||||
|
} |
||||||
|
|
||||||
public String getInterNationalName() { |
|
||||||
return Inter.getLocText("FR-Module_Designer"); |
public String getInterNationalName() { |
||||||
} |
return Inter.getLocText("FR-Module_Designer"); |
||||||
|
} |
||||||
|
|
||||||
/** |
|
||||||
* kunnat: 注册悬浮选中Editor |
/** |
||||||
*/ |
* kunnat: 注册悬浮选中Editor |
||||||
private void registerFloatEditor() { |
*/ |
||||||
ActionFactory.registerFloatEditor(String.class, FloatStringQuickEditor.class); |
private void registerFloatEditor() { |
||||||
ActionFactory.registerFloatEditor(Formula.class, FloatStringQuickEditor.class); |
ActionFactory.registerFloatEditor(String.class, FloatStringQuickEditor.class); |
||||||
|
ActionFactory.registerFloatEditor(Formula.class, FloatStringQuickEditor.class); |
||||||
FloatImageQuickEditor floatImageQuickEditor = new FloatImageQuickEditor(); |
ActionFactory.registerFloatEditor(Image.class, FloatImageQuickEditor.class); |
||||||
ActionFactory.registerFloatEditor(Image.class, FloatImageQuickEditor.class); |
ActionFactory.registerFloatEditor(BufferedImage.class, FloatImageQuickEditor.class); |
||||||
ActionFactory.registerFloatEditor(BufferedImage.class, FloatImageQuickEditor.class); |
|
||||||
ActionFactory.registerChartFloatEditorInEditor(ChartQuickEditor.class); |
ActionFactory.registerChartFloatEditorInEditor(FloatChartQuickEditor.class); |
||||||
} |
} |
||||||
|
|
||||||
/** |
/** |
||||||
* kunsnat: 一些模块信息 必须跟随设计器启动, |
* kunsnat: 一些模块信息 必须跟随设计器启动, |
||||||
* 比如 读取CC.XML, 设计器启动之后, 马上会读取XML, 需要Chart_Module中的注册信息 |
* 比如 读取CC.XML, 设计器启动之后, 马上会读取XML, 需要Chart_Module中的注册信息 |
||||||
*/ |
*/ |
||||||
private void justStartModules4Engine() { |
private void justStartModules4Engine() { |
||||||
ModuleContext.startModule(ENGINE_MODULE); |
ModuleContext.startModule(ENGINE_MODULE); |
||||||
} |
} |
||||||
|
|
||||||
private void justStartModules4Designer() { |
private void justStartModules4Designer() { |
||||||
ModuleContext.startModule(CHART_DESIGNER_MODULE); |
ModuleContext.startModule(CHART_DESIGNER_MODULE); |
||||||
ModuleContext.startModule(FORM_DESIGNER_MODULE); |
ModuleContext.startModule(FORM_DESIGNER_MODULE); |
||||||
} |
} |
||||||
|
|
||||||
/** |
/** |
||||||
* CellElementValueConverter用来处理设计器格子里的值,将公式/数组/其他元素转换成对应的值。 |
* CellElementValueConverter用来处理设计器格子里的值,将公式/数组/其他元素转换成对应的值。 |
||||||
* |
* |
||||||
* @return 返回处理格子值的转换器 |
* @return 返回处理格子值的转换器 |
||||||
*/ |
*/ |
||||||
public ValueConverter valueConverter() { |
public ValueConverter valueConverter() { |
||||||
return new CellElementValueConverter(); |
return new CellElementValueConverter(); |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
/* |
/* |
||||||
* 针对不同的对象,在读取Object对象的xml的时候需要使用不同的对象生成器 |
* 针对不同的对象,在读取Object对象的xml的时候需要使用不同的对象生成器 |
||||||
* @return 返回对象生成器 |
* @return 返回对象生成器 |
||||||
*/ |
*/ |
||||||
public ObjectTokenizer startXMLReadObjectTokenizer() { |
public ObjectTokenizer startXMLReadObjectTokenizer() { |
||||||
return new ReportXMLUtils.ReportObjectTokenizer(); |
return new ReportXMLUtils.ReportObjectTokenizer(); |
||||||
} |
} |
||||||
|
|
||||||
/** |
/** |
||||||
* 针对不同的对象,在写对象的XML时需要使用不同的XML生成器 |
* 针对不同的对象,在写对象的XML时需要使用不同的XML生成器 |
||||||
* |
* |
||||||
* @return 返回xml生成器 |
* @return 返回xml生成器 |
||||||
*/ |
*/ |
||||||
@Override |
@Override |
||||||
public ObjectXMLWriterFinder startObjectXMLWriterFinder() { |
public ObjectXMLWriterFinder startObjectXMLWriterFinder() { |
||||||
return new ReportXMLUtils.ReportObjectXMLWriterFinder(); |
return new ReportXMLUtils.ReportObjectXMLWriterFinder(); |
||||||
} |
} |
||||||
|
|
||||||
//wei:fs的模块中可能有需要设计器界面做设置的地方,在这边添加
|
//wei:fs的模块中可能有需要设计器界面做设置的地方,在这边添加
|
||||||
private void addAdapterForPlate() { |
private void addAdapterForPlate() { |
||||||
|
|
||||||
ProcessTransitionAdapter.setProcessTransitionAdapter(new ProcessTransitionAdapter() { |
ProcessTransitionAdapter.setProcessTransitionAdapter(new ProcessTransitionAdapter() { |
||||||
|
|
||||||
@Override |
@Override |
||||||
protected String[] getTransitionNamesByBook(String book) { |
protected String[] getTransitionNamesByBook(String book) { |
||||||
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getTransitionNamesByBook(book); |
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getTransitionNamesByBook(book); |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
protected String[] getParaNames(String book) { |
protected String[] getParaNames(String book) { |
||||||
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getParaNames(book); |
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getParaNames(book); |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
protected ParameterProvider[] getParas(String book) { |
protected ParameterProvider[] getParas(String book) { |
||||||
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getParas(book); |
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getParas(book); |
||||||
} |
} |
||||||
|
|
||||||
protected MultiFieldParameter[] getAllMultiFieldParas(String book) { |
protected MultiFieldParameter[] getAllMultiFieldParas(String book) { |
||||||
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getAllMultiFieldParas(book); |
return StableFactory.getMarkedObject(ProcessOperator.MARK_STRING, ProcessOperator.class, ProcessOperator.EMPTY).getAllMultiFieldParas(book); |
||||||
} |
} |
||||||
}); |
}); |
||||||
} |
} |
||||||
|
|
||||||
private static abstract class AbstractWorkBookApp implements App<WorkBook> { |
private static abstract class AbstractWorkBookApp implements App<WorkBook> { |
||||||
|
|
||||||
@Override |
@Override |
||||||
public int currentAPILevel() { |
public int currentAPILevel() { |
||||||
return CURRENT_LEVEL; |
return CURRENT_LEVEL; |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public JTemplate<WorkBook, ?> openTemplate(FILE tplFile) { |
public JTemplate<WorkBook, ?> openTemplate(FILE tplFile) { |
||||||
return new JWorkBook(asIOFile(tplFile), tplFile); |
return new JWorkBook(asIOFile(tplFile), tplFile); |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public String mark4Provider() { |
public String mark4Provider() { |
||||||
return getClass().getName(); |
return getClass().getName(); |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public void process() { |
public void process() { |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public void undo() { |
public void undo() { |
||||||
|
|
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
/* |
/* |
||||||
* 返回设计器能打开的模板类型的一个数组列表 |
* 返回设计器能打开的模板类型的一个数组列表 |
||||||
* @return 可以打开的模板类型的数组 |
* @return 可以打开的模板类型的数组 |
||||||
*/ |
*/ |
||||||
public App[] apps4TemplateOpener() { |
public App[] apps4TemplateOpener() { |
||||||
return new App[]{getCptApp(), getXlsApp(), getXlsxApp()}; |
return new App[]{getCptApp(), getXlsApp(), getXlsxApp()}; |
||||||
} |
} |
||||||
|
|
||||||
private AbstractWorkBookApp getXlsxApp() { |
private AbstractWorkBookApp getXlsxApp() { |
||||||
return new AbstractWorkBookApp() { |
return new AbstractWorkBookApp() { |
||||||
@Override |
@Override |
||||||
public String[] defaultExtentions() { |
public String[] defaultExtentions() { |
||||||
return new String[]{"xlsx"}; |
return new String[]{"xlsx"}; |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public WorkBook asIOFile(FILE tplFile) { |
public WorkBook asIOFile(FILE tplFile) { |
||||||
WorkBook workbook = null; |
WorkBook workbook = null; |
||||||
try { |
try { |
||||||
workbook = new Excel2007ReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
workbook = new Excel2007ReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
||||||
} catch (Exception exp) { |
} catch (Exception exp) { |
||||||
FRContext.getLogger().error("Failed to generate xlsx from " + tplFile, exp); |
FRContext.getLogger().error("Failed to generate xlsx from " + tplFile, exp); |
||||||
} |
} |
||||||
return workbook; |
return workbook; |
||||||
} |
} |
||||||
}; |
}; |
||||||
} |
} |
||||||
|
|
||||||
private AbstractWorkBookApp getXlsApp() { |
private AbstractWorkBookApp getXlsApp() { |
||||||
return new AbstractWorkBookApp() { |
return new AbstractWorkBookApp() { |
||||||
@Override |
@Override |
||||||
public String[] defaultExtentions() { |
public String[] defaultExtentions() { |
||||||
return new String[]{"xls"}; |
return new String[]{"xls"}; |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public WorkBook asIOFile(FILE tplFile) { |
public WorkBook asIOFile(FILE tplFile) { |
||||||
WorkBook workbook = null; |
WorkBook workbook = null; |
||||||
try { |
try { |
||||||
workbook = new ExcelReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
workbook = new ExcelReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
||||||
} catch (Exception exp) { |
} catch (Exception exp) { |
||||||
FRContext.getLogger().error("Failed to generate xls from " + tplFile, exp); |
FRContext.getLogger().error("Failed to generate xls from " + tplFile, exp); |
||||||
} |
} |
||||||
return workbook; |
return workbook; |
||||||
} |
} |
||||||
}; |
}; |
||||||
} |
} |
||||||
|
|
||||||
private AbstractWorkBookApp getCptApp() { |
private AbstractWorkBookApp getCptApp() { |
||||||
return new AbstractWorkBookApp() { |
return new AbstractWorkBookApp() { |
||||||
public String[] defaultExtentions() { |
public String[] defaultExtentions() { |
||||||
return new String[]{"cpt"}; |
return new String[]{"cpt"}; |
||||||
} |
} |
||||||
|
|
||||||
public WorkBook asIOFile(FILE file) { |
public WorkBook asIOFile(FILE file) { |
||||||
if (XMLEncryptUtils.isCptEncoded() && |
if (XMLEncryptUtils.isCptEncoded() && |
||||||
!XMLEncryptUtils.checkVaild(DesignerEnvManager.getEnvManager().getEncryptionKey())) { |
!XMLEncryptUtils.checkVaild(DesignerEnvManager.getEnvManager().getEncryptionKey())) { |
||||||
if (!new DecodeDialog(file).isPwdRight()) { |
if (!new DecodeDialog(file).isPwdRight()) { |
||||||
FRContext.getLogger().error(Inter.getLocText("ECP-error_pwd")); |
FRContext.getLogger().error(Inter.getLocText("ECP-error_pwd")); |
||||||
return new WorkBook(); |
return new WorkBook(); |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
WorkBook tpl = new WorkBook(); |
WorkBook tpl = new WorkBook(); |
||||||
// richer:打开报表通知
|
// richer:打开报表通知
|
||||||
FRContext.getLogger().info(Inter.getLocText(new String[]{"LOG-Is_Being_Openned", "LOG-Please_Wait"}, new String[]{"\"" + file.getName() + "\"" + ",", "..."})); |
FRContext.getLogger().info(Inter.getLocText(new String[]{"LOG-Is_Being_Openned", "LOG-Please_Wait"}, new String[]{"\"" + file.getName() + "\"" + ",", "..."})); |
||||||
TempNameStyle namestyle = TempNameStyle.getInstance(); |
TempNameStyle namestyle = TempNameStyle.getInstance(); |
||||||
namestyle.clear(); |
namestyle.clear(); |
||||||
String checkStr = StringUtils.EMPTY; |
String checkStr = StringUtils.EMPTY; |
||||||
try { |
try { |
||||||
checkStr = IOUtils.inputStream2String(file.asInputStream()); |
checkStr = IOUtils.inputStream2String(file.asInputStream()); |
||||||
tpl.readStream(file.asInputStream()); |
tpl.readStream(file.asInputStream()); |
||||||
} catch (Exception exp) { |
} catch (Exception exp) { |
||||||
String errorMessage = StringUtils.EMPTY; |
String errorMessage = StringUtils.EMPTY; |
||||||
errorMessage = ComparatorUtils.equals(RemoteDeziConstants.INVALID_USER, checkStr) ? Inter.getLocText("FR-Designer_No-Privilege") |
errorMessage = ComparatorUtils.equals(RemoteDeziConstants.INVALID_USER, checkStr) ? Inter.getLocText("FR-Designer_No-Privilege") |
||||||
: Inter.getLocText("NS-exception_readError"); |
: Inter.getLocText("NS-exception_readError"); |
||||||
FRContext.getLogger().error(errorMessage + file, exp); |
FRContext.getLogger().error(errorMessage + file, exp); |
||||||
} |
} |
||||||
checkNameStyle(namestyle); |
checkNameStyle(namestyle); |
||||||
return tpl; |
return tpl; |
||||||
} |
} |
||||||
}; |
}; |
||||||
} |
} |
||||||
|
|
||||||
private static void checkNameStyle(TempNameStyle namestyle) { |
private static void checkNameStyle(TempNameStyle namestyle) { |
||||||
Iterator it = namestyle.getIterator(); |
Iterator it = namestyle.getIterator(); |
||||||
ArrayList<String> al = new ArrayList<String>(); |
ArrayList<String> al = new ArrayList<String>(); |
||||||
while (it.hasNext()) { |
while (it.hasNext()) { |
||||||
al.add((String) it.next()); |
al.add((String) it.next()); |
||||||
} |
} |
||||||
if (!al.isEmpty()) { |
if (!al.isEmpty()) { |
||||||
showConfirmDialog(al); |
showConfirmDialog(al); |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
private static void showConfirmDialog(final ArrayList<String> namelist) { |
private static void showConfirmDialog(final ArrayList<String> namelist) { |
||||||
|
|
||||||
final JDialog jd = new JDialog(); |
final JDialog jd = new JDialog(); |
||||||
// 模态一下,因为可能会多个样式丢失
|
// 模态一下,因为可能会多个样式丢失
|
||||||
// jd.setModal(true);
|
// jd.setModal(true);
|
||||||
jd.setAlwaysOnTop(true); |
jd.setAlwaysOnTop(true); |
||||||
jd.setSize(450, 150); |
jd.setSize(450, 150); |
||||||
jd.setResizable(false); |
jd.setResizable(false); |
||||||
jd.setIconImage(BaseUtils.readImage("/com/fr/base/images/oem/logo.png")); |
jd.setIconImage(BaseUtils.readImage("/com/fr/base/images/oem/logo.png")); |
||||||
String message = namelist.toString().replaceAll("\\[", "").replaceAll("\\]", ""); |
String message = namelist.toString().replaceAll("\\[", "").replaceAll("\\]", ""); |
||||||
UILabel jl = new UILabel(Inter.getLocText(new String[]{"Current_custom_global", "Has_been_gone"}, new String[]{message})); |
UILabel jl = new UILabel(Inter.getLocText(new String[]{"Current_custom_global", "Has_been_gone"}, new String[]{message})); |
||||||
jl.setHorizontalAlignment(SwingConstants.CENTER); |
jl.setHorizontalAlignment(SwingConstants.CENTER); |
||||||
jd.add(jl, BorderLayout.CENTER); |
jd.add(jl, BorderLayout.CENTER); |
||||||
JPanel jp = new JPanel(); |
JPanel jp = new JPanel(); |
||||||
|
|
||||||
// ”是“按钮,点击之后将生成一个全局样式,并写入xml
|
// ”是“按钮,点击之后将生成一个全局样式,并写入xml
|
||||||
UIButton confirmButton = new UIButton(Inter.getLocText("FR-Designer_Yes")); |
UIButton confirmButton = new UIButton(Inter.getLocText("FR-Designer_Yes")); |
||||||
confirmButton.addActionListener(new ActionListener() { |
confirmButton.addActionListener(new ActionListener() { |
||||||
public void actionPerformed(ActionEvent e) { |
public void actionPerformed(ActionEvent e) { |
||||||
try { |
try { |
||||||
for (int i = 0; i < namelist.size(); i++) { |
for (int i = 0; i < namelist.size(); i++) { |
||||||
ConfigManager.getProviderInstance().putStyle(namelist.get(i), Style.DEFAULT_STYLE); |
ConfigManager.getProviderInstance().putStyle(namelist.get(i), Style.DEFAULT_STYLE); |
||||||
FRContext.getCurrentEnv().writeResource(ConfigManager.getProviderInstance()); |
FRContext.getCurrentEnv().writeResource(ConfigManager.getProviderInstance()); |
||||||
} |
} |
||||||
} catch (Exception ex) { |
} catch (Exception ex) { |
||||||
FRLogger.getLogger().error(ex.getMessage()); |
FRLogger.getLogger().error(ex.getMessage()); |
||||||
} |
} |
||||||
jd.dispose(); |
jd.dispose(); |
||||||
new StyleListAction().actionPerformed(e);// 弹窗
|
new StyleListAction().actionPerformed(e);// 弹窗
|
||||||
} |
} |
||||||
}); |
}); |
||||||
|
|
||||||
UIButton noButton = new UIButton(Inter.getLocText("FR-Designer_No")); |
UIButton noButton = new UIButton(Inter.getLocText("FR-Designer_No")); |
||||||
noButton.addActionListener(new ActionListener() { |
noButton.addActionListener(new ActionListener() { |
||||||
public void actionPerformed(ActionEvent e) { |
public void actionPerformed(ActionEvent e) { |
||||||
jd.dispose(); |
jd.dispose(); |
||||||
} |
} |
||||||
}); |
}); |
||||||
|
|
||||||
jp.add(confirmButton); |
jp.add(confirmButton); |
||||||
jp.add(noButton); |
jp.add(noButton); |
||||||
jd.setTitle(Inter.getLocText("FR-Custom_styles_lost")); |
jd.setTitle(Inter.getLocText("FR-Custom_styles_lost")); |
||||||
jd.add(jp, BorderLayout.SOUTH); |
jd.add(jp, BorderLayout.SOUTH); |
||||||
GUICoreUtils.centerWindow(jd); |
GUICoreUtils.centerWindow(jd); |
||||||
jd.setVisible(true); |
jd.setVisible(true); |
||||||
} |
} |
||||||
|
|
||||||
public Class<?>[] actionsForInsertCellElement() { |
public Class<?>[] actionsForInsertCellElement() { |
||||||
return (Class<?>[]) ArrayUtils.addAll(new Class<?>[]{ |
return (Class<?>[]) ArrayUtils.addAll(new Class<?>[]{ |
||||||
DSColumnCellAction.class, |
DSColumnCellAction.class, |
||||||
GeneralCellAction.class, |
GeneralCellAction.class, |
||||||
RichTextCellAction.class, |
RichTextCellAction.class, |
||||||
FormulaCellAction.class, |
FormulaCellAction.class, |
||||||
ChartCellAction.class, |
ChartCellAction.class, |
||||||
ImageCellAction.class, |
ImageCellAction.class, |
||||||
BiasCellAction.class, |
BiasCellAction.class, |
||||||
SubReportCellAction.class |
SubReportCellAction.class |
||||||
}, super.actionsForInsertCellElement()); |
}, super.actionsForInsertCellElement()); |
||||||
} |
} |
||||||
|
|
||||||
public Class<?>[] actionsForInsertFloatElement() { |
public Class<?>[] actionsForInsertFloatElement() { |
||||||
return (Class<?>[]) ArrayUtils.addAll(new Class<?>[]{ |
return (Class<?>[]) ArrayUtils.addAll(new Class<?>[]{ |
||||||
TextBoxFloatAction.class, |
TextBoxFloatAction.class, |
||||||
FormulaFloatAction.class, |
FormulaFloatAction.class, |
||||||
ChartFloatAction.class, |
ChartFloatAction.class, |
||||||
ImageFloatAction.class |
ImageFloatAction.class |
||||||
}, super.actionsForInsertFloatElement()); |
}, super.actionsForInsertFloatElement()); |
||||||
} |
} |
||||||
|
|
||||||
|
|
||||||
private void registerData4Form() { |
private void registerData4Form() { |
||||||
StableFactory.registerMarkedClass(FormECDesignerProvider.XML_TAG, FormElementCaseDesigner.class); |
StableFactory.registerMarkedClass(FormECDesignerProvider.XML_TAG, FormElementCaseDesigner.class); |
||||||
StableFactory.registerMarkedClass(FormECCompositeProvider.XML_TAG, FormReportComponentComposite.class); |
StableFactory.registerMarkedClass(FormECCompositeProvider.XML_TAG, FormReportComponentComposite.class); |
||||||
DesignModuleFactory.registerParameterReader(new WorkBookParameterReader()); |
DesignModuleFactory.registerParameterReader(new WorkBookParameterReader()); |
||||||
} |
} |
||||||
} |
} |
@ -1,166 +1,156 @@ |
|||||||
/* |
package com.fr.poly.creator; |
||||||
* Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. |
|
||||||
*/ |
import com.fr.design.DesignState; |
||||||
package com.fr.poly.creator; |
import com.fr.design.designer.TargetComponent; |
||||||
|
import com.fr.design.gui.chart.MiddleChartComponent; |
||||||
import java.awt.*; |
import com.fr.design.menu.MenuDef; |
||||||
import java.awt.image.BufferedImage; |
import com.fr.design.menu.ShortCut; |
||||||
|
import com.fr.design.menu.ToolBarDef; |
||||||
import javax.swing.*; |
import com.fr.design.module.DesignModuleFactory; |
||||||
|
import com.fr.design.selection.QuickEditor; |
||||||
import com.fr.base.ScreenResolution; |
import com.fr.quickeditor.chartquick.PolyChartQuickEditor; |
||||||
import com.fr.design.DesignState; |
import com.fr.report.poly.PolyChartBlock; |
||||||
import com.fr.design.designer.TargetComponent; |
import com.fr.stable.unit.FU; |
||||||
import com.fr.design.file.HistoryTemplateListPane; |
import com.fr.stable.unit.UNIT; |
||||||
import com.fr.design.gui.chart.MiddleChartComponent; |
import com.fr.stable.unit.UnitRectangle; |
||||||
import com.fr.design.menu.MenuDef; |
|
||||||
import com.fr.design.menu.ShortCut; |
import javax.swing.*; |
||||||
import com.fr.design.menu.ToolBarDef; |
import java.awt.*; |
||||||
import com.fr.design.module.DesignModuleFactory; |
|
||||||
import com.fr.design.selection.QuickEditor; |
/** |
||||||
import com.fr.quickeditor.ChartQuickEditor; |
* @author richer |
||||||
import com.fr.report.poly.PolyChartBlock; |
* @since 6.5.4 创建于2011-5-10 |
||||||
import com.fr.stable.unit.FU; |
*/ |
||||||
import com.fr.stable.unit.UNIT; |
public class ChartBlockCreator extends BlockCreator<PolyChartBlock> { |
||||||
import com.fr.stable.unit.UnitRectangle; |
private MiddleChartComponent cpm; |
||||||
|
private ChartBlockEditor editor; |
||||||
/** |
|
||||||
* @author richer |
//图表默认宽高330*240
|
||||||
* @since 6.5.4 创建于2011-5-10 |
private static final UNIT DEFAULT_WIDTH = FU.getInstance(12573000); |
||||||
*/ |
private static final UNIT DEFAULT_HEIGHT = FU.getInstance(9144000); |
||||||
public class ChartBlockCreator extends BlockCreator<PolyChartBlock> { |
|
||||||
private MiddleChartComponent cpm; |
|
||||||
private ChartBlockEditor editor; |
public ChartBlockCreator() { |
||||||
|
|
||||||
//图表默认宽高330*240
|
} |
||||||
private static final UNIT DEFAULT_WIDTH = FU.getInstance(12573000); |
|
||||||
private static final UNIT DEFAULT_HEIGHT = FU.getInstance(9144000); |
public ChartBlockCreator(PolyChartBlock block) { |
||||||
|
super(block); |
||||||
|
} |
||||||
public ChartBlockCreator() { |
|
||||||
|
public void setResolution(int resolution) { |
||||||
} |
this.resolution = resolution; |
||||||
|
} |
||||||
public ChartBlockCreator(PolyChartBlock block) { |
|
||||||
super(block); |
/** |
||||||
} |
* 初始化 |
||||||
|
* |
||||||
public void setResolution(int resolution){ |
* @return 初始化的控件. |
||||||
this.resolution = resolution; |
*/ |
||||||
} |
public JComponent initMonitor() { |
||||||
|
cpm = DesignModuleFactory.getChartComponent(getValue().getChartCollection()); |
||||||
/** |
cpm.setBorder(BorderFactory.createLineBorder(Color.lightGray)); |
||||||
* 初始化 |
return cpm; |
||||||
* @return 初始化的控件. |
} |
||||||
*/ |
|
||||||
public JComponent initMonitor() { |
public UnitRectangle getDefaultBlockBounds() { |
||||||
cpm = DesignModuleFactory.getChartComponent(getValue().getChartCollection()); |
return new UnitRectangle(UNIT.ZERO, UNIT.ZERO, DEFAULT_WIDTH, DEFAULT_HEIGHT); |
||||||
cpm.setBorder(BorderFactory.createLineBorder(Color.lightGray)); |
} |
||||||
return cpm; |
|
||||||
} |
@Override |
||||||
|
public BlockEditor getEditor() { |
||||||
public UnitRectangle getDefaultBlockBounds() { |
if (editor == null) { |
||||||
return new UnitRectangle(UNIT.ZERO, UNIT.ZERO, DEFAULT_WIDTH, DEFAULT_HEIGHT); |
editor = new ChartBlockEditor(designer, this); |
||||||
} |
} |
||||||
|
return editor; |
||||||
@Override |
} |
||||||
public BlockEditor getEditor() { |
|
||||||
if (editor == null) { |
@Override |
||||||
editor = new ChartBlockEditor(designer, this); |
public int getX(float time) { |
||||||
} |
return (int) (this.getX() * time); |
||||||
return editor; |
} |
||||||
} |
|
||||||
|
@Override |
||||||
@Override |
public int getY(float time) { |
||||||
public int getX(float time) { |
return (int) (this.getY() * time); |
||||||
return (int) (this.getX() * time); |
} |
||||||
} |
|
||||||
|
|
||||||
@Override |
/** |
||||||
public int getY(float time) { |
* 检测按钮状态 |
||||||
return (int) (this.getY() * time); |
* |
||||||
} |
* @date 2015-2-5-上午11:33:46 |
||||||
|
*/ |
||||||
|
public void checkButtonEnable() { |
||||||
/** |
if (editor == null) { |
||||||
* 检测按钮状态 |
editor = new ChartBlockEditor(designer, this); |
||||||
* |
} |
||||||
* @date 2015-2-5-上午11:33:46 |
editor.checkChartButtonsEnable(); |
||||||
* |
} |
||||||
*/ |
|
||||||
public void checkButtonEnable() { |
@Override |
||||||
if (editor == null) { |
public PolyChartBlock getValue() { |
||||||
editor = new ChartBlockEditor(designer, this); |
return block; |
||||||
} |
} |
||||||
editor.checkChartButtonsEnable(); |
|
||||||
} |
@Override |
||||||
|
public void setValue(PolyChartBlock block) { |
||||||
@Override |
this.block = block; |
||||||
public PolyChartBlock getValue() { |
cpm.populate(this.block.getChartCollection()); |
||||||
return block; |
} |
||||||
} |
|
||||||
|
|
||||||
@Override |
/** |
||||||
public void setValue(PolyChartBlock block) { |
* 获取当前工具栏组 |
||||||
this.block = block; |
* |
||||||
cpm.populate(this.block.getChartCollection()); |
* @return 工具栏组 |
||||||
} |
* @date 2015-2-5-上午11:29:07 |
||||||
|
*/ |
||||||
|
public ToolBarDef[] toolbars4Target() { |
||||||
|
return new ToolBarDef[0]; |
||||||
/** |
} |
||||||
* 获取当前工具栏组 |
|
||||||
* |
/** |
||||||
* @return 工具栏组 |
* 在Form的工具栏组 |
||||||
* |
* |
||||||
* @date 2015-2-5-上午11:29:07 |
* @return 组件数组 |
||||||
* |
* @date 2015-2-5-上午11:31:46 |
||||||
*/ |
*/ |
||||||
public ToolBarDef[] toolbars4Target() { |
public JComponent[] toolBarButton4Form() { |
||||||
return new ToolBarDef[0]; |
return new JComponent[0]; |
||||||
} |
} |
||||||
|
|
||||||
/** |
/** |
||||||
* 在Form的工具栏组 |
* 目标的列表 |
||||||
* |
* |
||||||
* @return 组件数组 |
* @return 返回列表. |
||||||
* |
*/ |
||||||
* @date 2015-2-5-上午11:31:46 |
public MenuDef[] menus4Target() { |
||||||
* |
return new MenuDef[0]; |
||||||
*/ |
} |
||||||
public JComponent[] toolBarButton4Form() { |
|
||||||
return new JComponent[0]; |
public int getMenuState() { |
||||||
} |
return DesignState.POLY_SHEET; |
||||||
|
} |
||||||
/** |
|
||||||
* 目标的列表 |
/** |
||||||
* @return 返回列表. |
* 模板的Menu |
||||||
*/ |
* |
||||||
public MenuDef[] menus4Target() { |
* @return 模板的menu |
||||||
return new MenuDef[0]; |
*/ |
||||||
} |
public ShortCut[] shortcut4TemplateMenu() { |
||||||
|
return new ShortCut[0]; |
||||||
public int getMenuState(){ |
} |
||||||
return DesignState.POLY_SHEET; |
|
||||||
} |
@Override |
||||||
|
public PolyElementCasePane getEditingElementCasePane() { |
||||||
/** |
return null; |
||||||
* 模板的Menu |
} |
||||||
* @return 模板的menu |
|
||||||
*/ |
@Override |
||||||
public ShortCut[] shortcut4TemplateMenu() { |
public QuickEditor getQuickEditor(TargetComponent tc) { |
||||||
return new ShortCut[0]; |
PolyChartQuickEditor quitEditor = new PolyChartQuickEditor(); |
||||||
} |
quitEditor.populate(tc); |
||||||
|
return quitEditor; |
||||||
@Override |
} |
||||||
public PolyElementCasePane getEditingElementCasePane() { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public QuickEditor getQuickEditor(TargetComponent tc) { |
|
||||||
ChartQuickEditor quitEditor = new ChartQuickEditor(); |
|
||||||
quitEditor.populate(tc); |
|
||||||
return quitEditor; |
|
||||||
} |
|
||||||
} |
} |
@ -1,54 +0,0 @@ |
|||||||
package com.fr.quickeditor; |
|
||||||
|
|
||||||
import com.fr.base.chart.BaseChartCollection; |
|
||||||
//import com.fr.chart.chartattr.ChartCollection;
|
|
||||||
import com.fr.design.designer.TargetComponent; |
|
||||||
import com.fr.design.gui.chart.BaseChartPropertyPane; |
|
||||||
import com.fr.design.mainframe.ElementCasePane; |
|
||||||
import com.fr.design.module.DesignModuleFactory; |
|
||||||
import com.fr.design.selection.QuickEditor; |
|
||||||
import com.fr.grid.selection.CellSelection; |
|
||||||
import com.fr.grid.selection.FloatSelection; |
|
||||||
import com.fr.grid.selection.Selection; |
|
||||||
import com.fr.poly.PolyDesigner; |
|
||||||
import com.fr.poly.creator.ChartBlockEditor; |
|
||||||
import com.fr.report.cell.Elem; |
|
||||||
|
|
||||||
import java.awt.*; |
|
||||||
|
|
||||||
public class ChartQuickEditor extends QuickEditor<TargetComponent>{ |
|
||||||
// kunsnat: editingPropertyPane初始化 避开设计器启动, 在用到的时候再初始化.
|
|
||||||
//private BaseChartPropertyPane editingPropertyPane = null;
|
|
||||||
public ChartQuickEditor() { |
|
||||||
setLayout(new BorderLayout()); |
|
||||||
setBorder(null); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
protected void refresh() { |
|
||||||
BaseChartPropertyPane editingPropertyPane = null; |
|
||||||
BaseChartCollection collection = null; |
|
||||||
if(tc instanceof PolyDesigner) { |
|
||||||
ChartBlockEditor chartBlockEditor = (ChartBlockEditor)((PolyDesigner)tc).getSelection().getEditor(); |
|
||||||
collection = chartBlockEditor.getValue().getChartCollection(); |
|
||||||
|
|
||||||
add(editingPropertyPane = DesignModuleFactory.getChartPropertyPane(), BorderLayout.CENTER); |
|
||||||
editingPropertyPane.setSupportCellData(false); |
|
||||||
} else { |
|
||||||
Selection selection = ((ElementCasePane)tc).getSelection(); |
|
||||||
Elem element = null; |
|
||||||
if(selection instanceof CellSelection) { |
|
||||||
CellSelection cs = (CellSelection)selection; |
|
||||||
element = ((ElementCasePane)tc).getEditingElementCase().getCellElement(cs.getColumn(), cs.getRow()); |
|
||||||
} else if(selection instanceof FloatSelection){ |
|
||||||
FloatSelection fs = (FloatSelection)selection; |
|
||||||
element = ((ElementCasePane)tc).getEditingElementCase().getFloatElement(fs.getSelectedFloatName()); |
|
||||||
} |
|
||||||
collection = (BaseChartCollection) element.getValue(); |
|
||||||
add(editingPropertyPane = DesignModuleFactory.getChartPropertyPane(), BorderLayout.CENTER); |
|
||||||
|
|
||||||
} |
|
||||||
editingPropertyPane.populateChartPropertyPane(collection, tc); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,51 @@ |
|||||||
|
package com.fr.quickeditor.chartquick; |
||||||
|
|
||||||
|
import com.fr.base.chart.BaseChartCollection; |
||||||
|
import com.fr.design.actions.core.ActionFactory; |
||||||
|
import com.fr.design.actions.insert.cell.ChartCellAction; |
||||||
|
import com.fr.design.gui.chart.BaseChartPropertyPane; |
||||||
|
import com.fr.design.module.DesignModuleFactory; |
||||||
|
import com.fr.grid.selection.CellSelection; |
||||||
|
import com.fr.grid.selection.Selection; |
||||||
|
import com.fr.quickeditor.CellQuickEditor; |
||||||
|
import com.fr.report.cell.Elem; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
|
||||||
|
|
||||||
|
public class BasicChartQuickEditor extends CellQuickEditor { |
||||||
|
private BaseChartPropertyPane editingPropertyPane; |
||||||
|
|
||||||
|
public BasicChartQuickEditor() { |
||||||
|
super(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JComponent createCenterBody() { |
||||||
|
editingPropertyPane = DesignModuleFactory.getChartPropertyPane(); |
||||||
|
editingPropertyPane.setBorder(BorderFactory.createEmptyBorder()); |
||||||
|
return editingPropertyPane; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isScrollAll() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object getComboBoxSelected() { |
||||||
|
return ActionFactory.createAction(ChartCellAction.class); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void refreshDetails() { |
||||||
|
BaseChartCollection collection; |
||||||
|
Selection selection = tc.getSelection(); |
||||||
|
Elem element; |
||||||
|
CellSelection cs = (CellSelection) selection; |
||||||
|
element = tc.getEditingElementCase().getCellElement(cs.getColumn(), cs.getRow()); |
||||||
|
collection = (BaseChartCollection) element.getValue(); |
||||||
|
editingPropertyPane.populateChartPropertyPane(collection, tc); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.fr.quickeditor.chartquick; |
||||||
|
|
||||||
|
import com.fr.base.chart.BaseChartCollection; |
||||||
|
import com.fr.design.gui.chart.BaseChartPropertyPane; |
||||||
|
import com.fr.design.mainframe.ElementCasePane; |
||||||
|
import com.fr.design.module.DesignModuleFactory; |
||||||
|
import com.fr.design.selection.QuickEditor; |
||||||
|
import com.fr.grid.selection.FloatSelection; |
||||||
|
import com.fr.grid.selection.Selection; |
||||||
|
import com.fr.report.cell.Elem; |
||||||
|
|
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
|
||||||
|
public class FloatChartQuickEditor extends QuickEditor<ElementCasePane> { |
||||||
|
public FloatChartQuickEditor() { |
||||||
|
setLayout(new BorderLayout()); |
||||||
|
setBorder(null); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void refresh() { |
||||||
|
BaseChartPropertyPane editingPropertyPane; |
||||||
|
BaseChartCollection collection; |
||||||
|
Selection selection = tc.getSelection(); |
||||||
|
Elem element; |
||||||
|
FloatSelection fs = (FloatSelection) selection; |
||||||
|
element = tc.getEditingElementCase().getFloatElement(fs.getSelectedFloatName()); |
||||||
|
collection = (BaseChartCollection) element.getValue(); |
||||||
|
add(editingPropertyPane = DesignModuleFactory.getChartPropertyPane(), BorderLayout.CENTER); |
||||||
|
editingPropertyPane.populateChartPropertyPane(collection, tc); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.fr.quickeditor.chartquick; |
||||||
|
|
||||||
|
import com.fr.base.chart.BaseChartCollection; |
||||||
|
import com.fr.design.designer.TargetComponent; |
||||||
|
import com.fr.design.gui.chart.BaseChartPropertyPane; |
||||||
|
import com.fr.design.module.DesignModuleFactory; |
||||||
|
import com.fr.design.selection.QuickEditor; |
||||||
|
import com.fr.poly.PolyDesigner; |
||||||
|
import com.fr.poly.creator.ChartBlockEditor; |
||||||
|
|
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
|
||||||
|
public class PolyChartQuickEditor extends QuickEditor<TargetComponent> { |
||||||
|
public PolyChartQuickEditor() { |
||||||
|
setLayout(new BorderLayout()); |
||||||
|
setBorder(null); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void refresh() { |
||||||
|
BaseChartPropertyPane editingPropertyPane; |
||||||
|
BaseChartCollection collection; |
||||||
|
ChartBlockEditor chartBlockEditor = (ChartBlockEditor) ((PolyDesigner) tc).getSelection().getEditor(); |
||||||
|
collection = chartBlockEditor.getValue().getChartCollection(); |
||||||
|
add(editingPropertyPane = DesignModuleFactory.getChartPropertyPane(), BorderLayout.CENTER); |
||||||
|
editingPropertyPane.setSupportCellData(false); |
||||||
|
editingPropertyPane.populateChartPropertyPane(collection, tc); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 138 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 493 B |
Loading…
Reference in new issue