/*******************************************************************************
* Copyright (c) 2013 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.rdb.core.dialog.dbconnect.sub.others;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.PlatformUI;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine;
import com.hangum.tadpole.engine.define.DBDefine;
import com.hangum.tadpole.engine.query.dao.system.ExternalBrowserInfoDAO;
import com.hangum.tadpole.rdb.core.Messages;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.dialog.ExtensionBrowserURLDialog;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.sub.others.dao.OthersConnectionInfoDAO;
/**
* hive Others connection info
*
* @author hangum
*
*/
public class OthersConnectionBigDataGroup extends AbstractOthersConnection {
private String strIp = "";
private OthersConnectionInfoDAO otherConnectionDAO = new OthersConnectionInfoDAO();
/** read only connection */
private Button btnReadOnlyConnection;
private Button btnProfiler;
private Button btnExecuteQuestionDml;
private Button btnShowTables;
private Button btnExternalBrowser;
// private Button btnIsVisible;
// private Button btnSendMonitoring;
/**
* Create the composite.
*
* @param parent
* @param style
* @param selectDB
*/
public OthersConnectionBigDataGroup(final Composite parent, int style, DBDefine selectDB) {
super(parent, style, selectDB);
setText(Messages.get().SettingOtherInfo);
GridLayout gridLayout = new GridLayout(3, false);
gridLayout.verticalSpacing = 2;
gridLayout.horizontalSpacing = 2;
gridLayout.marginHeight = 2;
gridLayout.marginWidth = 0;
setLayout(gridLayout);
btnReadOnlyConnection = new Button(this, SWT.CHECK);
btnReadOnlyConnection.setText(Messages.get().ReadOnly);
// Button btnTableFilters = new Button(this, SWT.NONE);
// btnTableFilters.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// DBConnectTablesFilterDialog dialog = new DBConnectTablesFilterDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
// if(Dialog.OK == dialog.open()) {
// DBConnectionTableFilterDAO tableFilterDao = dialog.getTableFilterDAO();
//
// otherConnectionDAO.setTableFilter(tableFilterDao.isEnable());
// otherConnectionDAO.setStrTableFilterInclude(tableFilterDao.getIncludeFilter());
// otherConnectionDAO.setStrTableFilterExclude(tableFilterDao.getExcludeFilter());
// }
// }
// });
// btnTableFilters.setText(Messages.get().OthersConnectionRDBWithoutTunnelingGroup_3);
btnExternalBrowser = new Button(this, SWT.NONE);
btnExternalBrowser.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ExtensionBrowserURLDialog dialog = new ExtensionBrowserURLDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), getDefaultExternalBrowserInfo());
if(Dialog.OK == dialog.open()) {
otherConnectionDAO.setExterBrowser(dialog.isEnable());
otherConnectionDAO.setListExterBroswer(dialog.getListExterBroswer());
}
}
});
btnExternalBrowser.setText(Messages.get().ExternalBrowser);
new Label(this, SWT.NONE);
btnProfiler = new Button(this, SWT.CHECK);
btnProfiler.setSelection(true);
btnProfiler.setText(Messages.get().OthersConnectionRDBGroup_5);
btnShowTables = new Button(this, SWT.CHECK);
btnShowTables.setSelection(true);
btnShowTables.setText(Messages.get().ShowTables);
btnExecuteQuestionDml = new Button(this, SWT.CHECK);
btnExecuteQuestionDml.setText(Messages.get().OthersConnectionRDBGroup_6);
// btnIsVisible = new Button(this, SWT.CHECK);
// btnIsVisible.setSelection(true);
// btnIsVisible.setText(Messages.get().OthersConnectionBigDataGroup_btnIsVisible_text);
// btnSendMonitoring = new Button(this, SWT.CHECK);
// btnSendMonitoring.setSelection(true);
// btnSendMonitoring.setEnabled(false);
// btnSendMonitoring.setText(Messages.get().OthersConnectionBigDataGroup_btnSendMonitoring_text);
// new Label(this, SWT.NONE);
// new Label(this, SWT.NONE);
// new Label(this, SWT.NONE);
}
/**
* Initialize UI
*
* @param strIp
*/
public void callBackUIInit(String strIp) {
setStrIp(strIp);
}
/**
* default browser inform
*
* @return
*/
public List<ExternalBrowserInfoDAO> getDefaultExternalBrowserInfo() {
List<ExternalBrowserInfoDAO> listBrowser = new ArrayList<ExternalBrowserInfoDAO>();
ExternalBrowserInfoDAO extBrowserDAO = new ExternalBrowserInfoDAO();
if(getSelectDB() == DBDefine.TAJO_DEFAULT) {
extBrowserDAO.setName("TAJO");
extBrowserDAO.setUrl(String.format("http://%s:26080/", getStrIp()));
extBrowserDAO.setIs_used(PublicTadpoleDefine.YES_NO.YES.name());
} else {
extBrowserDAO.setName("Hive");
extBrowserDAO.setUrl(String.format("http://%s:9999/hwi", getStrIp()));
extBrowserDAO.setIs_used(PublicTadpoleDefine.YES_NO.YES.name());
}
listBrowser.add(extBrowserDAO);
// name node
extBrowserDAO = new ExternalBrowserInfoDAO();
extBrowserDAO.setName("Name Node");
extBrowserDAO.setUrl(String.format("http://%s:50070/", getStrIp()));
extBrowserDAO.setIs_used(PublicTadpoleDefine.YES_NO.YES.name());
listBrowser.add(extBrowserDAO);
// job tracker
extBrowserDAO = new ExternalBrowserInfoDAO();
extBrowserDAO.setName("Job Tracker");
extBrowserDAO.setUrl(String.format("http://%s:50030/", getStrIp()));
extBrowserDAO.setIs_used(PublicTadpoleDefine.YES_NO.YES.name());
listBrowser.add(extBrowserDAO);
// task tracker
extBrowserDAO = new ExternalBrowserInfoDAO();
extBrowserDAO.setName("Task Tracker");
extBrowserDAO.setUrl(String.format("http://%s:50060/", getStrIp()));
extBrowserDAO.setIs_used(PublicTadpoleDefine.YES_NO.YES.name());
listBrowser.add(extBrowserDAO);
return listBrowser;
}
/**
* other db connection info
*
* @return
*/
public OthersConnectionInfoDAO getOthersConnectionInfo() {
otherConnectionDAO.setReadOnlyConnection(getBtnReadOnlyConnection());
otherConnectionDAO.setAutoCommit(getBtnAutoCommit());
otherConnectionDAO.setShowTables(getBtnShowTables());
otherConnectionDAO.setProfiling(getBtnProfiler());
otherConnectionDAO.setDMLStatement(getBtnExecuteQuestionDml());
// 데이터가 입력되어 있지 않다면 기본 데이터를 입력해 줍니다.
if(otherConnectionDAO.getListExterBroswer().isEmpty()) {
otherConnectionDAO.setListExterBroswer(getDefaultExternalBrowserInfo());
}
// otherConnectionDAO.setVisible(getIsVisible());
// otherConnectionDAO.setSummaryReport(getSendMonitoring());
return otherConnectionDAO;
}
// public boolean getIsVisible() {
// return btnIsVisible.getSelection();
// }
// public boolean getSendMonitoring() {
// return btnSendMonitoring.getSelection();
// }
/**
* @return the btnReadOnlyConnection
*/
public boolean getBtnReadOnlyConnection() {
return btnReadOnlyConnection.getSelection();
}
/**
* @return the btnAutoCommit
*/
public boolean getBtnAutoCommit() {
return true;
}
public boolean getBtnProfiler() {
return btnProfiler.getSelection();
}
public boolean getBtnExecuteQuestionDml() {
return btnExecuteQuestionDml.getSelection();
}
/**
* @param btnShowTables
*/
public void setBtnShowTables(boolean btnShowTables) {
this.btnShowTables.setSelection(btnShowTables);
}
/**
*
* @return
*/
public boolean getBtnShowTables() {
return btnShowTables.getSelection();
}
public String getStrIp() {
return strIp;
}
public void setStrIp(String strIp) {
this.strIp = strIp;
}
}