Skip to content

Commit

Permalink
[HTML Report] Update progress dialog with more messages
Browse files Browse the repository at this point in the history
  • Loading branch information
Phillipus committed Jul 12, 2019
1 parent 042ca81 commit 958c6a3
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
Expand Down Expand Up @@ -263,19 +262,15 @@ public File createReport(File targetFolder, String indexFileName, IProgressMonit
// Write model purpose and properties html
writeElement(new File(elementsFolder, "model.html"), stFrame, fModel); //$NON-NLS-1$

// Write all folders
// Write all folders and concepts
writeFolders(elementsFolder, stFrame, fModel.getFolders());

setProgressSubTask(Messages.HTMLReportExporter_12);
// Write other graphical objects
writeGraphicalObjects(objectsFolder, stFrame);

// Write Diagrams and images
writeDiagrams(imagesFolder, viewsFolder, stFrame);

setProgressSubTask(Messages.HTMLReportExporter_11);

// Write other graphical objects
writeGraphicalObjects(objectsFolder, stFrame);

setProgressSubTask(Messages.HTMLReportExporter_13);

// Write root model.html frame
Expand Down Expand Up @@ -329,7 +324,7 @@ private void copyHintsFiles(File targetFolder) throws IOException {
/**
* Write all folders
*/
private void writeFolders(File elementsFolder, ST stFrame, EList<IFolder> folders) throws IOException {
private void writeFolders(File elementsFolder, ST stFrame, List<IFolder> folders) throws IOException {
for(IFolder folder : folders) {
writeFolder(elementsFolder, stFrame, folder);
}
Expand All @@ -339,19 +334,23 @@ private void writeFolders(File elementsFolder, ST stFrame, EList<IFolder> folder
* Write a single folder
*/
private void writeFolder(File elementsFolder, ST stFrame, IFolder folder) throws IOException {
writeElements(elementsFolder, stFrame, folder.getElements());
writeElements(elementsFolder, stFrame, folder);
writeFolders(elementsFolder, stFrame, folder.getFolders());
}

/**
* Write all elements
*/
private void writeElements(File elementsFolder, ST stFrame, List<EObject> list) throws IOException {
if(!list.isEmpty()) {
for(EObject object : list) {
if(object instanceof IArchimateConcept) {
writeElement(new File(elementsFolder, ((IIdentifier) object).getId() + ".html"), stFrame, object); //$NON-NLS-1$
}
private void writeElements(File elementsFolder, ST stFrame, IFolder folder) throws IOException {
List<EObject> elements = folder.getElements();
int total = elements.size();
int i = 1;

for(EObject object : elements) {
if(object instanceof IArchimateConcept) {
setProgressSubTask(NLS.bind(Messages.HTMLReportExporter_12, new Object[] { folder.getName(), i++, total } ));
updateProgress();
writeElement(new File(elementsFolder, ((IIdentifier) object).getId() + ".html"), stFrame, object); //$NON-NLS-1$
}
}
}
Expand All @@ -367,19 +366,27 @@ private void writeElement(File elementFile, ST stFrame, EObject component) throw
try(OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(elementFile), "UTF8")) { //$NON-NLS-1$
writer.write(stFrame.render());
}

updateProgress();
}

/**
* Write grpahical objects
* Write graphical objects
*/
private void writeGraphicalObjects(File objectsFolder, ST stFrame) throws IOException {
for(Iterator<EObject> iter = fModel.eAllContents(); iter.hasNext();) {
EObject eObject = iter.next();
if(eObject instanceof IDiagramModelObject && !(eObject instanceof IDiagramModelArchimateObject)
&& !(eObject instanceof IDiagramModelReference)) {
writeElement(new File(objectsFolder, ((IIdentifier) eObject).getId() + ".html"), stFrame, eObject); //$NON-NLS-1$
List<IDiagramModel> diagramModels = fModel.getDiagramModels();
int total = diagramModels.size();
int i = 1;

for(IDiagramModel dm : diagramModels) {
setProgressSubTask(NLS.bind(Messages.HTMLReportExporter_15, i++, total));
updateProgress();

for(Iterator<EObject> iter = dm.eAllContents(); iter.hasNext();) {
EObject eObject = iter.next();
if(eObject instanceof IDiagramModelObject && !(eObject instanceof IDiagramModelArchimateObject)
&& !(eObject instanceof IDiagramModelReference)) {

writeElement(new File(objectsFolder, ((IIdentifier) eObject).getId() + ".html"), stFrame, eObject); //$NON-NLS-1$
}
}
}
}
Expand All @@ -388,14 +395,22 @@ private void writeGraphicalObjects(File objectsFolder, ST stFrame) throws IOExce
* Write diagrams
*/
private void writeDiagrams(File imagesFolder, File viewsFolder, ST stFrame) throws IOException {
if(fModel.getDiagramModels().isEmpty()) {
List<IDiagramModel> diagramModels = fModel.getDiagramModels();

if(diagramModels.isEmpty()) {
return;
}

// Save images
saveImages(imagesFolder);

int total = diagramModels.size();
int i = 1;

for(IDiagramModel dm : diagramModels) {
setProgressSubTask(NLS.bind(Messages.HTMLReportExporter_4, i++, total));
updateProgress();

for(IDiagramModel dm : fModel.getDiagramModels()) {
// Add the necessary bounds in order to get correct absolute coordinates for the elements in the generated image
Rectangle bounds = diagramBoundsMap.get(dm);

Expand Down Expand Up @@ -427,7 +442,14 @@ private void saveImages(File imagesFolder) throws IOException {

int nameCount = 1;

for(IDiagramModel dm : fModel.getDiagramModels()) {
List<IDiagramModel> diagramModels = fModel.getDiagramModels();
int total = diagramModels.size();
int i = 1;

for(IDiagramModel dm : diagramModels) {
setProgressSubTask(NLS.bind(Messages.HTMLReportExporter_8, i++, total));
updateProgress();

ModelReferencedImage geoImage = DiagramUtils.createModelReferencedImage(dm, 1, 10);
Image image = geoImage.getImage();

Expand Down Expand Up @@ -465,8 +487,6 @@ private void saveImages(File imagesFolder) throws IOException {
finally {
image.dispose();
}

updateProgress();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,22 @@ public class Messages extends NLS {

public static String HTMLReportExporter_14;

public static String HTMLReportExporter_15;

public static String HTMLReportExporter_2;

public static String HTMLReportExporter_3;

public static String HTMLReportExporter_4;

public static String HTMLReportExporter_5;

public static String HTMLReportExporter_6;

public static String HTMLReportExporter_7;

public static String HTMLReportExporter_8;

public static String HTMLReportExporter_9;

static {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ HTMLReportExporter_0=(HTML Report Preview)
HTMLReportExporter_1=View
HTMLReportExporter_10=Copying hints...
HTMLReportExporter_11=Creating files...
HTMLReportExporter_12=Creating Diagrams and Images...
HTMLReportExporter_12=Writing ''{0}'' folder: {1} of {2} concepts
HTMLReportExporter_13=Finalising...
HTMLReportExporter_14=User Cancelled
HTMLReportExporter_15=Writing objects for View {0} of {1}
HTMLReportExporter_2=HTML Report
HTMLReportExporter_3=Choose a folder in which to generate the report.
HTMLReportExporter_4=Generating View {0} of {1}
HTMLReportExporter_5=''{0}'' is not empty. Are you sure you want to overwrite it?
HTMLReportExporter_6=Creating Report
HTMLReportExporter_7=Opening Browser...
HTMLReportExporter_8=Generating image for View {0} of {1}
HTMLReportExporter_9=Copying files...

0 comments on commit 958c6a3

Please sign in to comment.