All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dpfmanager.shell.interfaces.gui.component.show.ShowController Maven / Gradle / Ivy

/**
 * 

ShowController.java

This program is free software: you can redistribute it * and/or modify it under the terms of the GNU General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any later version; or, * at your choice, under the terms of the Mozilla Public License, v. 2.0. SPDX GPL-3.0+ or MPL-2.0+. *

This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License and the Mozilla Public License for more details.

*

You should have received a copy of the GNU General Public License and the Mozilla Public * License along with this program. If not, see http://www.gnu.org/licenses/ * and at http://mozilla.org/MPL/2.0 .

NB: for the * © statement, include Easy Innova SL or other company/Person contributing the code.

© * 2015 Easy Innova, SL

* * @author Adrià Llorens * @version 1.0 * @since 23/7/2015 */ package dpfmanager.shell.interfaces.gui.component.show; import dpfmanager.shell.core.config.BasicConfig; import dpfmanager.shell.core.config.GuiConfig; import dpfmanager.shell.core.messages.ReportsMessage; import dpfmanager.shell.core.messages.UiMessage; import dpfmanager.shell.core.mvc.DpfController; import dpfmanager.shell.core.util.NodeUtil; import dpfmanager.shell.modules.messages.messages.AlertMessage; import dpfmanager.shell.modules.messages.messages.LogMessage; import com.google.gson.GsonBuilder; import com.google.gson.JsonParser; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.IOFileFilter; import org.apache.logging.log4j.Level; import java.awt.*; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Collection; /** * Created by Adrià Llorens on 17/03/2016. */ public class ShowController extends DpfController { public ShowController(){ } public void showSingleReport(String type, String path) { // getContext().send(BasicConfig.MODULE_MESSAGE, new LogMessage(getClass(), Level.DEBUG, "Showing report...")); switch (type) { case "html": getView().showWebView(path); break; case "xml": showComboTextArea(path,"xml"); break; case "mets": showComboTextArea(path,"mets.xml"); break; case "json": showComboTextArea(path, "json"); break; case "pdf": try { getView().getContext().send(GuiConfig.PERSPECTIVE_REPORTS,new UiMessage()); Desktop.getDesktop().open(new File(path)); } catch (IOException e) { e.printStackTrace(); } break; default: break; } } public void showComboTextArea(String folderPath, String extension){ int count = 0; // Clear comboBox getView().clearComboBox(); // Check if summary File summary = new File(folderPath); if (summary.isFile()){ getView().setCurrentReportParams(summary.getParent(), extension); getView().addComboChild(summary.getName().replace("." + extension, ""), true); count++; } // Add all individuals File folder = new File(folderPath); if (folder.isFile()){ folder = folder.getParentFile(); } getView().setCurrentReportParams(folder.getPath(), extension); IOFileFilter filter = customFilter(extension); IOFileFilter filterDir = customFilterDir(folder.getPath()); Collection childs = FileUtils.listFiles(folder, filter, filterDir); for (File child : childs){ String onlyName = child.getName().replace("."+extension, ""); if (count == 0){ getView().addComboChild(onlyName, true); } else { getView().addComboChild(onlyName, false); } count++; } // Show nodes getView().showTextArea(); if (count > 1){ getView().showComboBox(); } } public IOFileFilter customFilter(String extension){ return new IOFileFilter() { @Override public boolean accept(File file) { if (file.isDirectory()){ return false; } if (file.getName().startsWith("summary")){ return false; } if (extension.equals("xml") && file.getName().endsWith(extension) && !file.getName().endsWith(".mets.xml")){ return true; } else if (!extension.equals("xml")) { return file.getName().endsWith(extension); } return false; } @Override public boolean accept(File file, String s) { return true; } }; } public IOFileFilter customFilterDir(String path){ return new IOFileFilter() { @Override public boolean accept(File file) { return true; } @Override public boolean accept(File file, String s) { return file.getPath().equals(path); } }; } public String getContent(String path) { String content = ""; try { byte[] encoded = Files.readAllBytes(Paths.get(path)); content = new String(encoded); if (path.endsWith("json")){ content = new GsonBuilder().setPrettyPrinting().create().toJson(new JsonParser().parse(content)); } } catch (IOException ex) { ex.printStackTrace(); } return content; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy