Skip to content

Commit 3d63316

Browse files
closes #24 - support "Run utPLSQL test" for users in "Other Users" node
1 parent 9236fed commit 3d63316

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

sqldev/extension.xml

+6-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
<param name="element-class" value="oracle.dbtools.raptor.navigator.db.DatabaseConnection" />
2121
</parameters>
2222
</rule>
23-
23+
<rule id="dbnode-is-otheruser" type="context-has-element">
24+
<parameters>
25+
<param name="element-class" value="oracle.dbtools.raptor.navigator.impl.SchemaFolder" />
26+
</parameters>
27+
</rule>
2428
<rule id="dbnode-is-package-folder" type="context-has-db-object-type-impl">
2529
<parameters>
2630
<param name="object-types" value="PACKAGE" />
@@ -45,6 +49,7 @@
4549
<composite-rule id="dbnode-is-utplsql-ready">
4650
<or>
4751
<rule-reference id="dbnode-is-db-connection" />
52+
<rule-reference id="dbnode-is-otheruser" />
4853
<rule-reference id="dbnode-is-package-folder" />
4954
<rule-reference id="dbnode-is-package" />
5055
<rule-reference id="dbnode-is-package-body" />

sqldev/src/main/java/org/utplsql/sqldev/menu/UtplsqlController.xtend

+8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import oracle.dbtools.raptor.navigator.db.DatabaseConnection
2323
import oracle.dbtools.raptor.navigator.impl.ChildObjectElement
2424
import oracle.dbtools.raptor.navigator.impl.DatabaseSourceNode
2525
import oracle.dbtools.raptor.navigator.impl.ObjectFolder
26+
import oracle.dbtools.raptor.navigator.impl.SchemaFolder
2627
import oracle.dbtools.raptor.navigator.plsql.PlSqlNode
2728
import oracle.dbtools.raptor.utils.Connections
2829
import oracle.dbtools.worksheet.editor.Worksheet
@@ -84,13 +85,16 @@ class UtplsqlController implements Controller {
8485
action.enabled = true
8586
// disable action if a node in the selection is not runnable
8687
for (i : 0 ..< context.selection.length) {
88+
logger.fine('''section «i» is «context.selection.get(i).toString» of class «context.selection.get(i).class.name»''')
8789
if (action.enabled) {
8890
val element = context.selection.get(i)
8991
if (Connections.instance.isConnectionOpen(context.URL.connectionName)) {
9092
val dao = new UtplsqlDao(Connections.instance.getConnection(context.URL.connectionName))
9193
if (preferences.checkRunUtplsqlTest && dao.utAnnotationManagerInstalled) {
9294
if (element instanceof DatabaseConnection) {
9395
action.enabled = dao.containsUtplsqlTest(element.connection.schema)
96+
} else if (element instanceof SchemaFolder) {
97+
action.enabled = dao.containsUtplsqlTest(element.schemaName)
9498
} else if (element instanceof ObjectFolder) {
9599
action.enabled = dao.containsUtplsqlTest(element.URL.schema)
96100
} else if (element instanceof PlSqlNode) {
@@ -114,6 +118,8 @@ class UtplsqlController implements Controller {
114118
var String path
115119
if (element instanceof DatabaseConnection) {
116120
path = element.connection.schema
121+
} else if (element instanceof SchemaFolder) {
122+
path = element.schemaName
117123
} else if (element instanceof ObjectFolder) {
118124
path = element.URL.schema
119125
} else if (element instanceof PlSqlNode) {
@@ -141,6 +147,8 @@ class UtplsqlController implements Controller {
141147
val element = context.selection.get(0)
142148
if (element instanceof DatabaseConnection) {
143149
url = element.URL
150+
} else if (element instanceof SchemaFolder) {
151+
url = element.URL
144152
} else if (element instanceof ObjectFolder) {
145153
url = element.URL
146154
} else if (element instanceof PlSqlNode) {

0 commit comments

Comments
 (0)