Author: thomasobrien95
Date: Fri May  1 11:57:23 2009
New Revision: 3033

Modified:
   trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
   trunk/src/ca/sqlpower/architect/ArchitectSession.java
   trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
   trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
   trunk/src/ca/sqlpower/architect/swingui/RelationshipEditPanel.java

Log:
Cleaned up the colour chooser in the ArchitectSwingSessionImpl.
The ArchitectSession doesn't need to contain a method that is supposed
to create a JDialog. Additionally the colour chooser method is now
static so components using it don't need to have a session.

Modified: trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java
==============================================================================
--- trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java (original) +++ trunk/regress/ca/sqlpower/architect/TestingArchitectSession.java Fri May 1 11:57:23 2009
@@ -32,7 +32,6 @@

 package ca.sqlpower.architect;

-import java.awt.Color;
 import java.util.List;

 import ca.sqlpower.architect.ddl.DDLGenerator;
@@ -135,8 +134,4 @@
         return null;
     }

-    public Color getCustomColour(Color foregroundColor) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 }

Modified: trunk/src/ca/sqlpower/architect/ArchitectSession.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSession.java       (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSession.java Fri May 1 11:57:23 2009
@@ -18,7 +18,6 @@
  */
 package ca.sqlpower.architect;

-import java.awt.Color;
 import java.util.List;

 import ca.sqlpower.architect.ddl.DDLGenerator;
@@ -100,11 +99,5 @@
      * Sets the new DDL Generator currently in use for this session.
      */
     public void setDDLGenerator(DDLGenerator generator);
-
-    /**
-     * Opens a dialog for the user to choose a custom colour.
-     * Returns the choosen colour.
-     */
-    public Color getCustomColour(Color foregroundColor);

 }

Modified: trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java   (original)
+++ trunk/src/ca/sqlpower/architect/ArchitectSessionImpl.java Fri May 1 11:57:23 2009
@@ -19,7 +19,6 @@
 package ca.sqlpower.architect;


-import java.awt.Color;
 import java.sql.SQLException;
 import java.util.List;

@@ -27,9 +26,9 @@
 import ca.sqlpower.architect.ddl.GenericDDLGenerator;
 import ca.sqlpower.architect.profile.ProfileManagerImpl;
 import ca.sqlpower.sql.SPDataSource;
-import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLDatabase;
 import ca.sqlpower.sqlobject.SQLObject;
+import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLObjectRoot;
 import ca.sqlpower.util.DefaultUserPrompterFactory;
 import ca.sqlpower.util.UserPrompter;
@@ -189,11 +188,6 @@
         } catch (SQLObjectException e) {
             throw new RuntimeException(e);
         }
-    }
-
-    public Color getCustomColour(Color foregroundColor) {
-        // TODO Auto-generated method stub
-        return null;
     }

 }

Modified: trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java Fri May 1 11:57:23 2009
@@ -36,6 +36,7 @@

 import javax.swing.Action;
 import javax.swing.JColorChooser;
+import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JFileChooser;
 import javax.swing.JMenu;
@@ -182,13 +183,13 @@
      * for Architect.
      */
     private final SwingUIUserPrompterFactory swinguiUserPrompterFactory;
-
+
     /**
- * A colour chooser used by the MungeProcessEditor to set custom colours. - * It has been created within a swing session to share recent colours amongst
-     * different match rule sets.
+ * A colour chooser used by the {...@link RelationshipEditPanel}, and possibly + * others, to set custom colours. It has been created within a swing session
+     * to share recent colours amongst different objects.
      */
-    private final JColorChooser colourChooser = new JColorChooser();
+    private static final JColorChooser colourChooser = new JColorChooser();

     /**
* Creates a new swing session, including a new visible architect frame, with
@@ -960,14 +961,22 @@
public void setDisplayRelationshipLabel(boolean displayRelationshipLabel) {
         this.displayRelationshipLabel = displayRelationshipLabel;
     }
-
-    public Color getCustomColour(Color initial) {
+
+    /**
+ * This method will let users select a custom colour from a colour chooser
+     * and then return the colour.
+     *
+     * @param initial
+ * The initial colour to have selected in the colour chooser.
+     * @return The colour selected or created by the user.
+     */
+    public static Color getCustomColour(Color initial, JComponent parent) {
         if (initial == null) {
             initial = Color.BLACK;
         }
         colourChooser.setColor(initial);
         ColorTracker ok = new ColorTracker(colourChooser);
- JDialog dialog = JColorChooser.createDialog(frame, "Choose a custom colour", true, colourChooser, ok, null); + JDialog dialog = JColorChooser.createDialog(parent, "Choose a custom colour", true, colourChooser, ok, null);

         dialog.setVisible(true);

@@ -975,9 +984,10 @@
     }

     /**
-     * Action Listener used by the custom colour dialog.
+     * Action Listener used by the custom colour dialog created in the
+     * getCustomColour method.
      */
-    class ColorTracker implements ActionListener, Serializable {
+ private static class ColorTracker implements ActionListener, Serializable {
         JColorChooser chooser;
         Color color;


Modified: trunk/src/ca/sqlpower/architect/swingui/RelationshipEditPanel.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/RelationshipEditPanel.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/RelationshipEditPanel.java Fri May 1 11:57:23 2009
@@ -457,7 +457,7 @@

     Action customColour = new AbstractAction("Custom...") {
         public void actionPerformed(ActionEvent arg0) {
- Color colour = session.getCustomColour(relationshipLines.get(0).getForegroundColor()); + Color colour = ArchitectSwingSessionImpl.getCustomColour(relationshipLines.get(0).getForegroundColor(), panel);
             if (colour != null) {
if (!containsColor(Relationship.SUGGESTED_COLOURS, colour)) {
                     relationLineColor.addItem(colour);

Reply via email to