Author: vkumar
Date: Thu Feb 12 16:55:56 2009
New Revision: 743805
URL: http://svn.apache.org/viewvc?rev=743805&view=rev
Log:
Improving Database browser portlet and adding Default sort by functionality
Modified:
portals/applications/demo/src/main/webapp/WEB-INF/portlet.xml
portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit.vm
portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit1.vm
portals/applications/demo/src/main/webapp/WEB-INF/view/database-view.vm
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
Modified: portals/applications/demo/src/main/webapp/WEB-INF/portlet.xml
URL:
http://svn.apache.org/viewvc/portals/applications/demo/src/main/webapp/WEB-INF/portlet.xml?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
--- portals/applications/demo/src/main/webapp/WEB-INF/portlet.xml (original)
+++ portals/applications/demo/src/main/webapp/WEB-INF/portlet.xml Thu Feb 12
16:55:56 2009
@@ -870,7 +870,11 @@
<preference>
<name>columnNames</name>
<value>CLIENT_ID,NAME,MODEL</value>
- </preference>
+ </preference>
+ <preference>
+ <name>orderByColumns</name>
+ <value></value>
+ </preference>
</portlet-preferences>
</portlet>
@@ -1105,7 +1109,7 @@
<portlet-preferences>
<preference>
<name>file</name>
- <value>/_content/sso-demo.html</value>
+ <value>sso-demo.html</value>
</preference>
</portlet-preferences>
</portlet>
Modified:
portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit.vm
URL:
http://svn.apache.org/viewvc/portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit.vm?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
--- portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit.vm
(original)
+++ portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit.vm Thu
Feb 12 16:55:56 2009
@@ -1,222 +1,222 @@
-#*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*#
-#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
-#set ($dst = $prefsMap.get('DatasourceType'))
-#set ($disableDS = "disabled")
-#set ($disableDBCP = "disabled")
-#set ($disableSSO = "disabled")
-#if ($!dst == 'jndi')
-#set ($disableDS = "")
-#elseif ($!dst == 'dbcp')
-#set ($disableDBCP = "")
-#elseif ($!dst == 'sso')
-#set ($disableSSO = "")
-#end
-
-#if ($statusMsg)
-#parse ('/WEB-INF/view/status-include.vm')
-#end
-
-<h3 class="portlet-section-header">$MESSAGES.getString('label.prefs')</h3>
-
-<form name='J2DBEdit' action="$renderResponse.createActionURL()" method="post">
-<table border="0" cellspacing="2" cellpadding="3">
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString('label.datasource.type')</font></th>
- <td>
- <div>
- <input type="radio" default name="DatasourceType" value='jndi' #if
($dst == 'jndi') checked #end onClick="javascript:chooseDS();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.jndi")</font>
- </div>
- <div>
- <input type="radio" name="DatasourceType" value='dbcp' #if ($dst ==
'dbcp') checked #end onClick="javascript:chooseDBCP();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.dbcp")</font>
- </div>
- <div>
- <input type="radio" name="DatasourceType" value='sso' #if ($dst ==
'sso') checked #end onClick="javascript:chooseSSO();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.sso")</font>
- </div>
- <p class="portlet-form-field">$MESSAGES.getString('label.select.ds')</p>
- </td>
- </tr>
-</table>
-
-<h4
class="portlet-section-header">$MESSAGES.getString('label.jndi.settings')</h4>
-
-<table border="0" cellspacing="2" cellpadding="3">
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jndi")</font></th>
- <td>
- <input name='JndiDatasource' $!disableDS type="input"
value="$!prefsMap.get('JndiDatasource')" size="30" maxlength="30"
class="portlet-form-field-label"/>
- </td>
- </tr>
-</table>
-
-<h4
class="portlet-section-header">$MESSAGES.getString('label.dbcp.settings')</h4>
-
-<table border="0" cellspacing="2" cellpadding="3">
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.driver")</font></th>
- <td>
- <input type="input" name="JdbcDriver" $!disableDBCP
value="$!prefsMap.get('JdbcDriver')" size="60" maxlength="100"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.connection")</font></th>
- <td>
- <input type="input" name="JdbcConnection" $!disableDBCP
value="$!prefsMap.get('JdbcConnection')" size="60" maxlength="100"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.username")</font></th>
- <td>
- <input type="input" name="JdbcUsername" $!disableDBCP
value="$!prefsMap.get('JdbcUsername')" size="30" maxlength="30"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.password")</font></th>
- <td>
- <input type="password" name="JdbcPassword" $!disableDBCP
value="$!prefsMap.get('JdbcPassword')" size="30" maxlength="30"
class="portlet-form-field-label"/>
- </td>
- </tr>
-</table>
-
-<h4
class="portlet-section-header">$MESSAGES.getString('label.sso.settings')</h4>
-
-<table border="0" cellspacing="2" cellpadding="3">
-<tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.driver")</font></th>
- <td>
- <input type="input" name="SSOJdbcDriver" $!disableSSO
value="$!prefsMap.get('SSOJdbcDriver')" size="60" maxlength="100"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.connection")</font></th>
- <td>
- <input type="input" name="SSOJdbcConnection" $!disableSSO
value="$!prefsMap.get('SSOJdbcConnection')" size="60" maxlength="100"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">SSO Site</font></th>
- <td>
- <input type="input" name="SSOSite" $!disableSSO
value="$!prefsMap.get('SSOSite')" size="60" maxlength="100"
class="portlet-form-field-label"/>
- </td>
- </tr>
- </tr>
-</table>
-
-<h4
class="portlet-section-header">$MESSAGES.getString('label.general.settings')</h4>
-<table border="0" cellspacing="2" cellpadding="3">
- <tr>
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.window.size")</font></th>
- <td>
- <input type="input" name="WindowSize"
value="$!prefsMap.get('WindowSize')" size="5" maxlength="5"
class="portlet-form-field-label"/>
- </td>
- </tr>
- <tr>
- #set($tabelPref = $!prefsMap.get('tableName'))
- <th class="portlet-section-alternate"><font
class="portlet-form-field-label">TABLE</font></th>
- <td>
- #if($tableLists)
- <select name="tables" id="tables">
- #foreach ($table in $tableLists )
- <option value='$table'
- #if($table == $tabelPref)
- selected
- #end>$table</option>
- #end
- </select>
- #else
- <input type="input" name="tables" id="tables"
class="portlet-form-field-label" value="$!prefsMap.get('tableName')" />
- #end
- </td>
- </tr>
-</table>
-
-<input type="hidden" name="tableName" id="tableName" value=""/>
-<input type="hidden" name="configPage" value=""/>
-<input type="submit" name="Save" value="Save" onClick="javascript:presave();"/>
-<input type="submit" name="Test" value="Test" onClick="javascript:presave();"/>
-<input type="button" name="Next" value="Next"
onClick="javascript:nextPage();"/>
-</form>
-
-<script language="JavaScript">
- function nextPage()
- {
- #if($tableLists)
- var tables = document.getElementById('tables');
- document.J2DBEdit.tableName.value =
tables.options[tables.selectedIndex].value;
- #else
- var tables = document.getElementById('tables');
- document.J2DBEdit.tableName.value = tables.value;
- #end
- document.J2DBEdit.configPage.value = 'configPage1';
- document.J2DBEdit.submit();
- }
- function chooseDS()
- {
- disableDS(false);
- disableDBCP(true);
- disableSSO(true);
- }
-
- function chooseDBCP()
- {
- disableDS(true);
- disableDBCP(false);
- disableSSO(true);
- }
-
- function chooseSSO()
- {
- disableDS(true);
- disableDBCP(true);
- disableSSO(false);
- }
-
- function disableDS(flag)
- {
- document.forms['J2DBEdit'].JndiDatasource.disabled = flag;
- }
-
- function disableDBCP(flag)
- {
- document.forms['J2DBEdit'].JdbcDriver.disabled = flag;
- document.forms['J2DBEdit'].JdbcConnection.disabled = flag;
- document.forms['J2DBEdit'].JdbcUsername.disabled = flag;
- document.forms['J2DBEdit'].JdbcPassword.disabled = flag;
- }
-
- function disableSSO(flag)
- {
- document.forms['J2DBEdit'].SSOSite.disabled = flag;
- document.forms['J2DBEdit'].SSOJdbcDriver.disabled = flag;
- document.forms['J2DBEdit'].SSOJdbcConnection.disabled = flag;
- }
-
- function presave()
- {
- #if($tableLists)
- var tables = document.getElementById('tables');
- document.J2DBEdit.tableName.value =
tables.options[tables.selectedIndex].value;
- #else
- var tables = document.getElementById('tables');
- document.J2DBEdit.tableName.value = tables.value;
- #end
- disableDS(false);
- disableDBCP(false);
- disableSSO(false);
- }
-
-</script>
+#*
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*#
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+#set ($dst = $prefsMap.get('DatasourceType'))
+#set ($disableDS = "disabled")
+#set ($disableDBCP = "disabled")
+#set ($disableSSO = "disabled")
+#if ($!dst == 'jndi')
+#set ($disableDS = "")
+#elseif ($!dst == 'dbcp')
+#set ($disableDBCP = "")
+#elseif ($!dst == 'sso')
+#set ($disableSSO = "")
+#end
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<h3 class="portlet-section-header">$MESSAGES.getString('label.prefs')</h3>
+
+<form name='J2DBEdit' action="$renderResponse.createActionURL()" method="post">
+<table border="0" cellspacing="2" cellpadding="3">
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString('label.datasource.type')</font></th>
+ <td>
+ <div>
+ <input type="radio" default name="DatasourceType" value='jndi' #if
($dst == 'jndi') checked #end onClick="javascript:chooseDS();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.jndi")</font>
+ </div>
+ <div>
+ <input type="radio" name="DatasourceType" value='dbcp' #if ($dst ==
'dbcp') checked #end onClick="javascript:chooseDBCP();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.dbcp")</font>
+ </div>
+ <div>
+ <input type="radio" name="DatasourceType" value='sso' #if ($dst ==
'sso') checked #end onClick="javascript:chooseSSO();"/> <font
class="portlet-form-field-label">$MESSAGES.getString("label.datasource.sso")</font>
+ </div>
+ <p class="portlet-form-field">$MESSAGES.getString('label.select.ds')</p>
+ </td>
+ </tr>
+</table>
+
+<h4
class="portlet-section-header">$MESSAGES.getString('label.jndi.settings')</h4>
+
+<table border="0" cellspacing="2" cellpadding="3">
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jndi")</font></th>
+ <td>
+ <input name='JndiDatasource' $!disableDS type="input"
value="$!prefsMap.get('JndiDatasource')" size="30" maxlength="30"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+</table>
+
+<h4
class="portlet-section-header">$MESSAGES.getString('label.dbcp.settings')</h4>
+
+<table border="0" cellspacing="2" cellpadding="3">
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.driver")</font></th>
+ <td>
+ <input type="input" name="JdbcDriver" $!disableDBCP
value="$!prefsMap.get('JdbcDriver')" size="60" maxlength="100"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.connection")</font></th>
+ <td>
+ <input type="input" name="JdbcConnection" $!disableDBCP
value="$!prefsMap.get('JdbcConnection')" size="60" maxlength="100"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.username")</font></th>
+ <td>
+ <input type="input" name="JdbcUsername" $!disableDBCP
value="$!prefsMap.get('JdbcUsername')" size="30" maxlength="30"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.password")</font></th>
+ <td>
+ <input type="password" name="JdbcPassword" $!disableDBCP
value="$!prefsMap.get('JdbcPassword')" size="30" maxlength="30"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+</table>
+
+<h4
class="portlet-section-header">$MESSAGES.getString('label.sso.settings')</h4>
+
+<table border="0" cellspacing="2" cellpadding="3">
+<tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.driver")</font></th>
+ <td>
+ <input type="input" name="SSOJdbcDriver" $!disableSSO
value="$!prefsMap.get('SSOJdbcDriver')" size="60" maxlength="100"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.jdbc.connection")</font></th>
+ <td>
+ <input type="input" name="SSOJdbcConnection" $!disableSSO
value="$!prefsMap.get('SSOJdbcConnection')" size="60" maxlength="100"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">SSO Site</font></th>
+ <td>
+ <input type="input" name="SSOSite" $!disableSSO
value="$!prefsMap.get('SSOSite')" size="60" maxlength="100"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ </tr>
+</table>
+
+<h4
class="portlet-section-header">$MESSAGES.getString('label.general.settings')</h4>
+<table border="0" cellspacing="2" cellpadding="3">
+ <tr>
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">$MESSAGES.getString("label.window.size")</font></th>
+ <td>
+ <input type="input" name="WindowSize"
value="$!prefsMap.get('WindowSize')" size="5" maxlength="5"
class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ #set($tabelPref = $!prefsMap.get('tableName'))
+ <th class="portlet-section-alternate"><font
class="portlet-form-field-label">TABLE</font></th>
+ <td>
+ #if($tableLists)
+ <select name="tables" id="tables">
+ #foreach ($table in $tableLists )
+ <option value='$table'
+ #if($table == $tabelPref)
+ selected
+ #end>$table</option>
+ #end
+ </select>
+ #else
+ <input type="input" name="tables" id="tables"
class="portlet-form-field-label" value="$!prefsMap.get('tableName')" />
+ #end
+ </td>
+ </tr>
+</table>
+
+<input type="hidden" name="tableName" id="tableName" value=""/>
+<input type="hidden" name="configPage" value=""/>
+<input type="submit" name="Save" value="Save" onClick="javascript:presave();"/>
+<input type="submit" name="Test" value="Test" onClick="javascript:presave();"/>
+<input type="button" name="Next" value="Next"
onClick="javascript:nextPage();"/>
+</form>
+
+<script language="JavaScript">
+ function nextPage()
+ {
+ #if($tableLists)
+ var tables = document.getElementById('tables');
+ document.J2DBEdit.tableName.value =
tables.options[tables.selectedIndex].value;
+ #else
+ var tables = document.getElementById('tables');
+ document.J2DBEdit.tableName.value = tables.value;
+ #end
+ document.J2DBEdit.configPage.value = 'configPage1';
+ document.J2DBEdit.submit();
+ }
+ function chooseDS()
+ {
+ disableDS(false);
+ disableDBCP(true);
+ disableSSO(true);
+ }
+
+ function chooseDBCP()
+ {
+ disableDS(true);
+ disableDBCP(false);
+ disableSSO(true);
+ }
+
+ function chooseSSO()
+ {
+ disableDS(true);
+ disableDBCP(true);
+ disableSSO(false);
+ }
+
+ function disableDS(flag)
+ {
+ document.forms['J2DBEdit'].JndiDatasource.disabled = flag;
+ }
+
+ function disableDBCP(flag)
+ {
+ document.forms['J2DBEdit'].JdbcDriver.disabled = flag;
+ document.forms['J2DBEdit'].JdbcConnection.disabled = flag;
+ document.forms['J2DBEdit'].JdbcUsername.disabled = flag;
+ document.forms['J2DBEdit'].JdbcPassword.disabled = flag;
+ }
+
+ function disableSSO(flag)
+ {
+ document.forms['J2DBEdit'].SSOSite.disabled = flag;
+ document.forms['J2DBEdit'].SSOJdbcDriver.disabled = flag;
+ document.forms['J2DBEdit'].SSOJdbcConnection.disabled = flag;
+ }
+
+ function presave()
+ {
+ #if($tableLists)
+ var tables = document.getElementById('tables');
+ document.J2DBEdit.tableName.value =
tables.options[tables.selectedIndex].value;
+ #else
+ var tables = document.getElementById('tables');
+ document.J2DBEdit.tableName.value = tables.value;
+ #end
+ disableDS(false);
+ disableDBCP(false);
+ disableSSO(false);
+ }
+
+</script>
\ No newline at end of file
Modified:
portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit1.vm
URL:
http://svn.apache.org/viewvc/portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit1.vm?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
--- portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit1.vm
(original)
+++ portals/applications/demo/src/main/webapp/WEB-INF/view/database-edit1.vm
Thu Feb 12 16:55:56 2009
@@ -33,7 +33,7 @@
<h3 class="portlet-section-header">Fields</h3>
-<form name='J2DBEdit' action="$renderResponse.createActionURL()" method="post">
+<form name='J2DBEdit' action="" method="post">
<table border="0" cellspacing="2" cellpadding="3">
<tr>
<td class="portlet-section-alternate"><font
class="portlet-form-field-label">Field Name</font></td>
@@ -42,7 +42,7 @@
<option value="$col">$col</option>
#end
</select></td>
- <td><input type="button" onClick="javascript:moveoutid();"
value=" > " /><br/><input type="button"
onClick="javascript:moveinid();" value=" < " /></td>
+ <td><input type="button"
onClick="javascript:moveoutid('avilableCols','selectedCols');"
value=" > " /><br/><input type="button"
onClick="javascript:moveinid('avilableCols','selectedCols');"
value=" < " /></td>
<td><select size="8" name="selectedCols" id="selectedCols">
</select></td>
<td><input type="button" onClick="javascript:moveUpList();" value="Move
Up" /><br/><input type="button" onClick="javascript:moveDownList();"
value="Move Down" /></td>
@@ -58,6 +58,23 @@
</tr>
</table>
+<h3 class="portlet-section-header">Sort Fields</h3>
+
+<table border="0" cellspacing="2" cellpadding="3">
+ <tr>
+ <td class="portlet-section-alternate"><font
class="portlet-form-field-label">Sort Columns</font></td>
+ <td><select size="8" name="sortCols" id="sortCols">
+ #foreach ($col in $cols )
+ <option value="$col">$col</option>
+ #end
+ </select></td>
+ <td><input type="button"
onClick="javascript:moveoutid('sortCols','sortedCols');" value=" > "
/><br/><input type="button"
onClick="javascript:moveinid('sortCols','sortedCols');" value=" < "
/></td>
+ <td><select size="8" name="sortedCols" id="sortedCols">
+ </select></td>
+ <td><input type="button" onClick="javascript:setSortType('ASC','ASC');"
value="Asc" /><br/><input type="button"
onClick="javascript:setSortType('DESC','DESC');" value="Desc" /></td>
+ </tr>
+</table>
+
<h4 class="portlet-section-header">Where clause</h4>
<table border="0" cellspacing="2" cellpadding="3">
<tr>
@@ -65,11 +82,15 @@
<td>
<textarea name="conditions" id="conditions" cols='60' rows='8'
class="portlet-form-field-label">$!prefsMap.get('conditions')</textarea>
</td>
+ <td>
+ <input type="button" onClick="javascript:insertPlaceHolder('$USER');"
value="User Name" /><br/>
+ </td>
</tr>
</table>
<input type="hidden" name="columnTitles" id="columnTitles" value=""/>
<input type="hidden" name="columnNames" id="columnNames" value=""/>
+<input type="hidden" name="orderByColumns" id="orderByColumns" value=""/>
<input type="hidden" id="configPage" name="configPage" value=""/>
<input type="button" name="back" value="Back" onClick="javascript:goBack();"/>
<input type="button" name="Save" value="Save"
onClick="javascript:saveAdvanceData();"/>
@@ -77,7 +98,7 @@
<script language="JavaScript">
- var ColTitle = new Array();
+ var ColTitle = new Array();
#set($index = 0)
#foreach ($colT in $colTitle )
ColTitle[$index] = '$colT';
@@ -90,7 +111,18 @@
#set($index = $index + 1)
#end
- function removeFromList()
+ var sortColName = new Array();
+ #set($index = 0)
+ #foreach ($colN in $sortCols )
+ sortColName[$index] = '$colN';
+ #set($index = $index + 1)
+ #end
+
+ function insertPlaceHolder(placeHolder)
+ {
+ document.getElementById('conditions').value =
document.getElementById('conditions').value + placeHolder;
+ }
+ function arrangeColumns()
{
var columns = document.getElementById('avilableCols');
var selectedCols = document.getElementById('selectedCols');
@@ -116,6 +148,45 @@
}
}
}
+
+ function arrangeSortColumns()
+ {
+ var tempValue='';
+ var columns = document.getElementById('sortCols');
+ var selectedCols = document.getElementById('sortedCols');
+ for(var j=0; j<sortColName.length; j++)
+ {
+ for(var i=0; i<columns.length; i++)
+ {
+ tempValue = sortColName[j].split(' ');
+ if(columns.options[i].value == tempValue[0])
+ {
+ columns.remove(i);
+ var y=document.createElement('option');
+ if(tempValue[1] == 'ASC')
+ {
+ y.text= tempValue[0] + ' ASC';
+ y.value=tempValue[0] + ':' +
tempValue[1];
+ }else if(tempValue[1] == 'DESC'){
+ y.text= tempValue[0] + ' DESC';
+ y.value=tempValue[0] + ':' +
tempValue[1];
+ }else{
+ y.text= tempValue[0] + ' ASC';
+ y.value=tempValue[0] + ':ASC';
+ }
+ try
+ {
+ selectedCols.add(y,null);
+ }
+ catch(ex)
+ {
+ selectedCols.add(y);
+ }
+ }
+ }
+ }
+ }
+
function listToString()
{
var columns = document.getElementById('columnTitles');
@@ -136,52 +207,75 @@
document.getElementById('columnTitles').value =
tempValue.substring(1);
document.getElementById('columnNames').value =
sqlValue.substring(1);
}
+
+ function orderBylist()
+ {
+ var selectedCols = document.getElementById('sortedCols');
+ var len = selectedCols.length;
+ var tempValue = '';
+ var colValue ='';
+ for(var j=0; j<len; j++)
+ {
+ colValue = selectedCols.options[j].value;
+ if(colValue.indexOf(':')>-1){
+ tempValue = tempValue + "," +
colValue.split(':')[0] + " " + colValue.split(':')[1];
+ }
+ }
+ document.getElementById('orderByColumns').value =
tempValue.substring(1);
+ }
+
function goBack()
{
listToString();
- document.getElementById('configPage').value = 'configPage';
+ #set ($xmlLink = $renderResponse.createActionURL())
+ $xmlLink.setParameter("configPage","configPage")
+ document.J2DBEdit.action = '$xmlLink';
document.J2DBEdit.submit();
}
function saveAdvanceData()
{
listToString();
+ orderBylist();
+ #set ($xmlLink = $renderResponse.createActionURL())
+ $xmlLink.setParameter("configPage","save")
+ document.J2DBEdit.action = '$xmlLink';
document.J2DBEdit.submit();
}
- function moveoutid()
+ function moveoutid(source,destination)
{
- var avilableCols = document.getElementById('avilableCols');
- var len = avilableCols.length;
- var selectedCols = document.getElementById('selectedCols');
- for(var j=0; j<len; j++)
- {
- if(avilableCols[j].selected)
- {
- var tmp = avilableCols.options[j].text;
- var tmp1 = avilableCols.options[j].value;
- avilableCols.remove(j);
- j--;
- var y=document.createElement('option');
- y.text=tmp;
- y.value=tmp1;
- try
- {
- selectedCols.add(y,null);
- }
- catch(ex)
- {
- selectedCols.add(y);
+ var avilableCols = document.getElementById(source);
+ var len = avilableCols.length;
+ var selectedCols = document.getElementById(destination);
+ for(var j=0; j<len; j++)
+ {
+ if(avilableCols[j].selected)
+ {
+ var tmp = avilableCols.options[j].text;
+ var tmp1 =
avilableCols.options[j].value;
+ avilableCols.remove(j);
+ j--;
+ var y=document.createElement('option');
+ y.text=tmp;
+ y.value=tmp1;
+ try
+ {
+ selectedCols.add(y,null);
+ }
+ catch(ex)
+ {
+ selectedCols.add(y);
+ }
+ break;
}
- break;
}
- }
}
- function moveinid()
- {
- var avilableCols = document.getElementById('avilableCols');
- var selectedCols = document.getElementById('selectedCols');
+ function moveinid(source,destination)
+ {
+ var avilableCols = document.getElementById(source);
+ var selectedCols = document.getElementById(destination);
var len = selectedCols.length;
for(var j=0; j<len; j++)
{
@@ -203,7 +297,7 @@
break;
}
}
- }
+ }
function setLabel()
{
@@ -216,6 +310,16 @@
document.getElementById('colLabel').value = '';
listField.selectedIndex=0;
}
+
+ function setSortType(sort,SortLabel)
+ {
+ var listField = document.getElementById('sortedCols');
+ var index = listField.selectedIndex
+ var labelsVal = listField[index].value.split(':');
+ listField[index].text = labelsVal[0] + ' ' + SortLabel;
+ listField[index].value = labelsVal[0] + ':' + sort;
+ listField.selectedIndex=0;
+ }
function moveUpList() {
var listField = document.getElementById('selectedCols');
@@ -280,53 +384,7 @@
} // Ends the check for there being something selected
} // Ends the check for there being none in the list
}
-
- function chooseDS()
- {
- disableDS(false);
- disableDBCP(true);
- disableSSO(true);
- }
-
- function chooseDBCP()
- {
- disableDS(true);
- disableDBCP(false);
- disableSSO(true);
- }
- function chooseSSO()
- {
- disableDS(true);
- disableDBCP(true);
- disableSSO(false);
- }
-
- function disableDS(flag)
- {
- document.forms['J2DBEdit'].JndiDatasource.disabled = flag;
- }
-
- function disableDBCP(flag)
- {
- document.forms['J2DBEdit'].JdbcDriver.disabled = flag;
- document.forms['J2DBEdit'].JdbcConnection.disabled = flag;
- document.forms['J2DBEdit'].JdbcUsername.disabled = flag;
- document.forms['J2DBEdit'].JdbcPassword.disabled = flag;
- }
-
- function disableSSO(flag)
- {
- document.forms['J2DBEdit'].SSOSite.disabled = flag;
- document.forms['J2DBEdit'].SSOJdbcDriver.disabled = flag;
- document.forms['J2DBEdit'].SSOJdbcConnection.disabled = flag;
- }
-
- function presave()
- {
- disableDS(false);
- disableDBCP(false);
- disableSSO(false);
- }
- removeFromList();
-</script>
+ arrangeColumns();
+ arrangeSortColumns();
+</script>
\ No newline at end of file
Modified:
portals/applications/demo/src/main/webapp/WEB-INF/view/database-view.vm
URL:
http://svn.apache.org/viewvc/portals/applications/demo/src/main/webapp/WEB-INF/view/database-view.vm?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
--- portals/applications/demo/src/main/webapp/WEB-INF/view/database-view.vm
(original)
+++ portals/applications/demo/src/main/webapp/WEB-INF/view/database-view.vm Thu
Feb 12 16:55:56 2009
@@ -1,190 +1,196 @@
-#*
+#*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*#
-
-#**
-
-...@author <a href="mailto:[email protected]">David Sean Taylor</a>
-...@version $Id: database-browser-portlet.vm,v 1.14 2004/08/29 22:27:27 jford
Exp $
-
-*#
-
-#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
-
-#if ($statusMsg)
-#parse ('/WEB-INF/view/status-include.vm')
-#end
-#set ($xlsLink = $renderResponse.createActionURL())
-$xlsLink.setParameter("exportType","xlsExport")
-#set ($xmlLink = $renderResponse.createActionURL())
-$xmlLink.setParameter("exportType","xmlExport")
-<table>
- <tr>
- <td><a target="_blank" href="$xlsLink">XLS</a> <!--<a
target="_blank" href="$xmlLink">XML</a>--></td>
- </tr>
-</table>
-<table cellpadding=0 cellspacing=1 border=0 width="100%">
- <tbody>
- <tr>
- #foreach ($column in $title)
- #set ($columnLink = $renderResponse.createRenderURL())
- $columnLink.setParameter("js_dbcolumn",$column)
- <td align=CENTER class="jetdbHead" width="43" nowrap
onClick="window.location.href='$columnLink'">
- <div align="center">$column</div>
- </td>
- #end
- #if ($rowLinks)
- #if ($rowLinks.size() > 0)
- <td align=CENTER width="43" class="jetdbHead"></td>
- #end
- #end
- </tr>
- #foreach ( $row in $table )
- <tr>
- #if ($velocityCount % 2 == 0)
- #set ($rowstyle = "jetdbEven")
- #else
- #set ($rowstyle = "jetdbOdd")
- #end
- #foreach ( $entry in $row )
- #if ($velocityCount == 1)
- #set ($rowid = $entry)
- #end
- <td nowrap class="$rowstyle" width="23">
- <div class="$rowstyle" align="center">$entry</div>
- </td>
- #end
- #if ($rowLinks)
- #if ($rowLinks.size() > 0)
- <td class="listCell" nowrap width="100">
- #foreach ($rowLink in $rowLinks)
- #set ($rName = $MESSAGES.get($rowLink.Name))
- #if($rowLink.Type=="pane")
- #set ($link1 =
$jslink.setPaneByName($rowLink.Action).addQueryData("js_rowid",$rowid).addQueryData("js_mode",$rName))
- #else
- #set ($link1 =
$jslink.setPage($rowLink.Page).addQueryData("js_rowid",$rowid).addQueryData("js_mode",$rName))
- #end
- <a class="listCell" href='$link1'>$rName</a>
- #end
- </td>
- #end
- #end
- </tr>
- #end
- #if ($tableLinks)
- #if ($tableLinks.size() > 0)
- <tr>
- <td>
- </td>
- </tr>
- <tr>
- #foreach ($tableLink in $tableLinks)
- #set ($tName = $MESSAGES.get($tableLink.Name) )
- #if ($tableLink.Type == "pane")
- #set ($link2 =
$jslink.setPaneByName($tableLink.Action).addQueryData("js_mode",$tName))
- #else
- #set ($link2 =
$jslink.setPage($tableLink.Page).addQueryData("js_mode",$tName))
- #end
- <td><a href='$link2'>$tName</a></td>
- #end
- </tr>
- #end
- #end
- </tbody>
-</table>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr bgcolor="#6868AB">
- <td>
- </td>
- </tr>
-</table>
-<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
- <tr>
- #if ($prev)
- <td valign="middle" height="30">
- <div align="center">
- <form action="$renderResponse.createActionURL()" method="post">
- <input type='hidden' name='db.browser.action' value='first'/>
- <input class="jetdbButton" type="submit" value="<<">
- <input type="hidden" name="start" value="0">
- </form>
- </div>
- </td>
- <td valign="middle" height="30">
- <div align="center">
- <form action="$renderResponse.createActionURL()" method="post">
- <input type='hidden' name='db.browser.action' value='prev'/>
- <input class="jetdbButton" type="submit" value="<">
- <input type="hidden" name="start" value="$prev">
- </form>
- </div>
- </td>
- #end
- #if ($tableSize > 0)
- <form action="$renderResponse.createActionURL()" method="post">
- <td valign="middle" height="30">
- <div align="center">
- <input type='hidden' name='db.browser.action' value='change'/>
- <input type="input" name='start' size='5' value="$start">
- </div>
- </td>
- <td valign="middle" height="30">
- <div align="center">
- <input type="input" readonly size='10' value="of $tableSize">
- </div>
- </td>
- <td valign="middle" height="30">
- <div align="center">
- <input class="jetdbButton" type="submit" value="Go">
- </div>
- </td>
-
- </form>
-
-
- #end
- #if ($next)
- <td valign="middle">
- <div align="center">
- <form action="$renderResponse.createActionURL()" method="post">
- <input type='hidden' name='db.browser.action' value='next'/>
- <input class="jetdbButton" type="submit" value=">">
- <input type="hidden" name="start" value="$next">
- </form>
- </div>
- </td>
- <td valign="middle" height="30">
- <div align="center">
- <form action="$renderResponse.createActionURL()" method="post">
- <input type='hidden' name='db.browser.action' value='last'/>
- <input class="jetdbButton" type="submit" value=">>">
- <input type="hidden" name="start" value="$tableSize">
- </form>
- </div>
- </td>
- #end
- #if ($tableSize > 0)
- <td valign="middle">
- <div align="center">
- <form action="$renderResponse.createActionURL()" method="post">
- <input type='hidden' name='db.browser.action' value='refresh'/>
- <input class="jetdbButton" type="submit"
name="eventSubmit_doRefresh" value="$MESSAGES.getString('dbrefresh')" />
- </form>
- </div>
- </td>
- #end
- </tr>
-</table>
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+...@author <a href="mailto:[email protected]">David Sean Taylor</a>
+...@version $Id: database-browser-portlet.vm,v 1.14 2004/08/29 22:27:27 jford
Exp $
+
+*#
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+#set ($xlsLink = $renderResponse.createActionURL())
+$xlsLink.setParameter("exportType","xlsExport")
+#set ($xmlLink = $renderResponse.createActionURL())
+$xmlLink.setParameter("exportType","xmlExport")
+<table>
+ <tr>
+ <td><a target="_blank" href="$xlsLink">XLS</a> <!--<a
target="_blank" href="$xmlLink">XML</a>--></td>
+ </tr>
+</table>
+<table cellpadding=0 cellspacing=1 border=0 width="100%">
+ <tbody>
+ <tr>
+ #foreach ($column in $title)
+ #set ($columnLink = $renderResponse.createRenderURL())
+ $columnLink.setParameter("js_dbcolumn",$column)
+ <td align=CENTER class="jetdbHead" width="43" nowrap
onClick="window.location.href='$columnLink'">
+ <div align="center">$column</div>
+ </td>
+ #end
+ #if ($rowLinks)
+ #if ($rowLinks.size() > 0)
+ <td align=CENTER width="43" class="jetdbHead"></td>
+ #end
+ #end
+ </tr>
+ #foreach ( $row in $table )
+ <tr>
+ #if ($velocityCount % 2 == 0)
+ #set ($rowstyle = "jetdbEven")
+ #else
+ #set ($rowstyle = "jetdbOdd")
+ #end
+ #foreach ( $entry in $row )
+ #if ($velocityCount == 1)
+ #set ($rowid = $entry)
+ #end
+ <td nowrap class="$rowstyle" width="23">
+ <div class="$rowstyle" align="center">$entry</div>
+ </td>
+ #end
+ #if ($rowLinks)
+ #if ($rowLinks.size() > 0)
+ <td class="listCell" nowrap width="100">
+ #foreach ($rowLink in $rowLinks)
+ #set ($rName = $MESSAGES.get($rowLink.Name))
+ #if($rowLink.Type=="pane")
+ #set ($link1 =
$jslink.setPaneByName($rowLink.Action).addQueryData("js_rowid",$rowid).addQueryData("js_mode",$rName))
+ #else
+ #set ($link1 =
$jslink.setPage($rowLink.Page).addQueryData("js_rowid",$rowid).addQueryData("js_mode",$rName))
+ #end
+ <a class="listCell" href='$link1'>$rName</a>
+ #end
+ </td>
+ #end
+ #end
+ </tr>
+ #end
+ #if ($tableLinks)
+ #if ($tableLinks.size() > 0)
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ #foreach ($tableLink in $tableLinks)
+ #set ($tName = $MESSAGES.get($tableLink.Name) )
+ #if ($tableLink.Type == "pane")
+ #set ($link2 =
$jslink.setPaneByName($tableLink.Action).addQueryData("js_mode",$tName))
+ #else
+ #set ($link2 =
$jslink.setPage($tableLink.Page).addQueryData("js_mode",$tName))
+ #end
+ <td><a href='$link2'>$tName</a></td>
+ #end
+ </tr>
+ #end
+ #end
+ </tbody>
+</table>
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#6868AB">
+ <td>
+ </td>
+ </tr>
+</table>
+<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
+ <tr>
+ #if ($prev)
+ <td valign="middle" height="30">
+ <div align="center">
+ #set ($actionLink = $renderResponse.createActionURL())
+ $actionLink.setParameter("start",'0')
+ <form action="$actionLink" method="post">
+ <input type='hidden' name='db.browser.action' value='first'/>
+ <input class="jetdbButton" type="submit" value="<<">
+ </form>
+ </div>
+ </td>
+ <td valign="middle" height="30">
+ <div align="center">
+ #set ($actionLink1 = $renderResponse.createActionURL())
+ $actionLink1.setParameter("start",$prev)
+ <form action="$actionLink1" method="post">
+ <input type='hidden' name='db.browser.action' value='prev'/>
+ <input class="jetdbButton" type="submit" value="<">
+ </form>
+ </div>
+ </td>
+ #end
+ #if ($tableSize > 0)
+ #set ($actionLink = $renderResponse.createActionURL())
+ $actionLink.setParameter("start","$start")
+ <form action="$actionLink" method="post">
+ <td valign="middle" height="30">
+ <div align="center">
+ <input type='hidden' name='db.browser.action' value='change'/>
+ <input type="input" name='start' size='5' value="$start">
+ </div>
+ </td>
+ <td valign="middle" height="30">
+ <div align="center">
+ <input type="input" readonly size='10' value="of $tableSize">
+ </div>
+ </td>
+ <td valign="middle" height="30">
+ <div align="center">
+ <input class="jetdbButton" type="submit" value="Go">
+ </div>
+ </td>
+
+ </form>
+
+
+ #end
+ #if ($next)
+ <td valign="middle">
+ <div align="center">
+ #set ($actionLink = $renderResponse.createActionURL())
+ $actionLink.setParameter("start",$next)
+ <form action="$actionLink" method="post">
+ <input type='hidden' name='db.browser.action' value='next'/>
+ <input class="jetdbButton" type="submit" value=">">
+ </form>
+ </div>
+ </td>
+ <td valign="middle" height="30">
+ <div align="center">
+ #set ($actionLink = $renderResponse.createActionURL())
+ $actionLink.setParameter("start","$tableSize")
+ <form action="$actionLink" method="post">
+ <input type='hidden' name='db.browser.action' value='last'/>
+ <input class="jetdbButton" type="submit" value=">>">
+ </form>
+ </div>
+ </td>
+ #end
+ #if ($tableSize > 0)
+ <td valign="middle">
+ <div align="center">
+ <form action="$renderResponse.createActionURL()" method="post">
+ <input type='hidden' name='db.browser.action' value='refresh'/>
+ <input class="jetdbButton" type="submit"
name="eventSubmit_doRefresh" value="$MESSAGES.getString('dbrefresh')" />
+ </form>
+ </div>
+ </td>
+ #end
+ </tr>
+</table>
Modified:
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
URL:
http://svn.apache.org/viewvc/portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
---
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
(original)
+++
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
Thu Feb 12 16:55:56 2009
@@ -56,6 +56,7 @@
protected static final String SQL = "sql";
public static final String TABLE_NAME = "tableName";
public static final String CONDITIONS = "conditions";
+ public static final String Order_BY_COLUMNS = "orderByColumns";
public static final String COLUMNS = "columnNames";
protected static final String POOLNAME = "poolname";
protected static final String START = "start";
@@ -132,6 +133,7 @@
public void doView(RenderRequest request, RenderResponse response) throws
PortletException, IOException
{
+
int resultSetSize, next, prev, windowSize;
response.setContentType("text/html");
BrowserIterator iterator = getBrowserIterator(request);
Modified:
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
URL:
http://svn.apache.org/viewvc/portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java?rev=743805&r1=743804&r2=743805&view=diff
==============================================================================
---
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
(original)
+++
portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
Thu Feb 12 16:55:56 2009
@@ -78,22 +78,17 @@
public class DatabaseBrowserPortlet extends BrowserPortlet implements Browser
{
private static final String COLUMNS_TITLE = "columnTitles";
- private static final String CATLOG_NAME = "catlogName";
- private static final String SCHEMA_NAME = "schemaName";
private static final String EXPORT_TYPE = "exportType";
private static final String XML_EXPORT = "xmlExport";
private static final String XLS_EXPORT = "xlsExport";
protected static final String TABLE_LIST = "tableLists";
String pathSeprator = System.getProperty("file.separator");
String pageRoot = System.getProperty("java.io.tmpdir");
- private String[] catlogNames;
- private String[] tableNames;
- private String[] schemaNames;
private String[] colNames;
private SimpleDateFormat date_output;
private static final String DATE_OUTPUT_PATTERN = "M/d/yyyy";
BrowserIterator dataBaseIterator;
-
+ private String BLANK_STRING_ARRAY[] = new String[0];
public BrowserIterator getLocalIterators(PortletRequest request, String
sql, int windowSize) throws Exception
{
BrowserIterator iterator;
@@ -526,6 +521,7 @@
getContext(request).put("cols", getColNames());
getContext(request).put("colTitle", getTitleList(request));
getContext(request).put("colName", getColumNames(request));
+ getContext(request).put("sortCols", getSortColums(request));
}
catch (Exception e)
{
@@ -611,6 +607,13 @@
response.setPortletMode(PortletMode.EDIT);
return;
}
+ else if (editAction.equals("save"))
+ {
+ PortletPreferences prefs = request.getPreferences();
+ PreferencesHelper.requestParamsToPreferences(request);
+ prefs.store();
+ response.setPortletMode(PortletMode.VIEW);
+ }
}
}
else if (request.getParameter(EXPORT_TYPE) != null)
@@ -728,17 +731,34 @@
public String[] getColumNames(PortletRequest request)
{
- String columns[] = null;
String tempColumn = "";
tempColumn = request.getPreferences().getValue(COLUMNS, tempColumn);
+ if(StringUtils.isEmpty(tempColumn))
+ {
+ return BLANK_STRING_ARRAY;
+ }
return tempColumn.split(",");
}
+ public String[] getSortColums(PortletRequest request)
+ {
+ String tempColumn = "";
+ tempColumn = request.getPreferences().getValue(Order_BY_COLUMNS,
tempColumn);
+ if(StringUtils.isEmpty(tempColumn))
+ {
+ return BLANK_STRING_ARRAY;
+ }
+ return tempColumn.split(",");
+ }
+
+
+
public String getQueryString(PortletRequest request)
{
StringBuffer query = new StringBuffer();
String table = request.getPreferences().getValue(TABLE_NAME, "");
String condtions = request.getPreferences().getValue(CONDITIONS, "");
+ String orderBy = request.getPreferences().getValue(Order_BY_COLUMNS,
"");
String columns = request.getPreferences().getValue(COLUMNS, "");
if (!StringUtils.isEmpty(columns))
{
@@ -752,7 +772,17 @@
{
query.append(" ").append(condtions);
}
- return query.toString();
+ if (!StringUtils.isEmpty(orderBy))
+ {
+ query.append(" ORDER BY ").append(orderBy);
+ }
+
+ return replacePlaceHolder(query.toString(),request);
+ }
+ private String replacePlaceHolder(String buffer, PortletRequest request){
+ String userName =
((RenderRequest)request).getUserPrincipal().getName();
+ buffer = buffer.replace("$USER", "'" + userName + "'");
+ return buffer;
}
private HSSFWorkbook generateExcel(List beanList, String[] colNames,
String[] colDescs, Method[] readMethods)