|
|
|
@ -4,8 +4,6 @@ import com.fr.base.BaseUtils;
|
|
|
|
|
import com.fr.base.FRContext; |
|
|
|
|
import com.fr.data.core.DataCoreUtils; |
|
|
|
|
import com.fr.data.core.db.TableProcedure; |
|
|
|
|
import com.fr.data.core.db.dialect.DialectFactory; |
|
|
|
|
import com.fr.data.core.db.dialect.OracleDialect; |
|
|
|
|
import com.fr.data.impl.Connection; |
|
|
|
|
import com.fr.data.operator.DataOperator; |
|
|
|
|
import com.fr.design.DesignerEnvManager; |
|
|
|
@ -13,7 +11,6 @@ import com.fr.design.constants.UIConstants;
|
|
|
|
|
import com.fr.design.mainframe.dnd.SerializableTransferable; |
|
|
|
|
import com.fr.file.ConnectionConfig; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
|
|
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
@ -138,17 +135,15 @@ public class TableViewList extends UIList {
|
|
|
|
|
String[] schemas = DataCoreUtils.getDatabaseSchema(datasource); |
|
|
|
|
|
|
|
|
|
searchFilter = searchFilter.toLowerCase(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean isOracle = DataOperator.getInstance().isOracle(datasource); |
|
|
|
|
boolean isOracleSystemSpace = DesignerEnvManager.getEnvManager().isOracleSystemSpace(); |
|
|
|
|
// oracleb不勾选显示所有表,则只显示用户下的(包括存储过程和table表)
|
|
|
|
|
if (isOracle && !isOracleSystemSpace) { |
|
|
|
|
java.sql.Connection connection = datasource.createConnection(); |
|
|
|
|
OracleDialect orcDialect = (OracleDialect)DialectFactory.generateDialect(connection); |
|
|
|
|
schemas = new String[]{orcDialect.getOracleCurrentUserSchema(connection)}; |
|
|
|
|
String[] userSchemas = DataOperator.getInstance().getOracleConnectionSchemas(datasource); |
|
|
|
|
if (userSchemas.length > 0) { |
|
|
|
|
schemas = userSchemas; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typesFilter.length == 1 && ComparatorUtils.equals(typesFilter[0], TableProcedure.PROCEDURE)) { |
|
|
|
|
return processStoreProcedure(defaultListModel, schemas, datasource, isOracle, searchFilter); |
|
|
|
|
} else { |
|
|
|
@ -182,7 +177,7 @@ public class TableViewList extends UIList {
|
|
|
|
|
if (!isOracle) { |
|
|
|
|
String schema = null; |
|
|
|
|
for (String type : typesFilter) { |
|
|
|
|
//非oracle数据库,默认都是显示所有表的,参数为true
|
|
|
|
|
//非oracle数据库,默认都是显示所有表的,参数为true
|
|
|
|
|
TableProcedure[] sqlTables = DataCoreUtils.getTables(datasource, type, schema, true); |
|
|
|
|
for (int i = 0; i < sqlTables.length; i++) { |
|
|
|
|
if (isBlank || sqlTables[i].getName().toLowerCase().indexOf(searchFilter) != -1) { |
|
|
|
@ -192,17 +187,17 @@ public class TableViewList extends UIList {
|
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
for (String type : typesFilter) { |
|
|
|
|
for (String schema : schemas) { |
|
|
|
|
TableProcedure[] sqlTables = DataCoreUtils.getTables(datasource, type, schema, isOracleSystemSpace); |
|
|
|
|
// oracle的表名加上模式
|
|
|
|
|
for (int i = 0; i < sqlTables.length; i++) { |
|
|
|
|
TableProcedure ta = sqlTables[i]; |
|
|
|
|
String name = ta.getSchema() + '.' + ta.getName(); |
|
|
|
|
if (isBlank || name.toLowerCase().indexOf(searchFilter) != -1) { |
|
|
|
|
defaultListModel.addElement(sqlTables[i]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (String schema : schemas) { |
|
|
|
|
TableProcedure[] sqlTables = DataCoreUtils.getTables(datasource, type, schema, isOracleSystemSpace); |
|
|
|
|
// oracle的表名加上模式
|
|
|
|
|
for (int i = 0; i < sqlTables.length; i++) { |
|
|
|
|
TableProcedure ta = sqlTables[i]; |
|
|
|
|
String name = ta.getSchema() + '.' + ta.getName(); |
|
|
|
|
if (isBlank || name.toLowerCase().indexOf(searchFilter) != -1) { |
|
|
|
|
defaultListModel.addElement(sqlTables[i]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return defaultListModel; |
|
|
|
|