1 package ov;
2 
3 import java.awt.Color;
4 import java.awt.Dimension;
5 import java.awt.GridBagLayout;
6 import java.awt.GridBagConstraints;
7 
8 import java.awt.event.ActionListener;
9 import java.awt.event.ActionEvent;
10 
11 import javax.swing.JLabel;
12 import javax.swing.JTextField;
13 
14 import com.sun.star.accessibility.AccessibleEventId;
15 import com.sun.star.accessibility.AccessibleEventObject;
16 import com.sun.star.accessibility.XAccessibleContext;
17 
18 import tools.NameProvider;
19 
20 public class ContextView
21     extends ListeningObjectView
22     implements ActionListener
23 {
24     static public ObjectView Create (
25         ObjectViewContainer aContainer,
26         XAccessibleContext xContext)
27     {
28         System.out.println ("ContextView.CreateView");
29         if (xContext != null)
30             return new ContextView (aContainer);
31         else
32             return null;
33     }
34 
35     public ContextView (ObjectViewContainer aContainer)
36     {
37         super (aContainer);
38         maNameLabel = new JLabel ("Name: ");
39         maName = new JLabel ("");
40         maDescriptionLabel = new JLabel ("Description: ");
41         maDescription = new JLabel ("");
42         maRoleLabel = new JLabel ("Role: ");
43         maRole = new JLabel ("");
44 
45         // Make the background of name and description white and opaque so
46         // that leading and trailing spaces become visible.
47         maName.setOpaque (true);
48         maName.setBackground (Color.WHITE);
49         maDescription.setOpaque (true);
50         maDescription.setBackground (Color.WHITE);
51         maRole.setOpaque (true);
52         maRole.setBackground (Color.WHITE);
53 
54         GridBagLayout aLayout = new GridBagLayout();
55         setLayout (aLayout);
56         GridBagConstraints constraints = new GridBagConstraints ();
57         constraints.gridx = 0;
58         constraints.gridy = 0;
59         constraints.gridwidth = 1;
60         constraints.gridheight = 1;
61         constraints.weightx = 0;
62         constraints.weighty = 1;
63         constraints.anchor = GridBagConstraints.WEST;
64         constraints.fill = GridBagConstraints.NONE;
65         add (maNameLabel, constraints);
66         constraints.gridy = 1;
67         add (maDescriptionLabel, constraints);
68         constraints.gridy = 2;
69         add (maRoleLabel, constraints);
70         constraints.gridy = 0;
71         constraints.gridx = 1;
72         constraints.weightx = 2;
73         add (maName, constraints);
74         constraints.gridy = 1;
75         add (maDescription, constraints);
76         constraints.gridy = 2;
77         add (maRole, constraints);
78     }
79 
80     public void Update ()
81     {
82         if (mxContext == null)
83         {
84             maName.setText ("<null object>");
85             maDescription.setText ("<null object>");
86             maRole.setText ("<null object>");
87         }
88         else
89         {
90             maName.setText (mxContext.getAccessibleName());
91             maDescription.setText (mxContext.getAccessibleDescription());
92             maRole.setText (NameProvider.getRoleName (mxContext.getAccessibleRole()));
93         }
94     }
95 
96     public String GetTitle ()
97     {
98         return ("Context");
99     }
100 
101     /** Listen for changes regarding displayed values.
102     */
103     public void notifyEvent (AccessibleEventObject aEvent)
104     {
105         switch (aEvent.EventId)
106         {
107             case AccessibleEventId.NAME_CHANGED :
108             case AccessibleEventId.DESCRIPTION_CHANGED :
109                 Update ();
110         }
111     }
112 
113     public void actionPerformed (ActionEvent aEvent)
114     {
115     }
116 
117 
118     private JLabel
119         maNameLabel,
120         maName,
121         maDescriptionLabel,
122         maDescription,
123         maRoleLabel,
124         maRole;
125 }
126