Skip to content

Commit

Permalink
IJMP-1552 Added getActionUpdateThread for every action in the project…
Browse files Browse the repository at this point in the history
… to fix...
  • Loading branch information
Uladzislau Kalesnikau committed Apr 8, 2024
1 parent 7e71974 commit 639b60e
Show file tree
Hide file tree
Showing 32 changed files with 301 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,28 @@

package eu.ibagroup.formainframe.dataops.content.synchronizer

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.components.service
import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.progress.runBackgroundableTask
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.vfs.VirtualFile
import eu.ibagroup.formainframe.config.ConfigService
import eu.ibagroup.formainframe.dataops.DataOpsManager
import eu.ibagroup.formainframe.utils.*
import eu.ibagroup.formainframe.utils.castOrNull
import eu.ibagroup.formainframe.utils.checkEncodingCompatibility
import eu.ibagroup.formainframe.utils.runReadActionInEdtAndWait
import eu.ibagroup.formainframe.utils.runWriteActionInEdtAndWait
import eu.ibagroup.formainframe.utils.showSaveAnywayDialog

/** Sync action event. It will handle the manual sync button action when it is clicked */
class SyncAction : DumbAwareAction() {
override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Get a virtual file on which the event was triggered
* @param e the event to get the virtual file
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.ui.SimpleToolWindowPanel
Expand All @@ -21,7 +22,9 @@ import eu.ibagroup.formainframe.config.connect.ui.zosmf.ConnectionDialog
import eu.ibagroup.formainframe.config.connect.ui.zosmf.ConnectionDialogState
import eu.ibagroup.formainframe.config.connect.ui.zosmf.initEmptyUuids
import eu.ibagroup.formainframe.explorer.hints.Hint
import eu.ibagroup.formainframe.explorer.ui.*
import eu.ibagroup.formainframe.explorer.ui.EXPLORER_VIEW
import eu.ibagroup.formainframe.explorer.ui.FileExplorerView
import eu.ibagroup.formainframe.explorer.ui.JesExplorerView
import eu.ibagroup.formainframe.utils.castOrNull
import javax.swing.JComponent
import javax.swing.event.HyperlinkEvent
Expand All @@ -31,6 +34,10 @@ import javax.swing.event.HyperlinkEvent
*/
class AddConnectionAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/** Shows connection dialog */
override fun actionPerformed(e: AnActionEvent) {
val state = ConnectionDialog.showAndTestConnection(
Expand Down Expand Up @@ -76,7 +83,7 @@ private fun showHint(e: AnActionEvent) {
else -> null
}
val text = "Now you can add working set to browse<br> $content.<br>" +
"<a href\"\">Click here to add...</a>"
"<a href\"\">Click here to add...</a>"
val hyperlinkAction = when (view) {
is FileExplorerView -> {
{ AddWorkingSetAction().actionPerformed(e) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import eu.ibagroup.formainframe.config.connect.CredentialService
Expand All @@ -27,6 +28,10 @@ import eu.ibagroup.formainframe.utils.getSelectedNodesWorkingSets
*/
class AddJobsFilterAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/** Opens AddJobsFilterDialog and saves result. */
override fun actionPerformed(e: AnActionEvent) {
val view = e.getExplorerView<JesExplorerView>() ?: return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import eu.ibagroup.formainframe.config.ws.DSMask
Expand All @@ -26,6 +27,10 @@ import eu.ibagroup.formainframe.utils.getSelectedNodesWorkingSets
/** Action to add USS or z/OS mask */
class AddMaskAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/** Add new mask to the working set, where the action is triggered */
override fun actionPerformed(e: AnActionEvent) {
val view = e.getExplorerView<FileExplorerView>() ?: return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand All @@ -24,15 +25,28 @@ import eu.ibagroup.formainframe.dataops.attributes.RemoteDatasetAttributes
import eu.ibagroup.formainframe.dataops.attributes.RemoteMemberAttributes
import eu.ibagroup.formainframe.dataops.exceptions.CallException
import eu.ibagroup.formainframe.dataops.getAttributesService
import eu.ibagroup.formainframe.dataops.operations.*
import eu.ibagroup.formainframe.dataops.operations.DeleteMemberOperation
import eu.ibagroup.formainframe.dataops.operations.DeleteMemberOperationParams
import eu.ibagroup.formainframe.dataops.operations.MemberAllocationOperation
import eu.ibagroup.formainframe.dataops.operations.MemberAllocationParams
import eu.ibagroup.formainframe.explorer.ExplorerUnit
import eu.ibagroup.formainframe.explorer.FilesWorkingSet
import eu.ibagroup.formainframe.explorer.ui.*
import eu.ibagroup.formainframe.explorer.ui.AddMemberDialog
import eu.ibagroup.formainframe.explorer.ui.ExplorerUnitTreeNodeBase
import eu.ibagroup.formainframe.explorer.ui.FetchNode
import eu.ibagroup.formainframe.explorer.ui.FileExplorerView
import eu.ibagroup.formainframe.explorer.ui.FileLikeDatasetNode
import eu.ibagroup.formainframe.explorer.ui.LibraryNode
import eu.ibagroup.formainframe.explorer.ui.getExplorerView
import eu.ibagroup.formainframe.vfs.MFVirtualFile

/** Class that represents "Add member" action */
class AddMemberAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Create a new member in the dataset library
* @param e an action event to get the file explorer view and the project
Expand Down Expand Up @@ -114,8 +128,8 @@ class AddMemberAction : AnAction() {
}
val selected = view.mySelectedNodesData.getOrNull(0)
e.presentation.isEnabledAndVisible = selected?.node is LibraryNode || (
selected?.node is FileLikeDatasetNode && selected.attributes is RemoteMemberAttributes
)
selected?.node is FileLikeDatasetNode && selected.attributes is RemoteMemberAttributes
)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DataContext
Expand All @@ -27,6 +28,9 @@ import eu.ibagroup.formainframe.utils.crudable.Crudable
*/
abstract class AddWsActionBase : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/** Shows add Working Set dialog (for files or for jobs) */
override fun actionPerformed(e: AnActionEvent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.notification.NotificationType
import com.intellij.notification.Notifications
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand Down Expand Up @@ -50,6 +51,10 @@ const val ALLOCATE_ACTION_NOTIFICATION_GROUP_ID = "eu.ibagroup.formainframe.expl

abstract class AllocateActionBase : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Returns null if object doesn't contain anything
* needed for allocation algorithm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
package eu.ibagroup.formainframe.explorer.actions

import com.intellij.notification.NotificationType
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand All @@ -24,6 +25,10 @@ import org.zowe.kotlinsdk.Job
/** Action to cancel a running job in the Jobs Tool Window */
class CancelJobAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

override fun isDumbAware(): Boolean {
return true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand All @@ -30,7 +31,14 @@ import eu.ibagroup.formainframe.dataops.operations.UssAllocationOperation
import eu.ibagroup.formainframe.dataops.operations.UssAllocationParams
import eu.ibagroup.formainframe.dataops.operations.UssChangeModeOperation
import eu.ibagroup.formainframe.dataops.operations.UssChangeModeParams
import eu.ibagroup.formainframe.explorer.ui.*
import eu.ibagroup.formainframe.explorer.ui.CreateFileDialog
import eu.ibagroup.formainframe.explorer.ui.CreateFileDialogState
import eu.ibagroup.formainframe.explorer.ui.ExplorerUnitTreeNodeBase
import eu.ibagroup.formainframe.explorer.ui.FileExplorerView
import eu.ibagroup.formainframe.explorer.ui.UssDirNode
import eu.ibagroup.formainframe.explorer.ui.UssFileNode
import eu.ibagroup.formainframe.explorer.ui.getExplorerView
import eu.ibagroup.formainframe.explorer.ui.toAllocationParams
import eu.ibagroup.formainframe.utils.castOrNull
import eu.ibagroup.formainframe.vfs.MFVirtualFile
import org.zowe.kotlinsdk.ChangeMode
Expand All @@ -41,6 +49,10 @@ import org.zowe.kotlinsdk.FileType
*/
abstract class CreateUssEntityAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Uss file state which contains parameters for creating.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
package eu.ibagroup.formainframe.explorer.actions

import com.intellij.icons.AllIcons
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.ui.showYesNoDialog
Expand All @@ -25,6 +26,10 @@ import eu.ibagroup.formainframe.explorer.ui.getExplorerView
*/
class DeleteJesNodeAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Called when delete JES element option is chosen from context menu
*/
Expand Down Expand Up @@ -83,6 +88,6 @@ class DeleteJesNodeAction : AnAction() {
}
val selected = view.mySelectedNodesData
e.presentation.isEnabledAndVisible = selected.isNotEmpty()
&& (selected[0].node is JesWsNode || selected[0].node is JesFilterNode)
&& (selected[0].node is JesWsNode || selected[0].node is JesFilterNode)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand All @@ -22,13 +23,24 @@ import eu.ibagroup.formainframe.config.connect.ConnectionConfig
import eu.ibagroup.formainframe.dataops.DataOpsManager
import eu.ibagroup.formainframe.dataops.attributes.RemoteMemberAttributes
import eu.ibagroup.formainframe.dataops.operations.RenameOperation
import eu.ibagroup.formainframe.explorer.ui.*
import eu.ibagroup.formainframe.explorer.ui.ExplorerTreeView
import eu.ibagroup.formainframe.explorer.ui.FetchNode
import eu.ibagroup.formainframe.explorer.ui.FileExplorerView
import eu.ibagroup.formainframe.explorer.ui.FileLikeDatasetNode
import eu.ibagroup.formainframe.explorer.ui.NodeData
import eu.ibagroup.formainframe.explorer.ui.RenameDialog
import eu.ibagroup.formainframe.explorer.ui.cleanCacheIfPossible
import eu.ibagroup.formainframe.explorer.ui.getExplorerView

/**
* Class which represents a duplicate member action
*/
class DuplicateMemberAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* The method of AnAction abstract class. Tells what to do if an action was submitted
*/
Expand All @@ -54,7 +66,12 @@ class DuplicateMemberAction : AnAction() {
* @throws any throwable during the processing of the request
* @return Void
*/
private fun runDuplicateOperation(project : Project, view : ExplorerTreeView<ConnectionConfig, *,*>, selectedNode : NodeData<ConnectionConfig>, newName: String) {
private fun runDuplicateOperation(
project: Project,
view: ExplorerTreeView<ConnectionConfig, *, *>,
selectedNode: NodeData<ConnectionConfig>,
newName: String
) {
val dataOpsManager = view.explorer.componentManager.getService(DataOpsManager::class.java)
val attributes = selectedNode.attributes ?: return
val file = selectedNode.file ?: return
Expand Down Expand Up @@ -102,7 +119,8 @@ class DuplicateMemberAction : AnAction() {
val selected = view.mySelectedNodesData
val node = selected.getOrNull(0)?.node
val nodeAttributes = selected.getOrNull(0)?.attributes
e.presentation.isVisible = selected.size == 1 && node is FileLikeDatasetNode && nodeAttributes is RemoteMemberAttributes
e.presentation.isVisible =
selected.size == 1 && node is FileLikeDatasetNode && nodeAttributes is RemoteMemberAttributes
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DataContext
Expand All @@ -31,6 +32,10 @@ import eu.ibagroup.formainframe.utils.crudable.getByUniqueKey
*/
class EditFilesWorkingSetAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

/**
* Called when edit working set option is chosen from context menu
* Opens the working set table with elements to edit
Expand All @@ -53,6 +58,7 @@ class EditFilesWorkingSetAction : AnAction() {
}
}
}

else -> {
return
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package eu.ibagroup.formainframe.explorer.actions

import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
Expand All @@ -32,6 +33,10 @@ import eu.ibagroup.formainframe.vfs.MFVirtualFile
*/
class EditJclAction : AnAction() {

override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}

override fun isDumbAware(): Boolean {
return true
}
Expand Down
Loading

0 comments on commit 639b60e

Please sign in to comment.