Skip to Content.
Sympa Menu

perfsonar-dev - perfsonar: r2984 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: flowsa flowsa/components ui/panels

Subject: perfsonar development work

List archive

perfsonar: r2984 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: flowsa flowsa/components ui/panels


Chronological Thread 
  • From:
  • To:
  • Subject: perfsonar: r2984 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: flowsa flowsa/components ui/panels
  • Date: Mon, 22 Oct 2007 18:51:25 -0400

Author: michael.bischoff
Date: 2007-10-22 18:51:23 -0400 (Mon, 22 Oct 2007)
New Revision: 2984

Modified:

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAResponse.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMATab.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAUserData.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/DateTimeModel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/OptionsPanel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/RawSpecificsPanel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/ResultPanel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopParametersPanel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopSpecificsPanel.java

branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/DefaultModifiableListModel.java
Log:
fixed/implemented correct handling of clear

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAResponse.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAResponse.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAResponse.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -8,12 +8,9 @@
package org.perfsonar.perfsonarui.flowsa;

import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.ListIterator;

import org.perfsonar.perfsonarui.AbstractPerfsonarResponse;
import org.perfsonar.perfsonarui.AbstractUserData;

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMATab.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMATab.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMATab.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -285,7 +285,9 @@

@Override
public void clear() {
- super.clear();
+ dataList.clear();
+ searchList.clear();
+ searchText.clear();
getUserData().setDefaults();
}
}

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAUserData.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAUserData.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/FlowsaMAUserData.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -91,11 +91,21 @@
* gui also listen for changes of the userdata though other sources.
*/
public void setDefaults() {
- setQuery(FlowsaMAUserData.QUERYTYPE, "Raw");
+ setQuery(ROUTERS,NULL_DATA);
+ setQuery(RAWFILTER, NULL_DATA);
+ setQuery(RAWAGGREGATION, NULL_DATA);
+ setQuery(RAWFIELDS, "TimeFirstSeen TimeLastSeen Protocol
SrcAddress SrcPort DstAddress DstPort Packets Bytes");
+ setQuery(TOPELEMENTS, "Record");
+ setQuery(TOPORDERBY, "Flows");
+ setQuery(TOPNUMBER, "10");
+ setQuery(TOPTRANSGROUP, "no");
+ setQuery(TOPFILTER, NULL_DATA);
+ setQuery(TOPAGGREGATION, NULL_DATA);
+ setQuery(QUERYTYPE, "Raw");
Calendar now = Calendar.getInstance();
- setQuery(FlowsaMAUserData.ENDMOMENT,
String.valueOf(now.getTime().getTime()/1000));
+ setQuery(ENDMOMENT,
String.valueOf(now.getTime().getTime()/1000));
now.roll(Calendar.MINUTE, -1);
- setQuery(FlowsaMAUserData.STARTMOMENT,
String.valueOf(now.getTime().getTime()/1000));
+ setQuery(STARTMOMENT,
String.valueOf(now.getTime().getTime()/1000));
}

public void pushQuery(Query query) {

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/DateTimeModel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/DateTimeModel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/DateTimeModel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -10,11 +10,6 @@
*/
Date getValue();
/**
- * sets a new value for this model,
{@link
ChangeListener} are notified of the change
- * @param date
- */
- void setValue(Date date);
- /**
* sets a new value for this model,
{@link
ChangeListener} are notified of the change e.getSource = source
* @param date
* @param source

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/OptionsPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/OptionsPanel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/OptionsPanel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -10,6 +10,8 @@
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.util.Calendar;
+import java.util.Observable;
+import java.util.Observer;

import static org.jdesktop.layout.GroupLayout.*;
import static org.jdesktop.layout.LayoutStyle.*;
@@ -26,6 +28,7 @@

import org.jdesktop.layout.GroupLayout;
import org.perfsonar.perfsonarui.flowsa.FlowsaMAUserData;
+import org.perfsonar.perfsonarui.flowsa.FlowsaMAUserData.QueryType;
import org.perfsonar.perfsonarui.plugins.IUserData;

public class OptionsPanel extends JPanel {
@@ -59,14 +62,50 @@
final DateTimeModel startTimeModel = new
DefaultDateTimeModel(calendar);
startTimeModel.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
+
if(!startTimeModel.getValue().before(endTimeModel.getValue())) {
+ Calendar calendar =
Calendar.getInstance();
+
calendar.setTime(startTimeModel.getValue());
+ calendar.add(Calendar.SECOND, 1);

+
endTimeModel.setValue(calendar.getTime(),this);

+ }

model.setQuery(FlowsaMAUserData.STARTMOMENT,String.valueOf(startTimeModel.getValue().getTime()/1000));
}
});
endTimeModel.addChangeListener(new ChangeListener() {
- public void stateChanged(ChangeEvent e) {
-
model.setQuery(FlowsaMAUserData.ENDMOMENT,String.valueOf(endTimeModel.getValue().getTime()/1000));
+ public void stateChanged(ChangeEvent e) {

+
if(!endTimeModel.getValue().after(startTimeModel.getValue())) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(endTimeModel.getValue());
+ calendar.add(Calendar.SECOND, -1);

+ startTimeModel.setValue(calendar.getTime(),this);

+ }
+
model.setQuery(FlowsaMAUserData.ENDMOMENT,String.valueOf(endTimeModel.getValue().getTime()/1000));
}
});
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.ENDMOMENT
+ &&
!model.getQuery(FlowsaMAUserData.ENDMOMENT).equals(String.valueOf(endTimeModel.getValue().getTime()/1000)))
{
+ try {
+ Calendar calendar = Calendar.getInstance();
+
calendar.setTimeInMillis(Long.parseLong(model.getQuery(FlowsaMAUserData.ENDMOMENT))*1000);
+ endTimeModel.setValue(calendar.getTime(),this);
+ } catch (NumberFormatException e) {
+ /* ignore update the model next time when there's a
valid value */
+ }
+ }
+ if(arg == FlowsaMAUserData.STARTMOMENT
+ &&
!model.getQuery(FlowsaMAUserData.STARTMOMENT).equals(String.valueOf(startTimeModel.getValue().getTime()/1000)))
{
+ try {
+ Calendar calendar = Calendar.getInstance();

+
calendar.setTimeInMillis(Long.parseLong(model.getQuery(FlowsaMAUserData.STARTMOMENT))*1000);
+ startTimeModel.setValue(calendar.getTime(),this);
+ } catch (NumberFormatException e) {
+ /* ignore update the model next time when there's a
valid value */
+ }
+ }
+ }
+ });

TimeRangePicker picker = new TimeRangePicker(startTimeModel,
endTimeModel);
picker.setBorder(BorderFactory.createTitledBorder("Period:"));
@@ -90,6 +129,18 @@
model.setQuery(FlowsaMAUserData.QUERYTYPE,
String.valueOf(box.getSelectedItem()));
}
});
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.QUERYTYPE) {
+ QueryType type =
QueryType.get(model.getQuery(FlowsaMAUserData.QUERYTYPE));
+ if(type==null) {
+ box.setSelectedItem(QueryType.RAW);
+ } else {
+ box.setSelectedItem(type);
+ }
+ }
+ }
+ });

GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/RawSpecificsPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/RawSpecificsPanel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/RawSpecificsPanel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -1,7 +1,11 @@
package org.perfsonar.perfsonarui.flowsa.components;

import java.awt.LayoutManager;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
+import java.util.Observable;
+import java.util.Observer;

import javax.swing.JComponent;
import javax.swing.JPanel;
@@ -13,6 +17,7 @@
import javax.swing.event.ListDataListener;

import org.jdesktop.layout.GroupLayout;
+import org.perfsonar.perfsonarui.AbstractUserData;
import org.perfsonar.perfsonarui.flowsa.FlowsaMAUserData;
import org.perfsonar.perfsonarui.ui.panels.DefaultModifiableListModel;
import org.perfsonar.perfsonarui.ui.panels.JDualListItemSelector;
@@ -34,7 +39,7 @@
}

protected JComponent createFieldComponent(final FlowsaMAUserData
model) {
- ModifiableListModel<String> avail = new
DefaultModifiableListModel<String>();
+ final ModifiableListModel<String> avail = new
DefaultModifiableListModel<String>();
avail.addAll(Arrays.asList(new String[] {
"MsecFirstSeen",
"MsecLastSeen","AddressFamily","SrcAS","DstAS","InputIF",
"OutputIF","TcpFlags","Tos"
@@ -61,8 +66,31 @@

"TimeFirstSeen","TimeLastSeen","Protocol","SrcAddress","SrcPort","DstAddress",
"DstPort","Packets","Bytes"
}));
- JPanel fieldPanel =new JDualListItemSelector<String>(avail,
selected);
+ final JDualListItemSelector<String> fieldPanel =new
JDualListItemSelector<String>(avail, selected);

fieldPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Fields"));
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.RAWFIELDS) {
+ String newValue =
model.getQuery(FlowsaMAUserData.RAWFIELDS);
+ StringBuilder builder = new StringBuilder();
+ for(String item : selected.getAll()) {
+ builder.append(item);
+ builder.append(" ");
+ }
+ String currentValue = builder.toString();

+ if(!newValue.equals(currentValue)) {
+ avail.addAll(selected.getAll());
+ if(newValue.equals(AbstractUserData.NULL_DATA) ||
currentValue.equals("")) return;
+ String[] values = newValue.trim().split(" ");
+ List<String> selectedValues = new
ArrayList<String>();
+ for(String value : values) {
+
if(avail.remove(value))selectedValues.add(value);
+ }
+ selected.retainAll(selectedValues);
+ }
+ }
+ }
+ });
return fieldPanel;
}

@@ -83,6 +111,16 @@

aggregationRuleComponent.setBorder(javax.swing.BorderFactory.createTitledBorder("Aggregation
rule:"));

aggregationRuleComponent.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

aggregationRuleComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.RAWAGGREGATION) {
+ String filterValue =
model.getQuery(FlowsaMAUserData.RAWAGGREGATION);
+ if(!filterValue.equals(aggregationRuleField.getText())) {
+
aggregationRuleField.setText(filterValue.equals(AbstractUserData.NULL_DATA) ?
"" :filterValue);
+ }
+ }
+ }
+ });
return aggregationRuleComponent;
}

@@ -104,6 +142,16 @@

filterComponent.setBorder(javax.swing.BorderFactory.createTitledBorder("Filter:"));

filterComponent.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

filterComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.RAWFILTER) {
+ String filterValue =
model.getQuery(FlowsaMAUserData.RAWFILTER);
+ if(!filterValue.equals(filterField.getText())) {
+
filterField.setText(filterValue.equals(AbstractUserData.NULL_DATA) ? ""
:filterValue);
+ }
+ }
+ }
+ });
return filterComponent;
}


Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/ResultPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/ResultPanel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/ResultPanel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -13,9 +13,7 @@
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
-import javax.swing.JTable;
import javax.swing.JToolBar;
-import javax.swing.table.AbstractTableModel;

import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopParametersPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopParametersPanel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopParametersPanel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -12,6 +12,8 @@
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+import java.util.Observable;
+import java.util.Observer;

import javax.swing.JCheckBox;
import javax.swing.JComboBox;
@@ -29,147 +31,166 @@

public class TopParametersPanel extends JPanel {

- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;

- public TopParametersPanel(FlowsaMAUserData model) {
- JComponent elementLabel = createElementLabel(model);
- JComponent orderByLabel = createOrderByLabel(model);
- JComponent elementBox = createElementBox(model);
- JComponent orderByBox = createOrderByBox(model);
- JComponent flowAmountLabel = createFlowAmountLabel(model);
- JComponent flowAmountSelector =
createFlowAmountSelector(model);
- JComponent groupProtocolsSelector =
createGroupProtocolsSelector(model);
-
- setLayout(createLayout(elementLabel, orderByLabel,
elementBox, orderByBox, flowAmountLabel, flowAmountSelector,
groupProtocolsSelector));
- }
+ public TopParametersPanel(FlowsaMAUserData model) {
+ JComponent elementLabel = createElementLabel(model);
+ JComponent orderByLabel = createOrderByLabel(model);
+ JComponent elementBox = createElementBox(model);
+ JComponent orderByBox = createOrderByBox(model);
+ JComponent flowAmountLabel = createFlowAmountLabel(model);
+ JComponent flowAmountSelector = createFlowAmountSelector(model);
+ JComponent groupProtocolsSelector =
createGroupProtocolsSelector(model);

- private JComponent createFlowAmountLabel(FlowsaMAUserData model) {
- return new JLabel("Number of Flows:");
- }
+ setLayout(createLayout(elementLabel, orderByLabel, elementBox,
orderByBox, flowAmountLabel, flowAmountSelector,
+ groupProtocolsSelector));
+ }

- private JComponent createFlowAmountSelector(final FlowsaMAUserData
model) {
- final SpinnerNumberModel spinnerModel = new
SpinnerNumberModel(10, 0, 1000, 5);
- final JSpinner selector = new JSpinner(spinnerModel);
- selector.addChangeListener(new ChangeListener() {
- public void stateChanged(ChangeEvent e) {
- model.setQuery(FlowsaMAUserData.TOPNUMBER,
spinnerModel.getNumber().toString());
- selector.requestFocusInWindow();
- }
- });
- model.setQuery(FlowsaMAUserData.TOPNUMBER,
spinnerModel.getNumber().toString());
- return selector;
- }
+ private JComponent createFlowAmountLabel(FlowsaMAUserData model) {
+ return new JLabel("Number of Flows:");
+ }

- private JComponent createGroupProtocolsSelector(final
FlowsaMAUserData model) {
- final JCheckBox selector = new JCheckBox("Group transport
protocols");
- selector.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if(selector.isSelected()) {
-
model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "yes");
- } else {
-
model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "no");
- }
- requestFocusInWindow();
- }
- });
- if(selector.isSelected()) {
- model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "yes");
- } else {
- model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "no");
- }
- return selector;
- }
+ private JComponent createFlowAmountSelector(final FlowsaMAUserData
model) {
+ final SpinnerNumberModel spinnerModel = new SpinnerNumberModel(10,
0, 1000, 5);
+ final JSpinner selector = new JSpinner(spinnerModel);
+ selector.addChangeListener(new ChangeListener() {
+ public void stateChanged(ChangeEvent e) {
+ model.setQuery(FlowsaMAUserData.TOPNUMBER,
spinnerModel.getNumber().toString());
+ selector.requestFocusInWindow();
+ }
+ });
+ model.setQuery(FlowsaMAUserData.TOPNUMBER,
spinnerModel.getNumber().toString());
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if (arg == FlowsaMAUserData.TOPNUMBER) {
+ String value =
model.getQuery(FlowsaMAUserData.TOPNUMBER);
+ if (!value.equals(spinnerModel.getValue().toString())) {
+ spinnerModel.setValue(new Integer(value));
+ }
+ }
+ }
+ });
+ return selector;
+ }

- private JComponent createOrderByBox(final FlowsaMAUserData model) {
- final JComboBox box = new JComboBox(
- new javax.swing.DefaultComboBoxModel(
- new String[] {
- "Flows",
"Packets", "Bytes", "Pps","Bps", "Bpp"
- }
- )
- );
- box.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- model.setQuery(FlowsaMAUserData.TOPORDERBY,
String.valueOf(box.getSelectedItem()));
- box.requestFocusInWindow();
- }
- });
- model.setQuery(FlowsaMAUserData.TOPORDERBY,
String.valueOf(box.getSelectedItem()));
- return box;
- }
+ private JComponent createGroupProtocolsSelector(final FlowsaMAUserData
model) {
+ final JCheckBox selector = new JCheckBox("Group transport
protocols");
+ selector.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if (selector.isSelected()) {
+ model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "yes");
+ } else {
+ model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "no");
+ }
+ requestFocusInWindow();
+ }
+ });
+ if (selector.isSelected()) {
+ model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "yes");
+ } else {
+ model.setQuery(FlowsaMAUserData.TOPTRANSGROUP, "no");
+ }
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if (arg == FlowsaMAUserData.TOPTRANSGROUP) {
+ boolean current =
model.getQuery(FlowsaMAUserData.TOPTRANSGROUP).equals("yes");
+ if(selector.isSelected() != current) {
+ selector.setSelected(current);
+ }
+ }
+ }
+ });
+ return selector;
+ }

- private JComponent createElementBox(final FlowsaMAUserData model) {
- final JComboBox box = new JComboBox(
- new javax.swing.DefaultComboBoxModel(
- new String[] {
- "Record",
"Srcip", "Dstip","Srcport", "Dstport", "Port", "Tos", "Src AS", "Dst AS",
"AS", "InIF", "OutIF", "IF", "Proto"
- }
- )
- );
- box.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- model.setQuery(FlowsaMAUserData.TOPELEMENTS,
String.valueOf(box.getSelectedItem()));
- box.requestFocusInWindow();
- }
- });
- model.setQuery(FlowsaMAUserData.TOPELEMENTS,
String.valueOf(box.getSelectedItem()));
- return box;
- }
+ private JComponent createOrderByBox(final FlowsaMAUserData model) {
+ final JComboBox box = new JComboBox(new
javax.swing.DefaultComboBoxModel(new String[] { "Flows", "Packets",
+ "Bytes", "Pps", "Bps", "Bpp" }));
+ box.addItemListener(new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ model.setQuery(FlowsaMAUserData.TOPORDERBY,
String.valueOf(box.getSelectedItem()));
+ box.requestFocusInWindow();
+ }
+ });
+ model.setQuery(FlowsaMAUserData.TOPORDERBY,
String.valueOf(box.getSelectedItem()));
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if (arg == FlowsaMAUserData.TOPORDERBY) {
+ String value =
model.getQuery(FlowsaMAUserData.TOPORDERBY);
+ if (!value.equals(box.getSelectedItem())) {
+ box.setSelectedItem(value);
+ }
+ }
+ }
+ });
+ return box;
+ }

- private JComponent createOrderByLabel(FlowsaMAUserData model) {
- return new JLabel("Order by:");
- }
+ private JComponent createElementBox(final FlowsaMAUserData model) {
+ final JComboBox box = new JComboBox(new
javax.swing.DefaultComboBoxModel(
+ new String[] { "Record", "Srcip", "Dstip", "Srcport",
"Dstport", "Port", "Tos", "Src AS", "Dst AS",
+ "AS", "InIF", "OutIF", "IF", "Proto" }));
+ box.addItemListener(new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ model.setQuery(FlowsaMAUserData.TOPELEMENTS,
String.valueOf(box.getSelectedItem()));
+ box.requestFocusInWindow();
+ }
+ });
+ box.setEditable(false);
+ model.setQuery(FlowsaMAUserData.TOPELEMENTS,
String.valueOf(box.getSelectedItem()));
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if (arg == FlowsaMAUserData.TOPELEMENTS) {
+ String value =
model.getQuery(FlowsaMAUserData.TOPELEMENTS);
+ if (!value.equals(box.getSelectedItem())) {
+ box.setSelectedItem(value);
+ }
+ }
+ }
+ });
+ return box;
+ }

- private JComponent createElementLabel(FlowsaMAUserData model) {
- return new JLabel("Element:");
- }
+ private JComponent createOrderByLabel(FlowsaMAUserData model) {
+ return new JLabel("Order by:");
+ }

- private LayoutManager createLayout(JComponent elementLabel,
JComponent orderByLabel, JComponent elementBox, JComponent orderByBox,
JComponent flowAmountLabel, JComponent flowAmountSelector, JComponent
groupProtocolsSelector) {
- JSeparator seperator = new
JSeparator(javax.swing.SwingConstants.VERTICAL);
- GroupLayout layout = new GroupLayout(this);
- layout.setHorizontalGroup(
- layout.createParallelGroup(LEADING)
- .add(layout.createSequentialGroup()
- .addContainerGap()
- .add(layout.createParallelGroup(LEADING)
- .add(elementLabel)
- .add(orderByLabel))
- .addPreferredGap(RELATED)
- .add(layout.createParallelGroup(LEADING)
- .add(elementBox, 0, 228, Short.MAX_VALUE)
- .add(orderByBox, 0, 228, Short.MAX_VALUE))
- .addPreferredGap(RELATED)
- .add(seperator, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
- .addPreferredGap(RELATED)
- .add(layout.createParallelGroup(LEADING)
- .add(layout.createSequentialGroup()
- .add(flowAmountLabel)
- .addPreferredGap(RELATED)
- .add(flowAmountSelector, DEFAULT_SIZE, 109,
Short.MAX_VALUE))
- .add(groupProtocolsSelector, DEFAULT_SIZE, 228,
Short.MAX_VALUE))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(LEADING)
- .add(layout.createSequentialGroup()
- .add(layout.createParallelGroup(TRAILING)
- .add(LEADING, layout.createSequentialGroup()
- .add(layout.createParallelGroup(BASELINE)
- .add(flowAmountLabel)
- .add(flowAmountSelector, PREFERRED_SIZE,
DEFAULT_SIZE, PREFERRED_SIZE))
- .addPreferredGap(RELATED, 10, Short.MAX_VALUE)
- .add(groupProtocolsSelector))
- .add(seperator, DEFAULT_SIZE, 59, Short.MAX_VALUE)
- .add(layout.createSequentialGroup()
- .add(layout.createParallelGroup(BASELINE)
- .add(elementLabel)
- .add(elementBox, PREFERRED_SIZE, 23,
PREFERRED_SIZE))
- .addPreferredGap(RELATED)
- .add(layout.createParallelGroup(BASELINE)
- .add(orderByLabel)
- .add(orderByBox, PREFERRED_SIZE, DEFAULT_SIZE,
PREFERRED_SIZE))))
- .addContainerGap())
- );
+ private JComponent createElementLabel(FlowsaMAUserData model) {
+ return new JLabel("Element:");
+ }
+
+ private LayoutManager createLayout(JComponent elementLabel, JComponent
orderByLabel, JComponent elementBox,
+ JComponent orderByBox, JComponent flowAmountLabel, JComponent
flowAmountSelector,
+ JComponent groupProtocolsSelector) {
+ JSeparator seperator = new
JSeparator(javax.swing.SwingConstants.VERTICAL);
+ GroupLayout layout = new GroupLayout(this);
+ layout.setHorizontalGroup(layout.createParallelGroup(LEADING).add(
+ layout.createSequentialGroup().addContainerGap().add(
+
layout.createParallelGroup(LEADING).add(elementLabel).add(orderByLabel)).addPreferredGap(
+ RELATED).add(
+ layout.createParallelGroup(LEADING).add(elementBox,
0, 228, Short.MAX_VALUE).add(orderByBox, 0,
+ 228,
Short.MAX_VALUE)).addPreferredGap(RELATED).add(seperator, PREFERRED_SIZE,
+ DEFAULT_SIZE,
PREFERRED_SIZE).addPreferredGap(RELATED).add(
+ layout.createParallelGroup(LEADING).add(
+
layout.createSequentialGroup().add(flowAmountLabel).addPreferredGap(RELATED).add(
+ flowAmountSelector, DEFAULT_SIZE,
109, Short.MAX_VALUE)).add(
+ groupProtocolsSelector, DEFAULT_SIZE, 228,
Short.MAX_VALUE)).addContainerGap()));
+ layout.setVerticalGroup(layout.createParallelGroup(LEADING).add(
+ layout.createSequentialGroup().add(
+ layout.createParallelGroup(TRAILING).add(
+ LEADING,
+ layout.createSequentialGroup().add(
+
layout.createParallelGroup(BASELINE).add(flowAmountLabel).add(
+ flowAmountSelector,
PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE))
+ .addPreferredGap(RELATED, 10,
Short.MAX_VALUE).add(groupProtocolsSelector))
+ .add(seperator, DEFAULT_SIZE, 59,
Short.MAX_VALUE).add(
+ layout.createSequentialGroup().add(
+
layout.createParallelGroup(BASELINE).add(elementLabel).add(elementBox,
+ PREFERRED_SIZE, 23,
PREFERRED_SIZE)).addPreferredGap(RELATED)
+ .add(
+
layout.createParallelGroup(BASELINE).add(orderByLabel).add(
+ orderByBox,
PREFERRED_SIZE, DEFAULT_SIZE,
+
PREFERRED_SIZE)))).addContainerGap()));
return layout;
- }
+ }
}

Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopSpecificsPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopSpecificsPanel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/flowsa/components/TopSpecificsPanel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -1,6 +1,8 @@
package org.perfsonar.perfsonarui.flowsa.components;

import java.awt.LayoutManager;
+import java.util.Observable;
+import java.util.Observer;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
@@ -13,6 +15,8 @@
import org.jdesktop.layout.GroupLayout;
import static org.jdesktop.layout.GroupLayout.*;
import static org.jdesktop.layout.LayoutStyle.*;
+
+import org.perfsonar.perfsonarui.AbstractUserData;
import org.perfsonar.perfsonarui.flowsa.FlowsaMAUserData;

public class TopSpecificsPanel extends JPanel {
@@ -50,6 +54,16 @@

filterComponent.setBorder(javax.swing.BorderFactory.createTitledBorder("Filter:"));

filterComponent.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

filterComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.TOPFILTER) {
+ String filterValue =
model.getQuery(FlowsaMAUserData.TOPFILTER);
+ if(!filterValue.equals(filterField.getText())) {
+
filterField.setText(filterValue.equals(AbstractUserData.NULL_DATA) ? ""
:filterValue);
+ }
+ }
+ }
+ });
return filterComponent;
}

@@ -70,6 +84,16 @@

aggregationRuleComponent.setBorder(javax.swing.BorderFactory.createTitledBorder("Aggregation
rule:"));

aggregationRuleComponent.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

aggregationRuleComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
+ model.addObserver(new Observer() {
+ public void update(Observable o, Object arg) {
+ if(arg == FlowsaMAUserData.TOPAGGREGATION) {
+ String filterValue =
model.getQuery(FlowsaMAUserData.TOPAGGREGATION);
+ if(!filterValue.equals(aggregationRuleField.getText())) {
+
aggregationRuleField.setText(filterValue.equals(AbstractUserData.NULL_DATA) ?
"" :filterValue);
+ }
+ }
+ }
+ });
return aggregationRuleComponent;
}


Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/DefaultModifiableListModel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/DefaultModifiableListModel.java
2007-10-22 14:20:25 UTC (rev 2983)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/DefaultModifiableListModel.java
2007-10-22 22:51:23 UTC (rev 2984)
@@ -61,10 +61,14 @@
}

public boolean remove(Type o) {
- boolean remove = list.remove(o);
- fireIntervalRemoved(this, list.indexOf(o), list.indexOf(o));
- fireContentsChanged(this, list.indexOf(o),list.size());
- return remove;
+ int index = list.indexOf(o);
+ if(index!=-1) {
+ boolean remove = list.remove(o);
+ fireIntervalRemoved(this, index, index);
+ fireContentsChanged(this, index, index);
+ return remove;
+ }
+ return false;
}

public boolean removeAll(Collection<Type> c) {



  • perfsonar: r2984 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: flowsa flowsa/components ui/panels, svnlog, 10/22/2007

Archive powered by MHonArc 2.6.16.

Top of Page