mstover1 02/05/20 06:05:51
Modified: src_1/org/apache/jmeter NewDriver.java
src_1/org/apache/jmeter/control/gui ModifyControllerGui.java
src_1/org/apache/jmeter/gui GuiPackage.java MainFrame.java
src_1/org/apache/jmeter/gui/tree JMeterCellRenderer.java
JMeterTreeListener.java
src_1/org/apache/jmeter/gui/util MenuFactory.java
src_1/org/apache/jmeter/resources messages.properties
messages_ja.properties messages_no.properties
Added: src_1/org/apache/jmeter/gui/action DragNDrop.java
Log:
Drag and Drop implemented in src_1
Revision Changes Path
1.4 +8 -7 jakarta-jmeter/src_1/org/apache/jmeter/NewDriver.java
Index: NewDriver.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/NewDriver.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NewDriver.java 17 May 2002 01:29:34 -0000 1.3
+++ NewDriver.java 20 May 2002 13:05:50 -0000 1.4
@@ -54,15 +54,16 @@
*/
package org.apache.jmeter;
-import java.io.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
-import org.apache.jmeter.gui.*;
+import org.apache.jmeter.gui.GuiPackage;
+import org.apache.jmeter.gui.MainFrame;
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.CheckDirty;
-import org.apache.jmeter.gui.tree.*;
-import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.gui.tree.JMeterTreeListener;
+import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.gui.util.ComponentUtil;
+import org.apache.jmeter.util.JMeterUtils;
/************************************************************
* Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
@@ -89,10 +90,10 @@
JMeterTreeModel treeModel = new JMeterTreeModel();
JMeterTreeListener treeLis = new JMeterTreeListener(treeModel);
+ GuiPackage guiPack = GuiPackage.getInstance(treeLis, treeModel);
MainFrame main = new MainFrame(ActionRouter.getInstance(),
treeModel, treeLis);
- GuiPackage guiPack = GuiPackage.getInstance(main,
- treeLis, treeModel);
+ guiPack.setMainFrame(main);
main.setTitle("Apache JMeter");
main.setIconImage(JMeterUtils.getImage("jmeter.jpg").getImage());
treeLis.setActionHandler(ActionRouter.getInstance());
1.3 +21 -8
jakarta-jmeter/src_1/org/apache/jmeter/control/gui/ModifyControllerGui.java
Index: ModifyControllerGui.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/control/gui/ModifyControllerGui.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ModifyControllerGui.java 29 Apr 2002 17:08:07 -0000 1.2
+++ ModifyControllerGui.java 20 May 2002 13:05:50 -0000 1.3
@@ -53,14 +53,17 @@
* <http://www.apache.org/>.
*/
package org.apache.jmeter.control.gui;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.border.*;
-import javax.swing.table.*;
-import javax.swing.text.*;
+import java.awt.Font;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
import org.apache.jmeter.control.ModifyController;
-import org.apache.jmeter.gui.*;
+import org.apache.jmeter.gui.NamePanel;
import org.apache.jmeter.gui.util.MenuFactory;
import org.apache.jmeter.gui.util.VerticalLayout;
import org.apache.jmeter.testelement.TestElement;
@@ -70,7 +73,7 @@
* Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
*
*@author Kevin Hammond
- *@created $Date: 2002/04/29 17:08:07 $
+ *@created $Date: 2002/05/20 13:05:50 $
*@version 1.0
***************************************/
@@ -86,6 +89,16 @@
{
init();
setName(getStaticLabel());
+ }
+
+ /****************************************
+ * !ToDoo (Method description)
+ *
+ *@return !ToDo (Return description)
+ ***************************************/
+ public Collection getMenuCategories()
+ {
+ return new LinkedList();
}
/****************************************
1.6 +1 -2 jakarta-jmeter/src_1/org/apache/jmeter/gui/GuiPackage.java
Index: GuiPackage.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/GuiPackage.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- GuiPackage.java 17 May 2002 01:29:34 -0000 1.5
+++ GuiPackage.java 20 May 2002 13:05:51 -0000 1.6
@@ -86,13 +86,12 @@
private org.apache.jmeter.gui.MainFrame mainFrame;
private org.apache.jmeter.gui.tree.JMeterTreeListener treeListener;
- public static GuiPackage getInstance(MainFrame mainFrame,JMeterTreeListener
listener,
+ public static GuiPackage getInstance(JMeterTreeListener listener,
JMeterTreeModel treeModel)
{
if(guiPack == null)
{
guiPack = new GuiPackage();
- guiPack.setMainFrame(mainFrame);
guiPack.setTreeListener(listener);
guiPack.setTreeModel(treeModel);
}
1.5 +17 -3 jakarta-jmeter/src_1/org/apache/jmeter/gui/MainFrame.java
Index: MainFrame.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/MainFrame.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MainFrame.java 17 May 2002 01:29:34 -0000 1.4
+++ MainFrame.java 20 May 2002 13:05:51 -0000 1.5
@@ -67,7 +67,7 @@
* Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
*
*@author Michael Stover
- *@created $Date: 2002/05/17 01:29:34 $
+ *@created $Date: 2002/05/20 13:05:51 $
*@version 1.0
***************************************/
@@ -85,6 +85,8 @@
ImageIcon stoppedIcon = JMeterUtils.getImage("thread.disabled.gif");
JButton runningIndicator;
private boolean running;
+ int previousDragXLocation = 0;
+ int previousDragYLocation = 0;
/****************************************
* !ToDo (Constructor description)
@@ -324,6 +326,17 @@
{
treePanel = new JScrollPane(makeTree());
}
+
+ public void drawDraggedComponent(Component dragIcon,int x,int y)
+ {
+ Dimension size = dragIcon.getPreferredSize();
+
treePanel.paintImmediately(previousDragXLocation,previousDragYLocation,size.width,size.height);
+ this.getLayeredPane().setLayer(dragIcon,400);
+ SwingUtilities.paintComponent(treePanel.getGraphics(),
+ dragIcon,treePanel,x,y,size.width,size.height);
+ previousDragXLocation = x;
+ previousDragYLocation = y;
+ }
private void createMainPanel()
{
@@ -339,6 +352,7 @@
treeListener.setJTree(tree);
tree.addTreeSelectionListener(treeListener);
tree.addMouseListener(treeListener);
+ tree.addMouseMotionListener(treeListener);
tree.addKeyListener(treeListener);
return tree;
}
@@ -347,8 +361,8 @@
* !ToDo (Class description)
*
*@author $Author: mstover1 $
- *@created $Date: 2002/05/17 01:29:34 $
- *@version $Revision: 1.4 $
+ *@created $Date: 2002/05/20 13:05:51 $
+ *@version $Revision: 1.5 $
***************************************/
private class WindowHappenings extends WindowAdapter
{
1.1 jakarta-jmeter/src_1/org/apache/jmeter/gui/action/DragNDrop.java
Index: DragNDrop.java
===================================================================
package org.apache.jmeter.gui.action;
import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Set;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.tree.JMeterTreeListener;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
/**
* @author mstover
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
*/
public class DragNDrop extends AbstractAction {
public final static String ADD = "drag_n_drop.add";
public final static String INSERT_BEFORE = "drag_n_drop.insert_before";
public final static String INSERT_AFTER = "drag_n_drop.insert_after";
private static Set commands = new HashSet();
static
{
commands.add(ADD);
commands.add(INSERT_BEFORE);
commands.add(INSERT_AFTER);
}
/**
* @see Command#doAction(ActionEvent)
*/
public void doAction(ActionEvent e) {
String action = e.getActionCommand();
JMeterTreeNode draggedNode =
GuiPackage.getInstance().getTreeListener().getDraggedNode();
JMeterTreeListener treeListener =
GuiPackage.getInstance().getTreeListener();
JMeterTreeNode currentNode = treeListener.getCurrentNode();
GuiPackage.getInstance().getTreeModel().removeNodeFromParent(
GuiPackage.getInstance().getTreeListener().getDraggedNode());
if(ADD.equals(action))
{
GuiPackage.getInstance().getTreeModel().insertNodeInto(draggedNode,
currentNode,currentNode.getChildCount());
}
else if(INSERT_BEFORE.equals(action))
{
JMeterTreeNode parentNode =
(JMeterTreeNode)currentNode.getParent();
int index = parentNode.getIndex(currentNode);
GuiPackage.getInstance().getTreeModel().insertNodeInto(draggedNode,
parentNode, index);
}
else if(INSERT_AFTER.equals(action))
{
JMeterTreeNode parentNode =
(JMeterTreeNode)currentNode.getParent();
int index = parentNode.getIndex(currentNode)+1;
GuiPackage.getInstance().getTreeModel().insertNodeInto(draggedNode,
parentNode, index);
}
GuiPackage.getInstance().getMainFrame().repaint();
}
/**
* @see Command#getActionNames()
*/
public Set getActionNames() {
return commands;
}
}
1.4 +1 -0
jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterCellRenderer.java
Index: JMeterCellRenderer.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterCellRenderer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JMeterCellRenderer.java 1 May 2002 23:48:52 -0000 1.3
+++ JMeterCellRenderer.java 20 May 2002 13:05:51 -0000 1.4
@@ -59,6 +59,7 @@
import java.awt.Component;
import org.apache.jmeter.gui.JMeterGUIComponent;
import org.apache.jmeter.gui.GuiFactory;
+import org.apache.jmeter.gui.GuiPackage;
/**
* Title: JMeter
1.3 +99 -20
jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterTreeListener.java
Index: JMeterTreeListener.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/tree/JMeterTreeListener.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JMeterTreeListener.java 29 Apr 2002 17:08:09 -0000 1.2
+++ JMeterTreeListener.java 20 May 2002 13:05:51 -0000 1.3
@@ -53,20 +53,26 @@
* <http://www.apache.org/>.
*/
package org.apache.jmeter.gui.tree;
-import java.awt.*;
-import java.awt.event.*;
-import java.util.*;
-import javax.swing.*;
+import java.awt.Container;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.*;
-import org.apache.jmeter.config.ConfigElement;
-import org.apache.jmeter.control.Controller;
-import org.apache.jmeter.gui.*;
-import org.apache.jmeter.gui.util.MenuFactory;
-import org.apache.jmeter.testelement.TestPlan;
-import org.apache.jmeter.testelement.WorkBench;
-import org.apache.jmeter.timers.*;
+import javax.swing.tree.TreePath;
+import org.apache.jmeter.gui.GuiPackage;
+import org.apache.jmeter.gui.JMeterGUIComponent;
+import org.apache.jmeter.gui.MainFrame;
+import org.apache.jmeter.gui.action.DragNDrop;
import org.apache.jmeter.util.JMeterUtils;
/****************************************
@@ -77,7 +83,8 @@
*@version 1.0
***************************************/
-public class JMeterTreeListener implements TreeSelectionListener, MouseListener,
KeyListener
+public class JMeterTreeListener implements TreeSelectionListener, MouseListener,
+ KeyListener,MouseMotionListener
{
Container endWindow;
JPopupMenu pop;
@@ -86,6 +93,9 @@
private JMeterTreeModel model;
private JTree tree;
+ private boolean dragging = false;
+ private JMeterTreeNode draggedNode;
+ private JLabel dragIcon = new JLabel(JMeterUtils.getImage("leafnode.gif"));
/****************************************
* Constructor for the JMeterTreeListener object
@@ -95,6 +105,8 @@
public JMeterTreeListener(JMeterTreeModel model)
{
this.model = model;
+ dragIcon.validate();
+ dragIcon.setVisible(true);
}
@@ -210,7 +222,36 @@
*
*@param e Description of Parameter
***************************************/
- public void mouseReleased(MouseEvent e) { }
+ public void mouseReleased(MouseEvent e)
+ {
+ if(dragging && draggedNode != getCurrentNode())
+ {
+ dragging = false;
+ JPopupMenu dragNdrop = new JPopupMenu();
+ JMenuItem item = new
JMenuItem(JMeterUtils.getResString("Insert Before"));
+ item.addActionListener(actionHandler);
+ item.setActionCommand(DragNDrop.INSERT_BEFORE);
+ dragNdrop.add(item);
+ item = new JMenuItem(JMeterUtils.getResString("Insert After"));
+ item.addActionListener(actionHandler);
+ item.setActionCommand(DragNDrop.INSERT_AFTER);
+ dragNdrop.add(item);
+ item = new JMenuItem(JMeterUtils.getResString("Add as Child"));
+ item.addActionListener(actionHandler);
+ item.setActionCommand(DragNDrop.ADD);
+ dragNdrop.add(item);
+ dragNdrop.addSeparator();
+ item = new JMenuItem(JMeterUtils.getResString("Cancel"));
+ dragNdrop.add(item);
+ displayPopUp(e,dragNdrop);
+ }
+ dragging = false;
+ }
+
+ public JMeterTreeNode getDraggedNode()
+ {
+ return draggedNode;
+ }
/****************************************
@@ -218,7 +259,25 @@
*
*@param ev Description of Parameter
***************************************/
- public void mouseEntered(MouseEvent ev) { }
+ public void mouseEntered(MouseEvent e)
+ {
+ }
+
+ private void changeSelectionIfDragging(MouseEvent e)
+ {
+ if(dragging)
+ {
+
GuiPackage.getInstance().getMainFrame().drawDraggedComponent(dragIcon,e.getX(),e.getY());
+ if(tree.getPathForLocation(e.getX(), e.getY()) != null)
+ {
+ currentPath = tree.getPathForLocation(e.getX(),
e.getY());
+ if(getCurrentNode() != draggedNode)
+ {
+ tree.setSelectionPath(currentPath);
+ }
+ }
+ }
+ }
/****************************************
@@ -255,6 +314,21 @@
}
}
}
+
+ public void mouseDragged(MouseEvent e)
+ {
+ if(!dragging)
+ {
+ dragging = true;
+ draggedNode = getCurrentNode();
+
+ }
+ changeSelectionIfDragging(e);
+ }
+
+ public void mouseMoved(MouseEvent e)
+ {
+ }
/****************************************
@@ -322,12 +396,17 @@
private void displayPopUp(MouseEvent e)
{
JPopupMenu pop =
((JMeterGUIComponent)getCurrentNode().getUserObject()).createPopupMenu();
- if(pop != null)
+ displayPopUp(e,pop);
+ }
+
+ private void displayPopUp(MouseEvent e,JPopupMenu popup)
+ {
+ if(popup != null)
{
- pop.pack();
- pop.show(tree, e.getX(), e.getY());
- pop.setVisible(true);
- pop.requestFocus();
+ popup.pack();
+ popup.show(tree, e.getX(), e.getY());
+ popup.setVisible(true);
+ popup.requestFocus();
}
}
}
1.5 +5 -1 jakarta-jmeter/src_1/org/apache/jmeter/gui/util/MenuFactory.java
Index: MenuFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/util/MenuFactory.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MenuFactory.java 2 May 2002 22:54:58 -0000 1.4
+++ MenuFactory.java 20 May 2002 13:05:51 -0000 1.5
@@ -10,7 +10,7 @@
* Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
*
*@author Michael Stover
- *@created $Date: 2002/05/02 22:54:58 $
+ *@created $Date: 2002/05/20 13:05:51 $
*@version 1.0
***************************************/
@@ -170,6 +170,8 @@
MenuFactory.MODIFIERS,MenuFactory.RESPONSE_BASED_MODIFIERS},
JMeterUtils.getResString("Add"),
"Add"));
+ pop.add(makeMenus(new String[]{MenuFactory.CONTROLLERS},
+ JMeterUtils.getResString("insert_parent"),"Add
Parent"));
MenuFactory.addEditMenu(pop, true);
MenuFactory.addFileMenu(pop);
return pop;
@@ -188,6 +190,8 @@
MenuFactory.RESPONSE_BASED_MODIFIERS},
JMeterUtils.getResString("Add"),
"Add"));
+ pop.add(makeMenus(new String[]{MenuFactory.CONTROLLERS},
+ JMeterUtils.getResString("insert_parent"),"Add
Parent"));
MenuFactory.addEditMenu(pop, true);
MenuFactory.addFileMenu(pop);
return pop;
1.9 +5 -1
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties
Index: messages.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- messages.properties 17 May 2002 01:29:35 -0000 1.8
+++ messages.properties 20 May 2002 13:05:51 -0000 1.9
@@ -216,4 +216,8 @@
user_param_mod_help_note=(Do not change this. Instead, modify the file of that
name in JMeter's /bin directory)
filename=File Name
cancel_exit_to_save=There are test items that have not been saved. Do you wish to
save before exiting?
-save?=Save?
\ No newline at end of file
+save?=Save?
+insert_before=Insert Before
+insert_after=Insert After
+add_as_child=Add as Child
+cancel=Cancel
\ No newline at end of file
1.8 +5 -1
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties
Index: messages_ja.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- messages_ja.properties 17 May 2002 01:29:35 -0000 1.7
+++ messages_ja.properties 20 May 2002 13:05:51 -0000 1.8
@@ -210,4 +210,8 @@
user_param_mod_help_note=(Do not change this. Instead, modify the file of that
name in JMeter's /bin directory)
filename=File Name
cancel_exit_to_save=There are test items that have not been saved. Do you wish to
save before exiting?
-save?=Save?
\ No newline at end of file
+save?=Save?
+insert_before=Insert Before
+insert_after=Insert After
+add_as_child=Add as Child
+cancel=Cancel
\ No newline at end of file
1.8 +5 -1
jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties
Index: messages_no.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- messages_no.properties 17 May 2002 01:29:35 -0000 1.7
+++ messages_no.properties 20 May 2002 13:05:51 -0000 1.8
@@ -201,4 +201,8 @@
user_param_mod_help_note=(Do not change this. Instead, modify the file of that
name in JMeter's /bin directory)
filename=File Name
cancel_exit_to_save=There are test items that have not been saved. Do you wish to
save before exiting?
-save?=Save?
\ No newline at end of file
+save?=Save?
+insert_before=Insert Before
+insert_after=Insert After
+add_as_child=Add as Child
+cancel=Cancel
\ No newline at end of file
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>