From 5806d17e56631f54d960f752ce33cb28a1617122 Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 23 Jan 2011 23:25:20 +0000 Subject: [PATCH] added v1 conversion warnings --- .../DIYLC/src/org/diylc/presenter/Presenter.java | 14 +++++++++++++- .../org/diylc/presenter/ProjectFileManager.java | 15 +++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index 601f60a4..d0b9030a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -205,9 +205,21 @@ public class Presenter implements IPlugInPort { public void loadProjectFromFile(String fileName) { LOG.info(String.format("loadProjectFromFile(%s)", fileName)); try { - Project project = (Project) projectFileManager.deserializeProjectFromFile(fileName); + List warnings = new ArrayList(); + Project project = (Project) projectFileManager.deserializeProjectFromFile(fileName, + warnings); loadProject(project, true); projectFileManager.fireFileStatusChanged(); + if (!warnings.isEmpty()) { + StringBuilder builder = new StringBuilder( + "File was opened, but there were some issues with it:

"); + for (String warning : warnings) { + builder.append(warning); + builder.append("
"); + } + builder.append(" warnings) throws SAXException, IOException, ParserConfigurationException { LOG.info(String.format("loadProjectFromFile(%s)", fileName)); Project project; @@ -90,7 +92,7 @@ public class ProjectFileManager { String formatVersion = doc.getDocumentElement().getAttribute("formatVersion"); if (formatVersion == null || formatVersion.trim().isEmpty()) { LOG.debug("Detected v1 file."); - project = parseV1File(doc.getDocumentElement()); + project = parseV1File(doc.getDocumentElement(), warnings); } else if (formatVersion.equals("2.0")) { LOG.debug("Detected v2 file."); project = parseV2File(doc.getDocumentElement()); @@ -98,6 +100,7 @@ public class ProjectFileManager { throw new IllegalArgumentException("Unknown file format version: " + formatVersion); } } + Collections.sort(warnings); this.currentFileName = fileName; this.modified = false; return project; @@ -121,7 +124,7 @@ public class ProjectFileManager { isModified()); } - private Project parseV1File(Element root) { + private Project parseV1File(Element root, List warnings) { Project project = new Project(); project.setTitle(root.getAttribute("Project")); project.setAuthor(root.getAttribute("Credits")); @@ -254,7 +257,11 @@ public class ProjectFileManager { ic.setValue(valueAttr); component = ic; } else { - LOG.debug("Could not recognize component type " + nodeName); + String message = "Could not recognize component type " + nodeName; + LOG.debug(message); + if (!warnings.contains(message)) { + warnings.add(message); + } } if (component != null) { project.getComponents().add(component);