KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rero > bridges > menu > ScriptedMenu


1 package rero.bridges.menu;
2
3 import java.awt.*;
4 import java.awt.event.*;
5
6 import javax.swing.*;
7 import javax.swing.event.*;
8
9 import sleep.runtime.*;
10 import sleep.engine.*;
11
12 import rero.script.ScriptCore;
13
14 import java.util.*;
15
16 public class ScriptedMenu extends JMenu implements MenuListener, MenuBridgeParent
17 {
18    protected LinkedList code;
19
20    public ScriptedMenu(ScriptInstance _owner, String JavaDoc _label, Block _code)
21    {
22        if (_label.indexOf('&') > -1)
23        {
24           setText( _label.substring(0, _label.indexOf('&')) + _label.substring(_label.indexOf('&') + 1, _label.length()) );
25           setMnemonic(_label.charAt(_label.indexOf('&') + 1));
26        }
27        else
28        {
29           setText(_label);
30        }
31
32        code = new LinkedList();
33        installCode(_owner, _code);
34
35        addMenuListener(this);
36    }
37
38    public JPopupMenu getScriptedPopupMenu()
39    {
40        return new ScriptedPopupMenu(code);
41    }
42
43    public void installCode(ScriptInstance _owner, Block _code)
44    {
45        code.add(new CodeSnippet(_owner, _code));
46    }
47
48    public boolean isValidCode()
49    {
50        Iterator i = code.iterator();
51        while (i.hasNext())
52        {
53           CodeSnippet temp = (CodeSnippet)i.next();
54           if (!temp.getOwner().isLoaded())
55           {
56              i.remove();
57           }
58        }
59
60        return code.size() > 0;
61    }
62
63    public void menuSelected(MenuEvent e)
64    {
65        MenuBridge.SetParent(this);
66
67        Iterator i = code.iterator();
68        while (i.hasNext())
69        {
70           CodeSnippet temp = (CodeSnippet)i.next();
71           if (temp.getOwner().isLoaded())
72           {
73              ScriptCore.runCode(temp.getOwner(), temp.getBlock(), ScriptedPopupMenu.getMenuData());
74           }
75        }
76
77        MenuBridge.FinishParent();
78    }
79
80    public void menuDeselected(MenuEvent e)
81    {
82        removeAll();
83    }
84
85    public void menuCanceled(MenuEvent e)
86    {
87         removeAll();
88    }
89 }
90
Popular Tags