/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright 2008 - 2009 Pentaho Corporation. All rights reserved.
*/
package org.pentaho.pac.client.datasources;
import org.pentaho.pac.client.PentahoAdminConsole;
import org.pentaho.pac.common.datasources.PentahoDataSource;
import org.pentaho.pac.client.common.keyfilters.KeyListenerFactory;
import org.pentaho.pac.client.common.keyfilters.KeyListenerFactory.FILTER_TYPE;
import org.pentaho.pac.client.i18n.Messages;
import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
public class DataSourceAdvancePanel extends VerticalPanel{
private KeyboardListener defaultKeyListener = KeyListenerFactory.getKeyboardListener(FILTER_TYPE.NUMERIC);
TextBox maxActiveConnTextBox = new TextBox();
TextBox idleConnTextBox = new TextBox();
TextBox validationQueryTextBox = new TextBox();
TextBox waitTextBox = new TextBox();
Label label = new Label(Messages.getString("datasourceAdvanceInfo")); //$NON-NLS-1$
public DataSourceAdvancePanel() {
add(new Label(Messages.getString("maxActiveDbConnections"))); //$NON-NLS-1$
add(maxActiveConnTextBox);
add(new Label(Messages.getString("numIdleDbConnnections"))); //$NON-NLS-1$
add(idleConnTextBox);
add(new Label(Messages.getString("dbValidationQuery"))); //$NON-NLS-1$
add(validationQueryTextBox);
add(new Label(Messages.getString("dbWaitTime"))); //$NON-NLS-1$
add(waitTextBox);
add(label);
maxActiveConnTextBox.addKeyboardListener(defaultKeyListener);
idleConnTextBox.addKeyboardListener(defaultKeyListener);
waitTextBox.addKeyboardListener(defaultKeyListener);
maxActiveConnTextBox.setWidth("100%"); //$NON-NLS-1$
idleConnTextBox.setWidth("100%"); //$NON-NLS-1$
validationQueryTextBox.setWidth("100%"); //$NON-NLS-1$
waitTextBox.setWidth("100%"); //$NON-NLS-1$
label.setWidth("100%"); //$NON-NLS-1$
}
public int getMaxActiveConnections() {
int count = -1;
try {
count = Integer.parseInt(maxActiveConnTextBox.getText());
} catch (Exception ex) {
// Do nothing.
}
return count;
}
public void setMaxActiveConnections(int count) {
maxActiveConnTextBox.setText(count > 0 ? Integer.toString(count) : ""); //$NON-NLS-1$
}
public int getIdleConnections() {
int count = -1;
try {
count = Integer.parseInt(idleConnTextBox.getText());
} catch (Exception ex) {
// Do nothing.
}
return count;
}
public void setIdleConnections(int count) {
idleConnTextBox.setText(count > 0 ? Integer.toString(count) : ""); //$NON-NLS-1$
}
public String getValidationQuery() {
return validationQueryTextBox.getText();
}
public void setValidationQuery(String query) {
validationQueryTextBox.setText(query);
}
public long getWait() {
int count = -1;
try {
count = Integer.parseInt(waitTextBox.getText());
} catch (Exception ex) {
// Do nothing.
}
return count;
}
public void setWait(long count) {
waitTextBox.setText(count > 0 ? Long.toString(count) : ""); //$NON-NLS-1$
}
public TextBox getMaxActiveConnectionsTextBox() {
return maxActiveConnTextBox;
}
public TextBox getIdleConnectionsTextBox() {
return maxActiveConnTextBox;
}
public TextBox getValidationQueryTextBox() {
return validationQueryTextBox;
}
public TextBox getWaitTextBox() {
return waitTextBox;
}
public void setDataSource(PentahoDataSource dataSource) {
if (dataSource == null) {
setMaxActiveConnections(-1);
setIdleConnections(-1);
setValidationQuery(""); //$NON-NLS-1$
setWait(-1);
} else {
setMaxActiveConnections(dataSource.getMaxActConn());
setIdleConnections(dataSource.getIdleConn());
setValidationQuery(dataSource.getQuery());
setWait(dataSource.getWait());
}
}
public PentahoDataSource getDataSource() {
PentahoDataSource dataSource = new PentahoDataSource();
dataSource.setMaxActConn(getMaxActiveConnections());
dataSource.setIdleConn(getIdleConnections());
dataSource.setQuery(getValidationQuery());
dataSource.setWait(getWait());
return dataSource;
}
public void setEnabled(boolean enabled) {
maxActiveConnTextBox.setEnabled(enabled);
idleConnTextBox.setEnabled(enabled);
validationQueryTextBox.setEnabled(enabled);
waitTextBox.setEnabled(enabled);
}
public void refresh() {
}
}