diff options
Diffstat (limited to 'java/src/IceGrid/TreeNode/Adapter.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/Adapter.java | 84 |
1 files changed, 80 insertions, 4 deletions
diff --git a/java/src/IceGrid/TreeNode/Adapter.java b/java/src/IceGrid/TreeNode/Adapter.java index 405a2b22cca..4d3ea8c0d6a 100755 --- a/java/src/IceGrid/TreeNode/Adapter.java +++ b/java/src/IceGrid/TreeNode/Adapter.java @@ -8,17 +8,93 @@ // **********************************************************************
package IceGrid.TreeNode;
+import java.awt.Component;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultTreeCellRenderer;
+
import IceGrid.AdapterDescriptor;
+import IceGrid.Model;
class Adapter extends Leaf
{
- Adapter(AdapterDescriptor descriptor, boolean inTemplate)
+
+ public Component getTreeCellRendererComponent(
+ JTree tree,
+ Object value,
+ boolean sel,
+ boolean expanded,
+ boolean leaf,
+ int row,
+ boolean hasFocus)
{
- super(descriptor.name);
+ if(_node == null)
+ {
+ return null;
+ }
+ else
+ {
+ if(_cellRenderer == null)
+ {
+ //
+ // Initialization
+ //
+ _cellRenderer = new DefaultTreeCellRenderer();
+ }
+
+ _cellRenderer.setToolTipText(_toolTip);
+ return _cellRenderer.getTreeCellRendererComponent(
+ tree, value, sel, expanded, leaf, row, hasFocus);
+ }
+ }
+
+
+ Adapter(AdapterDescriptor descriptor, Model model, Node node)
+ {
+ super(descriptor.name, model);
_descriptor = descriptor;
- _inTemplate = inTemplate;
+ _node = node;
+
+ if(_node != null)
+ {
+ _proxy = node.registerAdapter(_descriptor.id, this);
+ createToolTip();
+ }
+ }
+
+ void unregister()
+ {
+ if(_node != null)
+ {
+ _node.unregisterAdapter(_descriptor.id);
+ _node = null;
+ }
+ }
+
+
+ void updateProxy(Ice.ObjectPrx proxy)
+ {
+ assert(_node != null);
+ _proxy = proxy;
+ createToolTip();
+ fireNodeChangedEvent(this);
+ }
+
+ private void createToolTip()
+ {
+ if(_proxy == null)
+ {
+ _toolTip = null;
+ }
+ else
+ {
+ _toolTip = "Proxy: " + _model.getCommunicator().proxyToString(_proxy);
+ }
}
private AdapterDescriptor _descriptor;
- private boolean _inTemplate;
+ private Node _node;
+ private Ice.ObjectPrx _proxy;
+ private String _toolTip;
+
+ static private DefaultTreeCellRenderer _cellRenderer;
}
|