summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-09-15 19:42:39 +0000
committerBernard Normier <bernard@zeroc.com>2006-09-15 19:42:39 +0000
commit926a34c0cde3bb59a64c6906442246015290c310 (patch)
tree247d19ba42bd29fb7b60d96ac936ca91d497357b /java/src/IceGridGUI/Application/ReplicaGroupEditor.java
parentMerged fixes from 3.1 branch (diff)
downloadice-926a34c0cde3bb59a64c6906442246015290c310.tar.bz2
ice-926a34c0cde3bb59a64c6906442246015290c310.tar.xz
ice-926a34c0cde3bb59a64c6906442246015290c310.zip
dos2unix
Diffstat (limited to 'java/src/IceGridGUI/Application/ReplicaGroupEditor.java')
-rwxr-xr-xjava/src/IceGridGUI/Application/ReplicaGroupEditor.java826
1 files changed, 413 insertions, 413 deletions
diff --git a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
index b935967c004..7a27b704812 100755
--- a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
+++ b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
@@ -1,413 +1,413 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-package IceGridGUI.Application;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.CellConstraints;
-
-import IceGrid.*;
-import IceGridGUI.*;
-
-class ReplicaGroupEditor extends Editor
-{
- protected boolean applyUpdate()
- {
- ReplicaGroup replicaGroup = (ReplicaGroup)_target;
- Root root = replicaGroup.getRoot();
-
- root.disableSelectionListener();
- try
- {
- if(replicaGroup.isEphemeral())
- {
- ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent();
- writeDescriptor();
- ReplicaGroupDescriptor descriptor =
- (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
- replicaGroup.destroy(); // just removes the child
-
- try
- {
- replicaGroups.tryAdd(descriptor, true);
- }
- catch(UpdateFailedException e)
- {
- //
- // Add back ephemeral child
- //
- try
- {
- replicaGroups.insertChild(replicaGroup, true);
- }
- catch(UpdateFailedException die)
- {
- assert false;
- }
- root.setSelectedNode(replicaGroup);
-
- JOptionPane.showMessageDialog(
- root.getCoordinator().getMainFrame(),
- e.toString(),
- "Apply failed",
- JOptionPane.ERROR_MESSAGE);
- return false;
- }
-
- //
- // Success
- //
- _target = replicaGroups.findChildWithDescriptor(descriptor);
- root.updated();
- }
- else if(isSimpleUpdate())
- {
- writeDescriptor();
- root.updated();
- replicaGroup.getEditable().markModified();
- }
- else
- {
- //
- // Save to be able to rollback
- //
- Object savedDescriptor = replicaGroup.saveDescriptor();
- ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent();
- writeDescriptor();
- ReplicaGroupDescriptor descriptor =
- (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
-
- replicaGroups.removeChild(replicaGroup);
- try
- {
- replicaGroups.tryAdd(descriptor, false);
- }
- catch(UpdateFailedException e)
- {
- //
- // Restore all
- //
- try
- {
- replicaGroups.insertChild(replicaGroup, true);
- }
- catch(UpdateFailedException die)
- {
- assert false;
- }
- replicaGroup.restoreDescriptor(savedDescriptor);
- root.setSelectedNode(_target);
-
- JOptionPane.showMessageDialog(
- root.getCoordinator().getMainFrame(),
- e.toString(),
- "Apply failed",
- JOptionPane.ERROR_MESSAGE);
- return false;
- }
-
- //
- // Success
- //
-
- // replaced by brand new ReplicaGroup
- replicaGroups.getEditable().
- removeElement(replicaGroup.getId(),
- replicaGroup.getEditable(), ReplicaGroup.class);
-
- _target = replicaGroups.findChildWithDescriptor(descriptor);
- root.updated();
- root.setSelectedNode(_target);
- }
-
- root.getCoordinator().getCurrentTab().showNode(_target);
- _applyButton.setEnabled(false);
- _discardButton.setEnabled(false);
- return true;
- }
- finally
- {
- root.enableSelectionListener();
- }
- }
-
- Utils.Resolver getDetailResolver()
- {
- Root root = _target.getRoot();
-
- if(root.getCoordinator().substitute())
- {
- return root.getResolver();
- }
- else
- {
- return null;
- }
- }
-
- ReplicaGroupEditor()
- {
- _objects = new MapField(this, "Identity", "Type", true);
-
- //
- // load balancing
- //
- _loadBalancing.addItemListener(new ItemListener()
- {
- public void itemStateChanged(ItemEvent e)
- {
- if(e.getStateChange() == ItemEvent.SELECTED)
- {
- updated();
-
- Object item = e.getItem();
- _nReplicasLabel.setVisible(item != RETURN_ALL);
- _nReplicas.setVisible(item != RETURN_ALL);
-
- _loadSampleLabel.setVisible(item == ADAPTIVE);
- _loadSample.setVisible(item == ADAPTIVE);
- }
- }
- });
- _loadBalancing.setToolTipText(
- "Specifies how IceGrid selects adapters when resolving a replica group ID");
-
- //
- // Associate updateListener with various fields
- //
- _id.getDocument().addDocumentListener(_updateListener);
- _id.setToolTipText("Must be unique within this IceGrid deployment");
-
- _description.getDocument().addDocumentListener(_updateListener);
- _description.setToolTipText(
- "An optional description for this replica group");
-
- _nReplicas.getDocument().addDocumentListener(_updateListener);
- _nReplicas.setToolTipText("<html>IceGrid returns the endpoints of "
- + "up to <i>number</i> adapters<br>"
- + "when resolving a replica group ID</html>");
-
- _loadSample.setEditable(true);
- JTextField loadSampleTextField = (JTextField)
- _loadSample.getEditor().getEditorComponent();
- loadSampleTextField.getDocument().addDocumentListener(_updateListener);
- _loadSample.setToolTipText(
- "Use the load average or CPU usage over the last 1, 5 or 15 minutes?");
-
- }
-
- void writeDescriptor()
- {
- ReplicaGroupDescriptor descriptor =
- (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor();
-
- descriptor.id = _id.getText().trim();
- descriptor.description = _description.getText();
- descriptor.objects = AdapterEditor.mapToObjectDescriptorSeq(_objects.get());
-
- Object loadBalancing = _loadBalancing.getSelectedItem();
- if(loadBalancing == RETURN_ALL)
- {
- descriptor.loadBalancing = null;
- }
- else if(loadBalancing == RANDOM)
- {
- descriptor.loadBalancing = new RandomLoadBalancingPolicy(
- _nReplicas.getText().trim());
- }
- else if(loadBalancing == ROUND_ROBIN)
- {
- descriptor.loadBalancing = new RoundRobinLoadBalancingPolicy(
- _nReplicas.getText().trim());
- }
- else if(loadBalancing == ADAPTIVE)
- {
- descriptor.loadBalancing = new AdaptiveLoadBalancingPolicy(
- _nReplicas.getText().trim(),
- _loadSample.getSelectedItem().toString().trim());
- }
- else
- {
- assert false;
- }
- }
-
- boolean isSimpleUpdate()
- {
- ReplicaGroupDescriptor descriptor =
- (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor();
- return descriptor.id.equals(_id.getText().trim());
- }
-
- protected void appendProperties(DefaultFormBuilder builder)
- {
- builder.append("Replica Group ID");
- builder.append(_id, 3);
- builder.nextLine();
-
- builder.append("Description");
- builder.nextLine();
- builder.append("");
- builder.nextRow(-2);
- CellConstraints cc = new CellConstraints();
- JScrollPane scrollPane = new JScrollPane(_description);
- builder.add(scrollPane,
- cc.xywh(builder.getColumn(), builder.getRow(), 3, 3));
- builder.nextRow(2);
- builder.nextLine();
-
- builder.append("Well-known Objects");
- builder.nextLine();
- builder.append("");
- builder.nextLine();
- builder.append("");
- builder.nextLine();
- builder.append("");
- builder.nextRow(-6);
- scrollPane = new JScrollPane(_objects);
- builder.add(scrollPane,
- cc.xywh(builder.getColumn(), builder.getRow(), 3, 7));
- builder.nextRow(6);
- builder.nextLine();
-
- builder.append("Load Balancing Policy");
- builder.append(_loadBalancing, 3);
- builder.nextLine();
- _nReplicasLabel = builder.append("How many Adapters?");
- builder.append(_nReplicas, 3);
- builder.nextLine();
- _loadSampleLabel = builder.append("Load Sample");
- builder.append(_loadSample, 3);
- builder.nextLine();
- }
-
- protected void buildPropertiesPanel()
- {
- super.buildPropertiesPanel();
- _propertiesPanel.setName("Replica Group Properties");
- }
-
- protected boolean validate()
- {
- return check(new String[]{"Replica Group ID", _id.getText().trim()});
- }
-
-
- void show(ReplicaGroup replicaGroup)
- {
- //
- // Make sure everything is built
- //
- getProperties();
-
- detectUpdates(false);
- _target = replicaGroup;
-
- Utils.Resolver resolver = getDetailResolver();
- boolean isEditable = (resolver == null);
-
- ReplicaGroupDescriptor descriptor =
- (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
-
- _id.setText(descriptor.id);
- _id.setEditable(isEditable);
-
- _description.setText(
- Utils.substitute(descriptor.description, resolver));
- _description.setEditable(isEditable);
- _description.setOpaque(isEditable);
-
- _objects.set(AdapterEditor.objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable);
-
- _loadBalancing.setEnabled(true);
-
- if(descriptor.loadBalancing == null)
- {
- _loadBalancing.setSelectedItem(RETURN_ALL);
- _nReplicas.setText("1");
- _loadSample.setSelectedItem("1");
- }
- else if(descriptor.loadBalancing instanceof RandomLoadBalancingPolicy)
- {
- _loadBalancing.setSelectedItem(RANDOM);
- _nReplicas.setText(
- Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
- _loadSample.setSelectedItem("1");
- }
- else if(descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy)
- {
- _loadBalancing.setSelectedItem(ROUND_ROBIN);
- _nReplicas.setText(
- Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
- _loadSample.setSelectedItem("1");
- }
- else if(descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy)
- {
- _loadBalancing.setSelectedItem(ADAPTIVE);
- _nReplicas.setText(
- Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
-
- _loadSample.setSelectedItem(
- Utils.substitute(
- ((AdaptiveLoadBalancingPolicy)descriptor.loadBalancing).loadSample,
- resolver));
- }
- else
- {
- assert false;
- }
- _nReplicas.setEditable(isEditable);
- _loadSample.setEditable(isEditable);
- _loadBalancing.setEnabled(isEditable);
-
- _applyButton.setEnabled(replicaGroup.isEphemeral());
- _discardButton.setEnabled(replicaGroup.isEphemeral());
- detectUpdates(true);
- }
-
- private ReplicaGroup getReplicaGroup()
- {
- return (ReplicaGroup)_target;
- }
-
- static private String RETURN_ALL = "Return all";
- static private String RANDOM = "Random";
- static private String ROUND_ROBIN = "Round-robin";
- static private String ADAPTIVE = "Adaptive";
-
- private JTextField _id = new JTextField(20);
- private JTextArea _description = new JTextArea(3, 20);
-
- private JComboBox _loadBalancing = new JComboBox(new Object[]
- {ADAPTIVE, RANDOM, RETURN_ALL, ROUND_ROBIN});
-
- private JLabel _nReplicasLabel;
- private JTextField _nReplicas = new JTextField(20);
-
- private JLabel _loadSampleLabel;
- private JComboBox _loadSample = new JComboBox(new Object[]
- {"1", "5", "15"});
-
- private MapField _objects;
-}
+// **********************************************************************
+//
+// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+package IceGridGUI.Application;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.CellConstraints;
+
+import IceGrid.*;
+import IceGridGUI.*;
+
+class ReplicaGroupEditor extends Editor
+{
+ protected boolean applyUpdate()
+ {
+ ReplicaGroup replicaGroup = (ReplicaGroup)_target;
+ Root root = replicaGroup.getRoot();
+
+ root.disableSelectionListener();
+ try
+ {
+ if(replicaGroup.isEphemeral())
+ {
+ ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent();
+ writeDescriptor();
+ ReplicaGroupDescriptor descriptor =
+ (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
+ replicaGroup.destroy(); // just removes the child
+
+ try
+ {
+ replicaGroups.tryAdd(descriptor, true);
+ }
+ catch(UpdateFailedException e)
+ {
+ //
+ // Add back ephemeral child
+ //
+ try
+ {
+ replicaGroups.insertChild(replicaGroup, true);
+ }
+ catch(UpdateFailedException die)
+ {
+ assert false;
+ }
+ root.setSelectedNode(replicaGroup);
+
+ JOptionPane.showMessageDialog(
+ root.getCoordinator().getMainFrame(),
+ e.toString(),
+ "Apply failed",
+ JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+
+ //
+ // Success
+ //
+ _target = replicaGroups.findChildWithDescriptor(descriptor);
+ root.updated();
+ }
+ else if(isSimpleUpdate())
+ {
+ writeDescriptor();
+ root.updated();
+ replicaGroup.getEditable().markModified();
+ }
+ else
+ {
+ //
+ // Save to be able to rollback
+ //
+ Object savedDescriptor = replicaGroup.saveDescriptor();
+ ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent();
+ writeDescriptor();
+ ReplicaGroupDescriptor descriptor =
+ (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
+
+ replicaGroups.removeChild(replicaGroup);
+ try
+ {
+ replicaGroups.tryAdd(descriptor, false);
+ }
+ catch(UpdateFailedException e)
+ {
+ //
+ // Restore all
+ //
+ try
+ {
+ replicaGroups.insertChild(replicaGroup, true);
+ }
+ catch(UpdateFailedException die)
+ {
+ assert false;
+ }
+ replicaGroup.restoreDescriptor(savedDescriptor);
+ root.setSelectedNode(_target);
+
+ JOptionPane.showMessageDialog(
+ root.getCoordinator().getMainFrame(),
+ e.toString(),
+ "Apply failed",
+ JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+
+ //
+ // Success
+ //
+
+ // replaced by brand new ReplicaGroup
+ replicaGroups.getEditable().
+ removeElement(replicaGroup.getId(),
+ replicaGroup.getEditable(), ReplicaGroup.class);
+
+ _target = replicaGroups.findChildWithDescriptor(descriptor);
+ root.updated();
+ root.setSelectedNode(_target);
+ }
+
+ root.getCoordinator().getCurrentTab().showNode(_target);
+ _applyButton.setEnabled(false);
+ _discardButton.setEnabled(false);
+ return true;
+ }
+ finally
+ {
+ root.enableSelectionListener();
+ }
+ }
+
+ Utils.Resolver getDetailResolver()
+ {
+ Root root = _target.getRoot();
+
+ if(root.getCoordinator().substitute())
+ {
+ return root.getResolver();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ ReplicaGroupEditor()
+ {
+ _objects = new MapField(this, "Identity", "Type", true);
+
+ //
+ // load balancing
+ //
+ _loadBalancing.addItemListener(new ItemListener()
+ {
+ public void itemStateChanged(ItemEvent e)
+ {
+ if(e.getStateChange() == ItemEvent.SELECTED)
+ {
+ updated();
+
+ Object item = e.getItem();
+ _nReplicasLabel.setVisible(item != RETURN_ALL);
+ _nReplicas.setVisible(item != RETURN_ALL);
+
+ _loadSampleLabel.setVisible(item == ADAPTIVE);
+ _loadSample.setVisible(item == ADAPTIVE);
+ }
+ }
+ });
+ _loadBalancing.setToolTipText(
+ "Specifies how IceGrid selects adapters when resolving a replica group ID");
+
+ //
+ // Associate updateListener with various fields
+ //
+ _id.getDocument().addDocumentListener(_updateListener);
+ _id.setToolTipText("Must be unique within this IceGrid deployment");
+
+ _description.getDocument().addDocumentListener(_updateListener);
+ _description.setToolTipText(
+ "An optional description for this replica group");
+
+ _nReplicas.getDocument().addDocumentListener(_updateListener);
+ _nReplicas.setToolTipText("<html>IceGrid returns the endpoints of "
+ + "up to <i>number</i> adapters<br>"
+ + "when resolving a replica group ID</html>");
+
+ _loadSample.setEditable(true);
+ JTextField loadSampleTextField = (JTextField)
+ _loadSample.getEditor().getEditorComponent();
+ loadSampleTextField.getDocument().addDocumentListener(_updateListener);
+ _loadSample.setToolTipText(
+ "Use the load average or CPU usage over the last 1, 5 or 15 minutes?");
+
+ }
+
+ void writeDescriptor()
+ {
+ ReplicaGroupDescriptor descriptor =
+ (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor();
+
+ descriptor.id = _id.getText().trim();
+ descriptor.description = _description.getText();
+ descriptor.objects = AdapterEditor.mapToObjectDescriptorSeq(_objects.get());
+
+ Object loadBalancing = _loadBalancing.getSelectedItem();
+ if(loadBalancing == RETURN_ALL)
+ {
+ descriptor.loadBalancing = null;
+ }
+ else if(loadBalancing == RANDOM)
+ {
+ descriptor.loadBalancing = new RandomLoadBalancingPolicy(
+ _nReplicas.getText().trim());
+ }
+ else if(loadBalancing == ROUND_ROBIN)
+ {
+ descriptor.loadBalancing = new RoundRobinLoadBalancingPolicy(
+ _nReplicas.getText().trim());
+ }
+ else if(loadBalancing == ADAPTIVE)
+ {
+ descriptor.loadBalancing = new AdaptiveLoadBalancingPolicy(
+ _nReplicas.getText().trim(),
+ _loadSample.getSelectedItem().toString().trim());
+ }
+ else
+ {
+ assert false;
+ }
+ }
+
+ boolean isSimpleUpdate()
+ {
+ ReplicaGroupDescriptor descriptor =
+ (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor();
+ return descriptor.id.equals(_id.getText().trim());
+ }
+
+ protected void appendProperties(DefaultFormBuilder builder)
+ {
+ builder.append("Replica Group ID");
+ builder.append(_id, 3);
+ builder.nextLine();
+
+ builder.append("Description");
+ builder.nextLine();
+ builder.append("");
+ builder.nextRow(-2);
+ CellConstraints cc = new CellConstraints();
+ JScrollPane scrollPane = new JScrollPane(_description);
+ builder.add(scrollPane,
+ cc.xywh(builder.getColumn(), builder.getRow(), 3, 3));
+ builder.nextRow(2);
+ builder.nextLine();
+
+ builder.append("Well-known Objects");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextRow(-6);
+ scrollPane = new JScrollPane(_objects);
+ builder.add(scrollPane,
+ cc.xywh(builder.getColumn(), builder.getRow(), 3, 7));
+ builder.nextRow(6);
+ builder.nextLine();
+
+ builder.append("Load Balancing Policy");
+ builder.append(_loadBalancing, 3);
+ builder.nextLine();
+ _nReplicasLabel = builder.append("How many Adapters?");
+ builder.append(_nReplicas, 3);
+ builder.nextLine();
+ _loadSampleLabel = builder.append("Load Sample");
+ builder.append(_loadSample, 3);
+ builder.nextLine();
+ }
+
+ protected void buildPropertiesPanel()
+ {
+ super.buildPropertiesPanel();
+ _propertiesPanel.setName("Replica Group Properties");
+ }
+
+ protected boolean validate()
+ {
+ return check(new String[]{"Replica Group ID", _id.getText().trim()});
+ }
+
+
+ void show(ReplicaGroup replicaGroup)
+ {
+ //
+ // Make sure everything is built
+ //
+ getProperties();
+
+ detectUpdates(false);
+ _target = replicaGroup;
+
+ Utils.Resolver resolver = getDetailResolver();
+ boolean isEditable = (resolver == null);
+
+ ReplicaGroupDescriptor descriptor =
+ (ReplicaGroupDescriptor)replicaGroup.getDescriptor();
+
+ _id.setText(descriptor.id);
+ _id.setEditable(isEditable);
+
+ _description.setText(
+ Utils.substitute(descriptor.description, resolver));
+ _description.setEditable(isEditable);
+ _description.setOpaque(isEditable);
+
+ _objects.set(AdapterEditor.objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable);
+
+ _loadBalancing.setEnabled(true);
+
+ if(descriptor.loadBalancing == null)
+ {
+ _loadBalancing.setSelectedItem(RETURN_ALL);
+ _nReplicas.setText("1");
+ _loadSample.setSelectedItem("1");
+ }
+ else if(descriptor.loadBalancing instanceof RandomLoadBalancingPolicy)
+ {
+ _loadBalancing.setSelectedItem(RANDOM);
+ _nReplicas.setText(
+ Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
+ _loadSample.setSelectedItem("1");
+ }
+ else if(descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy)
+ {
+ _loadBalancing.setSelectedItem(ROUND_ROBIN);
+ _nReplicas.setText(
+ Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
+ _loadSample.setSelectedItem("1");
+ }
+ else if(descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy)
+ {
+ _loadBalancing.setSelectedItem(ADAPTIVE);
+ _nReplicas.setText(
+ Utils.substitute(descriptor.loadBalancing.nReplicas, resolver));
+
+ _loadSample.setSelectedItem(
+ Utils.substitute(
+ ((AdaptiveLoadBalancingPolicy)descriptor.loadBalancing).loadSample,
+ resolver));
+ }
+ else
+ {
+ assert false;
+ }
+ _nReplicas.setEditable(isEditable);
+ _loadSample.setEditable(isEditable);
+ _loadBalancing.setEnabled(isEditable);
+
+ _applyButton.setEnabled(replicaGroup.isEphemeral());
+ _discardButton.setEnabled(replicaGroup.isEphemeral());
+ detectUpdates(true);
+ }
+
+ private ReplicaGroup getReplicaGroup()
+ {
+ return (ReplicaGroup)_target;
+ }
+
+ static private String RETURN_ALL = "Return all";
+ static private String RANDOM = "Random";
+ static private String ROUND_ROBIN = "Round-robin";
+ static private String ADAPTIVE = "Adaptive";
+
+ private JTextField _id = new JTextField(20);
+ private JTextArea _description = new JTextArea(3, 20);
+
+ private JComboBox _loadBalancing = new JComboBox(new Object[]
+ {ADAPTIVE, RANDOM, RETURN_ALL, ROUND_ROBIN});
+
+ private JLabel _nReplicasLabel;
+ private JTextField _nReplicas = new JTextField(20);
+
+ private JLabel _loadSampleLabel;
+ private JComboBox _loadSample = new JComboBox(new Object[]
+ {"1", "5", "15"});
+
+ private MapField _objects;
+}