package org.basex.gui.dialog; import static org.basex.core.Text.*; import java.awt.BorderLayout; import org.basex.gui.GUI; import org.basex.gui.GUIProp; import org.basex.gui.layout.BaseXBack; import org.basex.gui.layout.BaseXButton; import org.basex.gui.layout.BaseXLabel; import org.basex.gui.layout.BaseXLayout; import org.basex.gui.layout.BaseXSlider; import org.basex.gui.layout.TableLayout; /** * Dialog window for changing the used colors. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class DialogColors extends Dialog { /** Maximum color range. */ private static final int MAXCOLOR = 32; /** Slider reference. */ private final BaseXSlider sliderRed; /** Slider reference. */ private final BaseXSlider sliderGreen; /** Slider reference. */ private final BaseXSlider sliderBlue; /** * Default constructor. * @param main reference to the main window */ public DialogColors(final GUI main) { super(main, COLOR_SCHEMA, false); final GUIProp gprop = gui.gprop; final BaseXBack p = new BaseXBack(new TableLayout(3, 2, 16, 8)); p.add(new BaseXLabel(RED)); sliderRed = newSlider(gprop.num(GUIProp.COLORRED)); p.add(sliderRed); p.add(new BaseXLabel(GREEN)); sliderGreen = newSlider(gprop.num(GUIProp.COLORGREEN)); p.add(sliderGreen); p.add(new BaseXLabel(BLUE)); sliderBlue = newSlider(gprop.num(GUIProp.COLORBLUE)); p.add(sliderBlue); set(p, BorderLayout.CENTER); set(newButtons(RESET), BorderLayout.SOUTH); finish(gprop.nums(GUIProp.COLORSLOC)); } /** * Creates a slider. * @param v initial value * @return slider reference */ private BaseXSlider newSlider(final int v) { final BaseXSlider slider = new BaseXSlider(0, MAXCOLOR, MAXCOLOR - v, this); BaseXLayout.setWidth(slider, 150); return slider; } @Override public void action(final Object comp) { final GUIProp gprop = gui.gprop; if(comp instanceof BaseXButton) { sliderRed.value(MAXCOLOR - (Integer) GUIProp.COLORRED[1]); sliderGreen.value(MAXCOLOR - (Integer) GUIProp.COLORGREEN[1]); sliderBlue.value(MAXCOLOR - (Integer) GUIProp.COLORBLUE[1]); } gprop.set(GUIProp.COLORRED, MAXCOLOR - sliderRed.value()); gprop.set(GUIProp.COLORGREEN, MAXCOLOR - sliderGreen.value()); gprop.set(GUIProp.COLORBLUE, MAXCOLOR - sliderBlue.value()); gui.updateLayout(); } }