/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
* Jalview 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.
- *
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
* Jalview 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 Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
-import java.util.*;
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.border.LineBorder;
-import javax.swing.event.*;
+import jalview.datamodel.GraphLine;
+import jalview.schemes.AnnotationColourGradient;
+import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
-import jalview.datamodel.*;
-import jalview.schemes.*;
+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 java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.Hashtable;
+
+import javax.swing.BorderFactory;
+import javax.swing.JCheckBox;
+import javax.swing.JColorChooser;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.JTextField;
+import javax.swing.border.LineBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
-public class FeatureColourChooser extends JPanel
+public class FeatureColourChooser extends JalviewDialog
{
- JDialog frame;
-
// FeatureSettings fs;
FeatureRenderer fr;
this.fr = frender;
this.type = type;
ap = fr.ap;
- frame = new JDialog(Desktop.instance, true);
- frame.setTitle("Graduated Feature Colour for " + type);
- Rectangle deskr = Desktop.instance.getBounds();
- frame.setBounds(new Rectangle((int) (deskr.getCenterX() - 240),
- (int) (deskr.getCenterY() - 92), 480, 185));
- frame.setContentPane(this);
+ initDialogFrame(this, true, block, "Graduated Feature Colour for "
+ + type, 480, 185);
// frame.setLayer(JLayeredPane.PALETTE_LAYER);
// Desktop.addInternalFrame(frame, "Graduated Feature Colour for "+type,
// 480, 145);
}
});
- float mm[] = ((float[][]) fr.minmax.get(type))[0];
+ float mm[] = ((float[][]) fr.getMinMax().get(type))[0];
min = mm[0];
max = mm[1];
- oldcs = fr.featureColours.get(type);
+ oldcs = fr.getFeatureColours().get(type);
if (oldcs instanceof GraduatedColor)
{
if (((GraduatedColor) oldcs).isAutoScale())
adjusting = false;
changeColour();
- if (!block)
- {
- new Thread(new Runnable()
- {
-
- public void run()
- {
- frame.show();
- }
-
- }).start();
- }
- else
- {
- frame.show();
- }
+ waitForInput();
}
public FeatureColourChooser()
private void jbInit() throws Exception
{
- minColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+ minColour.setFont(JvSwingUtils.getLabelFont());
minColour.setBorder(BorderFactory.createLineBorder(Color.black));
minColour.setPreferredSize(new Dimension(40, 20));
- minColour.setToolTipText("Minimum Colour");
+ minColour.setToolTipText(MessageManager.getString("label.min_colour"));
minColour.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
}
}
});
- maxColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+ maxColour.setFont(JvSwingUtils.getLabelFont());
maxColour.setBorder(BorderFactory.createLineBorder(Color.black));
maxColour.setPreferredSize(new Dimension(40, 20));
- maxColour.setToolTipText("Maximum Colour");
+ maxColour.setToolTipText(MessageManager.getString("label.max_colour"));
maxColour.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
}
});
maxColour.setBorder(new LineBorder(Color.black));
- minText.setText("Min:");
- minText.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- maxText.setText("Max:");
- maxText.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- ok.setOpaque(false);
- ok.setText("OK");
- ok.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- ok_actionPerformed(e);
- }
- });
- cancel.setOpaque(false);
- cancel.setText("Cancel");
- cancel.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- cancel_actionPerformed(e);
- }
- });
+ minText.setText(MessageManager.getString("label.min"));
+ minText.setFont(JvSwingUtils.getLabelFont());
+ maxText.setText(MessageManager.getString("label.max"));
+ maxText.setFont(JvSwingUtils.getLabelFont());
this.setLayout(borderLayout1);
jPanel2.setLayout(flowLayout1);
jPanel1.setBackground(Color.white);
threshold_actionPerformed(e);
}
});
- threshold.setToolTipText("Threshold the feature display by score.");
- threshold.addItem("No Threshold"); // index 0
- threshold.addItem("Above Threshold"); // index 1
- threshold.addItem("Below Threshold"); // index 2
+ threshold.setToolTipText(MessageManager
+ .getString("label.threshold_feature_display_by_score"));
+ threshold.addItem(MessageManager
+ .getString("label.threshold_feature_no_thereshold")); // index 0
+ threshold.addItem(MessageManager
+ .getString("label.threshold_feature_above_thereshold")); // index 1
+ threshold.addItem(MessageManager
+ .getString("label.threshold_feature_below_thereshold")); // index 2
jPanel3.setLayout(flowLayout2);
thresholdValue.addActionListener(new ActionListener()
{
slider.setEnabled(false);
slider.setOpaque(false);
slider.setPreferredSize(new Dimension(100, 32));
- slider.setToolTipText("Adjust threshold");
+ slider.setToolTipText(MessageManager
+ .getString("label.adjust_thereshold"));
thresholdValue.setEnabled(false);
thresholdValue.setColumns(7);
jPanel3.setBackground(Color.white);
thresholdIsMin.setBackground(Color.white);
- thresholdIsMin.setText("Threshold is Min/Max");
- thresholdIsMin
- .setToolTipText("Toggle between absolute and relative display threshold.");
+ thresholdIsMin.setText(MessageManager
+ .getString("label.threshold_minmax"));
+ thresholdIsMin.setToolTipText(MessageManager
+ .getString("label.toggle_absolute_relative_display_threshold"));
thresholdIsMin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent actionEvent)
}
});
colourByLabel.setBackground(Color.white);
- colourByLabel.setText("Colour by Label");
colourByLabel
- .setToolTipText("Display features of the same type with a different label using a different colour. (e.g. domain features)");
+ .setText(MessageManager.getString("label.colour_by_label"));
+ colourByLabel
+ .setToolTipText(MessageManager
+ .getString("label.display_features_same_type_different_label_using_different_colour"));
colourByLabel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent actionEvent)
JPanel maxColour = new JPanel();
- JButton ok = new JButton();
-
- JButton cancel = new JButton();
-
JPanel colourPanel = new JPanel();
JPanel jPanel1 = new JPanel();
public void minColour_actionPerformed()
{
Color col = JColorChooser.showDialog(this,
- "Select Colour for Minimum Value", minColour.getBackground());
+ MessageManager.getString("label.select_colour_minimum_value"),
+ minColour.getBackground());
if (col != null)
{
minColour.setBackground(col);
public void maxColour_actionPerformed()
{
Color col = JColorChooser.showDialog(this,
- "Select Colour for Maximum Value", maxColour.getBackground());
+ MessageManager.getString("label.select_colour_maximum_value"),
+ maxColour.getBackground());
if (col != null)
{
maxColour.setBackground(col);
}
int aboveThreshold = AnnotationColourGradient.NO_THRESHOLD;
- if (threshold.getSelectedItem().equals("Above Threshold"))
+ if (threshold.getSelectedIndex() == 1)
{
aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD;
}
- else if (threshold.getSelectedItem().equals("Below Threshold"))
+ else if (threshold.getSelectedIndex() == 2)
{
aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD;
}
maxColour.setForeground(oldmaxColour);
minColour.setForeground(oldminColour);
}
- fr.featureColours.put(type, acg);
+ fr.setColour(type, acg);
cs = acg;
ap.paintAlignment(false);
}
- private void raiseClosed()
+ protected void raiseClosed()
{
if (this.colourEditor != null)
{
}
}
- public void ok_actionPerformed(ActionEvent e)
+ public void okPressed()
{
changeColour();
- try
- {
- frame.dispose();
- raiseClosed();
- } catch (Exception ex)
- {
- }
}
- public void cancel_actionPerformed(ActionEvent e)
+ public void cancelPressed()
{
reset();
- try
- {
- frame.dispose();
- // frame.setClosed(true);
- raiseClosed();
- } catch (Exception ex)
- {
- }
}
void reset()
{
- fr.featureColours.put(type, oldcs);
+ fr.setColour(type, oldcs);
ap.paintAlignment(false);
cs = null;
}