]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/gui/colour/ColourChooser.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / gui / colour / ColourChooser.java
diff --git a/tim/prune/gui/colour/ColourChooser.java b/tim/prune/gui/colour/ColourChooser.java
deleted file mode 100644 (file)
index 3c40b4a..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package tim.prune.gui.colour;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import tim.prune.I18nManager;
-
-/**
- * Class to offer a dialog to choose a colour.
- * Normally a JColorChooser would be used, but this is too buggy
- * in Java 1.6 and extremely prone to thread-locking, meaning
- * that the application has to be killed (and all data lost).
- */
-public class ColourChooser
-{
-       /** main dialog object */
-       private JDialog _dialog = null;
-       /** array of three slider objects for rgb */
-       private JSlider[] _rgbSliders = null;
-       /** array of labels for rgb values */
-       private JLabel[] _rgbLabels = null;
-       /** colour patch */
-       private ColourPatch _patch = null;
-       /** chosen colour */
-       private Color _chosenColour = null;
-
-
-       /**
-        * Constructor
-        * @param inParent parent dialog
-        */
-       public ColourChooser(JDialog inParent)
-       {
-               _dialog = new JDialog(inParent, I18nManager.getText("dialog.colourchooser.title"), true);
-               _dialog.setLocationRelativeTo(inParent);
-               _dialog.getContentPane().add(makeContents());
-               _dialog.pack();
-       }
-
-       /**
-        * Make the dialog contents
-        * @return JPanel containing dialog elements
-        */
-       private JPanel makeContents()
-       {
-               JPanel mainPanel = new JPanel();
-               mainPanel.setLayout(new BorderLayout());
-               _rgbSliders = new JSlider[3];
-               _rgbLabels = new JLabel[3];
-               _patch = new ColourPatch(Color.WHITE);
-               JPanel centrePanel = new JPanel();
-               centrePanel.setLayout(new BorderLayout());
-               centrePanel.add(_patch, BorderLayout.CENTER);
-
-               JPanel sliderPanel = new JPanel();
-               sliderPanel.setLayout(new BoxLayout(sliderPanel, BoxLayout.Y_AXIS));
-               final String[] labelKeys = {"red", "green", "blue"};
-               for (int i=0; i<3; i++)
-               {
-                       String key = I18nManager.getText("dialog.colourchooser." + labelKeys[i]);
-                       sliderPanel.add(new JLabel(key));
-                       _rgbSliders[i] = new JSlider(0, 255);
-                       _rgbSliders[i].addChangeListener(new ChangeListener() {
-                               public void stateChanged(ChangeEvent arg0) {
-                                       updatePatch();
-                               }
-                       });
-                       _rgbSliders[i].setToolTipText(key);
-                       JPanel sliderHolder = new JPanel();
-                       sliderHolder.setLayout(new BorderLayout(5, 0));
-                       sliderHolder.add(_rgbSliders[i], BorderLayout.CENTER);
-                       _rgbLabels[i] = new JLabel("255");
-                       _rgbLabels[i].setPreferredSize(new Dimension(40, 1));
-                       sliderHolder.add(_rgbLabels[i], BorderLayout.EAST);
-                       sliderPanel.add(sliderHolder);
-               }
-               centrePanel.add(sliderPanel, BorderLayout.SOUTH);
-               mainPanel.add(centrePanel, BorderLayout.CENTER);
-
-               // Button panel for ok, cancel
-               JPanel buttonPanel = new JPanel();
-               buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
-               JButton okButton = new JButton(I18nManager.getText("button.ok"));
-               okButton.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               _chosenColour = _patch.getBackground();
-                               _dialog.setVisible(false);
-                       }
-               });
-               buttonPanel.add(okButton);
-               JButton cancelButton = new JButton(I18nManager.getText("button.cancel"));
-               cancelButton.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               _chosenColour = null;
-                               _dialog.setVisible(false);
-                       }
-               });
-               buttonPanel.add(cancelButton);
-               mainPanel.add(buttonPanel, BorderLayout.SOUTH);
-               return mainPanel;
-       }
-
-       /**
-        * Show the dialog to choose a colour
-        * @param inStartColour current colour
-        */
-       public void showDialog(Color inStartColour)
-       {
-               // Initialise sliders
-               _rgbSliders[0].setValue(inStartColour.getRed());
-               _rgbSliders[1].setValue(inStartColour.getGreen());
-               _rgbSliders[2].setValue(inStartColour.getBlue());
-               updatePatch();
-               _dialog.setLocationRelativeTo(_dialog.getParent());
-               _dialog.setVisible(true);
-       }
-
-       /**
-        * Update the patch colour from the slider values
-        */
-       private void updatePatch()
-       {
-               for (int i=0; i<3; i++) {
-                       _rgbLabels[i].setText("" + _rgbSliders[i].getValue());
-               }
-               final Color colour = new Color(_rgbSliders[0].getValue(),
-                       _rgbSliders[1].getValue(),_rgbSliders[2].getValue());
-               _patch.setColour(colour);
-       }
-
-       /**
-        * @return the selected colour, or null if cancel pressed
-        */
-       public Color getChosenColour()
-       {
-               return _chosenColour;
-       }
-}