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(