Lines 18-24
Link Here
|
18 |
|
18 |
|
19 |
package org.apache.jmeter.report.gui.tree; |
19 |
package org.apache.jmeter.report.gui.tree; |
20 |
|
20 |
|
21 |
import java.awt.Container; |
|
|
22 |
import java.awt.event.ActionEvent; |
21 |
import java.awt.event.ActionEvent; |
23 |
import java.awt.event.ActionListener; |
22 |
import java.awt.event.ActionListener; |
24 |
import java.awt.event.InputEvent; |
23 |
import java.awt.event.InputEvent; |
Lines 48-55
import org.apache.log.Logger;
Link Here
|
48 |
public class ReportTreeListener implements TreeSelectionListener, MouseListener, KeyListener, MouseMotionListener { |
47 |
public class ReportTreeListener implements TreeSelectionListener, MouseListener, KeyListener, MouseMotionListener { |
49 |
private static final Logger log = LoggingManager.getLoggerForClass(); |
48 |
private static final Logger log = LoggingManager.getLoggerForClass(); |
50 |
|
49 |
|
51 |
// Container endWindow; |
|
|
52 |
// JPopupMenu pop; |
53 |
private TreePath currentPath; |
50 |
private TreePath currentPath; |
54 |
|
51 |
|
55 |
private ActionListener actionHandler; |
52 |
private ActionListener actionHandler; |
Lines 64-72
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
64 |
|
61 |
|
65 |
private JLabel dragIcon = new JLabel(JMeterUtils.getImage("leafnode.gif")); |
62 |
private JLabel dragIcon = new JLabel(JMeterUtils.getImage("leafnode.gif")); |
66 |
|
63 |
|
67 |
/** |
|
|
68 |
* Constructor for the JMeterTreeListener object. |
69 |
*/ |
70 |
public ReportTreeListener(ReportTreeModel model) { |
64 |
public ReportTreeListener(ReportTreeModel model) { |
71 |
this.model = model; |
65 |
this.model = model; |
72 |
dragIcon.validate(); |
66 |
dragIcon.validate(); |
Lines 82-128
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
82 |
model = m; |
76 |
model = m; |
83 |
} |
77 |
} |
84 |
|
78 |
|
85 |
/** |
|
|
86 |
* Sets the ActionHandler attribute of the JMeterTreeListener object. |
87 |
* |
88 |
* @param ah |
89 |
* the new ActionHandler value |
90 |
*/ |
91 |
public void setActionHandler(ActionListener ah) { |
79 |
public void setActionHandler(ActionListener ah) { |
92 |
actionHandler = ah; |
80 |
actionHandler = ah; |
93 |
} |
81 |
} |
94 |
|
82 |
|
95 |
/** |
|
|
96 |
* Sets the JTree attribute of the JMeterTreeListener object. |
97 |
* |
98 |
* @param tree |
99 |
* the new JTree value |
100 |
*/ |
101 |
public void setJTree(JTree tree) { |
83 |
public void setJTree(JTree tree) { |
102 |
this.tree = tree; |
84 |
this.tree = tree; |
103 |
} |
85 |
} |
104 |
|
86 |
|
105 |
/** |
|
|
106 |
* Sets the EndWindow attribute of the JMeterTreeListener object. |
107 |
* |
108 |
* @param window |
109 |
* the new EndWindow value |
110 |
*/ |
111 |
public void setEndWindow(Container window) { |
112 |
// endWindow = window; |
113 |
} |
114 |
|
115 |
/** |
116 |
* Gets the JTree attribute of the JMeterTreeListener object. |
117 |
* |
118 |
* @return tree the current JTree value. |
119 |
*/ |
120 |
public JTree getJTree() { |
87 |
public JTree getJTree() { |
121 |
return tree; |
88 |
return tree; |
122 |
} |
89 |
} |
123 |
|
90 |
|
124 |
/** |
91 |
/** |
125 |
* Gets the CurrentNode attribute of the JMeterTreeListener object. |
92 |
* Gets the CurrentNode attribute of the ReportTreeNode. |
126 |
* |
93 |
* |
127 |
* @return the CurrentNode value |
94 |
* @return the CurrentNode value |
128 |
*/ |
95 |
*/ |
Lines 164-170
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
164 |
} |
131 |
} |
165 |
|
132 |
|
166 |
@Override |
133 |
@Override |
167 |
public void mouseClicked(MouseEvent ev) { |
134 |
public void mouseClicked(MouseEvent e) { |
168 |
} |
135 |
} |
169 |
|
136 |
|
170 |
@Override |
137 |
@Override |
Lines 198-212
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
198 |
return draggedNodes; |
165 |
return draggedNodes; |
199 |
} |
166 |
} |
200 |
|
167 |
|
201 |
/** |
|
|
202 |
* Tests if the node is being dragged into one of it's own sub-nodes, or |
203 |
* into itself. |
204 |
*/ |
205 |
private boolean isValidDragAction(ReportTreeNode[] source, ReportTreeNode dest) { |
168 |
private boolean isValidDragAction(ReportTreeNode[] source, ReportTreeNode dest) { |
206 |
boolean isValid = true; |
169 |
boolean isValid = true; |
207 |
TreeNode[] path = dest.getPath(); |
170 |
TreeNode[] path = dest.getPath(); |
208 |
for (int i = 0; i < path.length; i++) { |
171 |
for (TreeNode node : path) { |
209 |
if (contains(source, path[i])) { |
172 |
// Tests if the node is being dragged into itself or own sub-nodes. |
|
|
173 |
if (contains(source, node)) { |
210 |
isValid = false; |
174 |
isValid = false; |
211 |
break; |
175 |
break; |
212 |
} |
176 |
} |
Lines 231-238
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
231 |
} |
195 |
} |
232 |
|
196 |
|
233 |
private boolean contains(Object[] container, Object item) { |
197 |
private boolean contains(Object[] container, Object item) { |
234 |
for (int i = 0; i < container.length; i++) { |
198 |
for (Object c : container) { |
235 |
if (container[i] == item) { |
199 |
if (c == item) { |
236 |
return true; |
200 |
return true; |
237 |
} |
201 |
} |
238 |
} |
202 |
} |
Lines 251-258
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
251 |
currentPath = tree.getPathForLocation(e.getX(), e.getY()); |
215 |
currentPath = tree.getPathForLocation(e.getX(), e.getY()); |
252 |
} |
216 |
} |
253 |
if (selRow != -1) { |
217 |
if (selRow != -1) { |
254 |
// updateMainMenu(((JMeterGUIComponent) |
|
|
255 |
// getCurrentNode().getUserObject()).createPopupMenu()); |
256 |
if (isRightClick(e)) { |
218 |
if (isRightClick(e)) { |
257 |
if (tree.getSelectionCount() < 2) { |
219 |
if (tree.getSelectionCount() < 2) { |
258 |
tree.setSelectionPath(currentPath); |
220 |
tree.setSelectionPath(currentPath); |
Lines 273-279
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
273 |
if (draggedNodes[0].getUserObject() instanceof ReportGui) { |
235 |
if (draggedNodes[0].getUserObject() instanceof ReportGui) { |
274 |
dragging = false; |
236 |
dragging = false; |
275 |
} |
237 |
} |
276 |
|
|
|
277 |
} |
238 |
} |
278 |
changeSelectionIfDragging(e); |
239 |
changeSelectionIfDragging(e); |
279 |
} |
240 |
} |
Lines 283-289
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
283 |
} |
244 |
} |
284 |
|
245 |
|
285 |
@Override |
246 |
@Override |
286 |
public void mouseExited(MouseEvent ev) { |
247 |
public void mouseExited(MouseEvent e) { |
287 |
} |
248 |
} |
288 |
|
249 |
|
289 |
@Override |
250 |
@Override |
Lines 299-317
public class ReportTreeListener implements TreeSelectionListener, MouseListener,
Link Here
|
299 |
} |
260 |
} |
300 |
|
261 |
|
301 |
private boolean isRightClick(MouseEvent e) { |
262 |
private boolean isRightClick(MouseEvent e) { |
302 |
return e.isPopupTrigger() || (InputEvent.BUTTON2_MASK & e.getModifiers()) > 0 || (InputEvent.BUTTON3_MASK == e.getModifiers()); |
263 |
return e.isPopupTrigger() || (InputEvent.BUTTON2_MASK & e.getModifiers()) > 0 |
|
|
264 |
|| (InputEvent.BUTTON3_MASK == e.getModifiers()); |
303 |
} |
265 |
} |
304 |
|
266 |
|
305 |
/* |
|
|
306 |
* NOTUSED private void updateMainMenu(JPopupMenu menu) { try { MainFrame |
307 |
* mainFrame = GuiPackage.getInstance().getMainFrame(); |
308 |
* mainFrame.setEditMenu(menu); } catch (NullPointerException e) { |
309 |
* log.error("Null pointer: JMeterTreeListener.updateMenuItem()", e); |
310 |
* log.error("", e); } } |
311 |
*/ |
312 |
|
313 |
private void displayPopUp(MouseEvent e) { |
267 |
private void displayPopUp(MouseEvent e) { |
314 |
JPopupMenu pop = getCurrentNode().createPopupMenu(); |
268 |
JPopupMenu pop = getCurrentNode().createPopupMenu(); |
|
|
269 |
// Should this just be GuiPackage - duplicate code in displayPopUp? |
315 |
ReportGuiPackage.getInstance().displayPopUp(e, pop); |
270 |
ReportGuiPackage.getInstance().displayPopUp(e, pop); |
316 |
} |
271 |
} |
317 |
|
272 |
|
318 |
- |
|
|