use of com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo in project cubrid-manager by CUBRID.
the class AddProcedureAction method run.
/**
* Open AddProcedureDialog
*/
public void run() {
// FIXME logic code move to core module
Shell shell = getShell();
Object[] obj = this.getSelectedObj();
if (!isSupported(obj)) {
setEnabled(false);
return;
}
ISchemaNode node = (ISchemaNode) obj[0];
CubridDatabase database = node.getDatabase();
EditProcedureDialog dlg = new EditProcedureDialog(shell);
dlg.setDatabase(database);
dlg.setNewFlag(true);
ISelectionProvider provider = getSelectionProvider();
if (dlg.open() == IDialogConstants.OK_ID && (provider instanceof TreeViewer)) {
ICubridNode folderNode = database.getChild(database.getId() + ICubridNodeLoader.NODE_SEPARATOR + CubridSPFolderLoader.SP_FOLDER_ID);
folderNode = folderNode.getChild(folderNode.getId() + ICubridNodeLoader.NODE_SEPARATOR + CubridSPFolderLoader.PROCEDURE_FOLDER_ID);
TreeViewer treeViewer = (TreeViewer) provider;
if (folderNode == null || !folderNode.getLoader().isLoaded()) {
return;
}
String procedureName = dlg.getProcedureName().toLowerCase(Locale.getDefault());
String id = folderNode.getId() + ICubridNodeLoader.NODE_SEPARATOR + procedureName;
DbUserInfo userInfo = database.getDatabaseInfo().getAuthLoginedDbUserInfo();
SPInfo spInfo = new SPInfo(procedureName);
spInfo.setOwner(userInfo.getName());
ICubridNode newNode = CubridProcedureFolderLoader.createProcedureNode(id, spInfo);
CommonUITool.addNodeToTree(treeViewer, folderNode, newNode);
}
}
use of com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo in project cubrid-manager by CUBRID.
the class EditFunctionAction method run.
/**
* Open the EditFunctionDialog and edit function
*/
public void run() {
Object[] objArr = this.getSelectedObj();
if (!isSupported(objArr)) {
this.setEnabled(false);
return;
}
Shell shell = getShell();
CubridDatabase database = null;
ISchemaNode node = null;
if (objArr[0] instanceof ISchemaNode && NodeType.STORED_PROCEDURE_FUNCTION.equals(((ISchemaNode) objArr[0]).getType())) {
node = (ISchemaNode) objArr[0];
database = node.getDatabase();
}
if (database == null || node == null) {
CommonUITool.openErrorBox(shell, Messages.errSelectProcedure);
return;
}
final GetSPInfoListTask task = new GetSPInfoListTask(database.getDatabaseInfo());
task.setSpName(node.getName());
TaskExecutor taskExcutor = new CommonTaskExec(getText());
taskExcutor.addTask(task);
new ExecTaskWithProgress(taskExcutor).busyCursorWhile();
if (!taskExcutor.isSuccess()) {
return;
}
List<SPInfo> list = task.getSPInfoList();
if (list.size() > 1) {
CommonUITool.openErrorBox(shell, Messages.errDuplicateName);
return;
}
if (list.isEmpty()) {
CommonUITool.openErrorBox(shell, Messages.errNotExistName);
return;
}
EditFunctionDialog dlg = new EditFunctionDialog(shell);
dlg.setDatabase(database);
dlg.setNewFlag(false);
dlg.setSpInfo(list.get(0));
if (dlg.open() == IDialogConstants.OK_ID) {
ActionManager.getInstance().fireSelectionChanged(getSelection());
}
}
use of com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo in project cubrid-manager by CUBRID.
the class GetSPInfoListTask method buildResult.
/**
* Create sp information list by ResultSet
*
* @throws SQLException the sql exception
*/
private void buildResult() throws SQLException {
// FIXME extract to utility class
while (rs.next()) {
String spName = rs.getString("sp_name");
if (spName == null || spName.trim().length() <= 0) {
continue;
}
String spType = rs.getString("sp_type");
SPType type = null;
if (spType != null && spType.trim().equalsIgnoreCase("PROCEDURE")) {
type = SPType.PROCEDURE;
} else if (spType != null && spType.trim().equalsIgnoreCase("FUNCTION")) {
type = SPType.FUNCTION;
}
String returnType = rs.getString("return_type");
String target = rs.getString("target");
String language = rs.getString("lang");
String owner = rs.getString("owner");
String description = null;
if (isCommentSupport) {
description = rs.getString("comment");
}
SPInfo spInfo = getSPInfo(spInfoList, spName);
if (spInfo == null) {
spInfo = new SPInfo(spName, type, returnType, language, owner, target, description);
spInfoList.add(spInfo);
}
String argName = rs.getString("arg_name");
if (argName == null || argName.trim().length() <= 0) {
continue;
}
// Get sp args
int index = rs.getInt("index_of");
String dataType = rs.getString("data_type");
String mode = rs.getString("mode");
SPArgsType spArgsType = null;
if (mode != null && mode.trim().equalsIgnoreCase("IN")) {
spArgsType = SPArgsType.IN;
} else if (mode != null && mode.trim().equalsIgnoreCase("OUT")) {
spArgsType = SPArgsType.OUT;
} else if (mode != null && mode.trim().equalsIgnoreCase("INOUT")) {
spArgsType = SPArgsType.INOUT;
}
String colDescription = null;
if (isCommentSupport) {
colDescription = rs.getString("col_comment");
}
SPArgsInfo spArgsInfo = new SPArgsInfo(spName, argName, index, dataType, spArgsType, colDescription);
spInfo.addSPArgsInfo(spArgsInfo);
}
}
Aggregations