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);