Search in sources :

Example 6 with SPInfo

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);
    }
}
Also used : DbUserInfo(com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo) EditProcedureDialog(com.cubrid.common.ui.cubrid.procedure.dialog.EditProcedureDialog) Shell(org.eclipse.swt.widgets.Shell) ISelectionProvider(org.eclipse.jface.viewers.ISelectionProvider) ISchemaNode(com.cubrid.common.ui.spi.model.ISchemaNode) TreeViewer(org.eclipse.jface.viewers.TreeViewer) SPInfo(com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo) ICubridNode(com.cubrid.common.ui.spi.model.ICubridNode) CubridDatabase(com.cubrid.common.ui.spi.model.CubridDatabase)

Example 7 with SPInfo

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());
    }
}
Also used : CommonTaskExec(com.cubrid.common.ui.spi.progress.CommonTaskExec) Shell(org.eclipse.swt.widgets.Shell) TaskExecutor(com.cubrid.common.ui.spi.progress.TaskExecutor) ISchemaNode(com.cubrid.common.ui.spi.model.ISchemaNode) SPInfo(com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo) ExecTaskWithProgress(com.cubrid.common.ui.spi.progress.ExecTaskWithProgress) EditFunctionDialog(com.cubrid.common.ui.cubrid.procedure.dialog.EditFunctionDialog) CubridDatabase(com.cubrid.common.ui.spi.model.CubridDatabase) GetSPInfoListTask(com.cubrid.cubridmanager.core.cubrid.sp.task.GetSPInfoListTask)

Example 8 with SPInfo

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);
    }
}
Also used : SPArgsType(com.cubrid.cubridmanager.core.cubrid.sp.model.SPArgsType) SPType(com.cubrid.cubridmanager.core.cubrid.sp.model.SPType) SPInfo(com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo) SPArgsInfo(com.cubrid.cubridmanager.core.cubrid.sp.model.SPArgsInfo)

Aggregations

SPInfo (com.cubrid.cubridmanager.core.cubrid.sp.model.SPInfo)8 CubridDatabase (com.cubrid.common.ui.spi.model.CubridDatabase)6 ISchemaNode (com.cubrid.common.ui.spi.model.ISchemaNode)6 ICubridNode (com.cubrid.common.ui.spi.model.ICubridNode)4 GetSPInfoListTask (com.cubrid.cubridmanager.core.cubrid.sp.task.GetSPInfoListTask)4 DbUserInfo (com.cubrid.cubridmanager.core.cubrid.user.model.DbUserInfo)4 Shell (org.eclipse.swt.widgets.Shell)4 ArrayList (java.util.ArrayList)3 EditFunctionDialog (com.cubrid.common.ui.cubrid.procedure.dialog.EditFunctionDialog)2 EditProcedureDialog (com.cubrid.common.ui.cubrid.procedure.dialog.EditProcedureDialog)2 CubridNodeChangedEvent (com.cubrid.common.ui.spi.event.CubridNodeChangedEvent)2 CommonTaskExec (com.cubrid.common.ui.spi.progress.CommonTaskExec)2 ExecTaskWithProgress (com.cubrid.common.ui.spi.progress.ExecTaskWithProgress)2 TaskExecutor (com.cubrid.common.ui.spi.progress.TaskExecutor)2 DatabaseInfo (com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo)2 ISelectionProvider (org.eclipse.jface.viewers.ISelectionProvider)2 TreeViewer (org.eclipse.jface.viewers.TreeViewer)2 SPArgsInfo (com.cubrid.cubridmanager.core.cubrid.sp.model.SPArgsInfo)1 SPArgsType (com.cubrid.cubridmanager.core.cubrid.sp.model.SPArgsType)1 SPType (com.cubrid.cubridmanager.core.cubrid.sp.model.SPType)1