X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJvSwingUtils.java;h=b921a81fda1e129facc764c7aff60f6d42178ad8;hb=cb4b4b590add93fb0fb5c5ecd1d0532f1456ecc2;hp=a98dc4c8952f203fd99bed1f08a87bbfeca2c069;hpb=153dd62dc91da13ae732600e6ea55ddbe15eab39;p=jalview.git
diff --git a/src/jalview/gui/JvSwingUtils.java b/src/jalview/gui/JvSwingUtils.java
index a98dc4c..b921a81 100644
--- a/src/jalview/gui/JvSwingUtils.java
+++ b/src/jalview/gui/JvSwingUtils.java
@@ -19,32 +19,48 @@ package jalview.gui;
import java.awt.Color;
import java.awt.Font;
+import java.awt.Rectangle;
import java.awt.event.ActionListener;
import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
import javax.swing.SwingConstants;
/**
* useful functions for building Swing GUIs
+ *
* @author JimP
- *
+ *
*/
public final class JvSwingUtils
{
/**
- * wrap a bare html safe string to around 60 characters per line using a
| field
+ * wrap a bare html safe string to around 60 characters per line using a
+ *
+ *
+ * | field
+ *
* @param ttext
* @return
*/
public static String wrapTooltip(String ttext)
{
- if (ttext.length()<60)
+ if (ttext.length() < 60)
{
return ttext;
- } else {
- return "";
+ }
+ else
+ {
+ return "";
}
}
+
public static JButton makeButton(String label, String tooltip,
ActionListener action)
{
@@ -59,4 +75,120 @@ public final class JvSwingUtils
return button;
}
+ /**
+ * find or add a submenu with the given title in the given menu
+ *
+ * @param menu
+ * @param submenu
+ * @return the new or existing submenu
+ */
+ public static JMenu findOrCreateMenu(JMenu menu, String submenu)
+ {
+ JMenu submenuinstance = null;
+ for (int i = 0, iSize = menu.getMenuComponentCount(); i < iSize; i++)
+ {
+ if (menu.getMenuComponent(i) instanceof JMenu
+ && ((JMenu) menu.getMenuComponent(i)).getText().equals(
+ submenu))
+ {
+ submenuinstance = (JMenu) menu.getMenuComponent(i);
+ }
+ }
+ if (submenuinstance == null)
+ {
+ submenuinstance = new JMenu(submenu);
+ menu.add(submenuinstance);
+ }
+ return submenuinstance;
+
+ }
+
+ /**
+ *
+ * @param panel
+ * @param tooltip
+ * @param label
+ * @param valBox
+ * @return the GUI element created that was added to the layout so it's attributes can be changed.
+ */
+ public static JPanel addtoLayout(JPanel panel, String tooltip, JComponent label, JComponent valBox)
+ {
+ JPanel laypanel = new JPanel(),labPanel=new JPanel(), valPanel=new JPanel();
+ // laypanel.setSize(panel.getPreferredSize());
+ // laypanel.setLayout(null);
+ labPanel.setBounds(new Rectangle(7, 7, 158, 23));
+ valPanel.setBounds(new Rectangle(172, 7, 270,23));
+ //labPanel.setLayout(new GridLayout(1,1));
+ //valPanel.setLayout(new GridLayout(1,1));
+ labPanel.add(label);
+ valPanel.add(valBox);
+ laypanel.add(labPanel);
+ laypanel.add(valPanel);
+ valPanel.setToolTipText(tooltip);
+ labPanel.setToolTipText(tooltip);
+ valBox.setToolTipText(tooltip);
+ panel.add(laypanel);
+ panel.validate();
+ return laypanel;
+ }
+
+ public static void mgAddtoLayout(JPanel cpanel, String tooltip,
+ JLabel jLabel, JComponent name)
+ {
+ mgAddtoLayout(cpanel, tooltip, jLabel, name,null);
+ }
+ public static void mgAddtoLayout(JPanel cpanel, String tooltip,
+ JLabel jLabel, JComponent name, String params)
+ {
+ cpanel.add(jLabel);
+ if (params==null) {
+ cpanel.add(name);
+ } else {cpanel.add(name, params);
+ }
+ name.setToolTipText(tooltip);
+ jLabel.setToolTipText(tooltip);
+ }
+
+ /**
+ * standard font for labels and check boxes in dialog boxes
+ * @return
+ */
+
+ public static Font getLabelFont()
+ {
+ return getLabelFont(false,false);
+ }
+ public static Font getLabelFont(boolean bold, boolean italic)
+ {
+ return new java.awt.Font("Verdana", (!bold && !italic) ? Font.PLAIN : (bold ? Font.BOLD : 0) + (italic ? Font.ITALIC : 0), 11);
+ }
+
+ /**
+ * standard font for editable text areas
+ * @return
+ */
+ public static Font getTextAreaFont()
+ {
+ return getLabelFont(false,false);
+ }
+
+ /**
+ * clean up a swing menu.
+ * Removes any empty submenus without selection listeners.
+ * @param webService
+ */
+ public static void cleanMenu(JMenu webService)
+ {
+ for (int i=0;i