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]>

Reply via email to