r1944 - trunk/jaxx-runtime/src/main/java/jaxx/runtime
Author: tchemit Date: 2010-06-02 05:02:59 +0200 (Wed, 02 Jun 2010) New Revision: 1944 Url: http://nuiton.org/repositories/revision/jaxx/1944 Log: add new loadUIConfig (simplier) method to load ui configuration from a given properties Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2010-06-01 13:38:43 UTC (rev 1943) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2010-06-02 03:02:59 UTC (rev 1944) @@ -24,6 +24,44 @@ */ package jaxx.runtime; +import jaxx.runtime.swing.Item; +import jaxx.runtime.swing.JAXXComboBox; +import jaxx.runtime.swing.renderer.BooleanCellRenderer; +import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; +import jaxx.runtime.swing.renderer.EnumTableCellRenderer; +import jaxx.runtime.swing.renderer.I18nTableCellRenderer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.jxlayer.JXLayer; +import org.jdesktop.swingx.JXTreeTable; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListModel; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JLayeredPane; +import javax.swing.JList; +import javax.swing.JRootPane; +import javax.swing.JTabbedPane; +import javax.swing.JTable; +import javax.swing.JTree; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.text.AbstractDocument; +import javax.swing.text.JTextComponent; +import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; import java.awt.Color; import java.awt.Component; import java.awt.Container; @@ -38,16 +76,8 @@ import java.beans.PropertyDescriptor; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Field; import java.net.URI; -import java.util.List; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.text.AbstractDocument; -import javax.swing.text.JTextComponent; -import java.lang.reflect.Field; import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; @@ -55,26 +85,13 @@ import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Properties; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; -import jaxx.runtime.swing.renderer.BooleanCellRenderer; -import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; -import jaxx.runtime.swing.renderer.EnumTableCellRenderer; -import jaxx.runtime.swing.renderer.I18nTableCellRenderer; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXComboBox; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.swingx.JXTreeTable; - import static org.nuiton.i18n.I18n._; /** @@ -87,9 +104,7 @@ */ public class SwingUtil extends JAXXUtil { - /** - * to use log facility, just put in your code: log.info(\"...\"); - */ + /** to use log facility, just put in your code: log.info(\"...\"); */ static private final Log log = LogFactory.getLog(SwingUtil.class); public static final String DEFAULT_ICON_PATH = "/icons/"; @@ -274,7 +289,7 @@ } return (O) parent; } - + public static int computeTableColumnWidth(JTable table, Font font, int columnIndex, String suffix) { @@ -457,7 +472,7 @@ i.add((Container) c); String name = c.getName(); if (c instanceof JComponent && - name != null && !"".equals(name)) { + name != null && !"".equals(name)) { allNamedComponent.put(name, (JComponent) c); } } @@ -587,6 +602,42 @@ } /** + * Load the ui.properties file and set in {@link UIManager} colors and + * icons found. + * + * @param incoming the ui resources to load. + * @since 2.1 + */ + public static void loadUIConfig(Properties incoming) { + + for (Entry<Object, Object> entry : incoming.entrySet()) { + String key = (String) entry.getKey(); + if (key.startsWith(ICON_PREFIX)) { + ImageIcon icon; + try { + icon = createImageIcon((String) entry.getValue()); + UIManager.put(key.substring(ICON_PREFIX.length()), icon); + } catch (Exception e) { + log.warn("could not load icon " + entry.getValue()); + } + continue; + } + if (key.startsWith(COLOR_PREFIX)) { + String value = (String) entry.getValue(); + String[] rgb = value.split(","); + UIManager.put( + key.substring(COLOR_PREFIX.length()), + new Color( + Integer.valueOf(rgb[0]), + Integer.valueOf(rgb[1]), + Integer.valueOf(rgb[2]) + ) + ); + } + } + } + + /** * Iterate the components of a {@link JTabbedPane} in natural order. * <p/> * Says using method {@link JTabbedPane#getComponent(int)} @@ -623,8 +674,11 @@ public static abstract class TabbedPaneIterator<O> implements Iterator<O> { final JTabbedPane tabs; + boolean reverse; + int index; + int increment; protected abstract O get(int index, Component comp); @@ -876,7 +930,7 @@ } } - public static void openLink(String url) { + public static void openLink(String url) { try { if (!Desktop.isDesktopSupported()) { @@ -924,9 +978,9 @@ /** * Expand all childs of a tree table. + * <p/> + * FIXME : Voir pour enlever le copier coller * - * FIXME : Voir pour enlever le copier coller - * * @param treeTable the tree to expand */ public static void expandTreeTable(final JXTreeTable treeTable) { @@ -976,13 +1030,13 @@ }); } } - }); + }); } /** * Add a listener of tree table selection model to expand a new selected * node when it is selected. - * + * <p/> * FIXME : Voir pour enlever le copier coller * * @param treeTable the tree to treate @@ -1038,6 +1092,7 @@ } } } + /** * Set the height of a given component. *
participants (1)
-
tchemit@users.nuiton.org