|
|
@ -1,22 +1,11 @@ |
|
|
|
package com.fr.start.module; |
|
|
|
package com.fr.start.module; |
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.BaseFormula; |
|
|
|
import com.fr.base.BaseFormula; |
|
|
|
import com.fr.base.BaseUtils; |
|
|
|
|
|
|
|
import com.fr.base.FRContext; |
|
|
|
|
|
|
|
import com.fr.base.Formula; |
|
|
|
import com.fr.base.Formula; |
|
|
|
import com.fr.base.MultiFieldParameter; |
|
|
|
import com.fr.base.MultiFieldParameter; |
|
|
|
import com.fr.base.Style; |
|
|
|
|
|
|
|
import com.fr.base.TempNameStyle; |
|
|
|
|
|
|
|
import com.fr.base.extension.FileExtension; |
|
|
|
|
|
|
|
import com.fr.base.frpx.exception.FRPackageRunTimeException; |
|
|
|
|
|
|
|
import com.fr.base.frpx.exception.InvalidWorkBookException; |
|
|
|
|
|
|
|
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.chart.chartattr.ChartCollection; |
|
|
|
import com.fr.chart.chartattr.ChartCollection; |
|
|
|
import com.fr.config.ServerPreferenceConfig; |
|
|
|
|
|
|
|
import com.fr.design.ChartTypeInterfaceManager; |
|
|
|
import com.fr.design.ChartTypeInterfaceManager; |
|
|
|
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.BiasCellAction; |
|
|
|
import com.fr.design.actions.insert.cell.BiasCellAction; |
|
|
@ -31,7 +20,6 @@ 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.bridge.DesignToolbarProvider; |
|
|
|
import com.fr.design.bridge.DesignToolbarProvider; |
|
|
|
import com.fr.design.chart.ChartDialog; |
|
|
|
import com.fr.design.chart.ChartDialog; |
|
|
|
import com.fr.design.chart.gui.ChartComponent; |
|
|
|
import com.fr.design.chart.gui.ChartComponent; |
|
|
@ -40,29 +28,21 @@ import com.fr.design.form.parameter.FormParaDesigner; |
|
|
|
import com.fr.design.fun.ElementUIProvider; |
|
|
|
import com.fr.design.fun.ElementUIProvider; |
|
|
|
import com.fr.design.gui.controlpane.NameObjectCreator; |
|
|
|
import com.fr.design.gui.controlpane.NameObjectCreator; |
|
|
|
import com.fr.design.gui.controlpane.NameableCreator; |
|
|
|
import com.fr.design.gui.controlpane.NameableCreator; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
|
|
|
import com.fr.design.hyperlink.ReportletHyperlinkPane; |
|
|
|
import com.fr.design.hyperlink.ReportletHyperlinkPane; |
|
|
|
import com.fr.design.hyperlink.WebHyperlinkPane; |
|
|
|
import com.fr.design.hyperlink.WebHyperlinkPane; |
|
|
|
import com.fr.design.javascript.EmailPane; |
|
|
|
import com.fr.design.javascript.EmailPane; |
|
|
|
import com.fr.design.javascript.JavaScriptImplPane; |
|
|
|
import com.fr.design.javascript.JavaScriptImplPane; |
|
|
|
import com.fr.design.javascript.ParameterJavaScriptPane; |
|
|
|
import com.fr.design.javascript.ParameterJavaScriptPane; |
|
|
|
import com.fr.design.javascript.ProcessTransitionAdapter; |
|
|
|
import com.fr.design.javascript.ProcessTransitionAdapter; |
|
|
|
import com.fr.design.mainframe.AbstractAppProvider; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.App; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.BaseJForm; |
|
|
|
import com.fr.design.mainframe.BaseJForm; |
|
|
|
import com.fr.design.mainframe.CellElementPropertyPane; |
|
|
|
import com.fr.design.mainframe.CellElementPropertyPane; |
|
|
|
import com.fr.design.mainframe.ChartPropertyPane; |
|
|
|
import com.fr.design.mainframe.ChartPropertyPane; |
|
|
|
import com.fr.design.mainframe.DecodeDialog; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.DesignerFrame; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.DesignerFrameFileDealerPane; |
|
|
|
import com.fr.design.mainframe.DesignerFrameFileDealerPane; |
|
|
|
import com.fr.design.mainframe.EastRegionContainerPane; |
|
|
|
import com.fr.design.mainframe.EastRegionContainerPane; |
|
|
|
import com.fr.design.mainframe.ElementCaseThumbnail; |
|
|
|
import com.fr.design.mainframe.ElementCaseThumbnail; |
|
|
|
import com.fr.design.mainframe.FormHierarchyTreePane; |
|
|
|
import com.fr.design.mainframe.FormHierarchyTreePane; |
|
|
|
import com.fr.design.mainframe.InformationCollector; |
|
|
|
import com.fr.design.mainframe.InformationCollector; |
|
|
|
import com.fr.design.mainframe.JForm; |
|
|
|
import com.fr.design.mainframe.JForm; |
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.JWorkBook; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.WidgetPropertyPane; |
|
|
|
import com.fr.design.mainframe.WidgetPropertyPane; |
|
|
|
import com.fr.design.mainframe.WidgetToolBarPane; |
|
|
|
import com.fr.design.mainframe.WidgetToolBarPane; |
|
|
|
import com.fr.design.mainframe.actions.NewFormAction; |
|
|
|
import com.fr.design.mainframe.actions.NewFormAction; |
|
|
@ -79,20 +59,13 @@ import com.fr.design.module.DesignModuleFactory; |
|
|
|
import com.fr.design.parameter.FormParameterReader; |
|
|
|
import com.fr.design.parameter.FormParameterReader; |
|
|
|
import com.fr.design.parameter.ParameterPropertyPane; |
|
|
|
import com.fr.design.parameter.ParameterPropertyPane; |
|
|
|
import com.fr.design.parameter.WorkBookParameterReader; |
|
|
|
import com.fr.design.parameter.WorkBookParameterReader; |
|
|
|
import com.fr.design.utils.gui.GUICoreUtils; |
|
|
|
|
|
|
|
import com.fr.design.widget.ui.btn.FormSubmitButtonDetailPane; |
|
|
|
import com.fr.design.widget.ui.btn.FormSubmitButtonDetailPane; |
|
|
|
import com.fr.file.FILE; |
|
|
|
|
|
|
|
import com.fr.form.main.Form; |
|
|
|
|
|
|
|
import com.fr.form.stable.ElementCaseThumbnailProcessor; |
|
|
|
import com.fr.form.stable.ElementCaseThumbnailProcessor; |
|
|
|
import com.fr.form.ui.ChartEditor; |
|
|
|
import com.fr.form.ui.ChartEditor; |
|
|
|
import com.fr.form.ui.WidgetInfoConfig; |
|
|
|
import com.fr.form.ui.WidgetInfoConfig; |
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.general.ModuleContext; |
|
|
|
import com.fr.general.ModuleContext; |
|
|
|
import com.fr.general.xml.GeneralXMLTools; |
|
|
|
import com.fr.general.xml.GeneralXMLTools; |
|
|
|
import com.fr.io.importer.Excel2007ReportImporter; |
|
|
|
|
|
|
|
import com.fr.io.importer.ExcelReportImporter; |
|
|
|
|
|
|
|
import com.fr.io.utils.ResourceIOUtils; |
|
|
|
|
|
|
|
import com.fr.js.EmailJavaScript; |
|
|
|
import com.fr.js.EmailJavaScript; |
|
|
|
import com.fr.js.JavaScriptImpl; |
|
|
|
import com.fr.js.JavaScriptImpl; |
|
|
|
import com.fr.js.ParameterJavaScript; |
|
|
|
import com.fr.js.ParameterJavaScript; |
|
|
@ -100,9 +73,6 @@ import com.fr.js.ReportletHyperlink; |
|
|
|
import com.fr.js.WebHyperlink; |
|
|
|
import com.fr.js.WebHyperlink; |
|
|
|
import com.fr.locale.InterMutableKey; |
|
|
|
import com.fr.locale.InterMutableKey; |
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
import com.fr.main.impl.WorkBook; |
|
|
|
|
|
|
|
import com.fr.main.impl.WorkBookAdapter; |
|
|
|
|
|
|
|
import com.fr.main.impl.WorkBookX; |
|
|
|
|
|
|
|
import com.fr.module.Activator; |
|
|
|
import com.fr.module.Activator; |
|
|
|
import com.fr.module.extension.Prepare; |
|
|
|
import com.fr.module.extension.Prepare; |
|
|
|
import com.fr.plugin.chart.vanchart.imgevent.design.DesignImageEvent; |
|
|
|
import com.fr.plugin.chart.vanchart.imgevent.design.DesignImageEvent; |
|
|
@ -124,17 +94,13 @@ import com.fr.report.cell.cellattr.core.group.DSColumn; |
|
|
|
import com.fr.report.cell.painter.BiasTextPainter; |
|
|
|
import com.fr.report.cell.painter.BiasTextPainter; |
|
|
|
import com.fr.report.cell.painter.CellImagePainter; |
|
|
|
import com.fr.report.cell.painter.CellImagePainter; |
|
|
|
import com.fr.stable.ArrayUtils; |
|
|
|
import com.fr.stable.ArrayUtils; |
|
|
|
import com.fr.stable.Constants; |
|
|
|
|
|
|
|
import com.fr.stable.ParameterProvider; |
|
|
|
import com.fr.stable.ParameterProvider; |
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
|
|
|
|
import com.fr.stable.bridge.StableFactory; |
|
|
|
import com.fr.stable.bridge.StableFactory; |
|
|
|
import com.fr.stable.fun.LogProvider; |
|
|
|
import com.fr.stable.fun.LogProvider; |
|
|
|
import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; |
|
|
|
import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; |
|
|
|
import com.fr.stable.plugin.ExtraDesignClassManagerProvider; |
|
|
|
import com.fr.stable.plugin.ExtraDesignClassManagerProvider; |
|
|
|
import com.fr.stable.script.CalculatorProviderContext; |
|
|
|
import com.fr.stable.script.CalculatorProviderContext; |
|
|
|
import com.fr.stable.script.ValueConverter; |
|
|
|
import com.fr.stable.script.ValueConverter; |
|
|
|
import com.fr.stable.web.ServletContext; |
|
|
|
|
|
|
|
import com.fr.stable.web.ServletContextAdapter; |
|
|
|
|
|
|
|
import com.fr.stable.xml.ObjectTokenizer; |
|
|
|
import com.fr.stable.xml.ObjectTokenizer; |
|
|
|
import com.fr.stable.xml.ObjectXMLWriterFinder; |
|
|
|
import com.fr.stable.xml.ObjectXMLWriterFinder; |
|
|
|
import com.fr.start.BBSGuestPaneProvider; |
|
|
|
import com.fr.start.BBSGuestPaneProvider; |
|
|
@ -142,18 +108,9 @@ import com.fr.van.chart.DownloadOnlineSourcesHelper; |
|
|
|
import com.fr.van.chart.map.server.ChartMapEditorAction; |
|
|
|
import com.fr.van.chart.map.server.ChartMapEditorAction; |
|
|
|
import com.fr.xml.ReportXMLUtils; |
|
|
|
import com.fr.xml.ReportXMLUtils; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.JDialog; |
|
|
|
import java.awt.*; |
|
|
|
import javax.swing.JPanel; |
|
|
|
|
|
|
|
import javax.swing.SwingConstants; |
|
|
|
|
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
|
|
|
import java.awt.Image; |
|
|
|
|
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
|
|
|
|
import java.awt.event.ActionListener; |
|
|
|
|
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.io.InputStream; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.Iterator; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
@ -166,34 +123,16 @@ import static com.fr.stable.module.Module.ENGINE_MODULE; |
|
|
|
* 触发原来的DesignerModule的启动 |
|
|
|
* 触发原来的DesignerModule的启动 |
|
|
|
* 之后慢慢将DesignerModule拆成Activator |
|
|
|
* 之后慢慢将DesignerModule拆成Activator |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class DesignerModuleActivator extends Activator implements Prepare { |
|
|
|
public class DesignerActivator extends Activator implements Prepare { |
|
|
|
|
|
|
|
|
|
|
|
static { |
|
|
|
|
|
|
|
ServletContext.addServletContextListener(new ServletContextAdapter() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void onServletStart() { |
|
|
|
|
|
|
|
designerModuleStart(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void start() { |
|
|
|
public void start() { |
|
|
|
designerModuleStart(); |
|
|
|
designerModuleStart(); |
|
|
|
|
|
|
|
preLoadPane(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static void designerModuleStart() { |
|
|
|
private static void designerModuleStart() { |
|
|
|
|
|
|
|
|
|
|
|
if (com.fr.module.ModuleContext.getModule(DesignerModuleActivator.class).isRunning()) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
App<?>[] apps = apps4TemplateOpener(); |
|
|
|
|
|
|
|
for (App<?> app : apps) { |
|
|
|
|
|
|
|
DesignerFrame.registApp(app); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StableFactory.registerMarkedClass(ExtraDesignClassManagerProvider.XML_TAG, ExtraDesignClassManager.class); |
|
|
|
StableFactory.registerMarkedClass(ExtraDesignClassManagerProvider.XML_TAG, ExtraDesignClassManager.class); |
|
|
|
ActionFactory.registerCellInsertActionClass(actionsForInsertCellElement()); |
|
|
|
ActionFactory.registerCellInsertActionClass(actionsForInsertCellElement()); |
|
|
|
ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement()); |
|
|
|
ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement()); |
|
|
@ -213,9 +152,6 @@ public class DesignerModuleActivator extends Activator implements Prepare { |
|
|
|
|
|
|
|
|
|
|
|
ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); |
|
|
|
ExtraDesignClassManager.getInstance().getFeedback().didFeedback(); |
|
|
|
StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); |
|
|
|
StableFactory.registerMarkedObject(LogProvider.MARK_STRING, DesignerLogImpl.getInstance()); |
|
|
|
|
|
|
|
|
|
|
|
preLoadPane(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
private static void preLoadPane() { |
|
|
|
private static void preLoadPane() { |
|
|
|
ExecutorService service = Executors.newCachedThreadPool(); |
|
|
|
ExecutorService service = Executors.newCachedThreadPool(); |
|
|
@ -312,7 +248,6 @@ public class DesignerModuleActivator extends Activator implements Prepare { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static void justStartModules4Designer() { |
|
|
|
private static void justStartModules4Designer() { |
|
|
|
chartDesignerRegister(); |
|
|
|
|
|
|
|
formDesignerRegister(); |
|
|
|
formDesignerRegister(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -370,262 +305,6 @@ public class DesignerModuleActivator extends Activator implements Prepare { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static abstract class AbstractWorkBookApp implements App<WorkBook> { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public int currentAPILevel() { |
|
|
|
|
|
|
|
return CURRENT_LEVEL; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public JTemplate<WorkBook, ?> openTemplate(FILE tplFile) { |
|
|
|
|
|
|
|
return new JWorkBook(asIOFile(tplFile), tplFile); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String mark4Provider() { |
|
|
|
|
|
|
|
return getClass().getName(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void process() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void undo() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
* 返回设计器能打开的模板类型的一个数组列表 |
|
|
|
|
|
|
|
* @return 可以打开的模板类型的数组 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private static App[] apps4TemplateOpener() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new App[]{getCptxApp(), getCptApp(), getXlsApp(), getXlsxApp(), getFrmApp()}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static AbstractWorkBookApp getXlsxApp() { |
|
|
|
|
|
|
|
return new AbstractWorkBookApp() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String[] defaultExtensions() { |
|
|
|
|
|
|
|
return new String[]{FileExtension.XLSX.getExtension()}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public WorkBook asIOFile(FILE tplFile) { |
|
|
|
|
|
|
|
WorkBook workbook = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
workbook = new Excel2007ReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
|
|
|
|
|
|
|
} catch (Exception exp) { |
|
|
|
|
|
|
|
FRContext.getLogger().error("Failed to generate xlsx from " + tplFile, exp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return workbook; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static AbstractAppProvider getFrmApp() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new AbstractAppProvider<Form>() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String[] defaultExtensions() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new String[]{"frm", "form"}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public JTemplate<Form, ?> openTemplate(FILE tplFile) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, Class> classType = new HashMap<String, Class>(); |
|
|
|
|
|
|
|
classType.put(Constants.ARG_0, Form.class); |
|
|
|
|
|
|
|
classType.put(Constants.ARG_1, FILE.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return (JTemplate<Form, ?>) StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, |
|
|
|
|
|
|
|
new Object[]{asIOFile(tplFile), tplFile}, classType, BaseJForm.class); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public Form asIOFile(FILE file) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (XMLEncryptUtils.isCptEncoded() && |
|
|
|
|
|
|
|
!XMLEncryptUtils.checkVaild(DesignerEnvManager.getEnvManager().getEncryptionKey())) { |
|
|
|
|
|
|
|
if (!new DecodeDialog(file).isPwdRight()) { |
|
|
|
|
|
|
|
FRContext.getLogger().error(Inter.getLocText("FR-Engine_ECP_error_pwd")); |
|
|
|
|
|
|
|
return new Form(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// peter:打开新报表.
|
|
|
|
|
|
|
|
Form tpl = new Form(); |
|
|
|
|
|
|
|
// richer:打开报表通知
|
|
|
|
|
|
|
|
// FRContext.getLogger().info(Inter.getLocText("LOG-Is_Being_Openned") + "\"" + file.getName() + "\"" + "," + Inter.getLocText("LOG-Please_Wait") + "...");
|
|
|
|
|
|
|
|
FRContext.getLogger().info(Inter.getLocText(new String[]{"LOG-Is_Being_Openned", "LOG-Please_Wait"}, |
|
|
|
|
|
|
|
new String[]{"\"" + file.getName() + "\"" + ",", "..."})); |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
tpl.readStream(file.asInputStream()); |
|
|
|
|
|
|
|
} catch (Exception exp) { |
|
|
|
|
|
|
|
FRContext.getLogger().error("Failed to generate frm from " + file, exp); |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return tpl; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static AbstractWorkBookApp getXlsApp() { |
|
|
|
|
|
|
|
return new AbstractWorkBookApp() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String[] defaultExtensions() { |
|
|
|
|
|
|
|
return new String[]{FileExtension.XLS.getExtension()}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public WorkBook asIOFile(FILE tplFile) { |
|
|
|
|
|
|
|
WorkBook workbook = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
workbook = new ExcelReportImporter().generateWorkBookByStream(tplFile.asInputStream()); |
|
|
|
|
|
|
|
} catch (Exception exp) { |
|
|
|
|
|
|
|
FRContext.getLogger().error("Failed to generate xls from " + tplFile, exp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return workbook; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static AbstractWorkBookApp getCptApp() { |
|
|
|
|
|
|
|
return new AbstractWorkBookApp() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String[] defaultExtensions() { |
|
|
|
|
|
|
|
return new String[]{FileExtension.CPT.getExtension()}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public WorkBook asIOFile(FILE file) { |
|
|
|
|
|
|
|
if (XMLEncryptUtils.isCptEncoded() && |
|
|
|
|
|
|
|
!XMLEncryptUtils.checkVaild(DesignerEnvManager.getEnvManager().getEncryptionKey())) { |
|
|
|
|
|
|
|
if (!new DecodeDialog(file).isPwdRight()) { |
|
|
|
|
|
|
|
FRContext.getLogger().error(Inter.getLocText("ECP-error_pwd")); |
|
|
|
|
|
|
|
return new WorkBook(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WorkBook tpl = new WorkBook(); |
|
|
|
|
|
|
|
// richer:打开报表通知
|
|
|
|
|
|
|
|
FRContext.getLogger().info(Inter.getLocText(new String[]{"LOG-Is_Being_Openned", "LOG-Please_Wait"}, new String[]{"\"" + file.getName() + "\"" + ",", "..."})); |
|
|
|
|
|
|
|
TempNameStyle namestyle = TempNameStyle.getInstance(); |
|
|
|
|
|
|
|
namestyle.clear(); |
|
|
|
|
|
|
|
String checkStr = StringUtils.EMPTY; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
checkStr = ResourceIOUtils.inputStream2String(file.asInputStream()); |
|
|
|
|
|
|
|
tpl.readStream(file.asInputStream()); |
|
|
|
|
|
|
|
} catch (Exception exp) { |
|
|
|
|
|
|
|
String errorMessage = StringUtils.EMPTY; |
|
|
|
|
|
|
|
errorMessage = ComparatorUtils.equals(RemoteDeziConstants.INVALID_USER, checkStr) ? Inter.getLocText("FR-Designer_No-Privilege") |
|
|
|
|
|
|
|
: Inter.getLocText("NS-exception_readError"); |
|
|
|
|
|
|
|
FRContext.getLogger().error(errorMessage + file, exp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
checkNameStyle(namestyle); |
|
|
|
|
|
|
|
return tpl; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static AbstractWorkBookApp getCptxApp() { |
|
|
|
|
|
|
|
return new AbstractWorkBookApp() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String[] defaultExtensions() { |
|
|
|
|
|
|
|
return new String[]{FileExtension.CPTX.getExtension()}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public WorkBook asIOFile(FILE file) { |
|
|
|
|
|
|
|
FRContext.getLogger().info(Inter.getLocText(new String[]{"LOG-Is_Being_Openned", "LOG-Please_Wait"}, new String[]{"\"" + file.getName() + "\"" + ",", "..."})); |
|
|
|
|
|
|
|
WorkBookX tpl; |
|
|
|
|
|
|
|
InputStream inputStream; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
inputStream = file.asInputStream(); |
|
|
|
|
|
|
|
long time = System.currentTimeMillis(); |
|
|
|
|
|
|
|
tpl = new WorkBookX(inputStream); |
|
|
|
|
|
|
|
FRContext.getLogger().error("cost: " + (System.currentTimeMillis() - time) + " ms"); |
|
|
|
|
|
|
|
} catch (Exception exp) { |
|
|
|
|
|
|
|
if (exp instanceof FRPackageRunTimeException) { |
|
|
|
|
|
|
|
throw (FRPackageRunTimeException) exp; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
throw new InvalidWorkBookException(file + ":" + exp.getMessage(), exp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new WorkBookAdapter(tpl); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void checkNameStyle(TempNameStyle namestyle) { |
|
|
|
|
|
|
|
Iterator it = namestyle.getIterator(); |
|
|
|
|
|
|
|
ArrayList<String> al = new ArrayList<String>(); |
|
|
|
|
|
|
|
while (it.hasNext()) { |
|
|
|
|
|
|
|
al.add((String) it.next()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!al.isEmpty()) { |
|
|
|
|
|
|
|
showConfirmDialog(al); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void showConfirmDialog(final ArrayList<String> namelist) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final JDialog jd = new JDialog(); |
|
|
|
|
|
|
|
// 模态一下,因为可能会多个样式丢失
|
|
|
|
|
|
|
|
// jd.setModal(true);
|
|
|
|
|
|
|
|
jd.setAlwaysOnTop(true); |
|
|
|
|
|
|
|
jd.setSize(450, 150); |
|
|
|
|
|
|
|
jd.setResizable(false); |
|
|
|
|
|
|
|
jd.setIconImage(BaseUtils.readImage("/com/fr/base/images/oem/logo.png")); |
|
|
|
|
|
|
|
String message = namelist.toString().replaceAll("\\[", "").replaceAll("\\]", ""); |
|
|
|
|
|
|
|
UILabel jl = new UILabel(Inter.getLocText(new String[]{"Current_custom_global", "Has_been_gone"}, new String[]{message})); |
|
|
|
|
|
|
|
jl.setHorizontalAlignment(SwingConstants.CENTER); |
|
|
|
|
|
|
|
jd.add(jl, BorderLayout.CENTER); |
|
|
|
|
|
|
|
JPanel jp = new JPanel(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ”是“按钮,点击之后将生成一个全局样式,并写入xml
|
|
|
|
|
|
|
|
UIButton confirmButton = new UIButton(Inter.getLocText("FR-Designer_Yes")); |
|
|
|
|
|
|
|
confirmButton.addActionListener(new ActionListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
for (int i = 0; i < namelist.size(); i++) { |
|
|
|
|
|
|
|
ServerPreferenceConfig.getInstance().putStyle(namelist.get(i), Style.DEFAULT_STYLE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception ex) { |
|
|
|
|
|
|
|
FineLoggerFactory.getLogger().error(ex.getMessage()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
jd.dispose(); |
|
|
|
|
|
|
|
new StyleListAction().actionPerformed(e);// 弹窗
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UIButton noButton = new UIButton(Inter.getLocText("FR-Designer_No")); |
|
|
|
|
|
|
|
noButton.addActionListener(new ActionListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
|
|
|
jd.dispose(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jp.add(confirmButton); |
|
|
|
|
|
|
|
jp.add(noButton); |
|
|
|
|
|
|
|
jd.setTitle(Inter.getLocText("FR-Custom_styles_lost")); |
|
|
|
|
|
|
|
jd.add(jp, BorderLayout.SOUTH); |
|
|
|
|
|
|
|
GUICoreUtils.centerWindow(jd); |
|
|
|
|
|
|
|
jd.setVisible(true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void designerRegister() { |
|
|
|
private static void designerRegister() { |
|
|
|
registerCellEditor(); |
|
|
|
registerCellEditor(); |
|
|
@ -688,30 +367,6 @@ public class DesignerModuleActivator extends Activator implements Prepare { |
|
|
|
DesignModuleFactory.registerParameterReader(new WorkBookParameterReader()); |
|
|
|
DesignModuleFactory.registerParameterReader(new WorkBookParameterReader()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static void chartDesignerRegister() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StableFactory.registerMarkedClass(ExtraChartDesignClassManagerProvider.XML_TAG, ChartTypeInterfaceManager.class); |
|
|
|
|
|
|
|
StableFactory.getStaticMarkedInstanceObjectFromClass(ExtraChartDesignClassManagerProvider.XML_TAG, ExtraChartDesignClassManagerProvider.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignModuleFactory.registerHyperlinkGroupType(new ChartHyperlinkGroup()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignModuleFactory.registerChartEditorClass(ChartEditor.class); |
|
|
|
|
|
|
|
DesignModuleFactory.registerChartComponentClass(ChartComponent.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignModuleFactory.registerChartDialogClass(ChartDialog.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignModuleFactory.registerChartPropertyPaneClass(ChartPropertyPane.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ActionFactory.registerChartPreStyleAction(new ChartPreStyleAction()); |
|
|
|
|
|
|
|
ActionFactory.registerChartMapEditorAction(new ChartMapEditorAction()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ActionFactory.registerChartCollection(ChartCollection.class); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignModuleFactory.registerExtraWidgetOptions(ChartTypeInterfaceManager.initWidgetOption()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesignImageEvent.registerDefaultCallbackEvent(HistoryTemplateListPane.getInstance()); |
|
|
|
|
|
|
|
DesignImageEvent.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void formDesignerRegister() { |
|
|
|
private static void formDesignerRegister() { |
|
|
|
|
|
|
|
|