Revision: 3666
Author: [email protected]
Date: Mon Jul  5 08:38:08 2010
Log: NEW - bug 2458: Create Critic Manager
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2458

Added in a search field for the critics to help users fix criticisms easier.
http://code.google.com/p/power-architect/source/detail?r=3666

Added:
 /trunk/src/main/resources/icons/magnifier.png
Modified:
 /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticPanel.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java

=======================================
--- /dev/null
+++ /trunk/src/main/resources/icons/magnifier.png       Mon Jul  5 08:38:08 2010
@@ -0,0 +1,17 @@
+‰PNG
+
+
+IHDRóÿagAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ùIDAT8Ë¥’¿k“aÇ¿ï$F¬©š¤ƒ?èPõ*B EpÈÔ­ ‚8Twݺަƒ‹‹ÒM;TE!"ˆšAÐÆVÐD 1ÑØ
+&oÞçyîžs°V$y•âg¹›>÷½ã
+Áÿàÿj
+רµÖ–ˆ¥ÈÌ9bCÜ âcxfz<m
+A¹Æ®eû(•Â®í|WB¬¶C|üÒ+¢‰³“ù>‰̶´3aÙ
+BÃhw­#Ð2IdS±‚ÒT”À".îN:ø®0ºZ°Öcìݓ„ÒTŒâœç°°ÅO‰t•E<æAkÊE
+Q‚•È
+¬X~W± !2Öԍ
+ï:“±Yc¾ƒ 4 ­?G-Ô[†.âžÞH’ð
+'=¼~ׯH÷åðÃËű¥i¦Ö씗>|C̲C>²)qWð¼ÚDçk“¹Ö6¥‚'w.
+ëû¸z÷½kˆJÆpQçÈ0ñ§toIO¤^
+Ì>ŠÆÊ¼­Üo
+?uíÍÊ‚(gOĵçÓûMí?2ŽÕåg¨VîµÏ\¯g6Wø'gh¥‚ézõéíåÊ"²ùQh­Ò}+ü‹çFãDjދ%¦‚Îú•ó7×.mIs§3
+3\¸µÞØr‚(~J¸7¡ª2Ë¡IEND®B`‚
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticPanel.java Wed Jun 30 09:06:21 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticPanel.java Mon Jul 5 08:38:08 2010
@@ -23,10 +23,13 @@
 import java.util.ArrayList;
 import java.util.List;

+import javax.swing.ImageIcon;
 import javax.swing.JButton;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
+import javax.swing.JTextField;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;

@@ -34,14 +37,24 @@
 import ca.sqlpower.architect.swingui.ArchitectSwingSession;
 import ca.sqlpower.sqlobject.SQLObject;
 import ca.sqlpower.sqlobject.SQLObjectException;
+import ca.sqlpower.swingui.SPSUtils;
+import ca.sqlpower.swingui.table.FancyExportableJTable;

 import com.jgoodies.forms.builder.ButtonBarBuilder;
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.FormLayout;

 /**
* This panel can be placed somewhere on the main Architect frame to display all
  * of the currently known errors in the play pen based on enabled critics.
  */
 public class CriticPanel {
+
+    /**
+ * Icon that sits beside the search field so users know what the field is
+     * meant for.
+     */
+ public static final ImageIcon SEARCH_ICON = SPSUtils.createIcon("magnifier", "search icon");

     /**
      * The main panel of the critics window.
@@ -50,7 +63,13 @@

     private final ArchitectSwingSession session;

-    private final JTable table;
+    private final FancyExportableJTable table;
+
+    /**
+ * A field that users can enter some kind of text to limit the displayed
+     * criticisms.
+     */
+    private final JTextField searchField;

private final ListSelectionListener selectedObjectsChangedListener = new ListSelectionListener() {

@@ -62,7 +81,9 @@
     public CriticPanel(ArchitectSwingSession session) {
         this.session = session;

- table = CriticSwingUtil.createCriticTable(session, session.getPlayPen().getCriticismBucket());
+        searchField = new JTextField();
+ table = CriticSwingUtil.createCriticTable(session, session.getPlayPen().getCriticismBucket(),
+                searchField.getDocument());
         panel = new JPanel(new BorderLayout());
         panel.add(new JScrollPane(table), BorderLayout.CENTER);
table.getSelectionModel().addListSelectionListener(selectedObjectsChangedListener);
@@ -72,7 +93,13 @@
         ButtonBarBuilder buttonBar = new ButtonBarBuilder();
         buttonBar.addGridded(new JButton(new CriticizeAction(session)));

-        panel.add(buttonBar.getPanel(), BorderLayout.NORTH);
+        DefaultFormBuilder northBuilder = new DefaultFormBuilder(
+                new FormLayout("pref:grow, 5dlu, pref, 2dlu, pref:grow"));
+        northBuilder.append(buttonBar.getPanel());
+        northBuilder.append(new JLabel(SEARCH_ICON));
+        northBuilder.append(searchField);
+
+        panel.add(northBuilder.getPanel(), BorderLayout.NORTH);
     }

     public JPanel getPanel() {
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java Mon Jul 5 08:11:37 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/critic/CriticSwingUtil.java Mon Jul 5 08:38:08 2010
@@ -28,7 +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;
 import ca.sqlpower.architect.ddl.critic.QuickFix;
@@ -65,9 +65,29 @@
      *            The bucket that stores the critics in the system. As this
      *            bucket is updated the table model will update with it.
      */
- public static JTable createCriticTable(ArchitectSwingSession session, CriticismBucket bucket) { + public static FancyExportableJTable createCriticTable(ArchitectSwingSession session, CriticismBucket bucket) {
+        return createCriticTable(session, bucket, null);
+    }
+
+    /**
+ * Returns a table that displays all of the critics in the system including
+     * letting users be able to apply quick fixes to criticisms.
+     *
+     * @param session
+ * The session that contains the critic manager and its settings.
+     * @param bucket
+     *            The bucket that stores the critics in the system. As this
+     *            bucket is updated the table model will update with it.
+     * @param searchDoc
+ * A document that is used to retrieve text from to limit the + * number of rows displayed by the table to only the rows that + * contain this text somewhere in it. If this is null no search + * document will be used and the table will always display all of
+     *            the results.
+     */
+ public static FancyExportableJTable createCriticTable(ArchitectSwingSession session, CriticismBucket bucket, Document searchDoc) { final CriticismTableModel tableModel = new CriticismTableModel(session, bucket); - final FancyExportableJTable errorTable = new FancyExportableJTable(tableModel); + final FancyExportableJTable errorTable = new FancyExportableJTable(tableModel, searchDoc); errorTable.setDefaultRenderer(Severity.class, new SeverityTableCellRenderer()); final QuickFixListCellRenderer renderer = new QuickFixListCellRenderer();
         errorTable.setDefaultRenderer(List.class, renderer);

Reply via email to