Search in sources :

Example 1 with NAME_PREFIX_CRUD

use of com.redhat.devtools.intellij.tektoncd.telemetry.TelemetryService.NAME_PREFIX_CRUD in project intellij-tekton by redhat-developer.

the class DeleteAction method actionPerformed.

@Override
public void actionPerformed(AnActionEvent anActionEvent, TreePath[] path, Object[] selected, Tkn tkncli) {
    ActionMessage telemetry = TelemetryService.instance().action(NAME_PREFIX_CRUD + "delete resource");
    ParentableNode[] elements = Arrays.stream(selected).map(item -> getElement(item)).toArray(ParentableNode[]::new);
    ExecHelper.submit(() -> {
        String deleteText = getDeleteText(tkncli, elements);
        int resultDialog = UIHelper.executeInUI(() -> {
            DeleteDialog delDialog = new DeleteDialog(null, getTitle(elements), deleteText, getDeleteChkText(elements));
            delDialog.show();
            if (delDialog.isOK()) {
                return delDialog.hasToDeleteRelatedResources() ? OK_DELETE_RESOURCES_CODE : OK_DELETE_CODE;
            }
            return CANCEL_CODE;
        });
        if (resultDialog != CANCEL_CODE) {
            String namespace = elements[0].getNamespace();
            boolean deleteRelatedResources = resultDialog == OK_DELETE_RESOURCES_CODE;
            Map<Class, List<ParentableNode>> resourcesByClass = TreeHelper.getResourcesByClass(elements);
            for (Class type : resourcesByClass.keySet()) {
                try {
                    deleteResources(type, resourcesByClass, namespace, deleteRelatedResources, tkncli);
                    ((TektonTreeStructure) getTree(anActionEvent).getClientProperty(Constants.STRUCTURE_PROPERTY)).fireModified(resourcesByClass.get(type).get(0).getParent());
                    telemetry.property(TelemetryService.PROP_RESOURCE_KIND, type.getSimpleName()).property(TelemetryService.PROP_RESOURCE_RELATED, String.valueOf(deleteRelatedResources)).success().send();
                } catch (IOException e) {
                    telemetry.error(anonymizeResource(null, namespace, e.getMessage())).send();
                    UIHelper.executeInUI(() -> Messages.showErrorDialog("Error: " + e.getLocalizedMessage(), "Error"));
                }
            }
        }
    });
}
Also used : ClusterTaskNode(com.redhat.devtools.intellij.tektoncd.tree.ClusterTaskNode) Arrays(java.util.Arrays) RefUsage(com.redhat.devtools.intellij.tektoncd.ui.toolwindow.findusage.RefUsage) TreeHelper(com.redhat.devtools.intellij.tektoncd.utils.TreeHelper) KIND_TASK(com.redhat.devtools.intellij.tektoncd.Constants.KIND_TASK) ConditionNode(com.redhat.devtools.intellij.tektoncd.tree.ConditionNode) Tkn(com.redhat.devtools.intellij.tektoncd.tkn.Tkn) PipelineRunNode(com.redhat.devtools.intellij.tektoncd.tree.PipelineRunNode) TaskNode(com.redhat.devtools.intellij.tektoncd.tree.TaskNode) Constants(com.redhat.devtools.intellij.tektoncd.Constants) TriggerTemplateNode(com.redhat.devtools.intellij.tektoncd.tree.TriggerTemplateNode) ExecHelper(com.redhat.devtools.intellij.common.utils.ExecHelper) Map(java.util.Map) TelemetryService(com.redhat.devtools.intellij.tektoncd.telemetry.TelemetryService) Messages(com.intellij.openapi.ui.Messages) UIHelper(com.redhat.devtools.intellij.common.utils.UIHelper) ActionMessage(com.redhat.devtools.intellij.telemetry.core.service.TelemetryMessageBuilder.ActionMessage) TaskRunNode(com.redhat.devtools.intellij.tektoncd.tree.TaskRunNode) AnonymizeUtils.anonymizeResource(com.redhat.devtools.intellij.telemetry.core.util.AnonymizeUtils.anonymizeResource) KIND_CLUSTERTASK(com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASK) TreePath(javax.swing.tree.TreePath) IOException(java.io.IOException) NAME_PREFIX_CRUD(com.redhat.devtools.intellij.tektoncd.telemetry.TelemetryService.NAME_PREFIX_CRUD) ParentableNode(com.redhat.devtools.intellij.tektoncd.tree.ParentableNode) DeleteDialog(com.redhat.devtools.intellij.tektoncd.ui.DeleteDialog) Collectors(java.util.stream.Collectors) TektonTreeStructure(com.redhat.devtools.intellij.tektoncd.tree.TektonTreeStructure) PipelineNode(com.redhat.devtools.intellij.tektoncd.tree.PipelineNode) List(java.util.List) ClusterTriggerBindingNode(com.redhat.devtools.intellij.tektoncd.tree.ClusterTriggerBindingNode) AnActionEvent(com.intellij.openapi.actionSystem.AnActionEvent) EventListenerNode(com.redhat.devtools.intellij.tektoncd.tree.EventListenerNode) ResourceNode(com.redhat.devtools.intellij.tektoncd.tree.ResourceNode) TriggerBindingNode(com.redhat.devtools.intellij.tektoncd.tree.TriggerBindingNode) TektonTreeStructure(com.redhat.devtools.intellij.tektoncd.tree.TektonTreeStructure) IOException(java.io.IOException) DeleteDialog(com.redhat.devtools.intellij.tektoncd.ui.DeleteDialog) ParentableNode(com.redhat.devtools.intellij.tektoncd.tree.ParentableNode) ActionMessage(com.redhat.devtools.intellij.telemetry.core.service.TelemetryMessageBuilder.ActionMessage) List(java.util.List)

Aggregations

AnActionEvent (com.intellij.openapi.actionSystem.AnActionEvent)1 Messages (com.intellij.openapi.ui.Messages)1 ExecHelper (com.redhat.devtools.intellij.common.utils.ExecHelper)1 UIHelper (com.redhat.devtools.intellij.common.utils.UIHelper)1 Constants (com.redhat.devtools.intellij.tektoncd.Constants)1 KIND_CLUSTERTASK (com.redhat.devtools.intellij.tektoncd.Constants.KIND_CLUSTERTASK)1 KIND_TASK (com.redhat.devtools.intellij.tektoncd.Constants.KIND_TASK)1 TelemetryService (com.redhat.devtools.intellij.tektoncd.telemetry.TelemetryService)1 NAME_PREFIX_CRUD (com.redhat.devtools.intellij.tektoncd.telemetry.TelemetryService.NAME_PREFIX_CRUD)1 Tkn (com.redhat.devtools.intellij.tektoncd.tkn.Tkn)1 ClusterTaskNode (com.redhat.devtools.intellij.tektoncd.tree.ClusterTaskNode)1 ClusterTriggerBindingNode (com.redhat.devtools.intellij.tektoncd.tree.ClusterTriggerBindingNode)1 ConditionNode (com.redhat.devtools.intellij.tektoncd.tree.ConditionNode)1 EventListenerNode (com.redhat.devtools.intellij.tektoncd.tree.EventListenerNode)1 ParentableNode (com.redhat.devtools.intellij.tektoncd.tree.ParentableNode)1 PipelineNode (com.redhat.devtools.intellij.tektoncd.tree.PipelineNode)1 PipelineRunNode (com.redhat.devtools.intellij.tektoncd.tree.PipelineRunNode)1 ResourceNode (com.redhat.devtools.intellij.tektoncd.tree.ResourceNode)1 TaskNode (com.redhat.devtools.intellij.tektoncd.tree.TaskNode)1 TaskRunNode (com.redhat.devtools.intellij.tektoncd.tree.TaskRunNode)1