1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.xulux.guilayer.swing.listeners;
17
18 import javax.swing.event.ListSelectionEvent;
19 import javax.swing.event.ListSelectionListener;
20 import javax.swing.event.TreeSelectionEvent;
21 import javax.swing.event.TreeSelectionListener;
22
23 import org.xulux.api.core.PartRequest;
24 import org.xulux.api.gui.IWidget;
25 import org.xulux.rules.Rule;
26 import org.xulux.rules.impl.WidgetRequestImpl;
27 import org.xulux.utils.ClassLoaderUtils;
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public class NewSelectionListener implements ListSelectionListener, TreeSelectionListener {
42
43
44
45
46 protected IWidget widget;
47
48
49
50
51 public NewSelectionListener(IWidget widget) {
52 this.widget = widget;
53 }
54
55
56
57
58 public void valueChanged(ListSelectionEvent e) {
59 valueChanged();
60 }
61
62
63
64
65 public void valueChanged(TreeSelectionEvent e) {
66 valueChanged();
67 }
68
69
70
71
72 public void valueChanged() {
73
74 if (widget == null) {
75 return;
76 }
77 String singleClick = widget.getProperty("singleclick");
78 if (singleClick != null) {
79 try {
80 Rule rule = (Rule) ClassLoaderUtils.getObjectFromClassString(singleClick);
81 rule.setOwner(widget);
82 WidgetRequestImpl impl = new WidgetRequestImpl(widget, PartRequest.NO_ACTION);
83 rule.post(impl);
84 } catch (Throwable t) {
85 System.err.println("Error occured during execution of post rule");
86 t.printStackTrace();
87 }
88 }
89 if (widget != null) {
90 widget.getPart().refreshWidgets(widget);
91 }
92 }
93
94 }