diff --git a/plugin.xml b/plugin.xml index 27af839..4a43273 100644 --- a/plugin.xml +++ b/plugin.xml @@ -2,11 +2,14 @@ com.fr.plugin.file.submit.oss yes - 1.0 + 1.1 10.0 2018-11-02 author + + + ]]> @@ -24,6 +27,7 @@ + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/file/submit/oss/OssTemplateReload.java b/src/main/java/com/fr/plugin/file/submit/oss/OssTemplateReload.java new file mode 100644 index 0000000..5324859 --- /dev/null +++ b/src/main/java/com/fr/plugin/file/submit/oss/OssTemplateReload.java @@ -0,0 +1,33 @@ +package com.fr.plugin.file.submit.oss; + +import com.fr.design.fun.MenuHandler; +import com.fr.design.fun.impl.AbstractMenuHandler; +import com.fr.design.menu.ShortCut; +import com.fr.plugin.file.submit.oss.ui.tools.RewriteAction; + +public class OssTemplateReload extends AbstractMenuHandler { + @Override + public int insertPosition(int total) { + return 0; + } + + @Override + public boolean insertSeparatorBefore() { + return false; + } + + @Override + public boolean insertSeparatorAfter() { + return false; + } + + @Override + public String category() { + return MenuHandler.HELP; + } + + @Override + public ShortCut shortcut() { + return new RewriteAction(); + } +} diff --git a/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteAction.java b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteAction.java new file mode 100644 index 0000000..b628a6f --- /dev/null +++ b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteAction.java @@ -0,0 +1,18 @@ +package com.fr.plugin.file.submit.oss.ui.tools; + +import com.fr.design.actions.UpdateAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.mainframe.DesignerContext; + +import java.awt.event.ActionEvent; + +public class RewriteAction extends UpdateAction { + + @Override + public void actionPerformed(ActionEvent e) { + RewritePane rewritePane = new RewritePane(); + BasicDialog dialog = rewritePane.showWindow(DesignerContext.getDesignerFrame()); + dialog.setVisible(true); + + } +} diff --git a/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewritePane.java b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewritePane.java new file mode 100644 index 0000000..75bc825 --- /dev/null +++ b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewritePane.java @@ -0,0 +1,124 @@ +package com.fr.plugin.file.submit.oss.ui.tools; + +import com.fr.base.FRContext; +import com.fr.base.extension.FileExtension; +import com.fr.data.SubmitJob; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.file.filetree.FileNode; +import com.fr.io.TemplateWorkBookIO; +import com.fr.main.impl.WorkBook; +import com.fr.plugin.customsubmmit.core.PathConfig; +import com.fr.plugin.customsubmmit.core.ServerPathColumnConfig; +import com.fr.plugin.customsubmmit.report.ServerPathSubmiterJob; +import com.fr.plugin.file.submit.oss.fun.OssSubmitTarget; +import com.fr.plugin.file.submit.oss.fun.OssSubmitTargetConfig; +import com.fr.plugin.file.submit.oss.fun.OssVariableValue; +import com.fr.plugin.file.submit.oss.job.OssSubmitJob; +import com.fr.report.report.Report; +import com.fr.report.worksheet.WorkSheet; +import com.fr.report.write.ReportWriteAttr; +import com.fr.report.write.SubmitVisitor; +import com.fr.report.write.WClassSubmiter; +import com.fr.stable.project.ProjectConstants; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; + +public class RewritePane extends BasicPane { + + + public RewritePane() { + initComponents(); + } + + private void initComponents() { + setLayout(new BorderLayout()); + UIButton button = new UIButton("Start"); + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + rewrite(); + } + }); + add(button, BorderLayout.NORTH); + } + + private void rewrite() { + new SwingWorker() { + @Override + protected Void doInBackground() { + FileNode[] fileNodes = FRContext.getFileNodes().list(ProjectConstants.REPORTLETS_NAME, FileExtension.CPT, true); + int len = fileNodes.length; + for (int i = 0; i < len; i++) { + FileNode fileNode = fileNodes[i]; + try { + WorkBook workBook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook(fileNode.getEnvPath().substring(10)); + int count = workBook.getReportCount(); + for (int n = 0; n < count; n++) { + Report report = workBook.getReport(n); + if (report instanceof WorkSheet) { + ReportWriteAttr reportWriteAttr = ((WorkSheet) report).getAttributeTarget(ReportWriteAttr.XML_TAG); + if (reportWriteAttr != null) { + int submitJobCount = reportWriteAttr.getSubmitVisitorCount(); + for (int sn = 0; sn < submitJobCount; sn++) { + SubmitVisitor submitVisitor = reportWriteAttr.getSubmitVisitor(sn); + if (submitVisitor instanceof WClassSubmiter) { + SubmitJob job = ((WClassSubmiter) submitVisitor).getSubmitJob(); + if (job instanceof ServerPathSubmiterJob) { + ((WClassSubmiter) submitVisitor).setSubmitJob(convert2OssJob((ServerPathSubmiterJob) job)); + } + } + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + publish(i); + } + + return null; + } + + @Override + protected void process(List chunks) { + System.out.println("已经到第" + chunks.get(chunks.size() - 1) + "个模板"); + + } + }.execute(); + } + + private OssSubmitJob convert2OssJob(ServerPathSubmiterJob job) { + OssSubmitJob ossSubmitJob = new OssSubmitJob(); + OssSubmitTargetConfig targetConfig = new OssSubmitTargetConfig(); + ossSubmitJob.setSubmitTargetConfig(targetConfig); + + PathConfig pathConfig = job.getPathConfig(); + if (pathConfig != null) { + for (ServerPathColumnConfig config : pathConfig.getColumnConfigList()) { + OssSubmitTarget target = new OssSubmitTarget(); + targetConfig.addSubmitTarget(target); + target.setBucket("fanruan-crm"); + target.setDirectory(new OssVariableValue(config.getPath())); + target.setFile(new OssVariableValue(config.getCellConfig().toString())); + target.setName(new OssVariableValue(config.getName())); + } + } + return ossSubmitJob; + } + + @Override + protected String title4PopupWindow() { + return "Transform"; + } +} diff --git a/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteWorker.java b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteWorker.java new file mode 100644 index 0000000..b79f335 --- /dev/null +++ b/src/main/java/com/fr/plugin/file/submit/oss/ui/tools/RewriteWorker.java @@ -0,0 +1,17 @@ +package com.fr.plugin.file.submit.oss.ui.tools; + +import javax.swing.*; +import java.util.List; + +public class RewriteWorker extends SwingWorker { + + @Override + protected Void doInBackground() throws Exception { + return null; + } + + @Override + protected void process(List chunks) { + super.process(chunks); + } +}