All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.colorchooser.GrayChooser Maven / Gradle / Ivy

There is a newer version: 7.3
Show newest version
/*
 * @(#)GrayChooser.java  1.4  2006-04-23
 *
 * Copyright (c) 2005-2006 Werner Randelshofer
 * Staldenmattweg 2, Immensee, CH-6405, Switzerland.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * Werner Randelshofer. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entehue into
 * with Werner Randelshofer.
 */

package org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.colorchooser;

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.colorchooser.*;
import javax.swing.plaf.*;

import org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.*;
import org.pushingpixels.substance.internal.contrib.randelshofer.quaqua.util.*;

/**
 * A color chooser with a brightness slider.
 *
 * @author  Werner Randelshofer
 * @version 1.4 2006-04-23 Retrieve labels from UIManager. 
 * 
1.3 2005-11-22 Moved handler for text fields into separate class. *
1.2.1 2005-11-07 Get "Labels" ResourceBundle from UIManager. *
1.2 2005-09-05 Get font, spacing and icon from UIManager. *
1.1.1 2005-04-23 Localized form. Added color swatches for 0%, 25%, 50%, * 75% and 100% brightness. *
1.0 29 March 2005 Created. */ public class GrayChooser extends AbstractColorChooserPanel implements UIResource { private ColorSliderModel ccModel = new GrayColorSliderModel(); /** Creates new form. */ public GrayChooser() { initComponents(); Font font = UIManager.getFont("ColorChooser.font"); brightnessLabel.setFont(font); brightnessSlider.setFont(font); brightnessField.setFont(font); brightnessFieldLabel.setFont(font); zeroPercentButton.setFont(font); twentyFivePercentButton.setFont(font); fiftyPercentButton.setFont(font); seventyFivePercentButton.setFont(font); // int textSliderGap = UIManager.getInt("ColorChooser.textSliderGap"); if (textSliderGap != 0) { Border fieldBorder = new EmptyBorder(0,textSliderGap,0,0); brightnessFieldPanel.setBorder(fieldBorder); } ccModel.configureColorSlider(0, brightnessSlider); brightnessField.setText(Integer.toString(brightnessSlider.getValue())); Insets borderMargin = (Insets) UIManager.getInsets("Component.visualMargin").clone(); borderMargin.left = 3 - borderMargin.left; brightnessFieldLabel.putClientProperty("Quaqua.Component.visualMargin",borderMargin); new ColorSliderTextFieldHandler(brightnessField, ccModel, 0); ccModel.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent evt) { if (updateRecursion == 0) { setColorToModel(ccModel.getColor()); } } }); brightnessField.setMinimumSize(brightnessField.getPreferredSize()); VisualMargin bm = new VisualMargin(false,false,true,false); brightnessLabel.setBorder(bm); zeroPercentButton.putClientProperty("Quaqua.Button.style","colorWell"); twentyFivePercentButton.putClientProperty("Quaqua.Button.style","colorWell"); fiftyPercentButton.putClientProperty("Quaqua.Button.style","colorWell"); seventyFivePercentButton.putClientProperty("Quaqua.Button.style","colorWell"); hundredPercentButton.putClientProperty("Quaqua.Button.style","colorWell"); Border b = new CompoundBorder(new VisualMargin(), new SmallColorWellBorder()); zeroPercentButton.setBorder(b); twentyFivePercentButton.setBorder(b); fiftyPercentButton.setBorder(b); seventyFivePercentButton.setBorder(b); hundredPercentButton.setBorder(b); Insets bmInsets = UIManager.getInsets("Component.visualMargin"); Dimension d = new Dimension(12+bmInsets.left+bmInsets.right,12+bmInsets.top+bmInsets.bottom); zeroPercentButton.setPreferredSize(d); twentyFivePercentButton.setPreferredSize(d); fiftyPercentButton.setPreferredSize(d); seventyFivePercentButton.setPreferredSize(d); hundredPercentButton.setPreferredSize(d); } @Override protected void buildChooser() { } @Override public String getDisplayName() { return UIManager.getString("ColorChooser.grayScaleSlider"); } @Override public Icon getLargeDisplayIcon() { return UIManager.getIcon("ColorChooser.colorSlidersIcon"); } @Override public Icon getSmallDisplayIcon() { return getLargeDisplayIcon(); } /** * We have to prevent us from constantly updating the color model, because * the gray chooser is not able to preserve all color components. */ private int updateRecursion; @Override public void updateChooser() { updateRecursion++; Color cfm = getColorFromModel(); ccModel.setColor(cfm); updateRecursion--; } public void setColorToModel(Color color) { getColorSelectionModel().setSelectedColor(color); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; brightnessLabel = new javax.swing.JLabel(); brightnessSlider = new javax.swing.JSlider(); brightnessFieldPanel = new javax.swing.JPanel(); brightnessField = new javax.swing.JTextField(); brightnessFieldLabel = new javax.swing.JLabel(); springPanel = new javax.swing.JPanel(); percentPanel = new javax.swing.JPanel(); zeroPercentButton = new javax.swing.JButton(); twentyFivePercentButton = new javax.swing.JButton(); fiftyPercentButton = new javax.swing.JButton(); seventyFivePercentButton = new javax.swing.JButton(); hundredPercentButton = new javax.swing.JButton(); setLayout(new java.awt.GridBagLayout()); brightnessLabel.setText(UIManager.getString("ColorChooser.hsbBrightnessText")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; gridBagConstraints.insets = new java.awt.Insets(1, 0, 0, 0); add(brightnessLabel, gridBagConstraints); brightnessSlider.setMajorTickSpacing(100); brightnessSlider.setMinorTickSpacing(50); brightnessSlider.setPaintTicks(true); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridwidth = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; add(brightnessSlider, gridBagConstraints); brightnessFieldPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); brightnessField.setColumns(3); brightnessField.setHorizontalAlignment(javax.swing.JTextField.TRAILING); brightnessField.setText("0"); brightnessField.addFocusListener(new java.awt.event.FocusAdapter() { @Override public void focusLost(java.awt.event.FocusEvent evt) { brightnessFieldFocusLost(evt); } }); brightnessFieldPanel.add(brightnessField); brightnessFieldLabel.setText("%"); brightnessFieldPanel.add(brightnessFieldLabel); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; add(brightnessFieldPanel, gridBagConstraints); springPanel.setLayout(new java.awt.BorderLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 100; gridBagConstraints.weighty = 1.0; add(springPanel, gridBagConstraints); percentPanel.setLayout(new java.awt.GridBagLayout()); zeroPercentButton.setBackground(new java.awt.Color(0, 0, 0)); zeroPercentButton.setToolTipText("0 %"); zeroPercentButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { percentActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; percentPanel.add(zeroPercentButton, gridBagConstraints); twentyFivePercentButton.setBackground(new java.awt.Color(64, 64, 64)); twentyFivePercentButton.setToolTipText("25 %"); twentyFivePercentButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { percentActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; gridBagConstraints.weightx = 1.0; percentPanel.add(twentyFivePercentButton, gridBagConstraints); fiftyPercentButton.setBackground(new java.awt.Color(128, 128, 128)); fiftyPercentButton.setToolTipText("50 %"); fiftyPercentButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { percentActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; percentPanel.add(fiftyPercentButton, gridBagConstraints); seventyFivePercentButton.setBackground(new java.awt.Color(192, 192, 192)); seventyFivePercentButton.setToolTipText("75 %"); seventyFivePercentButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { percentActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; gridBagConstraints.weightx = 1.0; percentPanel.add(seventyFivePercentButton, gridBagConstraints); hundredPercentButton.setBackground(new java.awt.Color(255, 255, 255)); hundredPercentButton.setToolTipText("100 %"); hundredPercentButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { percentActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; percentPanel.add(hundredPercentButton, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; add(percentPanel, gridBagConstraints); }// //GEN-END:initComponents private void percentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_percentActionPerformed setColorToModel(((JButton) evt.getSource()).getBackground()); }//GEN-LAST:event_percentActionPerformed private void brightnessFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_brightnessFieldFocusLost brightnessField.setText(Integer.toString(ccModel.getBoundedRangeModel(0).getValue())); }//GEN-LAST:event_brightnessFieldFocusLost // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField brightnessField; private javax.swing.JLabel brightnessFieldLabel; private javax.swing.JPanel brightnessFieldPanel; private javax.swing.JLabel brightnessLabel; private javax.swing.JSlider brightnessSlider; private javax.swing.JButton fiftyPercentButton; private javax.swing.JButton hundredPercentButton; private javax.swing.JPanel percentPanel; private javax.swing.JButton seventyFivePercentButton; private javax.swing.JPanel springPanel; private javax.swing.JButton twentyFivePercentButton; private javax.swing.JButton zeroPercentButton; // End of variables declaration//GEN-END:variables }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy