1 package es.inteco.eni.swing;
2
3 import java.awt.event.MouseEvent;
4 import java.awt.event.MouseListener;
5
6 import javax.swing.JTextArea;
7
8 import es.inteco.eni.commons.EniConstants;
9 import es.inteco.eni.xml.XmlNode;
10
11
12
13
14
15
16
17
18 public class TransformedViewMouseListener implements MouseListener{
19
20
21
22
23 private TransformedViewPane transformedViewPane;
24
25
26
27 private ENIValidator eniValidator;
28
29
30
31
32
33
34 public TransformedViewMouseListener(ENIValidator eniValidator, TransformedViewPane transformedViewPane){
35 this.eniValidator = eniValidator;
36 this.transformedViewPane = transformedViewPane;
37 }
38
39
40
41
42
43 @Override
44 public void mouseClicked(MouseEvent e) {
45 XmlNode xmlNode = searchXmlNode(e.getX(), e.getY());
46
47
48 if(xmlNode!=null){
49 showXmlInfo(xmlNode, transformedViewPane.getEniValidator().getConsoleTextarea());
50 }
51 }
52
53
54
55
56
57
58 public static void showXmlInfo(XmlNode xmlNode, JTextArea textArea){
59 String xmlNodeInfo = getXmlInfo(xmlNode);
60 textArea.setText(xmlNodeInfo);
61 textArea.setCaretPosition(0);
62 }
63
64 private static String getXmlInfo(XmlNode xmlNode) {
65 StringBuffer strB = new StringBuffer();
66 strB.append("QName:"+getText(xmlNode.getqName())+"\n");
67 strB.append("LName:"+getText(xmlNode.getlName())+"\n");
68 strB.append("Value:"+getText(xmlNode.getValue())+"\n");
69 strB.append("Uri:"+getText(xmlNode.getUri())+"\n");
70 strB.append("Atributos:"+"\n");
71 for (int i=0; xmlNode.getAttributes()!=null && i<xmlNode.getAttributes().getLength(); i++){
72 strB.append("\t Type:" + getText(xmlNode.getAttributes().getType(i))+"\n");
73 strB.append("\t QName:" + getText(xmlNode.getAttributes().getQName(i))+"\n");
74 strB.append("\t URI:" + getText(xmlNode.getAttributes().getURI(i))+"\n");
75 strB.append("\t Value:" + getText(xmlNode.getAttributes().getValue(i))+"\n");
76 strB.append("\t LocalNAme:" + getText(xmlNode.getAttributes().getLocalName(i))+"\n");
77 }
78 return strB.toString();
79 }
80
81 private static String getText(String text){
82 return text!=null ? text : "";
83 }
84
85
86
87
88
89
90
91 private XmlNode searchXmlNode(int x, int y) {
92 XmlNode result = null;
93 if(getTransformedViewPane().getXmlNodePositions()!=null){
94 for (XmlNodePosition xmlNodePosition : getTransformedViewPane().getXmlNodePositions()){
95 if (x>xmlNodePosition.getX() && x<xmlNodePosition.getX()+xmlNodePosition.getW() &&
96 y>xmlNodePosition.getY() && y<xmlNodePosition.getY()+xmlNodePosition.getH()){
97 result = xmlNodePosition.getXmlNode();
98 break;
99 }
100 }
101 }
102 return result;
103 }
104
105
106
107
108
109
110 public TransformedViewPane getTransformedViewPane() {
111 return transformedViewPane;
112 }
113
114
115
116
117 public void setTransformedViewPane(TransformedViewPane transformedViewPane) {
118 this.transformedViewPane = transformedViewPane;
119 }
120
121
122
123
124
125 public ENIValidator getEniValidator() {
126 return eniValidator;
127 }
128
129
130
131
132 public void setEniValidator(ENIValidator eniValidator) {
133 this.eniValidator = eniValidator;
134 }
135
136
137
138
139
140 @Override
141 public void mouseEntered(MouseEvent e) {
142
143 }
144
145
146
147
148
149 @Override
150 public void mouseExited(MouseEvent e) {
151 }
152
153
154
155
156
157 @Override
158 public void mousePressed(MouseEvent e) {
159
160 if(e.getClickCount()==2){
161 XmlNode xmlNode = searchXmlNode(e.getX(), e.getY());
162
163
164 if(FileOpener.isFile(xmlNode)){
165 XmlNode parentFileNode = searchXmlNode(e.getX()- TransformedViewPane.LEAF_NODE_WIDTH, e.getY());
166 FileOpener fileOpener = new FileOpener();
167 fileOpener.openFile(getEniValidator(), xmlNode, parentFileNode);
168 }
169 }
170 }
171
172
173
174
175
176
177
178 @Override
179 public void mouseReleased(MouseEvent e) {
180 }
181
182 }