use of com.cubrid.cubridmanager.core.cubrid.jobauto.task.SetQueryPlanListTask in project cubrid-manager by CUBRID.
the class DeleteQueryPlanAction method run.
/**
* @see org.eclipse.jface.action.Action#run()
*/
public void run(ISchemaNode[] nodeArray) {
List<String> nodeNames = new ArrayList<String>();
CubridDatabase database = null;
for (Object obj : nodeArray) {
if (obj instanceof DefaultSchemaNode) {
database = ((DefaultSchemaNode) obj).getDatabase();
}
ICubridNode selection = (ICubridNode) obj;
nodeNames.add(selection.getLabel());
}
if (!CommonUITool.openConfirmBox(Messages.bind(Messages.delQueryPlanConfirmContent, nodeNames))) {
return;
}
if (database == null) {
CommonUITool.openErrorBox(Messages.msgSelectDB);
return;
}
ICubridNode parentSelection = ((DefaultSchemaNode) nodeArray[0]).getParent();
boolean withUser = CompatibleUtil.isSupportQueryPlanWithUser(database.getDatabaseInfo());
List<ICubridNode> list = parentSelection.getChildren();
List<String> msgList = new ArrayList<String>();
QueryPlanInfo queryPlan = null;
QueryPlanInfoHelp qHelp = new QueryPlanInfoHelp();
for (ICubridNode icn : list) {
if (!icn.isContainer()) {
boolean isRemove = false;
for (String nodeName : nodeNames) {
if (icn.getLabel().equals(nodeName)) {
isRemove = true;
break;
}
}
if (isRemove) {
continue;
}
queryPlan = (QueryPlanInfo) icn.getAdapter(QueryPlanInfo.class);
qHelp.setQueryPlanInfo(queryPlan);
msgList.add(qHelp.buildMsg(withUser));
}
}
ServerInfo serverInfo = database.getServer().getServerInfo();
SetQueryPlanListTask task = new SetQueryPlanListTask(serverInfo);
task.setDbname(database.getName());
task.buildMsg(msgList);
String taskName = Messages.bind(Messages.delQueryPlanTaskName, nodeNames);
TaskExecutor taskExecutor = new CommonTaskExec(taskName);
taskExecutor.addTask(task);
new ExecTaskWithProgress(taskExecutor).exec();
if (!taskExecutor.isSuccess()) {
return;
}
for (Object obj : nodeArray) {
TreeViewer treeViewer = (TreeViewer) getSelectionProvider();
DefaultSchemaNode delNode = ((DefaultSchemaNode) obj);
ICubridNode parentNode = delNode.getParent();
parentNode.removeChild(delNode);
treeViewer.remove(delNode);
}
}
use of com.cubrid.cubridmanager.core.cubrid.jobauto.task.SetQueryPlanListTask in project cubrid-manager by CUBRID.
the class EditQueryPlanAction method run.
/**
*
* Creates a Dialog which is the instance of EditBackupPlanDialog to edit a
* query plan
*
*/
public int run(CubridDatabase database, DefaultSchemaNode schemaNode) {
if (database == null) {
CommonUITool.openErrorBox(Messages.msgSelectDB);
return IDialogConstants.CANCEL_ID;
}
boolean withUser = CompatibleUtil.isSupportQueryPlanWithUser(database.getDatabaseInfo());
boolean isEditAble = false;
if (CubridNodeType.QUERY_PLAN.equals(schemaNode.getType()) && database != null && database.isLogined()) {
DbUserInfo dbUserInfo = database.getDatabaseInfo().getAuthLoginedDbUserInfo();
if (dbUserInfo != null && dbUserInfo.isDbaAuthority()) {
isEditAble = true;
}
}
EditQueryPlanDialog editQueryPlanDlg = new EditQueryPlanDialog(getShell(), isEditAble);
editQueryPlanDlg.setOperation(AddEditType.EDIT);
editQueryPlanDlg.initPara(schemaNode);
if (editQueryPlanDlg.open() == Dialog.OK) {
// Sets the data of task
List<ICubridNode> list = schemaNode.getParent().getChildren();
List<String> msgList = new ArrayList<String>();
QueryPlanInfo queryPlan = null;
QueryPlanInfoHelp qHelp = new QueryPlanInfoHelp();
for (ICubridNode icn : list) {
if (!icn.isContainer()) {
queryPlan = (QueryPlanInfo) icn.getAdapter(QueryPlanInfo.class);
qHelp.setQueryPlanInfo(queryPlan);
msgList.add(qHelp.buildMsg(withUser));
}
}
ServerInfo serverInfo = database.getServer().getServerInfo();
SetQueryPlanListTask task = new SetQueryPlanListTask(serverInfo);
task.setDbname(database.getName());
task.buildMsg(msgList);
String taskName = Messages.bind(com.cubrid.cubridmanager.ui.cubrid.jobauto.Messages.editQueryPlanTaskName, schemaNode.getName());
TaskExecutor taskExecutor = new CommonTaskExec(taskName);
taskExecutor.addTask(task);
new ExecTaskWithProgress(taskExecutor).exec();
CubridNodeManager.getInstance().fireCubridNodeChanged(new CubridNodeChangedEvent(schemaNode, CubridNodeChangedEventType.NODE_REFRESH));
ActionManager.getInstance().fireSelectionChanged(getSelection());
return IDialogConstants.OK_ID;
}
return IDialogConstants.CANCEL_ID;
}
use of com.cubrid.cubridmanager.core.cubrid.jobauto.task.SetQueryPlanListTask in project cubrid-manager by CUBRID.
the class AddQueryPlanAction method run.
public void run(CubridDatabase database) {
ICubridNode jobAutoFolderNode = database.getChild(database.getId() + ICubridNodeLoader.NODE_SEPARATOR + CubridDatabaseLoader.JOB_AUTO_FOLDER_ID);
DefaultSchemaNode queryPlanFolderNode = (DefaultSchemaNode) jobAutoFolderNode.getChild(jobAutoFolderNode.getId() + ICubridNodeLoader.NODE_SEPARATOR + CubridJobAutoFolderLoader.QUERY_PLAN_FOLDER_ID);
boolean withUser = false;
if (CompatibleUtil.isSupportQueryPlanWithUser(database.getDatabaseInfo())) {
withUser = true;
}
TreeViewer treeViewer = (TreeViewer) this.getSelectionProvider();
EditQueryPlanDialog editQueryPlanDlg = new EditQueryPlanDialog(getShell(), true);
editQueryPlanDlg.setDatabase(database);
editQueryPlanDlg.setOperation(AddEditType.ADD);
editQueryPlanDlg.initPara(queryPlanFolderNode);
DefaultSchemaNode newNode = null;
if (editQueryPlanDlg.open() == Dialog.OK) {
// Sets the data of task
QueryPlanInfoHelp queryPlanInfoHelp = editQueryPlanDlg.getQueryPlanInfo();
QueryPlanInfo queryPlanInfo = queryPlanInfoHelp.getQueryPlanInfo();
String newQueryId = queryPlanInfoHelp.getQuery_id();
newNode = new DefaultSchemaNode(newQueryId, newQueryId, ICON_PATH);
newNode.setContainer(false);
newNode.setType(CubridNodeType.QUERY_PLAN);
newNode.setModelObj(queryPlanInfo);
List<ICubridNode> list = queryPlanFolderNode.getChildren();
List<String> msgList = new ArrayList<String>();
QueryPlanInfo queryPlan = null;
QueryPlanInfoHelp qHelp = new QueryPlanInfoHelp();
for (ICubridNode icn : list) {
if (!icn.isContainer()) {
queryPlan = (QueryPlanInfo) icn.getAdapter(QueryPlanInfo.class);
qHelp.setQueryPlanInfo(queryPlan);
msgList.add(qHelp.buildMsg(withUser));
}
}
qHelp.setQueryPlanInfo(queryPlanInfo);
msgList.add(qHelp.buildMsg(withUser));
ServerInfo serverInfo = database.getServer().getServerInfo();
SetQueryPlanListTask task = new SetQueryPlanListTask(serverInfo);
task.setDbname(database.getName());
task.buildMsg(msgList);
String taskName = Messages.bind(com.cubrid.cubridmanager.ui.cubrid.jobauto.Messages.addQueryPlanTaskName, newQueryId);
TaskExecutor taskExecutor = new CommonTaskExec(taskName);
taskExecutor.addTask(task);
new ExecTaskWithProgress(taskExecutor).exec();
if (!taskExecutor.isSuccess()) {
return;
}
} else {
canceledTask = true;
}
if (null != newNode) {
queryPlanFolderNode.addChild(newNode);
treeViewer.add(queryPlanFolderNode, newNode);
CubridNodeManager.getInstance().fireCubridNodeChanged(new CubridNodeChangedEvent(newNode, CubridNodeChangedEventType.NODE_ADD));
}
}
Aggregations