oros 2003/01/28 11:54:30
Modified: src/core/org/apache/jmeter/control/gui Tag:
refactorings_branch WorkBenchGui.java
src/core/org/apache/jmeter/gui Tag: refactorings_branch
AbstractJMeterGuiComponent.java GUIFactory.java
JMeterGUIComponent.java NamePanel.java
src/core/org/apache/jmeter/gui/document Tag:
refactorings_branch JMeterDocument.java
JMeterDocumentManager.java
src/core/org/apache/jmeter/gui/panel Tag:
refactorings_branch TabbedMainPanel.java
TestPlanPanel.java
src/core/org/apache/jmeter/gui/tree Tag: refactorings_branch
JMeterTreeNode.java TestPlanTreeNode.java
src/core/org/apache/jmeter/gui/util Tag: refactorings_branch
DoubleFieldDocumentListener.java
IntegerFieldDocumentListener.java
LongFieldDocumentListener.java
StringFieldDocumentListener.java
src/core/org/apache/jmeter/testelement Tag:
refactorings_branch AbstractNamedTestElement.java
AbstractTestElement.java RootElement.java
TestElement.java TestPlan.java
src/core/org/apache/jmeter/testelement/property Tag:
refactorings_branch BooleanProperty.java
ElementProperty.java IntProperty.java
LongProperty.java ObjectProperty.java
PrimitiveProperty.java Property.java
StringProperty.java
src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui
Tag: refactorings_branch ProxyControlGui.java
Added: src/core/org/apache/jmeter/gui/util Tag: refactorings_branch
AbstractFieldDocumentListener.java
Log:
dirty flag propagation
gui instances per tab
Revision Changes Path
No revision
No revision
1.4.2.4 +11 -51
jakarta-jmeter/src/core/org/apache/jmeter/control/gui/WorkBenchGui.java
Index: WorkBenchGui.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/gui/WorkBenchGui.java,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -u -r1.4.2.3 -r1.4.2.4
--- WorkBenchGui.java 26 Jan 2003 22:22:00 -0000 1.4.2.3
+++ WorkBenchGui.java 28 Jan 2003 19:54:28 -0000 1.4.2.4
@@ -88,11 +88,8 @@
NamePanel namePanel;
private JMeterTreeNode node;
+ private boolean isConfigured = false;
-
- /****************************************
- * !ToDo (Constructor description)
- ***************************************/
public WorkBenchGui()
{
namePanel = new NamePanel();
@@ -100,41 +97,18 @@
init();
}
- /****************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
+ public boolean isConfigured()
+ {
+ return isConfigured;
+ }
+
public Collection getMenuCategories()
{
return null;
}
- /****************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
- public String getName()
- {
- return namePanel.getName();
- }
-
- /****************************************
- * !ToDo (Method description)
- *
- *@param name !ToDo (Parameter description)
- ***************************************/
- public void setName(String name)
- {
- namePanel.setName(name);
- }
-
- /****************************************
- * !ToDo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
+
+
public NamedTestElement createTestElement()
{
WorkBench wb = new WorkBench();
@@ -144,21 +118,11 @@
return wb;
}
- /****************************************
- * !ToDo (Method description)
- *
- *@param element !ToDo (Parameter description)
- ***************************************/
public void configure(TestElement element)
{
namePanel.configure(element);
}
- /****************************************
- * !ToDo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
public JPopupMenu createPopupMenu(NamedTestElement element)
{
JPopupMenu menu = new JPopupMenu();
@@ -172,11 +136,6 @@
return menu;
}
- /****************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
public String getStaticLabel()
{
return JMeterUtils.getResString("workbench");
@@ -210,8 +169,9 @@
public void setElement(TestElement element)
{
- this.node = node;
+ isConfigured = false;
namePanel.setElement(element);
+ isConfigured = true;
}
No revision
No revision
1.4.2.5 +9 -0
jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java
Index: AbstractJMeterGuiComponent.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java,v
retrieving revision 1.4.2.4
retrieving revision 1.4.2.5
diff -u -r1.4.2.4 -r1.4.2.5
--- AbstractJMeterGuiComponent.java 26 Jan 2003 22:22:00 -0000 1.4.2.4
+++ AbstractJMeterGuiComponent.java 28 Jan 2003 19:54:28 -0000 1.4.2.5
@@ -95,6 +95,7 @@
protected NamePanel namePanel;
private JLabel panelTitleLabel;
private boolean namedPanel = true;
+ private boolean isConfigured = false;
/**
@@ -138,6 +139,7 @@
*/
public final void setElement(TestElement element)
{
+ isConfigured = false;
this.element = element;
if (namedPanel)
{
@@ -148,6 +150,7 @@
} else {
configure(element);
}
+ isConfigured = true;
}
/**
@@ -285,5 +288,11 @@
public JPopupMenu createPopupMenu(NamedTestElement testElement)
{
return null;
+ }
+
+
+ public boolean isConfigured()
+ {
+ return isConfigured;
}
}
1.1.2.4 +1 -12 jakarta-jmeter/src/core/org/apache/jmeter/gui/GUIFactory.java
Index: GUIFactory.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/GUIFactory.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- GUIFactory.java 26 Jan 2003 22:22:00 -0000 1.1.2.3
+++ GUIFactory.java 28 Jan 2003 19:54:28 -0000 1.1.2.4
@@ -70,7 +70,6 @@
public class GUIFactory
{
- private static final Map guiMap = new HashMap();
private static final Map iconMap = new HashMap();
private static final Map guiClassMap = new HashMap();
@@ -97,17 +96,7 @@
public static synchronized JComponent getGUI(NamedTestElement element)
{
- String key = element.getClass().getName();
- JComponent gui = (JComponent)guiMap.get(key);
-
- if (gui != null)
- {
- return gui;
- }
- Class guiClass = getGuiClass(element.getClass());
- gui = createGuiInstance(guiClass);
- guiMap.put(key, gui);
- return gui;
+ return createGuiInstance(getGuiClass(element.getClass()));
}
1.4.2.4 +10 -1
jakarta-jmeter/src/core/org/apache/jmeter/gui/JMeterGUIComponent.java
Index: JMeterGUIComponent.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/JMeterGUIComponent.java,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -u -r1.4.2.3 -r1.4.2.4
--- JMeterGUIComponent.java 26 Jan 2003 22:22:00 -0000 1.4.2.3
+++ JMeterGUIComponent.java 28 Jan 2003 19:54:28 -0000 1.4.2.4
@@ -173,4 +173,13 @@
public void setElement(TestElement element);
public TestElement getElement();
+
+ /**
+ * Answer true if configuration is finished. This information is used by
document listeners to
+ * decide wether a value update will be done or not.
+ *
+ * @return
+ */
+ public boolean isConfigured();
+
}
1.2.2.4 +23 -36 jakarta-jmeter/src/core/org/apache/jmeter/gui/NamePanel.java
Index: NamePanel.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/NamePanel.java,v
retrieving revision 1.2.2.3
retrieving revision 1.2.2.4
diff -u -r1.2.2.3 -r1.2.2.4
--- NamePanel.java 26 Jan 2003 22:22:00 -0000 1.2.2.3
+++ NamePanel.java 28 Jan 2003 19:54:28 -0000 1.2.2.4
@@ -85,62 +85,35 @@
private JTextField nameField;
private JLabel nameLabel;
private NamedTestElement element;
+ private boolean isConfigured = false;
- /****************************************
- * !ToDo (Constructor description)
- ***************************************/
public NamePanel()
{
init();
}
- /****************************************
- * !ToDo (Method description)
- *
- *@param testElement !ToDo (Parameter description)
- ***************************************/
+ public boolean isConfigured()
+ {
+ return isConfigured;
+ }
+
public void configure(TestElement testElement)
{
nameField.setText(((NamedTestElement)testElement).getName());
}
- /****************************************
- * !ToDo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
public JPopupMenu createPopupMenu(NamedTestElement testElement)
{
return null;
}
- /****************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
public String getStaticLabel()
{
return JMeterUtils.getResString("root");
}
- /****************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
- public Collection getMenuCategories()
- {
- return null;
- }
-
- /****************************************
- * !ToDo (Method description)
- *
- *@return !ToDo (Return description)
- ***************************************/
public NamedTestElement createTestElement()
{
WorkBench wb = new WorkBench();
@@ -165,13 +138,19 @@
{
public void insertUpdate(DocumentEvent e)
{
- updateName(nameField.getText());
+ if (isConfigured())
+ {
+ updateName(nameField.getText());
+ }
}
public void removeUpdate(DocumentEvent e)
{
- updateName(nameField.getText());
+ if (isConfigured())
+ {
+ updateName(nameField.getText());
+ }
}
@@ -201,8 +180,10 @@
{
if (element instanceof NamedTestElement)
{
+ isConfigured = false;
this.element = (NamedTestElement)element;
configure(element);
+ isConfigured = true;
}
}
@@ -210,5 +191,11 @@
public TestElement getElement()
{
return element;
+ }
+
+
+ public Collection getMenuCategories()
+ {
+ return null;
}
}
No revision
No revision
1.1.2.5 +29 -13
jakarta-jmeter/src/core/org/apache/jmeter/gui/document/Attic/JMeterDocument.java
Index: JMeterDocument.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/document/Attic/JMeterDocument.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- JMeterDocument.java 27 Jan 2003 22:20:18 -0000 1.1.2.4
+++ JMeterDocument.java 28 Jan 2003 19:54:28 -0000 1.1.2.5
@@ -61,7 +61,7 @@
import javax.swing.*;
-import org.apache.jmeter.testelement.NamedTestElement;
+import org.apache.jmeter.testelement.*;
import org.apache.jmeter.gui.GUIFactory;
@@ -71,11 +71,11 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
*/
-public class JMeterDocument
+public class JMeterDocument implements TestPlan.TestPlanObserver
{
private File file;
- private NamedTestElement rootElement;
+ private NamedTestElement element;
private String name;
private NamedTestElement currentTestElement;
private Collection listeners = new HashSet();
@@ -89,8 +89,14 @@
public JMeterDocument(String name, File file, NamedTestElement rootElement)
{
this.file = file;
- this.rootElement = rootElement;
+ this.element = rootElement;
this.name = name;
+
+ rootElement.resetDirty();
+
+ if (rootElement instanceof TestPlan) {
+ ((TestPlan)element).setObserver(this);
+ }
}
@@ -99,10 +105,15 @@
return getFile() == null;
}
- public boolean hasChanged()
+ public boolean isDirty()
{
- // todo: implement
- return isNew();
+ return element.isDirty();
+ }
+
+ public void resetDirty()
+ {
+ element.resetDirty();
+ notifyListeners();
}
public File getFile()
@@ -116,14 +127,14 @@
notifyListeners();
}
- public NamedTestElement getRootElement()
+ public NamedTestElement getElement()
{
- return rootElement;
+ return element;
}
- public void setRootElement(NamedTestElement rootElement)
+ public void setElement(NamedTestElement element)
{
- this.rootElement = rootElement;
+ this.element = element;
}
public String getFileName()
@@ -140,7 +151,7 @@
public ImageIcon getIcon()
{
- return GUIFactory.getIcon(getRootElement().getClass().getName() + "_TAB");
+ return GUIFactory.getIcon(getElement().getClass().getName() + "_TAB");
}
@@ -171,6 +182,10 @@
return name;
}
+ public void dirtyChanged(TestPlan element)
+ {
+ notifyListeners();
+ }
public synchronized void addListener(JMeterDocumentListener listener)
{
@@ -217,5 +232,6 @@
}
}
}
+
}
1.1.2.5 +5 -5
jakarta-jmeter/src/core/org/apache/jmeter/gui/document/Attic/JMeterDocumentManager.java
Index: JMeterDocumentManager.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/document/Attic/JMeterDocumentManager.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- JMeterDocumentManager.java 27 Jan 2003 22:20:18 -0000 1.1.2.4
+++ JMeterDocumentManager.java 28 Jan 2003 19:54:28 -0000 1.1.2.5
@@ -25,8 +25,7 @@
import java.io.*;
import java.lang.ref.WeakReference;
-import org.apache.jmeter.testelement.NamedTestElement;
-import org.apache.jmeter.testelement.TestPlan;
+import org.apache.jmeter.testelement.*;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.save.JTPFileFormat;
import org.apache.jmeter.util.*;
@@ -64,8 +63,9 @@
try
{
- new JTPFileFormat().store(document.getRootElement(), out);
+ new JTPFileFormat().store(document.getElement(), out);
document.setFile(file);
+ document.resetDirty();
} finally
{
if (out != null) {
@@ -96,7 +96,7 @@
}
JMeterDocument document = createDocument(file, element);
- if (singleDocument != null && singleDocument.isNew() &&
!singleDocument.hasChanged())
+ if (singleDocument != null && singleDocument.isNew() &&
!singleDocument.isDirty())
{
closeDocument(singleDocument);
}
No revision
No revision
1.1.2.4 +3 -8
jakarta-jmeter/src/core/org/apache/jmeter/gui/panel/Attic/TabbedMainPanel.java
Index: TabbedMainPanel.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/panel/Attic/TabbedMainPanel.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- TabbedMainPanel.java 27 Jan 2003 22:20:19 -0000 1.1.2.3
+++ TabbedMainPanel.java 28 Jan 2003 19:54:29 -0000 1.1.2.4
@@ -108,7 +108,7 @@
private void addDocument(org.apache.jmeter.gui.document.JMeterDocument document)
{
- if (document.getRootElement() instanceof TestPlan)
+ if (document.getElement() instanceof TestPlan)
{
addTestPlanTab(document);
}
@@ -119,11 +119,6 @@
TestPlanPanel panel = new TestPlanPanel(document);
ImageIcon icon = document.getIcon();
- if (document.hasChanged())
- {
- icon = mergeIcons(icon, dirtyIcon);
- }
-
addTab(document.getFileName(), icon, panel, document.getAbsolutePath());
setSelectedComponent(panel);
documentPanels.put(document.getName(), panel);
@@ -145,7 +140,7 @@
int index = indexOfComponent(panel);
ImageIcon icon = document.getIcon();
- if (document.hasChanged())
+ if (document.isDirty())
{
icon = mergeIcons(icon, dirtyIcon);
}
1.1.2.4 +2 -2
jakarta-jmeter/src/core/org/apache/jmeter/gui/panel/Attic/TestPlanPanel.java
Index: TestPlanPanel.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/panel/Attic/TestPlanPanel.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- TestPlanPanel.java 21 Jan 2003 23:42:59 -0000 1.1.2.3
+++ TestPlanPanel.java 28 Jan 2003 19:54:29 -0000 1.1.2.4
@@ -52,7 +52,7 @@
public TestPlanPanel(JMeterDocument document)
{
super(document);
- treeModel = new TestPlanTreeModel((TestPlan)document.getRootElement());
+ treeModel = new TestPlanTreeModel((TestPlan)document.getElement());
init();
}
No revision
No revision
1.5.2.4 +5 -1
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
Index: JMeterTreeNode.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java,v
retrieving revision 1.5.2.3
retrieving revision 1.5.2.4
diff -u -r1.5.2.3 -r1.5.2.4
--- JMeterTreeNode.java 26 Jan 2003 22:22:01 -0000 1.5.2.3
+++ JMeterTreeNode.java 28 Jan 2003 19:54:29 -0000 1.5.2.4
@@ -81,6 +81,10 @@
{
JMeterTreeModel treeModel;
+ public boolean isConfigured()
+ {
+ return false;
+ }
public JMeterTreeNode(JMeterGUIComponent userObj, JMeterTreeModel treeModel)
{
1.1.2.4 +20 -0
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/Attic/TestPlanTreeNode.java
Index: TestPlanTreeNode.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/Attic/TestPlanTreeNode.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- TestPlanTreeNode.java 26 Jan 2003 22:22:01 -0000 1.1.2.3
+++ TestPlanTreeNode.java 28 Jan 2003 19:54:29 -0000 1.1.2.4
@@ -362,6 +362,26 @@
{
return getElement();
}
+
+ public boolean isDirty()
+ {
+ return getElement().isDirty();
+ }
+
+ public void resetDirty()
+ {
+ getElement().resetDirty();
+ }
+
+ public void propertyChanged(Property property)
+ {
+ getElement().propertyChanged(property);
+ }
+
+ public void dirtyFlagChanged(TestElement childElement)
+ {
+ getElement().dirtyFlagChanged(childElement);
+ }
}
No revision
No revision
1.1.2.3 +4 -28
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/DoubleFieldDocumentListener.java
Index: DoubleFieldDocumentListener.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/DoubleFieldDocumentListener.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- DoubleFieldDocumentListener.java 26 Jan 2003 22:22:01 -0000 1.1.2.2
+++ DoubleFieldDocumentListener.java 28 Jan 2003 19:54:29 -0000 1.1.2.3
@@ -68,43 +68,19 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
*/
-public class DoubleFieldDocumentListener implements DocumentListener
+public class DoubleFieldDocumentListener extends AbstractFieldDocumentListener
{
- private JMeterGUIComponent gui;
- private String property;
- private JTextField field;
-
public DoubleFieldDocumentListener(String property, JTextField field,
JMeterGUIComponent gui)
{
- this.property = property;
- this.field = field;
- this.gui = gui;
- }
-
-
- public void insertUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void removeUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void changedUpdate(DocumentEvent e)
- {
- //
+ super(property, field, gui);
}
- private void setValue()
+ protected void setValue()
{
try {
- gui.getElement().setProperty(property, new Double(field.getText()));
+ getGui().getElement().setProperty(getProperty(), new
Double(getField().getText()));
} catch (NumberFormatException e) {
//
}
1.1.2.3 +4 -28
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/IntegerFieldDocumentListener.java
Index: IntegerFieldDocumentListener.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/IntegerFieldDocumentListener.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- IntegerFieldDocumentListener.java 26 Jan 2003 22:22:01 -0000 1.1.2.2
+++ IntegerFieldDocumentListener.java 28 Jan 2003 19:54:29 -0000 1.1.2.3
@@ -67,43 +67,19 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
*/
-public class IntegerFieldDocumentListener implements DocumentListener
+public class IntegerFieldDocumentListener extends AbstractFieldDocumentListener
{
- private JMeterGUIComponent gui;
- private String property;
- private JTextField field;
public IntegerFieldDocumentListener(String property, JTextField field,
JMeterGUIComponent gui)
{
- this.property = property;
- this.field = field;
- this.gui = gui;
+ super(property, field, gui);
}
-
- public void insertUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void removeUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void changedUpdate(DocumentEvent e)
- {
- //
- }
-
-
- private void setValue()
+ protected void setValue()
{
try {
- gui.getElement().setProperty(property, new Integer(field.getText()));
+ getGui().getElement().setProperty(getProperty(), new
Integer(getField().getText()));
} catch (NumberFormatException e) {
//
}
1.1.2.3 +4 -29
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/LongFieldDocumentListener.java
Index: LongFieldDocumentListener.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/LongFieldDocumentListener.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- LongFieldDocumentListener.java 26 Jan 2003 22:22:01 -0000 1.1.2.2
+++ LongFieldDocumentListener.java 28 Jan 2003 19:54:29 -0000 1.1.2.3
@@ -68,43 +68,18 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
*/
-public class LongFieldDocumentListener implements DocumentListener
+public class LongFieldDocumentListener extends AbstractFieldDocumentListener
{
- private JMeterGUIComponent gui;
- private String property;
- private JTextField field;
-
public LongFieldDocumentListener(String property, JTextField field,
JMeterGUIComponent gui)
{
- this.property = property;
- this.field = field;
- this.gui = gui;
- }
-
-
- public void insertUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void removeUpdate(DocumentEvent e)
- {
- setValue();
+ super(property, field, gui);
}
-
- public void changedUpdate(DocumentEvent e)
- {
- //
- }
-
-
- private void setValue()
+ protected void setValue()
{
try {
- gui.getElement().setProperty(property, new Long(field.getText()));
+ getGui().getElement().setProperty(getProperty(), new
Long(getField().getText()));
} catch (NumberFormatException e) {
//
}
1.1.2.3 +6 -31
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/StringFieldDocumentListener.java
Index: StringFieldDocumentListener.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/StringFieldDocumentListener.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- StringFieldDocumentListener.java 26 Jan 2003 22:22:01 -0000 1.1.2.2
+++ StringFieldDocumentListener.java 28 Jan 2003 19:54:29 -0000 1.1.2.3
@@ -67,58 +67,33 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
*/
-public class StringFieldDocumentListener implements DocumentListener
+public class StringFieldDocumentListener extends AbstractFieldDocumentListener
{
- private JMeterGUIComponent gui;
- private String property;
- private JTextField field;
private JTextArea area;
public StringFieldDocumentListener(String property, JTextField field,
JMeterGUIComponent gui)
{
- this.property = property;
- this.field = field;
- this.gui = gui;
+ super(property, field, gui);
}
-
public StringFieldDocumentListener(String property, JTextArea area,
JMeterGUIComponent gui)
{
- this.gui = gui;
- this.property = property;
+ super(property, null, gui);
this.area = area;
}
- public void insertUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void removeUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- public void changedUpdate(DocumentEvent e)
- {
- setValue();
- }
-
-
- private void setValue()
+ protected void setValue()
{
try {
String text;
if (area == null) {
- text = field.getText();
+ text = getField().getText();
} else {
text = area.getText();
}
- gui.getElement().setProperty(property, text);
+ getGui().getElement().setProperty(getProperty(), text);
} catch (NumberFormatException e) {
//
}
No revision
No revision
1.1.2.1 +118 -0
jakarta-jmeter/src/core/org/apache/jmeter/gui/util/Attic/AbstractFieldDocumentListener.java
No revision
No revision
1.1.2.2 +2 -2
jakarta-jmeter/src/core/org/apache/jmeter/testelement/Attic/AbstractNamedTestElement.java
Index: AbstractNamedTestElement.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/Attic/AbstractNamedTestElement.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- AbstractNamedTestElement.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ AbstractNamedTestElement.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -65,7 +65,7 @@
public class AbstractNamedTestElement extends AbstractTestElement implements
NamedTestElement
{
- private StringProperty name = new StringProperty("");
+ private StringProperty name = new StringProperty("", this);
public AbstractNamedTestElement()
{
1.5.2.5 +91 -8
jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
Index: AbstractTestElement.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/AbstractTestElement.java,v
retrieving revision 1.5.2.4
retrieving revision 1.5.2.5
diff -u -r1.5.2.4 -r1.5.2.5
--- AbstractTestElement.java 26 Jan 2003 22:22:03 -0000 1.5.2.4
+++ AbstractTestElement.java 28 Jan 2003 19:54:29 -0000 1.5.2.5
@@ -87,9 +87,11 @@
private static long idCounter = 0L;
+ private HashSet dirtyChildren;
private TestElement parent;
private List children = new LinkedList();
private long id;
+ private boolean dirty = false;
private static final synchronized long getNextId()
@@ -124,8 +126,8 @@
while (iterator.hasNext())
{
- NamedTestElement testElement = (NamedTestElement)iterator.next();
- clone.addChildElement((NamedTestElement)testElement.clone());
+ TestElement testElement = (TestElement)iterator.next();
+ clone.addChildElement((TestElement)testElement.clone());
}
iterator = getProperties().entrySet().iterator();
@@ -170,7 +172,8 @@
HashMap properties = new HashMap();
Class clazz = this.getClass();
- while (AbstractTestElement.class.isAssignableFrom(clazz)) {
+ while (AbstractTestElement.class.isAssignableFrom(clazz))
+ {
collectProperties(clazz, properties);
clazz = clazz.getSuperclass();
}
@@ -394,6 +397,7 @@
}
children.add(element);
element.setParent(this);
+ setDirty(true);
}
@@ -402,6 +406,12 @@
if (children.remove(child))
{
child.setParent(null);
+ if (dirtyChildren != null && dirtyChildren.remove(child)) {
+ if (dirtyChildren.isEmpty()) {
+ notifyParent();
+ }
+ }
+
}
}
@@ -447,7 +457,8 @@
{
Field field = findField(property, getClass());
- if (field == null) {
+ if (field == null)
+ {
throw new IllegalArgumentException("Invalid property name " +
property);
}
@@ -460,7 +471,8 @@
}
- private Field findField(String fieldName, Class clazz) {
+ private Field findField(String fieldName, Class clazz)
+ {
try
{
return clazz.getDeclaredField(fieldName);
@@ -468,7 +480,8 @@
{
Class superclass = clazz.getSuperclass();
- if (NamedTestElement.class.isAssignableFrom(superclass)) {
+ if (NamedTestElement.class.isAssignableFrom(superclass))
+ {
return findField(fieldName, superclass);
}
}
@@ -534,7 +547,8 @@
{
Field field = findField(name, getClass());
- if (field == null) {
+ if (field == null)
+ {
throw new IllegalArgumentException("Invalid property name " +
property);
}
@@ -594,4 +608,73 @@
visitor.visit(this);
}
+ public boolean isDirty()
+ {
+ return dirty || hasDirtyChildren();
+ }
+
+ protected boolean hasDirtyChildren()
+ {
+ if (dirtyChildren == null)
+ {
+ return false;
+ }
+ return dirtyChildren.size() > 0;
+ }
+
+ public void resetDirty()
+ {
+ dirty = false;
+ if (dirtyChildren != null)
+ {
+ Iterator iterator = dirtyChildren.iterator();
+
+ while (iterator.hasNext())
+ {
+ TestElement element = (TestElement)iterator.next();
+
+ element.resetDirty();
+ }
+ dirtyChildren.clear();
+ }
+
+ }
+
+
+ public void dirtyFlagChanged(TestElement childElement)
+ {
+ if (getChildElements().contains(childElement) && childElement.isDirty()) {
+ if (dirtyChildren == null) {
+ dirtyChildren = new HashSet();
+ }
+ if (dirtyChildren.add(childElement)) {
+ notifyParent();
+ }
+ } else if (! childElement.isDirty() && dirtyChildren != null) {
+ if (dirtyChildren.remove(childElement)) {
+ notifyParent();
+ }
+ }
+ }
+
+ public void propertyChanged(Property property)
+ {
+ setDirty(true);
+
+ }
+
+ protected void setDirty(boolean flag)
+ {
+ dirty = flag;
+
+ notifyParent();
+ }
+
+ protected void notifyParent()
+ {
+ if (getParentElement() != null)
+ {
+ getParentElement().dirtyFlagChanged(this);
+ }
+ }
}
1.1.2.3 +7 -0
jakarta-jmeter/src/core/org/apache/jmeter/testelement/Attic/RootElement.java
Index: RootElement.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/Attic/RootElement.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- RootElement.java 26 Jan 2003 22:22:03 -0000 1.1.2.2
+++ RootElement.java 28 Jan 2003 19:54:29 -0000 1.1.2.3
@@ -67,6 +67,7 @@
public class RootElement extends AbstractNamedTestElement
{
+
public RootElement()
{
}
@@ -84,4 +85,10 @@
answer.add(TestPlan.class);
return answer;
}
+
+ protected void setDirty(boolean flag)
+ {
+ // do nothing
+ }
+
}
1.1.2.4 +16 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestElement.java
Index: TestElement.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestElement.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- TestElement.java 26 Jan 2003 22:22:03 -0000 1.1.2.3
+++ TestElement.java 28 Jan 2003 19:54:29 -0000 1.1.2.4
@@ -110,6 +110,8 @@
public void setProperty(String key, int value);
+ public void propertyChanged(Property property);
+
public Object clone();
/**
@@ -136,4 +138,17 @@
public TestElement getParentElement();
public void accept(TestElementVisitor visitor);
+
+ public boolean isDirty();
+
+ /**
+ * Clear the dirty flag.
+ */
+ public void resetDirty();
+
+ /**
+ * Used by test elements to notify their parents when the dirty flag has
changed.
+ * @param childElement
+ */
+ public void dirtyFlagChanged(TestElement childElement);
}
1.1.2.4 +31 -4
jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java
Index: TestPlan.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- TestPlan.java 26 Jan 2003 22:22:03 -0000 1.1.2.3
+++ TestPlan.java 28 Jan 2003 19:54:29 -0000 1.1.2.4
@@ -83,11 +83,14 @@
public final static String FUNCTIONAL_MODE = "functionalMode";
public final static String USER_DEFINED_VARIABLES = "userDefinedVariables";
+ private Set dirtyElements = new HashSet();
+ private TestPlanObserver observer;
+
private List threadGroups = new LinkedList();
private List configs = new LinkedList();
private static TestPlan plan;
- private ElementProperty userDefinedVariables = new ElementProperty(new
Arguments());
- private BooleanProperty functionalMode = new BooleanProperty(false);
+ private ElementProperty userDefinedVariables = new ElementProperty(new
Arguments(), this);
+ private BooleanProperty functionalMode = new BooleanProperty(false, this);
public TestPlan()
@@ -103,10 +106,11 @@
}
- public boolean isFunctionalMode() {
+ public boolean isFunctionalMode()
+ {
return getFunctionalMode();
}
-
+
public boolean getFunctionalMode()
{
return functionalMode.getBooleanValue();
@@ -229,4 +233,27 @@
{
threadGroups.add(group);
}
+
+
+ public void setObserver(TestPlanObserver observer)
+ {
+ this.observer = observer;
+ }
+
+
+ protected void notifyParent()
+ {
+ // ignore the parent (RootElement) but notify the TestPlanObserver
+ if (observer != null) {
+ observer.dirtyChanged(this);
+ }
+ }
+
+ public static interface TestPlanObserver
+ {
+
+ public void dirtyChanged(TestPlan element);
+
+ }
+
}
No revision
No revision
1.1.2.2 +10 -2
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/BooleanProperty.java
Index: BooleanProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/BooleanProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- BooleanProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ BooleanProperty.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -67,7 +70,12 @@
public BooleanProperty(boolean booleanValue)
{
- super(new Boolean(booleanValue));
+ this(booleanValue, null);
+ }
+
+ public BooleanProperty(boolean booleanValue, TestElement owner)
+ {
+ super(new Boolean(booleanValue), owner);
this.booleanValue = booleanValue;
}
1.1.2.2 +6 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/ElementProperty.java
Index: ElementProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/ElementProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- ElementProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ ElementProperty.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -71,6 +71,11 @@
super(value);
}
+ public ElementProperty(Object value, TestElement owner)
+ {
+ super(value, owner);
+ }
+
public TestElement getElement()
{
return (TestElement)getValue();
1.1.2.2 +11 -3
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/IntProperty.java
Index: IntProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/IntProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- IntProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ IntProperty.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -65,9 +68,14 @@
private int intValue;
- public IntProperty(int value)
+ public IntProperty(int intValue)
+ {
+ this(intValue, null);
+ }
+
+ public IntProperty(int value, TestElement owner)
{
- super(new Integer(value));
+ super(new Integer(value), owner);
this.intValue = value;
}
1.1.2.2 +10 -2
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/LongProperty.java
Index: LongProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/LongProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- LongProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ LongProperty.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -67,7 +70,12 @@
public LongProperty(long longValue)
{
- super(new Long(longValue));
+ this(longValue, null);
+ }
+
+ public LongProperty(long longValue, TestElement owner)
+ {
+ super(new Long(longValue), owner);
this.longValue = longValue;
}
1.1.2.2 +9 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/ObjectProperty.java
Index: ObjectProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/ObjectProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- ObjectProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ ObjectProperty.java 28 Jan 2003 19:54:29 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -65,6 +68,11 @@
public ObjectProperty(Object value)
{
super(value);
+ }
+
+ public ObjectProperty(Object value, TestElement owner)
+ {
+ super(value, owner);
}
public boolean isObject()
1.1.2.2 +9 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/PrimitiveProperty.java
Index: PrimitiveProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/PrimitiveProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- PrimitiveProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ PrimitiveProperty.java 28 Jan 2003 19:54:30 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -65,6 +68,11 @@
public PrimitiveProperty(Object value)
{
super(value);
+ }
+
+ public PrimitiveProperty(Object value, TestElement owner)
+ {
+ super(value, owner);
}
public boolean isPrimitive()
1.1.2.2 +24 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/Property.java
Index: Property.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/Property.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- Property.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ Property.java 28 Jan 2003 19:54:30 -0000 1.1.2.2
@@ -57,6 +57,8 @@
import java.io.*;
+import org.apache.jmeter.testelement.TestElement;
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
@@ -66,6 +68,7 @@
{
private Object value;
+ private TestElement owner;
public Property(Object value)
@@ -73,6 +76,12 @@
this.value = value;
}
+ public Property(Object value, TestElement owner)
+ {
+ this.value = value;
+ this.owner = owner;
+ }
+
public Object getValue()
{
return value;
@@ -80,7 +89,15 @@
public void setValue(Object value)
{
+ boolean notify = false;
+
+ if (this.value == null || (this.value != null && !
this.value.equals(value))) {
+ notify = true;
+ }
this.value = value;
+ if (notify) {
+ fireChanged();
+ }
}
public boolean isPrimitive() {
@@ -98,6 +115,12 @@
} catch (CloneNotSupportedException e)
{
throw new InternalError("Object.clone failed");
+ }
+ }
+
+ protected void fireChanged() {
+ if (owner != null) {
+ owner.propertyChanged(this);
}
}
}
1.1.2.2 +9 -1
jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/StringProperty.java
Index: StringProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/Attic/StringProperty.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- StringProperty.java 26 Jan 2003 22:22:03 -0000 1.1.2.1
+++ StringProperty.java 28 Jan 2003 19:54:30 -0000 1.1.2.2
@@ -55,6 +55,9 @@
package org.apache.jmeter.testelement.property;
+import org.apache.jmeter.testelement.TestElement;
+
+
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Rossmueller</a>
* @version $Revision$
@@ -65,6 +68,11 @@
public StringProperty(String value)
{
super(value);
+ }
+
+ public StringProperty(String value, TestElement owner)
+ {
+ super(value, owner);
}
public void setValue(Object value)
No revision
No revision
1.4.2.3 +13 -8
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
Index: ProxyControlGui.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java,v
retrieving revision 1.4.2.2
retrieving revision 1.4.2.3
diff -u -r1.4.2.2 -r1.4.2.3
--- ProxyControlGui.java 26 Jan 2003 22:22:06 -0000 1.4.2.2
+++ ProxyControlGui.java 28 Jan 2003 19:54:30 -0000 1.4.2.3
@@ -107,10 +107,10 @@
KeyListener,FocusListener
{
- NamePanel namePanel;
- JTextField portField;
-
- ProxyControl model;
+ private NamePanel namePanel;
+ private JTextField portField;
+ private boolean isConfigured = false;
+ private ProxyControl model;
JTable excludeTable;
PowerTableModel excludeModel;
@@ -130,9 +130,6 @@
private final static String INCLUDE_COL =
JMeterUtils.getResString("patterns_to_include");
private final static String EXCLUDE_COL =
JMeterUtils.getResString("patterns_to_exclude");
- /****************************************
- * !ToDo (Constructor description)
- ***************************************/
public ProxyControlGui()
{
namePanel = new NamePanel();
@@ -140,6 +137,12 @@
init();
}
+
+ public boolean isConfigured()
+ {
+ return isConfigured;
+ }
+
public JPopupMenu createPopupMenu(NamedTestElement element)
{
return MenuFactory.getDefaultTimerMenu();
@@ -506,7 +509,9 @@
public void setElement(TestElement element)
{
+ isConfigured = false;
namePanel.setElement(element);
+ isConfigured = true;
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>