Revision: 4627
          http://sourceforge.net/p/jump-pilot/code/4627
Author:   edso
Date:     2015-12-15 01:26:12 +0000 (Tue, 15 Dec 2015)
Log Message:
-----------
added icons to the datastore query chooser's combobox
"static"alized a part of ConnectionManagerPanel w/o redesign consequences

Modified Paths:
--------------
    core/trunk/ChangeLog
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionManagerPanel.java
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java

Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog        2015-12-15 01:14:05 UTC (rev 4626)
+++ core/trunk/ChangeLog        2015-12-15 01:26:12 UTC (rev 4627)
@@ -1,15 +1,20 @@
-# for display continuity sake please use 2 spaces instead of tabs
+# for display continuity sake please use 2 spaces instead of tabs, also make  #
+# sure that lines break at 80 chars for constricted dispaly situations        #
 
-2015-13-11 ede
+2015-12-15 ede
+  * added icons to the datastore query chooser's combobox
+  * "static"alized a part of ConnectionManagerPanel w/o redesign consequences
+
+2015-12-11 ede
   * move WFS language files to language/wfs/
   * added I18N support for giving a plain path as "category"
 
-2015-13-11 Nicolas Ribot <nicolas.ri...@gmail.com>
-  * Spatial Databases support enhanced: support for Oracle Spatial, 
MySQL/MariaDB
-    Spatialite added.
+2015-12-11 Nicolas Ribot <nicolas.ri...@gmail.com>
+  * Spatial Databases support enhanced: support for Oracle Spatial, 
+    MySQL/MariaDB, Spatialite added.
   * FilterQuery and Adhoc queries supported for these databases
-  * Error detection in case of bad WHERE clause detected when loading a layer 
(layer
-    removed from Panel)
+  * Error detection in case of bad WHERE clause detected when loading a layer
+    (layer removed from Panel)
   * New connection icons according to database type
   * Oracle Spatial: reads SDO_GEOMETRY with geotools code
                     reflection used on com.oracle.* methods to avoid jar 
dependence

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionManagerPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionManagerPanel.java
    2015-12-15 01:14:05 UTC (rev 4626)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionManagerPanel.java
    2015-12-15 01:26:12 UTC (rev 4627)
@@ -50,16 +50,16 @@
 public class ConnectionManagerPanel extends JPanel {
   // Nicolas Ribot, 07 dec 2015: 
   // add icons according to database source
-  private final Icon CONNECTED_ICON = IconLoader.icon("connect.png");
-  private final Icon DISCONNECTED_ICON = IconLoader.icon("disconnect.png");
-  private final Icon PG_CONNECTED_ICON = IconLoader.icon("ok_pg.png");
-  private final Icon PG_DISCONNECTED_ICON = IconLoader.icon("ko_pg.png");
-  private final Icon ORA_CONNECTED_ICON = IconLoader.icon("ok_oracle.png");
-  private final Icon ORA_DISCONNECTED_ICON = IconLoader.icon("ko_oracle.png");
-  private final Icon MARIA_CONNECTED_ICON = IconLoader.icon("ok_mariadb.png");
-  private final Icon MARIA_DISCONNECTED_ICON = 
IconLoader.icon("ko_mariadb.png");
-  private final Icon SQLITE_CONNECTED_ICON = 
IconLoader.icon("ok_spatialite.png");
-  private final Icon SQLITE_DISCONNECTED_ICON = 
GUIUtil.toGrayScale((ImageIcon)SQLITE_CONNECTED_ICON);
+  private static final Icon CONNECTED_ICON = IconLoader.icon("connect.png");
+  private static final Icon DISCONNECTED_ICON = 
IconLoader.icon("disconnect.png");
+  private static final Icon PG_CONNECTED_ICON = IconLoader.icon("ok_pg.png");
+  private static final Icon PG_DISCONNECTED_ICON = 
IconLoader.icon("ko_pg.png");
+  private static final Icon ORA_CONNECTED_ICON = 
IconLoader.icon("ok_oracle.png");
+  private static final Icon ORA_DISCONNECTED_ICON = 
IconLoader.icon("ko_oracle.png");
+  private static final Icon MARIA_CONNECTED_ICON = 
IconLoader.icon("ok_mariadb.png");
+  private static final Icon MARIA_DISCONNECTED_ICON = 
IconLoader.icon("ko_mariadb.png");
+  private static final Icon SQLITE_CONNECTED_ICON = 
IconLoader.icon("ok_spatialite.png");
+  private static final Icon SQLITE_DISCONNECTED_ICON = 
GUIUtil.toGrayScale((ImageIcon)SQLITE_CONNECTED_ICON);
 //  private final Icon SQLSERVER_CONNECTED_ICON = 
IconLoader.icon("ok_sqlserver.png");
 //  private final Icon SQLSERVER_DISCONNECTED_ICON = 
IconLoader.icon("ok_sqlserver.png");
   
@@ -481,7 +481,7 @@
      * @param desc the connection to get icon from
      * @return the corresponding icon
      */
-    private Icon getConnectionIcon(ConnectionDescriptor desc, boolean 
isClosed) throws DataStoreException {
+    public static Icon getConnectionIcon(ConnectionDescriptor desc, boolean 
isClosed) throws DataStoreException {
       String driverClassName = desc.getDataStoreDriverClassName();
       if ( 
driverClassName.equals("com.vividsolutions.jump.datastore.postgis.PostgisDataStoreDriver"))
 {
         return isClosed ? PG_DISCONNECTED_ICON : PG_CONNECTED_ICON;

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
   2015-12-15 01:14:05 UTC (rev 4626)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/datastore/ConnectionPanel.java
   2015-12-15 01:26:12 UTC (rev 4627)
@@ -13,15 +13,19 @@
 import java.util.Comparator;
 
 import javax.swing.DefaultComboBoxModel;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.Icon;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JComboBox;
 import javax.swing.JLabel;
+import javax.swing.JList;
 import javax.swing.JPanel;
+import javax.swing.ListCellRenderer;
 import javax.swing.SwingUtilities;
 
 import com.vividsolutions.jump.I18N;
-
+import com.vividsolutions.jump.datastore.DataStoreException;
 import com.vividsolutions.jump.workbench.WorkbenchContext;
 import com.vividsolutions.jump.workbench.datastore.ConnectionDescriptor;
 import com.vividsolutions.jump.workbench.datastore.ConnectionManager;
@@ -80,11 +84,36 @@
         return null;
     }
 
+    protected DefaultListCellRenderer defaultRenderer = new 
DefaultListCellRenderer();
+    
     protected JComboBox getConnectionComboBox() {
         if ( connectionComboBox == null ) {
             connectionComboBox = new JComboBox();
             connectionComboBox.setPreferredSize( new Dimension( 
MAIN_COLUMN_WIDTH,
                 ( int ) connectionComboBox.getPreferredSize().getHeight() ) );
+            connectionComboBox.setRenderer(new ListCellRenderer() {
+              @Override
+              public Component getListCellRendererComponent(
+                  JList list, Object value, int index,
+                  boolean isSelected, boolean cellHasFocus) {
+                JLabel renderer = (JLabel) 
defaultRenderer.getListCellRendererComponent(list, value, index,
+                    isSelected, cellHasFocus);
+                if (!(value instanceof ConnectionDescriptor))
+                  return renderer;
+                ConnectionDescriptor connectionDescriptor = 
(ConnectionDescriptor) value;
+                try {
+                  Icon icon = 
ConnectionManagerPanel.getConnectionIcon(connectionDescriptor,
+                      connectionManager().getConnection(
+                          connectionDescriptor).isClosed());
+                  renderer.setIcon(icon);
+                } catch (DataStoreException e) {
+                  // we ignore those for eye candy
+                }
+                
+                return renderer;
+              }
+              
+            });
         }
         return connectionComboBox;
     }


------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to