]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/wizard/ReportGeneratePage.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / wizard / ReportGeneratePage.java
index 980010318cdcb16e05324fdc859d9b3b0b416f2e..4db863f2af714f72c31f5c6ab96d960509208348 100644 (file)
-package org.simantics.document.linking.wizard;\r
-\r
-import java.io.File;\r
-import java.lang.reflect.InvocationTargetException;\r
-\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.IStatus;\r
-import org.eclipse.jface.operation.IRunnableWithProgress;\r
-import org.eclipse.jface.wizard.WizardPage;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Button;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.ui.PartInitException;\r
-import org.simantics.Simantics;\r
-import org.simantics.db.Resource;\r
-import org.simantics.document.linking.report.ExportToPDF;\r
-import org.simantics.document.linking.report.templates.ReportWriter;\r
-import org.simantics.editors.Editors;\r
-import org.simantics.utils.ui.ErrorLogger;\r
-import org.simantics.utils.ui.ExceptionUtils;\r
-\r
-\r
-/**\r
- * Wizard page for generating a report.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public class ReportGeneratePage extends WizardPage {\r
-       \r
-       private Resource model;\r
-       private String filename;\r
-       private ReportWriter<?> reportWriter;\r
-       \r
-       \r
-       private Label fileLabel;\r
-       private Label reportLabel;\r
-       private Label statusLabel;\r
-       private Button generateButton;\r
-       private Button showButton;\r
-       private boolean generated = false;\r
-       \r
-       protected ReportGeneratePage(String pageName) {\r
-               super(pageName,pageName,null);\r
-               setGenerated(false);\r
-       }\r
-       \r
-       public void setFilename(String filename) {\r
-               this.filename = filename;\r
-               setGenerated(false);\r
-       }\r
-       \r
-       public void setReportWriter(ReportWriter<?> reportWriter) {\r
-               this.reportWriter = reportWriter;\r
-               setGenerated(false);\r
-       }\r
-       \r
-       public void setModel(Resource model) {\r
-               this.model = model;\r
-               setGenerated(false);\r
-       }\r
-\r
-       @Override\r
-       public void createControl(Composite parent) {\r
-               Composite composite = new Composite(parent, SWT.NONE);\r
-               composite.setLayout(new GridLayout(2,false));\r
-               Label label = new Label(composite, SWT.NONE);\r
-               label.setText("File:");\r
-               fileLabel = new Label(composite, SWT.NONE);\r
-               label = new Label(composite, SWT.NONE);\r
-               label.setText("Report:");\r
-               reportLabel = new Label(composite, SWT.NONE);\r
-               label = new Label(composite, SWT.NONE);\r
-               label.setText("Status:");\r
-               this.statusLabel = new Label(composite, SWT.NONE);\r
-               this.statusLabel.setText("Report has not been generated");\r
-               generateButton = new Button(composite, SWT.PUSH);\r
-               generateButton.setText("Generate report");\r
-               generateButton.addSelectionListener(new SelectionAdapter() {\r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               generate();\r
-                       }\r
-               });\r
-               showButton = new Button(composite, SWT.PUSH);\r
-               showButton.setText("Show Report");\r
-               showButton.addSelectionListener(new SelectionAdapter() {\r
-                       \r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               File file = new File(filename);\r
-                               if (file.exists() && file.canRead()) {\r
-                                       try {\r
-                                               Editors.openExternalEditor(file);\r
-                                       } catch (PartInitException err) {\r
-                                               ExceptionUtils.logAndShowError(err);\r
-                                       }\r
-                               }\r
-                       }\r
-               });\r
-               showButton.setEnabled(false);\r
-               updateContent();\r
-               setControl(composite);\r
-       }\r
-       \r
-       private void updateContent() {\r
-               fileLabel.setText(filename == null ? "File has not been selected" : filename);\r
-               reportLabel.setText(reportWriter == null ? "Report Writer has not been selected" : reportWriter.getName());\r
-               generateButton.setEnabled(filename != null && reportWriter != null && model != null);\r
-               showButton.setEnabled(generated);\r
-               generateButton.setEnabled(!generated);\r
-               if (!generated)\r
-                       statusLabel.setText("Report has not been generated");\r
-       }\r
-       \r
-       public void setGenerated(boolean b) {\r
-               generated = b;\r
-               setPageComplete(generated);\r
-       }\r
-       \r
-       private void generate() {\r
-               generateButton.setEnabled(false);\r
-               statusLabel.setText("Generating report");\r
-               try {\r
-                       getWizard().getContainer().run(true, false, new IRunnableWithProgress() {\r
-                               \r
-                               @Override\r
-                               public void run(final IProgressMonitor monitor) throws InvocationTargetException,\r
-                                               InterruptedException {\r
-\r
-                                       ExportToPDF exportToPDF = new ExportToPDF(Simantics.getSession(), model);\r
-                                       final IStatus status = exportToPDF.export(filename, reportWriter, monitor);\r
-                                       Display.getDefault().asyncExec(new Runnable() {\r
-                                               public void run() {\r
-                                                       if (!statusLabel.isDisposed()) {\r
-                                                               if (status.isOK())\r
-                                                                       statusLabel.setText(status.getMessage());\r
-                                                               else {\r
-                                                                       statusLabel.setText(status.getMessage());\r
-                                                                       ExceptionUtils.logError(status.getException());\r
-                                                               }\r
-                                                               setPageComplete(true);  \r
-                                                               ((Composite)getControl()).layout(true, true);\r
-                                                       }\r
-                                                       \r
-                                               };\r
-                                       });\r
-                                       monitor.done();\r
-                               }\r
-                       });\r
-               }  catch (InterruptedException err) {\r
-                       setErrorMessage("Report failed: " + err.getMessage());\r
-                       ErrorLogger.defaultLogError("Report failed.",err);\r
-                       statusLabel.setText("Report failed.");\r
-               } catch (InvocationTargetException e) {\r
-                   Throwable err = e.getCause();\r
-                       setErrorMessage("Report failed: " + err.getMessage());\r
-                       ErrorLogger.defaultLogError("Report failed.",err);\r
-                       statusLabel.setText("Report failed.");\r
-               }\r
-               setGenerated(true);\r
-               \r
-               showButton.setEnabled(true);\r
-               generateButton.setEnabled(false);\r
-               getContainer().updateButtons();\r
-       }\r
-       \r
-       @Override\r
-       public void setVisible(boolean visible) {\r
-               if (visible) {\r
-                       updateContent();\r
-               } else {\r
-                       setGenerated(false);\r
-               }\r
-               super.setVisible(visible);\r
-       }\r
-       \r
-       public boolean isGenerated() {\r
-               return generated;\r
-       }\r
-\r
-}\r
+package org.simantics.document.linking.wizard;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.PartInitException;
+import org.simantics.Simantics;
+import org.simantics.db.Resource;
+import org.simantics.document.linking.report.ExportToPDF;
+import org.simantics.document.linking.report.templates.ReportWriter;
+import org.simantics.editors.Editors;
+import org.simantics.utils.ui.ErrorLogger;
+import org.simantics.utils.ui.ExceptionUtils;
+
+
+/**
+ * Wizard page for generating a report.
+ * 
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+public class ReportGeneratePage extends WizardPage {
+       
+       private Resource model;
+       private String filename;
+       private ReportWriter<?> reportWriter;
+       
+       
+       private Label fileLabel;
+       private Label reportLabel;
+       private Label statusLabel;
+       private Button generateButton;
+       private Button showButton;
+       private boolean generated = false;
+       
+       protected ReportGeneratePage(String pageName) {
+               super(pageName,pageName,null);
+               setGenerated(false);
+       }
+       
+       public void setFilename(String filename) {
+               this.filename = filename;
+               setGenerated(false);
+       }
+       
+       public void setReportWriter(ReportWriter<?> reportWriter) {
+               this.reportWriter = reportWriter;
+               setGenerated(false);
+       }
+       
+       public void setModel(Resource model) {
+               this.model = model;
+               setGenerated(false);
+       }
+
+       @Override
+       public void createControl(Composite parent) {
+               Composite composite = new Composite(parent, SWT.NONE);
+               composite.setLayout(new GridLayout(2,false));
+               Label label = new Label(composite, SWT.NONE);
+               label.setText("File:");
+               fileLabel = new Label(composite, SWT.NONE);
+               label = new Label(composite, SWT.NONE);
+               label.setText("Report:");
+               reportLabel = new Label(composite, SWT.NONE);
+               label = new Label(composite, SWT.NONE);
+               label.setText("Status:");
+               this.statusLabel = new Label(composite, SWT.NONE);
+               this.statusLabel.setText("Report has not been generated");
+               generateButton = new Button(composite, SWT.PUSH);
+               generateButton.setText("Generate report");
+               generateButton.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               generate();
+                       }
+               });
+               showButton = new Button(composite, SWT.PUSH);
+               showButton.setText("Show Report");
+               showButton.addSelectionListener(new SelectionAdapter() {
+                       
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               File file = new File(filename);
+                               if (file.exists() && file.canRead()) {
+                                       try {
+                                               Editors.openExternalEditor(file);
+                                       } catch (PartInitException err) {
+                                               ExceptionUtils.logAndShowError(err);
+                                       }
+                               }
+                       }
+               });
+               showButton.setEnabled(false);
+               updateContent();
+               setControl(composite);
+       }
+       
+       private void updateContent() {
+               fileLabel.setText(filename == null ? "File has not been selected" : filename);
+               reportLabel.setText(reportWriter == null ? "Report Writer has not been selected" : reportWriter.getName());
+               generateButton.setEnabled(filename != null && reportWriter != null && model != null);
+               showButton.setEnabled(generated);
+               generateButton.setEnabled(!generated);
+               if (!generated)
+                       statusLabel.setText("Report has not been generated");
+       }
+       
+       public void setGenerated(boolean b) {
+               generated = b;
+               setPageComplete(generated);
+       }
+       
+       private void generate() {
+               generateButton.setEnabled(false);
+               statusLabel.setText("Generating report");
+               try {
+                       getWizard().getContainer().run(true, false, new IRunnableWithProgress() {
+                               
+                               @Override
+                               public void run(final IProgressMonitor monitor) throws InvocationTargetException,
+                                               InterruptedException {
+
+                                       ExportToPDF exportToPDF = new ExportToPDF(Simantics.getSession(), model);
+                                       final IStatus status = exportToPDF.export(filename, reportWriter, monitor);
+                                       Display.getDefault().asyncExec(new Runnable() {
+                                               public void run() {
+                                                       if (!statusLabel.isDisposed()) {
+                                                               if (status.isOK())
+                                                                       statusLabel.setText(status.getMessage());
+                                                               else {
+                                                                       statusLabel.setText(status.getMessage());
+                                                                       ExceptionUtils.logError(status.getException());
+                                                               }
+                                                               setPageComplete(true);  
+                                                               ((Composite)getControl()).layout(true, true);
+                                                       }
+                                                       
+                                               };
+                                       });
+                                       monitor.done();
+                               }
+                       });
+               }  catch (InterruptedException err) {
+                       setErrorMessage("Report failed: " + err.getMessage());
+                       ErrorLogger.defaultLogError("Report failed.",err);
+                       statusLabel.setText("Report failed.");
+               } catch (InvocationTargetException e) {
+                   Throwable err = e.getCause();
+                       setErrorMessage("Report failed: " + err.getMessage());
+                       ErrorLogger.defaultLogError("Report failed.",err);
+                       statusLabel.setText("Report failed.");
+               }
+               setGenerated(true);
+               
+               showButton.setEnabled(true);
+               generateButton.setEnabled(false);
+               getContainer().updateButtons();
+       }
+       
+       @Override
+       public void setVisible(boolean visible) {
+               if (visible) {
+                       updateContent();
+               } else {
+                       setGenerated(false);
+               }
+               super.setVisible(visible);
+       }
+       
+       public boolean isGenerated() {
+               return generated;
+       }
+
+}