/* * EuroCarbDB, a framework for carbohydrate bioinformatics * * Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * A copy of this license accompanies this distribution in the file LICENSE.txt. * * 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 Lesser General Public License * for more details. * * Last commit: $Rev: 1210 $ by $Author: glycoslave $ on $Date:: 2009-06-12 #$ */ /** @author Alessio Ceroni (a.ceroni@imperial.ac.uk) */ package org.eurocarbdb.application.glycoworkbench.plugin.reporting; import org.eurocarbdb.application.glycoworkbench.plugin.*; import org.eurocarbdb.application.glycoworkbench.*; import org.eurocarbdb.application.glycanbuilder.*; import java.awt.Rectangle; import java.awt.Dimension; import java.awt.Color; public class AnnotationReportOptions { public static final int DRAW_X_MARGIN_DEFAULT = 20; public int DRAW_X_MARGIN = DRAW_X_MARGIN_DEFAULT; public static final int DRAW_Y_MARGIN_DEFAULT = 20; public int DRAW_Y_MARGIN = DRAW_Y_MARGIN_DEFAULT; public static final int CHART_WIDTH_DEFAULT = 700; public int CHART_WIDTH = CHART_WIDTH_DEFAULT; public int CHART_WIDTH_NONSCALED = CHART_WIDTH_DEFAULT; public static final int CHART_HEIGHT_DEFAULT = 400; public int CHART_HEIGHT = CHART_HEIGHT_DEFAULT; public int CHART_HEIGHT_NONSCALED = CHART_HEIGHT_DEFAULT; public static final int CHART_X_MARGIN_DEFAULT = 20; public int CHART_X_MARGIN = CHART_X_MARGIN_DEFAULT; public int CHART_X_MARGIN_NONSCALED = CHART_X_MARGIN_DEFAULT; public static final int CHART_Y_MARGIN_DEFAULT = 20; public int CHART_Y_MARGIN = CHART_Y_MARGIN_DEFAULT; public int CHART_Y_MARGIN_NONSCALED = CHART_Y_MARGIN_DEFAULT; public static final int ANNOTATION_MARGIN_DEFAULT = 10; public int ANNOTATION_MARGIN = ANNOTATION_MARGIN_DEFAULT; public int ANNOTATION_MARGIN_NONSCALED = ANNOTATION_MARGIN_DEFAULT; public static final int ANNOTATION_MZ_SIZE_DEFAULT = 10; public int ANNOTATION_MZ_SIZE = ANNOTATION_MZ_SIZE_DEFAULT; public int ANNOTATION_MZ_SIZE_NONSCALED = ANNOTATION_MZ_SIZE_DEFAULT; public static final double ANNOTATION_LINE_WIDTH_DEFAULT = 1.; public double ANNOTATION_LINE_WIDTH = ANNOTATION_LINE_WIDTH_DEFAULT; public static final int ANNOTATION_LINE_MINY_DEFAULT = 12; public int ANNOTATION_LINE_MINY = ANNOTATION_LINE_MINY_DEFAULT; public int ANNOTATION_LINE_MINY_NONSCALED = ANNOTATION_LINE_MINY_DEFAULT; public static final String ANNOTATION_MZ_FONT_DEFAULT = "SansSerif.plain"; public String ANNOTATION_MZ_FONT = ANNOTATION_MZ_FONT_DEFAULT; public static final double SCALE_GLYCANS_DEFAULT = 0.35; public double SCALE_GLYCANS = SCALE_GLYCANS_DEFAULT; public double SCALE_GLYCANS_NONSCALED = SCALE_GLYCANS_DEFAULT; public static final Color SPECTRUM_COLOR_DEFAULT = Color.black; public Color SPECTRUM_COLOR = SPECTRUM_COLOR_DEFAULT; public static final Color MASS_TEXT_COLOR_DEFAULT = Color.black; public Color MASS_TEXT_COLOR = MASS_TEXT_COLOR_DEFAULT; public static final Color CONNECTION_LINES_COLOR_DEFAULT = Color.lightGray; public Color CONNECTION_LINES_COLOR = CONNECTION_LINES_COLOR_DEFAULT; public static final Color HIGHLIGHTED_COLOR_DEFAULT = Color.yellow; public Color HIGHLIGHTED_COLOR = HIGHLIGHTED_COLOR_DEFAULT; public double SCALE = 1.; // document creation options public boolean SHOW_RAW_SPECTRUM = true; public boolean SHOW_RELATIVE_INTENSITIES = true; public boolean SHOW_EMPTY_ANNOTATIONS = false; public boolean SHOW_MAX_INTENSITY = true; public void setScale(double scale) { if( scale>0. ) SCALE = scale; CHART_WIDTH = (int)(CHART_WIDTH_NONSCALED * SCALE); CHART_HEIGHT = (int)(CHART_HEIGHT_NONSCALED * SCALE); CHART_X_MARGIN = (int)(CHART_X_MARGIN_NONSCALED * SCALE); CHART_Y_MARGIN = (int)(CHART_Y_MARGIN_NONSCALED * SCALE); ANNOTATION_MARGIN = (int)(ANNOTATION_MARGIN_NONSCALED * SCALE); ANNOTATION_LINE_MINY = (int)(ANNOTATION_LINE_MINY_NONSCALED * SCALE); ANNOTATION_MZ_SIZE = (int)(ANNOTATION_MZ_SIZE_NONSCALED * SCALE); SCALE_GLYCANS = SCALE_GLYCANS_NONSCALED * SCALE; } public Dimension getDefaultViewDimension() { return new Dimension(CHART_WIDTH + 2*DRAW_X_MARGIN + 2*CHART_X_MARGIN, CHART_HEIGHT + 2*DRAW_Y_MARGIN + 2*CHART_Y_MARGIN); } public Dimension getViewDimension(Dimension draw) { return new Dimension(draw.width + 2*DRAW_X_MARGIN, draw.height + 2*DRAW_Y_MARGIN); } public Rectangle getDefaultDrawArea() { return new Rectangle(DRAW_X_MARGIN,DRAW_Y_MARGIN,CHART_WIDTH + 2*CHART_X_MARGIN,CHART_HEIGHT+ 2*CHART_Y_MARGIN); } public Rectangle getDefaultChartArea() { return new Rectangle(DRAW_X_MARGIN + CHART_X_MARGIN, DRAW_Y_MARGIN + CHART_Y_MARGIN, CHART_WIDTH , CHART_HEIGHT); } public void setValues(AnnotationReportOptions other) { Configuration config = new Configuration(); other.store(config); this.retrieve(config); } public void store(Configuration config) { config.put("AnnotationReportOptions","draw_x_margin",DRAW_X_MARGIN); config.put("AnnotationReportOptions","draw_y_margin",DRAW_Y_MARGIN); config.put("AnnotationReportOptions","chart_width",CHART_WIDTH_NONSCALED); config.put("AnnotationReportOptions","chart_height",CHART_HEIGHT_NONSCALED); config.put("AnnotationReportOptions","chart_x_margin",CHART_X_MARGIN_NONSCALED); config.put("AnnotationReportOptions","chart_y_margin",CHART_Y_MARGIN_NONSCALED); config.put("AnnotationReportOptions","annotation_margin",ANNOTATION_MARGIN_NONSCALED); config.put("AnnotationReportOptions","annotation_mz_size",ANNOTATION_MZ_SIZE_NONSCALED); config.put("AnnotationReportOptions","annotation_line_width",ANNOTATION_LINE_WIDTH); config.put("AnnotationReportOptions","annotation_line_miny",ANNOTATION_LINE_MINY_NONSCALED); config.put("AnnotationReportOptions","annotation_mz_font",ANNOTATION_MZ_FONT); config.put("AnnotationReportOptions","scale_glycans",SCALE_GLYCANS_NONSCALED); config.put("AnnotationReportOptions","show_raw_spectrum",SHOW_RAW_SPECTRUM); config.put("AnnotationReportOptions","show_relative_intensities",SHOW_RELATIVE_INTENSITIES); config.put("AnnotationReportOptions","show_empty_annotations",SHOW_EMPTY_ANNOTATIONS); config.put("AnnotationReportOptions","show_max_intensity",SHOW_MAX_INTENSITY); config.put("AnnotationReportOptions","spectrum_color",SPECTRUM_COLOR); config.put("AnnotationReportOptions","mass_text_color",MASS_TEXT_COLOR); config.put("AnnotationReportOptions","connection_lines_color",CONNECTION_LINES_COLOR); config.put("AnnotationReportOptions","highlighted_color",HIGHLIGHTED_COLOR); } public void retrieve(Configuration config) { DRAW_X_MARGIN = config.get("AnnotationReportOptions","draw_x_margin",DRAW_X_MARGIN); DRAW_Y_MARGIN = config.get("AnnotationReportOptions","draw_y_margin",DRAW_Y_MARGIN); CHART_WIDTH_NONSCALED = config.get("AnnotationReportOptions","chart_width",CHART_WIDTH_NONSCALED); CHART_HEIGHT_NONSCALED = config.get("AnnotationReportOptions","chart_height",CHART_HEIGHT_NONSCALED); CHART_X_MARGIN_NONSCALED = config.get("AnnotationReportOptions","chart_x_margin",CHART_X_MARGIN_NONSCALED); CHART_Y_MARGIN_NONSCALED = config.get("AnnotationReportOptions","chart_y_margin",CHART_Y_MARGIN_NONSCALED); ANNOTATION_MARGIN_NONSCALED = config.get("AnnotationReportOptions","annotation_margin",ANNOTATION_MARGIN_NONSCALED); ANNOTATION_MZ_SIZE_NONSCALED = config.get("AnnotationReportOptions","annotation_mz_size",ANNOTATION_MZ_SIZE_NONSCALED); ANNOTATION_LINE_WIDTH = config.get("AnnotationReportOptions","annotation_line_width",ANNOTATION_LINE_WIDTH); ANNOTATION_LINE_MINY_NONSCALED = config.get("AnnotationReportOptions","annotation_line_miny",ANNOTATION_LINE_MINY_NONSCALED); ANNOTATION_MZ_FONT = config.get("AnnotationReportOptions","annotation_mz_font",ANNOTATION_MZ_FONT); SCALE_GLYCANS_NONSCALED = config.get("AnnotationReportOptions","scale_glycans",SCALE_GLYCANS_NONSCALED); SHOW_RAW_SPECTRUM = config.get("AnnotationReportOptions","show_raw_spectrum",SHOW_RAW_SPECTRUM); SHOW_RELATIVE_INTENSITIES = config.get("AnnotationReportOptions","show_relative_intensities",SHOW_RELATIVE_INTENSITIES); SHOW_EMPTY_ANNOTATIONS = config.get("AnnotationReportOptions","show_empty_annotations",SHOW_EMPTY_ANNOTATIONS); SHOW_MAX_INTENSITY = config.get("AnnotationReportOptions","show_max_intensity",SHOW_MAX_INTENSITY); SPECTRUM_COLOR = config.get("AnnotationReportOptions","spectrum_color",SPECTRUM_COLOR); MASS_TEXT_COLOR = config.get("AnnotationReportOptions","mass_text_color",MASS_TEXT_COLOR); CONNECTION_LINES_COLOR = config.get("AnnotationReportOptions","connection_lines_color",CONNECTION_LINES_COLOR); HIGHLIGHTED_COLOR = config.get("AnnotationReportOptions","highlighted_color",HIGHLIGHTED_COLOR); } }