X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fstructure%2FStructureImportSettings.java;h=b5672ab6c2fb5454facbfdb72e90db7928be63e6;hb=e99c06994dd1e8e0d1740b7eaa89cd2c63861e89;hp=b23fd53cf9d16a259731ae6e5fea6f3bd65a35f7;hpb=0bec4854366c4bc4608ed0d7dc1506fc6afe2285;p=jalview.git diff --git a/src/jalview/structure/StructureImportSettings.java b/src/jalview/structure/StructureImportSettings.java index b23fd53..b5672ab 100644 --- a/src/jalview/structure/StructureImportSettings.java +++ b/src/jalview/structure/StructureImportSettings.java @@ -1,103 +1,168 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview 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. + * + * Jalview 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 for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.structure; -import jalview.datamodel.DBRefSource; - -public class StructureImportSettings +import jalview.bin.ApplicationSingletonProvider; +import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.PDBEntry.Type; + +/** + * bean holding settings for structure IO. TODO: tests for validation of values + * TODO: tests for race conditions (all fields are static, is that correct ?) + * + * @author tcofoegbu + * + */ +public class StructureImportSettings implements ApplicationSingletonI { + + private StructureImportSettings() + { + // private singleton + } + + private static StructureImportSettings getInstance() + { + return (StructureImportSettings) ApplicationSingletonProvider + .getInstance(StructureImportSettings.class); + } + /** * set to true to add derived sequence annotations (temp factor read from * file, or computed secondary structure) to the alignment */ - private static boolean visibleChainAnnotation = false; + private boolean visibleChainAnnotation = false; /** * Set true to predict secondary structure (using JMol for protein, Annotate3D * for RNA) */ - private static boolean predictSecStr = false; + private boolean processSecStr = false; /** * Set true (with predictSecondaryStructure=true) to predict secondary * structure using an external service (currently Annotate3D for RNA only) */ - private static boolean externalSecondaryStructure = false; + private boolean externalSecondaryStructure = false; + + private boolean showSeqFeatures = true; - private static boolean showSeqFeatures = true; + public enum StructureParser + { + JMOL_PARSER, JALVIEW_PARSER + } - private static boolean processHETATMs = false; + /** + * Determines the default file format for structure files to be downloaded + * from the PDB sequence fetcher. Possible options include: PDB|mmCIF + */ + private PDBEntry.Type defaultStructureFileFormat = Type.PDB; - private static String currentDefaultFormat = DBRefSource.PDB; + /** + * Determines the parser used for parsing PDB format file. Possible options + * are : JMolParser|JalveiwParser + */ + private StructureParser defaultPDBFileParser = StructureParser.JMOL_PARSER; public static void addSettings(boolean addAlignmentAnnotations, - boolean predictSecStr, boolean externalSecStr) + boolean processSecStr, boolean externalSecStr) { - StructureImportSettings.visibleChainAnnotation = addAlignmentAnnotations; - StructureImportSettings.predictSecStr = predictSecStr; - StructureImportSettings.externalSecondaryStructure = externalSecStr; - StructureImportSettings.showSeqFeatures = true; + StructureImportSettings s = getInstance(); + s.visibleChainAnnotation = addAlignmentAnnotations; + s.processSecStr = processSecStr; + s.externalSecondaryStructure = externalSecStr; + s.showSeqFeatures = true; } public static boolean isVisibleChainAnnotation() { - return visibleChainAnnotation; + return getInstance().visibleChainAnnotation; } public static void setVisibleChainAnnotation( boolean visibleChainAnnotation) { - StructureImportSettings.visibleChainAnnotation = visibleChainAnnotation; + getInstance().visibleChainAnnotation = visibleChainAnnotation; } - public static boolean isPredictSecondaryStructure() + public static boolean isProcessSecondaryStructure() { - return predictSecStr; + return getInstance().processSecStr; } - public static void setPredictSecondaryStructure( - boolean predictSecondaryStructure) + public static void setProcessSecondaryStructure( + boolean processSecondaryStructure) { - StructureImportSettings.predictSecStr = predictSecondaryStructure; + getInstance().processSecStr = processSecondaryStructure; } public static boolean isExternalSecondaryStructure() { - return externalSecondaryStructure; + return getInstance().externalSecondaryStructure; } public static void setExternalSecondaryStructure( boolean externalSecondaryStructure) { - StructureImportSettings.externalSecondaryStructure = externalSecondaryStructure; + getInstance().externalSecondaryStructure = externalSecondaryStructure; } public static boolean isShowSeqFeatures() { - return showSeqFeatures; + return getInstance().showSeqFeatures; } public static void setShowSeqFeatures(boolean showSeqFeatures) { - StructureImportSettings.showSeqFeatures = showSeqFeatures; + getInstance().showSeqFeatures = showSeqFeatures; + } + + public static PDBEntry.Type getDefaultStructureFileFormat() + { + return getInstance().defaultStructureFileFormat; } - public static String getCurrentDefaultFormat() + public static void setDefaultStructureFileFormat( + String defaultStructureFileFormat) { - return currentDefaultFormat; + getInstance().defaultStructureFileFormat = PDBEntry.Type + .valueOf(defaultStructureFileFormat.toUpperCase()); } - public static void setCurrentDefaultFormat(String currentDefaultFormat) + public static String getDefaultPDBFileParser() { - StructureImportSettings.currentDefaultFormat = currentDefaultFormat; + return getInstance().defaultPDBFileParser.toString(); } - public static boolean isProcessHETATMs() + public static void setDefaultPDBFileParser( + StructureParser defaultPDBFileParser) { - return processHETATMs; + getInstance().defaultPDBFileParser = defaultPDBFileParser; } - public static void setProcessHETATMs(boolean processHETATMs) + public static void setDefaultPDBFileParser(String defaultPDBFileParser) { - StructureImportSettings.processHETATMs = processHETATMs; + getInstance().defaultPDBFileParser = StructureParser + .valueOf(defaultPDBFileParser.toUpperCase()); } }