/*******************************************************************************
* 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.viewers.object.sub.rdb.table;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine;
import com.hangum.tadpole.engine.query.dao.mysql.TableDAO;
import com.hangum.tadpole.engine.query.dao.system.UserDBDAO;
/**
* table의 컬럼의 0번째 값을 소스로 설정합니다.
*
* @author hangum
*/
public class TableDragListener implements DragSourceListener {
private UserDBDAO userDB;
private TableViewer viewer;
public TableDragListener(UserDBDAO userDB, TableViewer viewer) {
this.userDB = userDB;
this.viewer = viewer;
}
@Override
public void dragStart(DragSourceEvent event) {
}
@Override
public void dragSetData(DragSourceEvent event) {
IStructuredSelection iss = (IStructuredSelection)viewer.getSelection();
if(!iss.isEmpty()) {
StringBuffer sbData = new StringBuffer();
sbData.append(userDB.getSeq() + PublicTadpoleDefine.DELIMITER);
for(Object objTable : iss.toList()) {
TableDAO td = (TableDAO)objTable;//iss.getFirstElement();
String strSchemaName = StringUtils.defaultIfEmpty(td.getSchema_name(), " ");
String strCommnet = StringUtils.defaultIfEmpty(td.getComment(), " ");
sbData.append(strSchemaName + PublicTadpoleDefine.DELIMITER +
td.getName() + PublicTadpoleDefine.DELIMITER +
strCommnet + PublicTadpoleDefine.DELIMITER +
PublicTadpoleDefine.DELIMITER_DBL
);
}
event.data = sbData.toString();
}
}
@Override
public void dragFinished(DragSourceEvent event) {
}
}