Revision: 3693
Author: [email protected]
Date: Thu Jul  8 12:27:26 2010
Log: NEW - bug 2458: Create Critic Manager
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2458

Added an extra column that lists the name of the object being criticized. This helps identify the problem the critic is describing.
http://code.google.com/p/power-architect/source/detail?r=3693

Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java Wed Jul 7 13:08:36 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java Thu Jul 8 12:27:26 2010
@@ -30,8 +30,34 @@
 import ca.sqlpower.architect.ddl.critic.CriticismListener;
 import ca.sqlpower.architect.ddl.critic.CriticAndSettings.Severity;
 import ca.sqlpower.architect.swingui.ArchitectSwingSession;
-
+import ca.sqlpower.sqlobject.SQLColumn;
+import ca.sqlpower.sqlobject.SQLIndex;
+import ca.sqlpower.sqlobject.SQLRelationship;
+import ca.sqlpower.sqlobject.SQLTable;
+
+/**
+ * This table model displays all of the critics in the bucket passed to its
+ * constructor.
+ */
 public class CriticismTableModel extends AbstractTableModel {
+
+    /**
+     * A simple method that converts classes to a nicer human-readable
+     * name. This could be refactored to a utility class in the future.
+     */
+    private static String convertClassToString(Class<?> c) {
+        if (SQLTable.class.equals(c)) {
+            return "Table";
+        } else if (SQLColumn.class.equals(c)) {
+            return "Column";
+        } else if (SQLRelationship.class.equals(c)) {
+            return "Relationship";
+        } else if (SQLIndex.class.equals(c)) {
+            return "Index";
+        } else {
+            return c.getSimpleName();
+        }
+    }

     private final CriticismBucket criticizer;

@@ -46,16 +72,14 @@
         }
     };

-    private final ArchitectSwingSession session;

public CriticismTableModel(ArchitectSwingSession session, CriticismBucket criticizer) {
-        this.session = session;
         this.criticizer = criticizer;
         criticizer.addCriticismListener(criticListener);
     }

     public int getColumnCount() {
-        return 5;
+        return 6;
     }

     @Override
@@ -63,8 +87,10 @@
         if (column == 1) {
             return "Object";
         } else if (column == 2) {
+            return "Object Type";
+        } else if (column == 3) {
             return "Critic Type";
-        } else if (column == 3) {
+        } else if (column == 4) {
             return "Description";
         } else {
             return null;
@@ -82,6 +108,8 @@
         } else if (columnIndex == 3) {
             return String.class;
         } else if (columnIndex == 4) {
+            return String.class;
+        } else if (columnIndex == 5) {
             return List.class;
         } else {
             return null;
@@ -102,13 +130,15 @@
         } else if (columnIndex == 1) {
             return rowVal.getSubject();
         } else if (columnIndex == 2) {
+            return convertClassToString(rowVal.getSubject().getClass());
+        } else if (columnIndex == 3) {
//All critics in Architect are currently CriticAndSettings objects //In the future we may want to look up the settings in the critic //manager but since we already have the object that would be overkill. return ((CriticAndSettings) rowVal.getCritic()).getPlatformType();
-        } else if (columnIndex == 3) {
-            return rowVal.getDescription();
         } else if (columnIndex == 4) {
+            return rowVal.getDescription();
+        } else if (columnIndex == 5) {
             return rowVal.getFixes();
         } else {
             throw new IllegalArgumentException(

Reply via email to