Revision: 3799
Author: [email protected]
Date: Wed Jul 28 11:27:41 2010
Log: Updated the look of the criticism panel.

-The objects being criticized has a qualified name so users can tell what is being criticized easier. -Icons are included with the object name to tell what type of object is criticized.
http://code.google.com/p/power-architect/source/detail?r=3799

Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportDDLAction.java /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismObjectRenderer.java /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/QuickFixListCellRenderer.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportDDLAction.java Wed Jul 14 08:59:53 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportDDLAction.java Wed Jul 28 11:27:41 2010
@@ -125,6 +125,9 @@
                     explanation.setPreferredSize(new Dimension(0, 0));
                     builder.append(explanation);

+                    builder.appendRow("10dlu");
+                    builder.nextLine();
+
                     builder.appendRow("fill:pref:grow");
                     builder.nextLine();

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java Wed Jul 14 07:10:07 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java Wed Jul 28 11:27:41 2010
@@ -28,6 +28,7 @@
 import javax.swing.AbstractAction;
 import javax.swing.ImageIcon;
 import javax.swing.JPopupMenu;
+import javax.swing.JTable;
 import javax.swing.text.Document;

 import ca.sqlpower.architect.ddl.critic.CriticismBucket;
@@ -92,6 +93,7 @@
final QuickFixListCellRenderer renderer = new QuickFixListCellRenderer();
         errorTable.setDefaultRenderer(List.class, renderer);
errorTable.setDefaultRenderer(Object.class, new CriticismObjectRenderer());
+        errorTable.setAlignmentX(JTable.LEFT_ALIGNMENT);

//Sorts the objects by their name. This can be more fancy if we desire in
         //the future but works as a decent default for now.
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismObjectRenderer.java Fri Jul 9 08:12:54 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismObjectRenderer.java Wed Jul 28 11:27:41 2010
@@ -21,12 +21,19 @@

 import java.awt.Component;

+import javax.swing.JLabel;
 import javax.swing.JTable;
 import javax.swing.table.DefaultTableCellRenderer;

+import ca.sqlpower.architect.swingui.dbtree.DBTreeCellRenderer;
 import ca.sqlpower.object.SPObject;
 import ca.sqlpower.sql.JDBCDataSourceType;
+import ca.sqlpower.sqlobject.SQLColumn;
+import ca.sqlpower.sqlobject.SQLIndex;
 import ca.sqlpower.sqlobject.SQLObject;
+import ca.sqlpower.sqlobject.SQLRelationship;
+import ca.sqlpower.sqlobject.SQLTable;
+import ca.sqlpower.sqlobject.SQLRelationship.SQLImportedKey;

 /**
  * Renderer for Objects displayed in the critic table.
@@ -36,7 +43,36 @@
     @Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
- return super.getTableCellRendererComponent(table, getVisibleText(value), isSelected, hasFocus, row, column);
+        String visibleText = getVisibleText(value);
+ Component originalComponent = super.getTableCellRendererComponent(table, visibleText,
+                isSelected, hasFocus, row, column);
+        JLabel label = new JLabel();
+        label.setFont(originalComponent.getFont());
+        label.setText(visibleText);
+        if (value instanceof SQLTable) {
+            label.setIcon(DBTreeCellRenderer.TABLE_ICON);
+            return label;
+        } else if (value instanceof SQLIndex) {
+            SQLIndex index = (SQLIndex) value;
+            if (index.isPrimaryKeyIndex()) {
+                label.setIcon(DBTreeCellRenderer.PK_ICON);
+            } else {
+                label.setIcon(DBTreeCellRenderer.INDEX_ICON);
+            }
+            label.setText(visibleText);
+            return label;
+        } else if (value instanceof SQLColumn) {
+            label.setIcon(DBTreeCellRenderer.COLUMN_ICON);
+            return label;
+        } else if (value instanceof SQLRelationship) {
+            label.setIcon(DBTreeCellRenderer.EXPORTED_KEY_ICON);
+            return label;
+        } else if (value instanceof SQLImportedKey) {
+            label.setIcon(DBTreeCellRenderer.IMPORTED_KEY_ICON);
+            return label;
+        } else {
+            return originalComponent;
+        }
     }

     /**
@@ -46,6 +82,48 @@
     public static String getVisibleText(Object value) {
         if (value == null) {
             return "";
+        } else if (value instanceof SQLTable) {
+            return ((SQLTable) value).getName();
+        } else if (value instanceof SQLIndex) {
+            SQLIndex index = (SQLIndex) value;
+            StringBuffer text = new StringBuffer();
+            if (index.getParent() != null) {
+                text.append(index.getParent().getName() + ".");
+            } else {
+                text.append("(no parent).");
+            }
+            text.append(index.getName());
+            return text.toString();
+        } else if (value instanceof SQLColumn) {
+            SQLColumn sqlColumn = (SQLColumn) value;
+            StringBuffer text = new StringBuffer();
+            if (sqlColumn.getParent() != null) {
+                text.append(sqlColumn.getParent().getName() + ".");
+            } else {
+                text.append("(no parent).");
+            }
+            text.append(sqlColumn.getName());
+            return text.toString();
+        } else if (value instanceof SQLRelationship) {
+            SQLRelationship relation = (SQLRelationship) value;
+            StringBuffer text = new StringBuffer();
+            if (relation.getParent() != null) {
+                text.append(relation.getParent().getName() + ".");
+            } else {
+                text.append("(no parent).");
+            }
+            text.append(relation.getName());
+            return text.toString();
+        } else if (value instanceof SQLImportedKey) {
+            SQLRelationship relation = (SQLRelationship) value;
+            StringBuffer text = new StringBuffer();
+            if (relation.getParent() != null) {
+                text.append(relation.getParent().getName() + ".");
+            } else {
+                text.append("(no parent).");
+            }
+            text.append(relation.getName());
+            return text.toString();
         } else if (value instanceof SQLObject) {
             String name = ((SQLObject) value).getShortDisplayName();
             if (name == null || name.trim().length() == 0) {
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java Mon Jul 12 07:31:38 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticismTableModel.java Wed Jul 28 11:27:41 2010
@@ -23,7 +23,6 @@

 import javax.swing.table.AbstractTableModel;

-import ca.sqlpower.architect.ArchitectUtils;
 import ca.sqlpower.architect.ddl.critic.CriticAndSettings;
 import ca.sqlpower.architect.ddl.critic.Criticism;
 import ca.sqlpower.architect.ddl.critic.CriticismBucket;
@@ -58,7 +57,7 @@
     }

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

     @Override
@@ -66,10 +65,8 @@
         if (column == 1) {
             return "Object";
         } else if (column == 2) {
-            return "Object Type";
-        } else if (column == 3) {
             return "Critic Type";
-        } else if (column == 4) {
+        } else if (column == 3) {
             return "Description";
         } else {
             return null;
@@ -87,8 +84,6 @@
         } else if (columnIndex == 3) {
             return String.class;
         } else if (columnIndex == 4) {
-            return String.class;
-        } else if (columnIndex == 5) {
             return List.class;
         } else {
             return null;
@@ -109,15 +104,13 @@
         } else if (columnIndex == 1) {
             return rowVal.getSubject();
         } else if (columnIndex == 2) {
- return ArchitectUtils.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 == 4) {
+        } else if (columnIndex == 3) {
             return rowVal.getDescription();
-        } else if (columnIndex == 5) {
+        } else if (columnIndex == 4) {
             return rowVal.getFixes();
         } else {
             throw new IllegalArgumentException(
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/QuickFixListCellRenderer.java Wed Jul 28 09:17:42 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/QuickFixListCellRenderer.java Wed Jul 28 11:27:41 2010
@@ -49,16 +49,21 @@
     @Override
public Component getTableCellRendererComponent(JTable table, final Object value, boolean isSelected, boolean hasFocus,
             int row, int column) {
+ Component originalComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
         if (value instanceof List<?>) {
             if (((List<?>) value).isEmpty()) {
-                return new JLabel(NO_QUICK_FIX_IMAGE);
+                JLabel label = new JLabel();
+                label.setIcon(NO_QUICK_FIX_IMAGE);
+                return label;
             } else {
-                JLabel label = new JLabel(QUICK_FIX_IMAGE);
+                JLabel label = new JLabel();
+                label.setIcon(QUICK_FIX_IMAGE);
                 label.setText("Fix");
+                label.setFont(originalComponent.getFont());
                 return label;
             }
         } else {
- return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+            return originalComponent;
         }
     }

Reply via email to