Jalview 2.6 source licence
[jalview.git] / src / jalview / gui / JvSwingUtils.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
3  * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  * 
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package jalview.gui;
19
20 import java.awt.Color;
21 import java.awt.Font;
22 import java.awt.event.ActionListener;
23
24 import javax.swing.JButton;
25 import javax.swing.SwingConstants;
26
27 /**
28  * useful functions for building Swing GUIs
29  * @author JimP
30  *
31  */
32 public final class JvSwingUtils
33 {
34   /**
35    * wrap a bare html safe string to around 60 characters per line using a <table width=350><tr><td></td> field 
36    * @param ttext
37    * @return
38    */
39   public static String wrapTooltip(String ttext)
40   {
41     if (ttext.length()<60)
42     {
43       return ttext;
44     } else {
45       return "<table width=350 border=0><tr><td>"+ttext+"</td></tr></table>";
46     }
47   }
48   public static JButton makeButton(String label, String tooltip,
49           ActionListener action)
50   {
51     JButton button = new JButton();
52     button.setText(label);
53     // TODO: get the base font metrics for the Jalview gui from somewhere
54     button.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
55     button.setForeground(Color.black);
56     button.setHorizontalAlignment(SwingConstants.CENTER);
57     button.setToolTipText(tooltip);
58     button.addActionListener(action);
59     return button;
60   }
61
62 }