Author: rfelden
Date: Mon Jun  4 18:31:34 2007
New Revision: 49

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D49&repname=3D=
jahia_upgrade
Log:
integrity updated :
 -commits listed (description in tooltips)
 -database storage (resolved commits, mysql db settings hardcoded for now)

Added:
    trunk/integrity/src/main/java/org/jahia/integrity/model/ResolvedCommit.=
java
    trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListModel.j=
ava
    trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListRendere=
r.java
    trunk/integrity/src/main/java/org/jahia/tools/Trio.java
Modified:
    trunk/integrity/src/main/java/org/jahia/database/DBconnector.java
    trunk/integrity/src/main/java/org/jahia/integrity/controller/Controller=
.java
    trunk/integrity/src/main/java/org/jahia/integrity/model/Commit.java
    trunk/integrity/src/main/java/org/jahia/integrity/model/MyModel.java
    trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.f=
orm
    trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.j=
ava
    trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.form
    trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.java
    trunk/integrity/src/main/java/org/jahia/integrity/view/MainWindow.java

Modified: trunk/integrity/src/main/java/org/jahia/database/DBconnector.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/database/DBconnector.java&rev=3D49&repname=3Djahia_upgra=
de
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/database/DBconnector.java (orig=
inal)
+++ trunk/integrity/src/main/java/org/jahia/database/DBconnector.java Mon J=
un  4 18:31:34 2007
@@ -1,11 +1,113 @@
 package org.jahia.database;
 =

+import org.jahia.integrity.model.ResolvedCommit;
+
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
+ * This is a database connector that works with MySQL Connector/J.
+ *
+ * @version 2007-04-19
  * @author Romain Felden
- * @version 2007-05-31
  */
 public class DBconnector {
 =

-    =

+    private Connection conn ;
+
+    /**
+     * Initiate connection with the database provided settings passed are =
ok.
+     * @throws java.sql.SQLException if connection failed
+     * @param host host address
+     * @param port port number (if null, default 3306)
+     * @param login login (mysql user)
+     * @param password password (mysql password)
+     */
+    public DBconnector(String host, String port, String login, String pass=
word) throws SQLException {
+        try {
+               Class.forName("com.mysql.jdbc.Driver");
+           } catch (Exception e) {
+               System.out.println("ERROR: failed to load JDBC driver");
+               e.printStackTrace();
+               return;
+        }
+
+        String str =3D "jdbc:mysql://"+host+":"+(port=3D=3Dnull?"3306":por=
t)+"/integrity" ;
+
+        conn =3D DriverManager.getConnection(str, login, password) ;
+
+    }
+
+
+    /**
+     * Store fix information inside the database.
+     * @throws java.sql.SQLException sql issue
+     * @param com the resolved commit object
+     */
+    public void storeResolvedCommit(ResolvedCommit com) throws SQLExceptio=
n {
+        if (conn =3D=3D null) {
+            System.err.println("no database connection") ;
+            return ;
+        }
+
+        createTable(com.getBranch());
+
+        // store commit information
+        String str =3D "insert into `" + com.getBranch() + "` (author, rev=
ision, reason, date) values (?, ?, ?, ?)";
+        System.err.println(str) ;
+        PreparedStatement statement =3D conn.prepareStatement(str);
+        statement.setString(1, com.getAuthor());
+        statement.setLong(2, com.getRevision());
+        statement.setString(3, com.getReason()) ;
+        statement.setDate(4, com.getDate()) ;
+        statement.executeUpdate();
+    }
+
+    /**
+     * Retrieve resolved commit.
+     * @throws java.sql.SQLException sql issue
+     * @return a list of resolved commit
+     * @param branch the branch
+     */
+    public ArrayList<ResolvedCommit> retrieveResolvedCommit(String branch)=
 throws SQLException {
+        if (conn =3D=3D null) {
+            System.err.println("no database connection") ;
+            return null ;
+        }
+
+        ArrayList<ResolvedCommit> list =3D new ArrayList<ResolvedCommit>()=
 ;
+
+        // store commit information
+        String str =3D "SELECT * FROM `"+ branch + "`" ;
+        PreparedStatement statement =3D conn.prepareStatement(str);
+        ResultSet set =3D statement.executeQuery();
+        while(set.next()) {
+            String auth =3D set.getString("author") ;
+            String reas =3D set.getString("reason") ;
+            Date dat =3D set.getDate("date") ;
+            long rev =3D set.getLong("revision") ;
+            list.add(new ResolvedCommit(auth, dat, rev, branch, reas)) ;
+        }
+
+        return list ;
+    }
+
+    public void createTable(String branch) {
+    try {
+            String creation =3D "CREATE TABLE  " + branch + "(\n" +
+                    "  `revision` bigint(20) unsigned NOT NULL,\n" +
+                    "  `author` varchar(32) NOT NULL,\n" +
+                    "  `reason` text,\n" +
+                    "  `date` datetime NOT NULL,\n" +
+                    "  PRIMARY KEY  USING BTREE (`revision`)\n" +
+                    ") ENGINE=3DMyISAM DEFAULT CHARSET=3Dutf8;" ;
+                Statement stat =3D conn.createStatement() ;
+                stat.executeUpdate(creation) ;
+        } catch (SQLException e) {
+            // the table already exists
+        }
+    }
+
 =

 }

Modified: trunk/integrity/src/main/java/org/jahia/integrity/controller/Cont=
roller.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/controller/Controller.java&rev=3D49&repname=3D=
jahia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/controller/Controller=
.java (original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/controller/Controller=
.java Mon Jun  4 18:31:34 2007
@@ -1,22 +1,21 @@
 package org.jahia.integrity.controller;
 =

-import org.jahia.svnconnector.SVNConnector;
-import org.jahia.svnconnector.CommitRetriever;
 import org.jahia.integrity.model.Commit;
 import org.jahia.integrity.model.Query;
 import org.jahia.integrity.model.MyModel;
+import org.jahia.integrity.model.ResolvedCommit;
 import org.jahia.integrity.view.MainWindow;
-import org.jahia.integrity.Application;
 import org.jahia.tools.Pair;
-import org.jahia.tools.Tools;
+import org.jahia.tools.Trio;
 import org.jahia.tools.StringUtils;
-import org.tmatesoft.svn.core.SVNException;
-import org.tmatesoft.svn.core.SVNLogEntry;
+import org.jahia.database.DBconnector;
 =

 import java.io.IOException;
 import java.io.File;
 import java.io.PrintStream;
 import java.util.*;
+import java.sql.Date ;
+import java.sql.SQLException;
 =

 /**
  * @author Romain Felden
@@ -28,20 +27,34 @@
 =

     private MyModel dataModel  ;
 =

+    private DBconnector db ;
+
     /**
      * Constructor creating the ui and the data model.
      */
     public Controller() {
 =

-
-
         dataModel =3D new MyModel() ;
 =

+        try {
+            db =3D new DBconnector("localhost", null, "jahia", "jahia") ;
+        } catch (SQLException e) {
+            e.printStackTrace();
+        }
+
         gui =3D new MainWindow(this) ;
         gui.setVisible(true);
     }
 =

 =

+    /**
+     * Check if the database connection is active.
+     *
+     * @return true if db is connected
+     */
+    public boolean dbActive() {
+        return db !=3D null ;
+    }
 =

     /**
      * Retrieve last server used.
@@ -95,6 +108,13 @@
 =

                 String[] authors =3D dataModel.checkCommits(query) ;
 =

+                try {
+                    String[] split =3D StringUtils.split(query.getBranch()=
, "/") ;
+                    dataModel.updateResolvedCommits(db.retrieveResolvedCom=
mit(split[split.length-1])) ;
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+
                 // benchmarking
                 time =3D System.currentTimeMillis() - time ;
                 gui.displayBench(time + "ms");
@@ -111,7 +131,7 @@
      * @param author the author of the commits
      */
     public void retrieveCommits(String author) {
-        Pair<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>> commits =
=3D dataModel.retrieveCommits(author);
+        Trio<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>, ArrayList=
<ResolvedCommit>> commits =3D dataModel.retrieveCommits(author);
         if (commits =3D=3D null) {
             gui.display("No commits found");
         } else {
@@ -123,11 +143,22 @@
      * Resolve a commit.
      * @param author the author
      * @param branch the branch
-     * @param commit the commit number
+     * @param revision the commit number
      * @param reason the resolved reason
+     * @param date the date
      */
-    public void resolveCommit(String author, String branch, String commit,=
 String reason) {
-        =

+    public void resolveCommit(String author, String branch, String revisio=
n, String reason, String date) {
+        if (!author.equals("<all>")) {
+            try {
+                db.storeResolvedCommit(new ResolvedCommit(author, Date.val=
ueOf(date), Long.valueOf(revision), branch, reason)) ;
+            } catch (SQLException e) {
+                e.printStackTrace();
+            } catch (NumberFormatException e1) {
+                e1.printStackTrace();
+            } catch(Exception e) {
+                e.printStackTrace();
+            }
+        }
     }
 =

     public void saveLogToFile(File file, String content) {

Modified: trunk/integrity/src/main/java/org/jahia/integrity/model/Commit.ja=
va
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/model/Commit.java&rev=3D49&repname=3Djahia_upg=
rade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/model/Commit.java (or=
iginal)
+++ trunk/integrity/src/main/java/org/jahia/integrity/model/Commit.java Mon=
 Jun  4 18:31:34 2007
@@ -20,6 +20,7 @@
     private Date date ;
     private long revision ;
     private String message ;
+    private String branch ;
     private ArrayList<String> files ;
 =

     public Commit(SVNLogEntry entry, String directory) {
@@ -28,8 +29,10 @@
         revision =3D entry.getRevision();
         message =3D entry.getMessage() ;
         files =3D new ArrayList<String>() ;
+        String[] split =3D StringUtils.split(directory, "/") ;
+        this.branch =3D split[split.length-1] ;
         for (String file : (Set<String>)entry.getChangedPaths().keySet()) {
-            addFile(StringUtils.deleteFirstToken(file, directory));
+            addFile(StringUtils.cleanBeforeFirstToken(file, directory, fal=
se));
         }
     }
 =

@@ -93,6 +96,14 @@
         output.append("Author:\t").append(getAuthor()).append("\n");
         output.append("Date:\t").append(getDate().toString()).append("\n");
         output.append("Revision:\t").append(getRevision()).append("\n");
+        return output.toString() ;
+    }
+
+    public String toExtendedString() {
+        StringBuffer output =3D new StringBuffer() ;
+        output.append("Author:\t").append(getAuthor()).append("\n");
+        output.append("Date:\t").append(getDate().toString()).append("\n");
+        output.append("Revision:\t").append(getRevision()).append("\n");
         output.append("Message:\t").append(getMessage()).append("\n");
         output.append("Files:").append("\n");
         for (String file : files) {

Modified: trunk/integrity/src/main/java/org/jahia/integrity/model/MyModel.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/model/MyModel.java&rev=3D49&repname=3Djahia_up=
grade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/model/MyModel.java (o=
riginal)
+++ trunk/integrity/src/main/java/org/jahia/integrity/model/MyModel.java Mo=
n Jun  4 18:31:34 2007
@@ -3,12 +3,14 @@
 import org.jahia.tools.Pair;
 import org.jahia.tools.Tools;
 import org.jahia.tools.StringUtils;
+import org.jahia.tools.Trio;
 import org.jahia.integrity.Application;
 import org.jahia.svnconnector.CommitRetriever;
 =

 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Arrays;
+import java.util.List;
 import java.io.File;
 import java.io.IOException;
 =

@@ -25,6 +27,7 @@
 =

     private Pair<HashMap<String, ArrayList<Pair<Commit, Commit>>>, HashMap=
<String, ArrayList<Commit>>> lastReport ;
     private HashMap<Query, Pair<HashMap<String, ArrayList<Pair<Commit, Com=
mit>>>, HashMap<String, ArrayList<Commit>>>> reports ;
+    private ArrayList<ResolvedCommit> resolvedCommits ;
 =

     public MyModel() {
         try {
@@ -33,6 +36,8 @@
             e.printStackTrace();
         }
 =

+        resolvedCommits =3D new ArrayList<ResolvedCommit>() ;
+
         reports =3D new HashMap<Query, Pair<HashMap<String, ArrayList<Pair=
<Commit, Commit>>>, HashMap<String, ArrayList<Commit>>>>() ;
     }
 =

@@ -167,26 +172,61 @@
      * @param author the author of the commits
      * @return the commits list
      */
-    public Pair<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>> retrie=
veCommits(String author) {
+    public Trio<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>, ArrayL=
ist<ResolvedCommit>> retrieveCommits(String author) {
         if (lastReport !=3D null && author !=3D null && !author.equals("")=
) {
-            Pair<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>> commi=
tsRetrieved ;
+            Trio<ArrayList<Pair<Commit, Commit>>, ArrayList<Commit>, Array=
List<ResolvedCommit>> commitsRetrieved ;
+
+            // specified author
             if (!author.equals("<all>")) {
-                commitsRetrieved =3D new Pair<ArrayList<Pair<Commit, Commi=
t>>, ArrayList<Commit>>(
-                        lastReport.first.get(author) ,
-                        lastReport.second.get(author)
+                ArrayList<Pair<Commit,Commit>> goodCommits =3D  lastReport=
.first.get(author) ;
+                ArrayList<Commit> badCommits =3D  lastReport.second.get(au=
thor) ;
+
+                // remove resolved bad commits
+                for (Commit badCom : badCommits) {
+                    boolean found =3D false ;
+                    for (int i =3D 0; i < resolvedCommits.size() && !found=
 ; i++) {
+                        if (resolvedCommits.get(i).getRevision() =3D=3D ba=
dCom.getRevision()) {
+                            badCommits.remove(badCom) ;
+                            found =3D true ;
+                        }
+                    }
+                }
+                commitsRetrieved =3D new Trio<ArrayList<Pair<Commit, Commi=
t>>, ArrayList<Commit>, ArrayList<ResolvedCommit>>(
+                        goodCommits ,
+                        badCommits ,
+                        resolvedCommits
                 ) ;
+
+            // every author
             } else {
                 ArrayList<Pair<Commit, Commit>> goodCommits =3D new ArrayL=
ist<Pair<Commit, Commit>>() ;
                 ArrayList<Commit> badCommits =3D new ArrayList<Commit>() ;
+                ArrayList<Commit> badCommitsCleaned =3D new ArrayList<Comm=
it>() ;
                 for (ArrayList<Pair<Commit, Commit>> good : lastReport.fir=
st.values()) {
                     goodCommits.addAll(good) ;
                 }
                 for (ArrayList<Commit> bad : lastReport.second.values()) {
                     badCommits.addAll(bad) ;
+
+
+                }
+                badCommitsCleaned.addAll(badCommits)  ;
+                for (Commit badCom : badCommits) {
+                    boolean found =3D false ;
+                    for (int i =3D 0; i < resolvedCommits.size() && !found=
 ; i++) {
+                        if (resolvedCommits.get(i).getRevision() =3D=3D ba=
dCom.getRevision()) {
+                            badCommitsCleaned.remove(badCom) ;
+                            found =3D true ;
+                        }
+                    }
                 }
-                commitsRetrieved =3D new Pair<ArrayList<Pair<Commit, Commi=
t>>, ArrayList<Commit>>(
-                        goodCommits, badCommits) ;
+                commitsRetrieved =3D new Trio<ArrayList<Pair<Commit, Commi=
t>>, ArrayList<Commit>, ArrayList<ResolvedCommit>>(
+                        goodCommits, badCommitsCleaned, resolvedCommits) ;
             }
+
+
+            // remove resolved commits
+
             return commitsRetrieved;
         } else {
             return null ;
@@ -194,6 +234,14 @@
     }
 =

     /**
+     * Update the list from the database.
+     * @param list the updated list
+     */
+    public void updateResolvedCommits(ArrayList<ResolvedCommit> list) {
+        resolvedCommits =3D list ;
+    }
+
+    /**
      * Save history.
      */
     public void saveHistory() {

Added: trunk/integrity/src/main/java/org/jahia/integrity/model/ResolvedComm=
it.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/integrit=
y/src/main/java/org/jahia/integrity/model/ResolvedCommit.java&rev=3D49&repn=
ame=3Djahia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/model/ResolvedCommit.=
java (added)
+++ trunk/integrity/src/main/java/org/jahia/integrity/model/ResolvedCommit.=
java Mon Jun  4 18:31:34 2007
@@ -0,0 +1,74 @@
+package org.jahia.integrity.model;
+
+import org.jahia.tools.StringUtils;
+
+import java.sql.Date;
+
+/**
+ * @author Romain
+ * @version Jun 1, 2007
+ */
+public class ResolvedCommit {
+
+    private String author ;
+    private Date date ;
+    private long revision ;
+    private String branch ;
+    private String reason ;
+
+    public ResolvedCommit(String auth, Date dat, long rev, String bran, St=
ring reas) {
+        if (bran.indexOf("/") !=3D -1) {
+            String[] split =3D StringUtils.split(bran, "/") ;
+            branch =3D split[split.length-1] ;
+        } else {
+            branch =3D bran ;
+        }
+        author =3D auth ;
+        date =3D dat ;
+        revision =3D rev ;
+
+        reason =3D reas ;
+    }
+
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public long getRevision() {
+        return revision;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public String getBranch() {
+        return branch ;
+    }
+
+    public void setReason(String reason) {
+        this.reason =3D reason;
+    }
+
+    public String toString() {
+        StringBuffer output =3D new StringBuffer() ;
+        output.append("Author:\t").append(getAuthor()).append("\n");
+        output.append("Date:\t").append(getDate().toString()).append("\n");
+        output.append("Revision:\t").append(getRevision()).append("\n");
+        return output.toString() ;
+    }
+
+    public String toExtendedString() {
+        StringBuffer output =3D new StringBuffer() ;
+        output.append("Author:\t").append(getAuthor()).append("\n");
+        output.append("Date:\t").append(getDate().toString()).append("\n");
+        output.append("Revision:\t").append(getRevision()).append("\n");
+        output.append("in ").append(getBranch()).append("\nReason: \n").ap=
pend(getReason()).append("\n");
+        return output.toString() ;
+    }
+}

Added: trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListMode=
l.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/integrit=
y/src/main/java/org/jahia/integrity/view/ArrayListModel.java&rev=3D49&repna=
me=3Djahia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListModel.j=
ava (added)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListModel.j=
ava Mon Jun  4 18:31:34 2007
@@ -0,0 +1,59 @@
+package org.jahia.integrity.view ;
+
+import javax.swing.ListModel;
+import javax.swing.event.ListDataListener;
+import javax.swing.event.ListDataEvent;
+import java.util.ArrayList;
+
+/**
+ * This is a ListModel implementation for use with a standard ArrayList of=
 String.
+ *
+ * @version 2007-02-19
+ * @author Romain Felden
+ */
+public class ArrayListModel implements ListModel {
+
+    ArrayList content ;
+    ArrayList<ListDataListener> listenerList ;
+
+    public ArrayListModel(ArrayList list) {
+        if (list =3D=3D null) {
+            content =3D new ArrayList() ;
+        } else {
+            content =3D list ;
+        }
+        listenerList =3D new ArrayList<ListDataListener>();
+    }
+
+    public void replaceElements(ArrayList elements) {
+        content.clear();
+        content.addAll(elements) ;
+    }
+
+    public int getSize() {
+        return content.size();
+    }
+
+    public Object getElementAt(int i) {
+        return content.get(i);
+    }
+
+    public void addListDataListener(ListDataListener listDataListener) {
+        listenerList.add(listDataListener);
+    }
+
+    public void removeListDataListener(ListDataListener listDataListener) {
+        listenerList.remove(listDataListener);
+    }
+
+    /**
+        * Called whenever the data structure is modified.
+        */
+       public void fireContentChanged() {
+        ListDataEvent e =3D new ListDataEvent(this, ListDataEvent.CONTENTS=
_CHANGED, 0, content.size()-1);
+        for (ListDataListener ldl : listenerList) {
+            ldl.contentsChanged(e);
+        }
+    }
+
+}

Added: trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListRend=
erer.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/integrit=
y/src/main/java/org/jahia/integrity/view/ArrayListRenderer.java&rev=3D49&re=
pname=3Djahia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListRendere=
r.java (added)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/ArrayListRendere=
r.java Mon Jun  4 18:31:34 2007
@@ -0,0 +1,68 @@
+package org.jahia.integrity.view;
+
+import org.jahia.integrity.model.Commit;
+import org.jahia.integrity.model.ResolvedCommit;
+import org.jahia.tools.StringUtils;
+import org.jahia.tools.Pair;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * @author Romain
+ * @version Jun 4, 2007
+ */
+public class ArrayListRenderer extends DefaultListCellRenderer {
+
+
+    public Component getListCellRendererComponent(JList list, Object value=
, int index, boolean isSelected, boolean cellHasFocus) {
+        if (value instanceof Commit) {
+            String tooltip =3D "<html>" + StringUtils.replaceAllTokens(((C=
ommit) value).toExtendedString(), "\n", "<P>") + "</html>" ;
+            String disp =3D StringUtils.replaceAllTokens(((Commit) value).=
toString(), "\n", "<P>") ;
+            JPanel pane =3D new JPanel(new BorderLayout()) ;
+            JLabel label =3D new JLabel("<html>" + disp + "<P></html>") ;
+            if (isSelected) {
+                pane.setBackground(Color.LIGHT_GRAY);
+            } else {
+                pane.setBackground(Color.WHITE);
+            }
+            pane.setToolTipText(tooltip);
+            pane.add(label, BorderLayout.WEST) ;
+            return pane ;
+        } else if (value instanceof Pair) {
+            if (((Pair) value).first instanceof Commit) {
+                Commit goodCom =3D (Commit) ((Pair) value).first ;
+                Commit trunkCom =3D (Commit) ((Pair) value).first ;
+                String tooltip =3D "<html>" + StringUtils.replaceAllTokens=
(goodCom.toExtendedString() + "-----------------\nin trunk:\n" + trunkCom.t=
oExtendedString(), "\n", "<P>") + "</html>" ;
+                String disp =3D StringUtils.replaceAllTokens(goodCom.toStr=
ing(), "\n", "<P>") ;
+                JLabel label =3D new JLabel("<html>" + disp + "<P></html>"=
) ;
+                JPanel pane =3D new JPanel(new BorderLayout()) ;
+                if (isSelected) {
+                    pane.setBackground(Color.LIGHT_GRAY);
+                } else {
+                    pane.setBackground(Color.WHITE);
+                }
+                pane.add(label, BorderLayout.WEST) ;
+                pane.setToolTipText(tooltip);
+                return pane ;
+            } else {
+                return new JLabel(value.toString()) ;
+            }
+        } else if (value instanceof ResolvedCommit) {
+            String tooltip =3D "<html>" + StringUtils.replaceAllTokens(((R=
esolvedCommit) value).toExtendedString(), "\n", "<P>") + "</html>" ;
+            String disp =3D StringUtils.replaceAllTokens(((ResolvedCommit)=
 value).toString(), "\n", "<P>") ;
+            JPanel pane =3D new JPanel(new BorderLayout()) ;
+            JLabel label =3D new JLabel("<html>" + disp + "<P></html>") ;
+            if (isSelected) {
+                pane.setBackground(Color.LIGHT_GRAY);
+            } else {
+                pane.setBackground(Color.WHITE);
+            }
+            pane.setToolTipText(tooltip);
+            pane.add(label, BorderLayout.WEST) ;
+            return pane ;
+        } else {
+            return new JLabel(value.toString()) ;
+        }
+    }
+}

Modified: trunk/integrity/src/main/java/org/jahia/integrity/view/CommitReso=
lver.form
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/view/CommitResolver.form&rev=3D49&repname=3Dja=
hia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.f=
orm (original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.f=
orm Mon Jun  4 18:31:34 2007
@@ -73,7 +73,7 @@
           </component>
           <component id=3D"8d5f2" class=3D"javax.swing.JLabel">
             <constraints>
-              <grid row=3D"2" column=3D"0" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"0" anchor=3D"4" fill=3D"0" indent=3D"0" u=
se-parent-layout=3D"false"/>
+              <grid row=3D"3" column=3D"0" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"0" anchor=3D"4" fill=3D"0" indent=3D"0" u=
se-parent-layout=3D"false"/>
               <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"0.1" weighty=3D"0.0"/>
             </constraints>
             <properties>
@@ -82,7 +82,7 @@
           </component>
           <component id=3D"76c6f" class=3D"javax.swing.JLabel">
             <constraints>
-              <grid row=3D"3" column=3D"0" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"0" anchor=3D"5" fill=3D"0" indent=3D"0" u=
se-parent-layout=3D"false"/>
+              <grid row=3D"4" column=3D"0" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"0" anchor=3D"5" fill=3D"0" indent=3D"0" u=
se-parent-layout=3D"false"/>
               <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"0.1" weighty=3D"0.0"/>
             </constraints>
             <properties>
@@ -111,7 +111,7 @@
           </component>
           <component id=3D"121ca" class=3D"javax.swing.JTextField" binding=
=3D"commit">
             <constraints>
-              <grid row=3D"2" column=3D"1" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"6" anchor=3D"8" fill=3D"1" indent=3D"0" u=
se-parent-layout=3D"false">
+              <grid row=3D"3" column=3D"1" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"6" anchor=3D"8" fill=3D"1" indent=3D"0" u=
se-parent-layout=3D"false">
                 <preferred-size width=3D"150" height=3D"-1"/>
               </grid>
               <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"1.0" weighty=3D"0.0"/>
@@ -120,7 +120,7 @@
           </component>
           <scrollpane id=3D"eba66">
             <constraints>
-              <grid row=3D"3" column=3D"1" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"7" hsize-policy=3D"7" anchor=3D"0" fill=3D"3" indent=3D"0" u=
se-parent-layout=3D"false"/>
+              <grid row=3D"4" column=3D"1" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"7" hsize-policy=3D"7" anchor=3D"0" fill=3D"3" indent=3D"0" u=
se-parent-layout=3D"false"/>
               <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"1.0" weighty=3D"1.0"/>
             </constraints>
             <properties/>
@@ -134,6 +134,24 @@
               </component>
             </children>
           </scrollpane>
+          <component id=3D"3a32" class=3D"javax.swing.JLabel">
+            <constraints>
+              <grid row=3D"2" column=3D"0" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"0" anchor=3D"4" fill=3D"0" indent=3D"0" u=
se-parent-layout=3D"false"/>
+              <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"0.1" weighty=3D"0.0"/>
+            </constraints>
+            <properties>
+              <text value=3D"Date"/>
+            </properties>
+          </component>
+          <component id=3D"7a063" class=3D"javax.swing.JTextField" binding=
=3D"date">
+            <constraints>
+              <grid row=3D"2" column=3D"1" row-span=3D"1" col-span=3D"1" v=
size-policy=3D"0" hsize-policy=3D"6" anchor=3D"8" fill=3D"1" indent=3D"0" u=
se-parent-layout=3D"false">
+                <preferred-size width=3D"150" height=3D"-1"/>
+              </grid>
+              <gridbag top=3D"5" left=3D"10" bottom=3D"5" right=3D"10" wei=
ghtx=3D"1.0" weighty=3D"0.0"/>
+            </constraints>
+            <properties/>
+          </component>
         </children>
       </grid>
     </children>

Modified: trunk/integrity/src/main/java/org/jahia/integrity/view/CommitReso=
lver.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/view/CommitResolver.java&rev=3D49&repname=3Dja=
hia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.j=
ava (original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/CommitResolver.j=
ava Mon Jun  4 18:31:34 2007
@@ -16,6 +16,7 @@
     private JTextField branch;
     private JTextField commit;
     private JTextArea reason;
+    private JTextField date;
 =

     public CommitResolver(Controller ctrl, String author, String branch) {
 =

@@ -61,7 +62,7 @@
     }
 =

     private void onOK() {
-        controller.resolveCommit(author.getText(), branch.getText(), commi=
t.getText(), reason.getText());
+        controller.resolveCommit(author.getText(), branch.getText(), commi=
t.getText(), reason.getText(), date.getText());
         dispose();
     }
 =

@@ -158,7 +159,7 @@
         label3.setText("#commit");
         gbc =3D new GridBagConstraints();
         gbc.gridx =3D 0;
-        gbc.gridy =3D 2;
+        gbc.gridy =3D 3;
         gbc.weightx =3D 0.1;
         gbc.anchor =3D GridBagConstraints.EAST;
         gbc.insets =3D new Insets(5, 10, 5, 10);
@@ -167,7 +168,7 @@
         label4.setText("Reason");
         gbc =3D new GridBagConstraints();
         gbc.gridx =3D 0;
-        gbc.gridy =3D 3;
+        gbc.gridy =3D 4;
         gbc.weightx =3D 0.1;
         gbc.anchor =3D GridBagConstraints.NORTHEAST;
         gbc.insets =3D new Insets(5, 10, 5, 10);
@@ -194,7 +195,7 @@
         commit =3D new JTextField();
         gbc =3D new GridBagConstraints();
         gbc.gridx =3D 1;
-        gbc.gridy =3D 2;
+        gbc.gridy =3D 3;
         gbc.weightx =3D 1.0;
         gbc.anchor =3D GridBagConstraints.WEST;
         gbc.fill =3D GridBagConstraints.HORIZONTAL;
@@ -203,7 +204,7 @@
         final JScrollPane scrollPane1 =3D new JScrollPane();
         gbc =3D new GridBagConstraints();
         gbc.gridx =3D 1;
-        gbc.gridy =3D 3;
+        gbc.gridy =3D 4;
         gbc.weightx =3D 1.0;
         gbc.weighty =3D 1.0;
         gbc.fill =3D GridBagConstraints.BOTH;
@@ -212,6 +213,24 @@
         reason =3D new JTextArea();
         reason.setText("");
         scrollPane1.setViewportView(reason);
+        final JLabel label5 =3D new JLabel();
+        label5.setText("Date");
+        gbc =3D new GridBagConstraints();
+        gbc.gridx =3D 0;
+        gbc.gridy =3D 2;
+        gbc.weightx =3D 0.1;
+        gbc.anchor =3D GridBagConstraints.EAST;
+        gbc.insets =3D new Insets(5, 10, 5, 10);
+        panel3.add(label5, gbc);
+        date =3D new JTextField();
+        gbc =3D new GridBagConstraints();
+        gbc.gridx =3D 1;
+        gbc.gridy =3D 2;
+        gbc.weightx =3D 1.0;
+        gbc.anchor =3D GridBagConstraints.WEST;
+        gbc.fill =3D GridBagConstraints.HORIZONTAL;
+        gbc.insets =3D new Insets(5, 10, 5, 10);
+        panel3.add(date, gbc);
     }
 =

     /**

Modified: trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.=
form
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/view/MainPanel.form&rev=3D49&repname=3Djahia_u=
pgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.form (=
original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.form M=
on Jun  4 18:31:34 2007
@@ -227,16 +227,11 @@
                   <size top=3D"5" left=3D"5" bottom=3D"5" right=3D"5"/>
                 </border>
                 <children>
-                  <component id=3D"aa69b" class=3D"javax.swing.JTextArea" =
binding=3D"goodCommitsDisplay">
+                  <component id=3D"63c97" class=3D"javax.swing.JList" bind=
ing=3D"goodCommitsDisplay" custom-create=3D"true">
                     <constraints/>
                     <properties>
                       <background swing-color=3D"window"/>
-                      <columns value=3D"0"/>
-                      <editable value=3D"false"/>
                       <font swing-font=3D"Label.font"/>
-                      <lineWrap value=3D"true"/>
-                      <rows value=3D"0"/>
-                      <wrapStyleWord value=3D"false"/>
                     </properties>
                   </component>
                 </children>
@@ -257,14 +252,11 @@
                   <size top=3D"5" left=3D"5" bottom=3D"5" right=3D"5"/>
                 </border>
                 <children>
-                  <component id=3D"4ac12" class=3D"javax.swing.JTextArea" =
binding=3D"badCommitsDisplay">
+                  <component id=3D"bd9ef" class=3D"javax.swing.JList" bind=
ing=3D"badCommitsDisplay" custom-create=3D"true">
                     <constraints/>
                     <properties>
                       <background swing-color=3D"window"/>
-                      <editable value=3D"false"/>
                       <font swing-font=3D"Label.font"/>
-                      <lineWrap value=3D"true"/>
-                      <text value=3D""/>
                     </properties>
                   </component>
                 </children>
@@ -285,16 +277,11 @@
                   <size top=3D"5" left=3D"5" bottom=3D"5" right=3D"5"/>
                 </border>
                 <children>
-                  <component id=3D"40e04" class=3D"javax.swing.JTextArea" =
binding=3D"resolvedCommitsDisplay">
+                  <component id=3D"2f559" class=3D"javax.swing.JList" bind=
ing=3D"resolvedCommitsDisplay" custom-create=3D"true">
                     <constraints/>
                     <properties>
                       <background swing-color=3D"window"/>
-                      <columns value=3D"0"/>
-                      <editable value=3D"false"/>
                       <font swing-font=3D"Label.font"/>
-                      <lineWrap value=3D"true"/>
-                      <rows value=3D"0"/>
-                      <wrapStyleWord value=3D"false"/>
                     </properties>
                   </component>
                 </children>

Modified: trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/view/MainPanel.java&rev=3D49&repname=3Djahia_u=
pgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.java (=
original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/MainPanel.java M=
on Jun  4 18:31:34 2007
@@ -3,14 +3,13 @@
 import org.jahia.integrity.controller.Controller;
 import org.jahia.integrity.model.Query;
 import org.jahia.integrity.model.Commit;
+import org.jahia.integrity.model.ResolvedCommit;
 import org.jahia.tools.Pair;
 import org.jahia.tools.GUITools;
+import org.jahia.tools.Trio;
 =

 import javax.swing.*;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
+import java.awt.event.*;
 import java.awt.*;
 import java.sql.Date;
 import java.util.ArrayList;
@@ -27,16 +26,20 @@
     private JTextField margin;
     private JButton startQuery;
     private JButton saveLog;
-    private JTextArea goodCommitsDisplay;
+    private JList goodCommitsDisplay;
     private JTextField server;
     private JTextField branch;
     private JButton clearLogButton;
     private JTabbedPane tabbedPane1;
-    private JTextArea badCommitsDisplay;
+    private JList badCommitsDisplay;
     private JComboBox authors;
     private JLabel queryTime;
     private JButton resolveCommitButton;
-    private JTextArea resolvedCommitsDisplay;
+    private JList resolvedCommitsDisplay;
+
+    private ArrayListModel goodListModel =3D new ArrayListModel(null);
+    private ArrayListModel badListModel =3D new ArrayListModel(null);
+    private ArrayListModel resolvedListModel =3D new ArrayListModel(null);
 =

     public MainPanel(final Controller controller) {
         startQuery.addActionListener(new ActionListener() {
@@ -58,17 +61,12 @@
             public void actionPerformed(ActionEvent e) {
                 File saveFile =3D GUITools.selectSaveLocation(tabbedPane1,=
 "Select save location", "/", false);
                 if (saveFile !=3D null) {
-                    controller.saveLogToFile(saveFile, badCommitsDisplay.i=
sShowing() ? badCommitsDisplay.getText() : goodCommitsDisplay.getText());
+                    // TODO
+                    //controller.saveLogToFile(saveFile, badCommitsDisplay=
.isShowing() ? badCommitsDisplay.getText() : goodCommitsDisplay.getText());
                 }
 =

             }
         });
-        clearLogButton.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                goodCommitsDisplay.setText("");
-                badCommitsDisplay.setText("");
-            }
-        });
         authors.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 if (authors.getItemCount() > 0) {
@@ -117,7 +115,7 @@
         resolveCommitButton.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 if (authors.getItemCount() > 0)
-                new CommitResolver(controller, authors.getSelectedItem().t=
oString(), branch.getText()).setVisible(true);
+                    new CommitResolver(controller, authors.getSelectedItem=
().toString(), branch.getText()).setVisible(true);
             }
         });
     }
@@ -151,22 +149,32 @@
      *
      * @param commitsRetrieved the retrieved commits
      */
-    public void onCommitsRetrieved(Pair<ArrayList<Pair<Commit, Commit>>, A=
rrayList<Commit>> commitsRetrieved) {
+    public void onCommitsRetrieved(Trio<ArrayList<Pair<Commit, Commit>>, A=
rrayList<Commit>, ArrayList<ResolvedCommit>> commitsRetrieved) {
         ArrayList<Commit> badCommits =3D commitsRetrieved.second;
         ArrayList<Pair<Commit, Commit>> goodCommits =3D commitsRetrieved.f=
irst;
+        ArrayList<ResolvedCommit> resolvedCommits =3D commitsRetrieved.thi=
rd;
 =

-        StringBuffer badBuf =3D new StringBuffer();
-        for (Commit badOne : badCommits) {
-            badBuf.append(badOne).append("\n").append("\t#################=
####################\n\n");
-        }
-
-        StringBuffer goodBuf =3D new StringBuffer();
-        for (Pair<Commit, Commit> goodOne : goodCommits) {
-            goodBuf.append(goodOne.first).append("\n # from trunk:\n").app=
end(goodOne.second).append("\n").append("\t################################=
#####\n\n");
-        }
+        badListModel.replaceElements(badCommits);
+        badListModel.fireContentChanged();
+        goodListModel.replaceElements(goodCommits);
+        goodListModel.fireContentChanged();
+        resolvedListModel.replaceElements(resolvedCommits);
+        resolvedListModel.fireContentChanged();
+    }
 =

-        badCommitsDisplay.setText(badBuf.toString());
-        goodCommitsDisplay.setText(goodBuf.toString());
+    private void createUIComponents() {
+        goodCommitsDisplay =3D new JList(goodListModel);
+        badCommitsDisplay =3D new JList(badListModel);
+        resolvedCommitsDisplay =3D new JList(resolvedListModel);
+        ListCellRenderer renderer =3D new ArrayListRenderer();
+        goodCommitsDisplay.setCellRenderer(renderer);
+        badCommitsDisplay.setCellRenderer(renderer);
+        resolvedCommitsDisplay.setCellRenderer(renderer);
+        goodCommitsDisplay.addMouseListener(new MouseAdapter() {
+            public void mousePressed(MouseEvent e) {
+                goodCommitsDisplay.validate();
+            }
+        });
     }
 =

     {
@@ -184,6 +192,7 @@
      * @noinspection ALL
      */
     private void $$$setupUI$$$() {
+        createUIComponents();
         panel1 =3D new JPanel();
         panel1.setLayout(new BorderLayout(0, 0));
         panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.cr=
eateEmptyBorder(10, 10, 10, 10), null));
@@ -375,40 +384,24 @@
         tabbedPane1.addTab("Good commits", panel4);
         final JScrollPane scrollPane1 =3D new JScrollPane();
         panel4.add(scrollPane1, BorderLayout.CENTER);
-        goodCommitsDisplay =3D new JTextArea();
         goodCommitsDisplay.setBackground(UIManager.getColor("window"));
-        goodCommitsDisplay.setColumns(0);
-        goodCommitsDisplay.setEditable(false);
         goodCommitsDisplay.setFont(UIManager.getFont("Label.font"));
-        goodCommitsDisplay.setLineWrap(true);
-        goodCommitsDisplay.setRows(0);
-        goodCommitsDisplay.setWrapStyleWord(false);
         scrollPane1.setViewportView(goodCommitsDisplay);
         final JPanel panel5 =3D new JPanel();
         panel5.setLayout(new BorderLayout(0, 0));
         tabbedPane1.addTab("Missing trunk commits", panel5);
         final JScrollPane scrollPane2 =3D new JScrollPane();
         panel5.add(scrollPane2, BorderLayout.CENTER);
-        badCommitsDisplay =3D new JTextArea();
         badCommitsDisplay.setBackground(UIManager.getColor("window"));
-        badCommitsDisplay.setEditable(false);
         badCommitsDisplay.setFont(UIManager.getFont("Label.font"));
-        badCommitsDisplay.setLineWrap(true);
-        badCommitsDisplay.setText("");
         scrollPane2.setViewportView(badCommitsDisplay);
         final JPanel panel6 =3D new JPanel();
         panel6.setLayout(new BorderLayout(0, 0));
         tabbedPane1.addTab("Resolved commits", panel6);
         final JScrollPane scrollPane3 =3D new JScrollPane();
         panel6.add(scrollPane3, BorderLayout.CENTER);
-        resolvedCommitsDisplay =3D new JTextArea();
         resolvedCommitsDisplay.setBackground(UIManager.getColor("window"));
-        resolvedCommitsDisplay.setColumns(0);
-        resolvedCommitsDisplay.setEditable(false);
         resolvedCommitsDisplay.setFont(UIManager.getFont("Label.font"));
-        resolvedCommitsDisplay.setLineWrap(true);
-        resolvedCommitsDisplay.setRows(0);
-        resolvedCommitsDisplay.setWrapStyleWord(false);
         scrollPane3.setViewportView(resolvedCommitsDisplay);
     }
 =


Modified: trunk/integrity/src/main/java/org/jahia/integrity/view/MainWindow=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/integrity/src/m=
ain/java/org/jahia/integrity/view/MainWindow.java&rev=3D49&repname=3Djahia_=
upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/integrity/view/MainWindow.java =
(original)
+++ trunk/integrity/src/main/java/org/jahia/integrity/view/MainWindow.java =
Mon Jun  4 18:31:34 2007
@@ -2,7 +2,9 @@
 =

 import org.jahia.integrity.controller.Controller;
 import org.jahia.integrity.model.Commit;
+import org.jahia.integrity.model.ResolvedCommit;
 import org.jahia.tools.Pair;
+import org.jahia.tools.Trio;
 =

 import javax.swing.*;
 import java.awt.*;
@@ -51,7 +53,7 @@
         main.onAuthorsRetrieved(authors);
     }
 =

-    public void onCommitsRetrieved(Pair<ArrayList<Pair<Commit, Commit>>, A=
rrayList<Commit>> commitsRetrieved) {
+    public void onCommitsRetrieved(Trio<ArrayList<Pair<Commit, Commit>>, A=
rrayList<Commit>, ArrayList<ResolvedCommit>> commitsRetrieved) {
         main.onCommitsRetrieved(commitsRetrieved);
     }
 =


Added: trunk/integrity/src/main/java/org/jahia/tools/Trio.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/integrit=
y/src/main/java/org/jahia/tools/Trio.java&rev=3D49&repname=3Djahia_upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/integrity/src/main/java/org/jahia/tools/Trio.java (added)
+++ trunk/integrity/src/main/java/org/jahia/tools/Trio.java Mon Jun  4 18:3=
1:34 2007
@@ -0,0 +1,34 @@
+package org.jahia.tools;
+
+/**
+ * @version 2007-06-01
+ * @author Romain Felden
+ */
+public class Trio<T1,T2,T3> implements java.io.Serializable {
+
+       public T1 first ;
+       public T2 second ;
+    public T3 third ;
+
+    public Trio(T1 t1, T2 t2, T3 t3) {
+               first =3D t1 ;
+               second =3D t2 ;
+        third =3D t3 ;
+    }
+
+       public int hashCode() {
+               return first.hashCode() ^ second.hashCode() ^ third.hashCode();
+       }
+
+       @SuppressWarnings("unchecked")
+       public boolean equals(Object otherRaw) {
+               if (!(otherRaw instanceof Trio)) return false ;
+               Trio<T1,T2,T3> other =3D (Trio)otherRaw ;
+               return first.equals(other.first) && second.equals(other.second) 
&& third=
.equals(other.third) ;
+       }
+
+       public String toString() {
+               return 
"<"+first.toString()+","+second.toString()+","+third.toString()+"=
>" ;
+       }
+
+}

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to