/**
* Դ�������ƣ�DBModuleDatabaseSelectionDialog.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.database.ui.pages;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import com.hundsun.ares.studio.jres.database.ui.editors.dialog.SelectDialog;
import com.hundsun.ares.studio.jres.model.database.DBModuleCommonProperty;
/**
* @author wangbin
*
*/
public class DBModuleDatabaseSelectionDialog extends SelectDialog{
/**���ݿ�����*/
static List<String> databaseTypeList = Arrays.asList("Oracle","DB2","MySQL","SQL Sever","Informix","Sybase");
/**
* @param parentShell
* @param Title
*/
protected DBModuleDatabaseSelectionDialog(Shell parentShell,
String Title,
DBModuleCommonProperty model) {
super(parentShell, Title, getChoiceInput(model), getResultInput(model), getLabelProvider());
}
protected static List<String> getResultInput(DBModuleCommonProperty model) {
return getData(model);
}
/**
* ����ȡ����database�б�װ����List
*/
protected static List<String> getData(DBModuleCommonProperty model){
List<String> dbType = new ArrayList<String>();
String database = model.getSupportDatabases();
if(StringUtils.isNotBlank(database)){
if(StringUtils.contains(database, ",")){
dbType.addAll(Arrays.asList(StringUtils.split(database, ",")));
}else{
dbType.add(database);
}
}
return dbType;
}
protected static List<String> getChoiceInput(DBModuleCommonProperty model) {
List<String> choiceInput = new ArrayList<String>();
List<String> dataType = getData(model);
for(int i = 0; i<databaseTypeList.size(); i++ ){
String databaseType = databaseTypeList.get(i);
if(!dataType.contains(databaseType)){
choiceInput.add(databaseType);
}
}
return choiceInput;
}
protected static ILabelProvider getLabelProvider() {
return new ILabelProvider() {
@Override
public void removeListener(ILabelProviderListener listener) {
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void dispose() {
}
@Override
public void addListener(ILabelProviderListener listener) {
}
@Override
public String getText(Object element) {
return (String) element;
}
@Override
public Image getImage(Object element) {
return null;
}
};
}
}