/* Copyright 2016 Will Winder This file is part of Universal Gcode Sender (UGS). UGS 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. UGS 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 UGS. If not, see <http://www.gnu.org/licenses/>. */ package com.willwinder.ugs.nbm.visualizer.options; import com.willwinder.ugs.nbp.lib.options.OptionTable.Option; import com.willwinder.universalgcodesender.i18n.Localization; import java.awt.Color; import java.util.ArrayList; import org.openide.util.NbPreferences; /** * * @author wwinder */ public class VisualizerOptions extends ArrayList<Option> { public class ColorPref { public String preference; public String localized; public Color defaultColor; public ColorPref(String p, String l, Color c) { preference = p; localized = l; defaultColor = c; } } public VisualizerOptions() { // GcodeRenderer clear color add(getOption("platform.visualizer.color.background", "", new Color(220,235,255))); // Tool renderable add(getOption("platform.visualizer.color.tool", "", new Color(237,255,0))); // GcodeModel renderable add(getOption("platform.visualizer.color.linear", "", new Color(0,0,158))); add(getOption("platform.visualizer.color.rapid", "", new Color(204,204,0))); add(getOption("platform.visualizer.color.arc", "", new Color(178,34,34))); add(getOption("platform.visualizer.color.plunge", "", new Color(0,100,0))); add(getOption("platform.visualizer.color.completed", "", new Color(190,190,190))); // Highlight renderable add(getOption("platform.visualizer.color.highlight", "", new Color(237,255,0))); // Grid renderable add(getOption("platform.visualizer.color.xy-grid", "", new Color(179,179,179))); add(getOption("platform.visualizer.color.xy-plane", "", new Color(77,77,77,29))); add(getOption("platform.visualizer.color.x-axis", "", new Color(230,0,0))); add(getOption("platform.visualizer.color.y-axis", "", new Color(0,0,230))); add(getOption("platform.visualizer.color.z-axis", "", new Color(0,230,0))); // SizeDisplay renderable add(getOption("platform.visualizer.color.sizedisplay", "", new Color(128,128,128))); } private Option getOption(String op, String desc, Color def) { return new Option<>(op, Localization.getString(op), desc, getColorOption(op, def)); } public Option getOptionForKey(String key) { for (Option op : this) { if (op.option.equals(key)) { return op; } } return null; } public static float[] colorToFloatArray(Color c) { float[] ret = new float[4]; ret[0] = c.getRed()/255f; ret[1] = c.getGreen()/255f; ret[2] = c.getBlue()/255f; ret[3] = c.getAlpha()/255f; return ret; } public static Color getColorOption(String option, Color defaultColor) { int pref = NbPreferences.forModule(VisualizerOptions.class).getInt(option, defaultColor.getRGB()); return new Color(pref, true); } public static void setColorOption(String option, Color color) { NbPreferences.forModule(VisualizerOptions.class).putInt(option, color.getRGB()); } }