1414 */
1515package org.utplsql.sqldev.menu
1616
17+ import java.util.Map
1718import java.util.logging.Logger
1819import oracle.dbtools.raptor.navigator.db.DatabaseConnection
1920import oracle.dbtools.raptor.navigator.impl.ChildObjectElement
2021import oracle.dbtools.raptor.navigator.impl.ObjectFolder
2122import 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
2527import org.utplsql.sqldev.model.URLTools
2628
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);
2931 private val extension URLTools urlTools = new URLTools
3032
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
4237 logger. fine(' ' ' selected object is of type «element.class.name»' ' ' )
4338 if (element instanceof DatabaseConnection ) {
44- showMenu = true
39+ enable = true
4540 } else if (element instanceof ObjectFolder ) {
4641 if (element. objectType == " PACKAGE" ) {
47- showMenu = true
42+ enable = true
4843 }
4944 } else if (element instanceof PlSqlNode ) {
5045 if (element. objectType == " PACKAGE" || element. objectType == " PACKAGE BODY" ) {
51- showMenu = true
46+ enable = true
5247 }
5348 } else if (element instanceof ChildObjectElement ) {
5449 if (element. URL . objectType == " PACKAGE" ) {
55- showMenu = true
50+ enable = true
5651 }
5752 }
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
6354 }
64- }
55+ }
0 commit comments