From 94322fe0d7845cfc94f7ceb6892d6ef6a609f78c Mon Sep 17 00:00:00 2001
From: Guillaume Thomazon <gtn@kereval.com>
Date: Thu, 24 Apr 2014 08:49:32 +0000
Subject: [PATCH] Convert index to int to sort by index

git-svn-id: https://scm.gforge.inria.fr/authscm/ycadoret/svn/gazelle/Maven/gazelle-proxy/trunk@41163 356b4b1a-1d2b-0410-8bf1-ffa24008f01e
---
 .../src/main/webapp/messageList.xhtml              |  3 ++-
 .../src/main/sql/3.1.1-Update_index_to_int.sql     |  2 ++
 .../proxy/model/message/AbstractMessage.java       | 14 +++++++++++++-
 3 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 gazelle-proxy-ear/src/main/sql/3.1.1-Update_index_to_int.sql

diff --git a/gazelle-proxy-common-war/src/main/webapp/messageList.xhtml b/gazelle-proxy-common-war/src/main/webapp/messageList.xhtml
index 762a30a0..b07ad6c1 100644
--- a/gazelle-proxy-common-war/src/main/webapp/messageList.xhtml
+++ b/gazelle-proxy-common-war/src/main/webapp/messageList.xhtml
@@ -27,7 +27,8 @@
 				value="#{message.connection.id}" />
 		</rich:column>
 
-		<rich:column>
+		<rich:column sortBy="#{'indexInt'}"
+			sortOrder="#{dataTableStateHolder.sortOrders['indexInt']}">
 			<f:facet name="header">
 				<h:outputText value="#{messages['net.ihe.gazelle.proxy.Index']}" />
 			</f:facet>
diff --git a/gazelle-proxy-ear/src/main/sql/3.1.1-Update_index_to_int.sql b/gazelle-proxy-ear/src/main/sql/3.1.1-Update_index_to_int.sql
new file mode 100644
index 00000000..8e644a18
--- /dev/null
+++ b/gazelle-proxy-ear/src/main/sql/3.1.1-Update_index_to_int.sql
@@ -0,0 +1,2 @@
+UPDATE pxy_abstract_message SET index_int= CAST(index AS integer) where index != '?';
+
diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
index 3a522037..db7196be 100644
--- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
+++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
@@ -100,16 +100,28 @@ public abstract class AbstractMessage implements Comparable<AbstractMessage>, Se
 
 	@Column(name = "result_oid")
 	private ArrayList<String> resultOid = new ArrayList<String>();
-	
+
 	@Column(name = "index")
 	private String index;
 
+	@Column(name = "index_int")
+	private int indexInt;
+
+	public int getIndexInt() {
+		return indexInt;
+	}
+
+	public void setIndexInt(int index_int) {
+		this.indexInt = index_int;
+	}
+
 	public String getIndex() {
 		return index;
 	}
 
 	public void setIndex(String index) {
 		this.index = index;
+		setIndexInt(Integer.parseInt(index));
 	}
 
 	public ArrayList<String> getResultOid() {
-- 
GitLab