14
14
*/
15
15
package org.utplsql.sqldev.menu
16
16
17
+ import java.util.Map
17
18
import java.util.logging.Logger
18
19
import oracle.dbtools.raptor.navigator.db.DatabaseConnection
19
20
import oracle.dbtools.raptor.navigator.impl.ChildObjectElement
20
21
import oracle.dbtools.raptor.navigator.impl.ObjectFolder
21
22
import oracle.dbtools.raptor.navigator.plsql.PlSqlNode
22
- import oracle.ide.Context
23
- import oracle.ide.controller.ContextMenu
24
- import oracle.ide.controller.ContextMenuListener
23
+ import oracle.ide.^extension.rules.RuleEvaluationContext
24
+ import oracle.ide.^extension.rules.RuleEvaluationException
25
+ import oracle.ide.^extension.rules.RuleFunction
26
+ import oracle.ide.^extension.rules.RuleFunctionParameter
25
27
import org.utplsql.sqldev.model.URLTools
26
28
27
- class UtplsqlContextMenuListener implements ContextMenuListener {
28
- private static final Logger logger = Logger . getLogger(UtplsqlContextMenuListener . name);
29
+ class UtplsqlNavigatorRule extends RuleFunction {
30
+ private static final Logger logger = Logger . getLogger(UtplsqlNavigatorRule . name);
29
31
private val extension URLTools urlTools = new URLTools
30
32
31
-
32
- override handleDefaultAction (Context context ) {
33
- return false
34
- }
35
-
36
- override menuWillHide (ContextMenu contextMenu ) {
37
- }
38
-
39
- override menuWillShow (ContextMenu contextMenu ) {
40
- val element = contextMenu. context. selection. get(0 )
41
- var boolean showMenu = false
33
+ override evaluate (RuleEvaluationContext ruleContext ,
34
+ Map<String , RuleFunctionParameter > parameters ) throws RuleEvaluationException {
35
+ val element = ruleContext. ideContext. selection. get(0 )
36
+ var boolean enable = false
42
37
logger. fine(' ' ' selected object is of type «element.class.name»' ' ' )
43
38
if (element instanceof DatabaseConnection ) {
44
- showMenu = true
39
+ enable = true
45
40
} else if (element instanceof ObjectFolder ) {
46
41
if (element. objectType == " PACKAGE" ) {
47
- showMenu = true
42
+ enable = true
48
43
}
49
44
} else if (element instanceof PlSqlNode ) {
50
45
if (element. objectType == " PACKAGE" || element. objectType == " PACKAGE BODY" ) {
51
- showMenu = true
46
+ enable = true
52
47
}
53
48
} else if (element instanceof ChildObjectElement ) {
54
49
if (element. URL . objectType == " PACKAGE" ) {
55
- showMenu = true
50
+ enable = true
56
51
}
57
52
}
58
- if (showMenu) {
59
- val menuItem = contextMenu. createMenuItem(UtplsqlController . UTLPLSQL_TEST_ACTION , 1.0f )
60
- contextMenu. add(menuItem, 12.1f )
61
- logger. finer(" context menu created." )
62
- }
53
+ return enable
63
54
}
64
- }
55
+ }
0 commit comments