/* * funCKit - functional Circuit Kit * Copyright (C) 2013 Lukas Elsner <open@mindrunner.de> * Copyright (C) 2013 Peter Dahlberg <catdog2@tuxzone.org> * Copyright (C) 2013 Julian Stier <mail@julian-stier.de> * Copyright (C) 2013 Sebastian Vetter <mail@b4sti.eu> * Copyright (C) 2013 Thomas Poxrucker <poxrucker_t@web.de> * Copyright (C) 2013 Alexander Treml <alex.treml@directbox.com> * * 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. * * 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 for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package de.sep2011.funckit.model.sessionmodel; import de.sep2011.funckit.model.graphmodel.Brick; import javax.swing.UIManager; import java.awt.Color; import java.util.Locale; import static de.sep2011.funckit.model.sessionmodel.Settings.ACCESS_POINT_SCATTER_FACTOR; import static de.sep2011.funckit.model.sessionmodel.Settings.DEFAULT_BRICK_HEIGHT; import static de.sep2011.funckit.model.sessionmodel.Settings.DEFAULT_BRICK_ORIENTATION; import static de.sep2011.funckit.model.sessionmodel.Settings.DEFAULT_BRICK_WIDTH; import static de.sep2011.funckit.model.sessionmodel.Settings.DEFAULT_TIMER_DELAY; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_ACTIVE_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_ACTIVE_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_ERROR_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_INPUT_LABEL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_OUTPUT_LABEL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_SELECTED_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_SELECTED_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_SIMULATED_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_SIMULATED_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.ELEMENT_TYPE_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.EXPERT_MODE; import static de.sep2011.funckit.model.sessionmodel.Settings.GATE_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.GHOST_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.GHOST_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.GRID_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.GRID_LOCK; import static de.sep2011.funckit.model.sessionmodel.Settings.GRID_SIZE; import static de.sep2011.funckit.model.sessionmodel.Settings.INPUT_RADIUS; import static de.sep2011.funckit.model.sessionmodel.Settings.LIGHT_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.LOOK_AND_FEEL; import static de.sep2011.funckit.model.sessionmodel.Settings.LOW_RENDERING_QUALITY_MODE; import static de.sep2011.funckit.model.sessionmodel.Settings.Language; import static de.sep2011.funckit.model.sessionmodel.Settings.MAXIMUM_COMMAND_QUEUE_SIZE; import static de.sep2011.funckit.model.sessionmodel.Settings.OUTPUT_RADIUS; import static de.sep2011.funckit.model.sessionmodel.Settings.SCROLL_SPEED; import static de.sep2011.funckit.model.sessionmodel.Settings.SELECTION_BORDER_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.SELECTION_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.SHOW_TOOLTIPS; import static de.sep2011.funckit.model.sessionmodel.Settings.SIMULATION_SLIDER_FACTOR; import static de.sep2011.funckit.model.sessionmodel.Settings.SWITCH_FILL_COLOR; import static de.sep2011.funckit.model.sessionmodel.Settings.WIRE_SCATTER_FACTOR; /** * Wrapper class that contains default settings, accessible from all over the * application. Adding new default settings is very simple: just set them in * static-area of <code>DefaultSettings</code> and assign them any value. They * are automatically applied on application startup, if they have no * user-defined value, yet. */ public class DefaultSettings { private static final Settings DEFAULT_SETTINGS = new Settings(); static { /* Do not automatically save. */ DEFAULT_SETTINGS.setAutosave(false); DEFAULT_SETTINGS.set(DEFAULT_BRICK_ORIENTATION, Brick.Orientation.WEST); DEFAULT_SETTINGS.set(DEFAULT_BRICK_WIDTH, 40); DEFAULT_SETTINGS.set(DEFAULT_BRICK_HEIGHT, 40); DEFAULT_SETTINGS.set(MAXIMUM_COMMAND_QUEUE_SIZE, 100); DEFAULT_SETTINGS.set(GRID_SIZE, 20); DEFAULT_SETTINGS.set(GRID_COLOR, new Color(220, 220, 220)); DEFAULT_SETTINGS.set(SELECTION_BORDER_COLOR, new Color(100, 100, 255, 200)); DEFAULT_SETTINGS.set(SELECTION_FILL_COLOR, new Color(150, 150, 255, 100)); DEFAULT_SETTINGS.set(ELEMENT_BORDER_COLOR, new Color(0, 0, 0)); DEFAULT_SETTINGS.set(ELEMENT_FILL_COLOR, new Color(107, 234, 201)); DEFAULT_SETTINGS.set(ELEMENT_ERROR_BORDER_COLOR, Color.RED); DEFAULT_SETTINGS.set(ELEMENT_ACTIVE_BORDER_COLOR, new Color(20, 20, 20)); DEFAULT_SETTINGS.set(ELEMENT_ACTIVE_FILL_COLOR, new Color(220, 220, 255)); DEFAULT_SETTINGS.set(ELEMENT_SELECTED_BORDER_COLOR, new Color(50, 50, 200)); DEFAULT_SETTINGS.set(ELEMENT_SELECTED_FILL_COLOR, new Color(220, 220, 255)); DEFAULT_SETTINGS.set(ELEMENT_SIMULATED_BORDER_COLOR, new Color(0, 0, 0)); DEFAULT_SETTINGS.set(ELEMENT_SIMULATED_FILL_COLOR, new Color(222, 255, 50)); DEFAULT_SETTINGS.set(GATE_FILL_COLOR, new Color(146, 230, 129)); DEFAULT_SETTINGS.set(LIGHT_FILL_COLOR, new Color(160, 200, 200)); DEFAULT_SETTINGS.set(SWITCH_FILL_COLOR, new Color(160, 200, 200 )); DEFAULT_SETTINGS.set(ELEMENT_INPUT_LABEL_COLOR, new Color(135, 0, 84)); DEFAULT_SETTINGS.set(ELEMENT_OUTPUT_LABEL_COLOR, new Color(135, 0, 84)); DEFAULT_SETTINGS.set(SCROLL_SPEED, 20); DEFAULT_SETTINGS.set(LOOK_AND_FEEL, UIManager.getSystemLookAndFeelClassName()); DEFAULT_SETTINGS.set(Language, Locale.getDefault().getLanguage()); DEFAULT_SETTINGS.set(GRID_LOCK, true); DEFAULT_SETTINGS.set(LOW_RENDERING_QUALITY_MODE, false); DEFAULT_SETTINGS.set(DEFAULT_TIMER_DELAY, 1000); DEFAULT_SETTINGS.set(SHOW_TOOLTIPS, true); DEFAULT_SETTINGS.set(ACCESS_POINT_SCATTER_FACTOR, 15); DEFAULT_SETTINGS.set(WIRE_SCATTER_FACTOR, 7); DEFAULT_SETTINGS.set(GHOST_BORDER_COLOR, Color.GRAY); DEFAULT_SETTINGS.set(GHOST_FILL_COLOR, new Color(1, 1, 1, 0.5f)); DEFAULT_SETTINGS.set(ELEMENT_TYPE_COLOR, new Color(100, 0, 100)); DEFAULT_SETTINGS.set(ELEMENT_INPUT_LABEL_COLOR, new Color(100, 0, 100)); DEFAULT_SETTINGS.set(ELEMENT_OUTPUT_LABEL_COLOR, new Color(100, 0, 100)); DEFAULT_SETTINGS.set(EXPERT_MODE, false); DEFAULT_SETTINGS.set(SIMULATION_SLIDER_FACTOR, 20.0); DEFAULT_SETTINGS.set(INPUT_RADIUS, 2); DEFAULT_SETTINGS.set(OUTPUT_RADIUS, 2); } /** * Returns the default settings instance. * * @return the default settings instance. */ public static Settings getDefaultSettings() { return DEFAULT_SETTINGS; } }