package net.trevize.galatee; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Properties; public class GalateeProperties { private static Properties properties; private static final String PROPERTIES_FILEPATH = "./config/Galatee.properties"; private static final String PROPERTIES_COMMENTS = "This is the properties file of Galatee, a Java library for exploring and searching in large image collection where images are annotated\n#Nicolas James <nicolas.james@gmail.com> [[http://njames.trevize.net]]"; public static final String PROPERTY_IMAGE_WIDTH = "IMAGE_WIDTH"; public static final String PROPERTY_IMAGE_HEIGHT = "IMAGE_HEIGHT"; public static final String PROPERTY_VERTICAL_SCROLLBAR_UNIT_INCREMENT = "VERTICAL_SCROLLBAR_UNIT_INCREMENT"; public static final String PROPERTY_HORIZONTAL_SCROLLBAR_UNIT_INCREMENT = "HORIZONTAL_SCROLLBAR_UNIT_INCREMENT"; public static final String PROPERTY_DESCRIPTION_WIDTH = "DESCRIPTION_WIDTH"; public static final String PROPERTY_NUMBER_OF_COLUMN = "NUMBER_OF_COLUMN"; public static final String PROPERTY_CELL_OUTER_WIDTH = "CELL_OUTER_WIDTH"; public static final String PROPERTY_CELL_OUTER_HEIGHT = "CELL_OUTER_HEIGHT"; public static final String PROPERTY_CELL_PADDING_WIDTH = "CELL_PADDING_WIDTH"; public static final String PROPERTY_CELL_PADDING_HEIGHT = "CELL_PADDING_HEIGHT"; public static final String PROPERTY_IMAGE_DESCRIPTION_SPACER = "IMAGE_DESCRIPTION_SPACER"; public static final String PROPERTY_UNSELECTED_ITEM_BACKGROUND_COLOR = "UNSELECTED_ITEM_BACKGROUND_COLOR"; public static final String PROPERTY_SELECTED_ITEM_BACKGROUND_COLOR = "SELECTED_ITEM_BACKGROUND_COLOR"; public static final String PROPERTY_TEMPORARY_DIRECTORY = "TEMPORARY_DIRECTORY"; public static final String PROPERTY_AUTHORIZED_FILENAME_EXTENSIONS = "AUTHORIZED_FILENAME_EXTENSIONS"; public static final String PROPERTY_IMAGE_ERROR_FILE_PATH = "IMAGE_ERROR_FILE_PATH"; private static int image_width; private static int image_height; private static int horizontal_scrollbar_unit_increment; private static int vertical_scrollbar_unit_increment; private static int description_width; private static int number_of_column; private static int cell_outer_width; private static int cell_outer_height; private static int cell_padding_width; private static int cell_padding_height; private static int image_description_spacer; private static String unselected_item_background_color; private static String selected_item_background_color; private static String temporary_directory; private static ArrayList<String> authorized_filename_extensions; private static String image_error_file_path; private static void loadProperties() { image_width = 128; image_height = 128; horizontal_scrollbar_unit_increment = 42; vertical_scrollbar_unit_increment = 42; description_width = 400; number_of_column = 1; cell_outer_width = 5; cell_outer_height = 0; cell_padding_width = 0; cell_padding_height = 0; image_description_spacer = 5; unselected_item_background_color = "#D4D4D4"; selected_item_background_color = "#00A9E0"; temporary_directory = "temp"; authorized_filename_extensions = new ArrayList<String>(); authorized_filename_extensions.add("tif"); authorized_filename_extensions.add("tiff"); authorized_filename_extensions.add("gif"); authorized_filename_extensions.add("jpg"); authorized_filename_extensions.add("png"); image_error_file_path = "./gfx/imageLoadingError.jpg"; } /* Copy fo the properties file: #This is the properties file of Galatee, a Java library for exploring and searching in large image collection where images are annotated #Nicolas James <nicolas.james@gmail.com> [[http://njames.trevize.net]] #Wed Apr 10 18:52:48 EDT 2013 IMAGE_WIDTH=128 CELL_OUTER_HEIGHT=5 HORIZONTAL_SCROLLBAR_UNIT_INCREMENT=42 VERTICAL_SCROLLBAR_UNIT_INCREMENT=42 NUMBER_OF_COLUMN=1 CELL_OUTER_WIDTH=5 AUTHORIZED_FILENAME_EXTENSIONS=jpg,jpeg,png,gif,svg,bmp,ppm,pgm,tif IMAGE_DESCRIPTION_SPACER=2 CELL_PADDING_WIDTH=0 UNSELECTED_ITEM_BACKGROUND_COLOR=\#D4D4D4 IMAGE_ERROR_FILE_PATH=./gfx/imageLoadingError.jpg CELL_PADDING_HEIGHT=0 IMAGE_HEIGHT=128 TEMPORARY_DIRECTORY=/TEMP SELECTED_ITEM_BACKGROUND_COLOR=\#00A9E0 DESCRIPTION_WIDTH=400 */ private static void loadPropertiesNOT() { if (properties == null) { properties = new Properties(); try { properties.load(new FileInputStream(PROPERTIES_FILEPATH)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } image_width = Integer.parseInt(properties .getProperty(PROPERTY_IMAGE_WIDTH)); image_height = Integer.parseInt(properties .getProperty(PROPERTY_IMAGE_HEIGHT)); horizontal_scrollbar_unit_increment = Integer.parseInt(properties .getProperty(PROPERTY_HORIZONTAL_SCROLLBAR_UNIT_INCREMENT)); vertical_scrollbar_unit_increment = Integer.parseInt(properties .getProperty(PROPERTY_VERTICAL_SCROLLBAR_UNIT_INCREMENT)); description_width = Integer.parseInt(properties .getProperty(PROPERTY_DESCRIPTION_WIDTH)); number_of_column = Integer.parseInt(properties .getProperty(PROPERTY_NUMBER_OF_COLUMN)); cell_outer_width = Integer.parseInt(properties .getProperty(PROPERTY_CELL_OUTER_WIDTH)); cell_outer_height = Integer.parseInt(properties .getProperty(PROPERTY_CELL_OUTER_HEIGHT)); cell_padding_width = Integer.parseInt(properties .getProperty(PROPERTY_CELL_PADDING_WIDTH)); cell_padding_height = Integer.parseInt(properties .getProperty(PROPERTY_CELL_PADDING_HEIGHT)); image_description_spacer = Integer.parseInt(properties .getProperty(PROPERTY_IMAGE_DESCRIPTION_SPACER)); unselected_item_background_color = properties .getProperty(PROPERTY_UNSELECTED_ITEM_BACKGROUND_COLOR); selected_item_background_color = properties .getProperty(PROPERTY_SELECTED_ITEM_BACKGROUND_COLOR); temporary_directory = properties .getProperty(PROPERTY_TEMPORARY_DIRECTORY); authorized_filename_extensions = new ArrayList<String>( Arrays.asList(properties.getProperty( PROPERTY_AUTHORIZED_FILENAME_EXTENSIONS).split(","))); image_error_file_path = properties .getProperty(PROPERTY_IMAGE_ERROR_FILE_PATH); } } public static void saveProperties() { try { properties.setProperty(PROPERTY_IMAGE_WIDTH, "" + image_width); properties.setProperty(PROPERTY_IMAGE_HEIGHT, "" + image_height); properties.setProperty( PROPERTY_HORIZONTAL_SCROLLBAR_UNIT_INCREMENT, "" + horizontal_scrollbar_unit_increment); properties.setProperty(PROPERTY_VERTICAL_SCROLLBAR_UNIT_INCREMENT, "" + vertical_scrollbar_unit_increment); properties.setProperty(PROPERTY_DESCRIPTION_WIDTH, "" + description_width); properties.setProperty(PROPERTY_NUMBER_OF_COLUMN, "" + number_of_column); properties.setProperty(PROPERTY_CELL_OUTER_WIDTH, "" + cell_outer_width); properties.setProperty(PROPERTY_CELL_OUTER_HEIGHT, "" + cell_outer_height); properties.setProperty(PROPERTY_CELL_PADDING_WIDTH, "" + cell_padding_width); properties.setProperty(PROPERTY_CELL_PADDING_HEIGHT, "" + cell_padding_height); properties.setProperty(PROPERTY_IMAGE_DESCRIPTION_SPACER, "" + image_description_spacer); properties.setProperty(PROPERTY_UNSELECTED_ITEM_BACKGROUND_COLOR, unselected_item_background_color); properties.setProperty(PROPERTY_SELECTED_ITEM_BACKGROUND_COLOR, selected_item_background_color); properties.setProperty(PROPERTY_TEMPORARY_DIRECTORY, temporary_directory); StringBuffer sb = new StringBuffer(); for (int i = 0; i < authorized_filename_extensions.size(); ++i) { sb.append(authorized_filename_extensions.get(i)); if (i != authorized_filename_extensions.size() - 1) { sb.append(","); } } FileWriter fw = new FileWriter(PROPERTIES_FILEPATH); properties.store(fw, PROPERTIES_COMMENTS); fw.close(); } catch (IOException e) { e.printStackTrace(); } } public static int getDescription_width() { if (properties == null) { loadProperties(); } return description_width; } public static void setDescription_width(int description_width) { if (properties == null) { loadProperties(); } GalateeProperties.description_width = description_width; } public static int getNumber_of_column() { if (properties == null) { loadProperties(); } return number_of_column; } public static void setNumber_of_column(int number_of_column) { if (properties == null) { loadProperties(); } GalateeProperties.number_of_column = number_of_column; } public static int getCell_outer_width() { if (properties == null) { loadProperties(); } return cell_outer_width; } public static void setCell_outer_width(int cell_outer_width) { if (properties == null) { loadProperties(); } GalateeProperties.cell_outer_width = cell_outer_width; } public static int getCell_outer_height() { if (properties == null) { loadProperties(); } return cell_outer_height; } public static void setCell_outer_height(int cell_outer_height) { if (properties == null) { loadProperties(); } GalateeProperties.cell_outer_height = cell_outer_height; } public static int getCell_padding_width() { if (properties == null) { loadProperties(); } return cell_padding_width; } public static void setCell_padding_width(int cell_padding_width) { if (properties == null) { loadProperties(); } GalateeProperties.cell_padding_width = cell_padding_width; } public static int getCell_padding_height() { if (properties == null) { loadProperties(); } return cell_padding_height; } public static void setCell_padding_height(int cell_padding_height) { if (properties == null) { loadProperties(); } GalateeProperties.cell_padding_height = cell_padding_height; } public static int getImage_description_spacer() { if (properties == null) { loadProperties(); } return image_description_spacer; } public static void setImage_description_spacer(int image_description_spacer) { if (properties == null) { loadProperties(); } GalateeProperties.image_description_spacer = image_description_spacer; } public static String getUnselected_item_background_color() { if (properties == null) { loadProperties(); } return unselected_item_background_color; } public static void setUnselected_item_background_color( String unselected_item_background_color) { if (properties == null) { loadProperties(); } GalateeProperties.unselected_item_background_color = unselected_item_background_color; } public static String getSelected_item_background_color() { if (properties == null) { loadProperties(); } return selected_item_background_color; } public static void setSelected_item_background_color( String selected_item_background_color) { if (properties == null) { loadProperties(); } GalateeProperties.selected_item_background_color = selected_item_background_color; } public static int getImage_width() { if (properties == null) { loadProperties(); } return image_width; } public static void setImage_width(int image_width) { if (properties == null) { loadProperties(); } GalateeProperties.image_width = image_width; } public static int getImage_height() { if (properties == null) { loadProperties(); } return image_height; } public static void setImage_height(int image_height) { if (properties == null) { loadProperties(); } GalateeProperties.image_height = image_height; } public static int getHorizontal_scrollbar_unit_increment() { if (properties == null) { loadProperties(); } return horizontal_scrollbar_unit_increment; } public static void setHorizontal_scrollbar_unit_increment( int horizontal_scrollbar_unit_increment) { if (properties == null) { loadProperties(); } GalateeProperties.horizontal_scrollbar_unit_increment = horizontal_scrollbar_unit_increment; } public static int getVertical_scrollbar_unit_increment() { if (properties == null) { loadProperties(); } return vertical_scrollbar_unit_increment; } public static void setVertical_scrollbar_unit_increment( int vertical_scrollbar_unit_increment) { if (properties == null) { loadProperties(); } GalateeProperties.vertical_scrollbar_unit_increment = vertical_scrollbar_unit_increment; } public static String getTemporary_directory() { if (properties == null) { loadProperties(); } return temporary_directory; } public static void setTemporary_directory(String temporary_directory) { if (properties == null) { loadProperties(); } GalateeProperties.temporary_directory = temporary_directory; } public static ArrayList<String> getAuthorized_filename_extensions() { if (properties == null) { loadProperties(); } return authorized_filename_extensions; } public static void setAuthorized_filename_extensions( ArrayList<String> authorized_filename_extensions) { if (properties == null) { loadProperties(); } GalateeProperties.authorized_filename_extensions = authorized_filename_extensions; } public static String getImage_error_file_path() { if (properties == null) { loadProperties(); } return image_error_file_path; } }