com.zeroc.IceGridGUI.LiveDeployment.NodeEditor.java Source code

Java tutorial

Introduction

Here is the source code for com.zeroc.IceGridGUI.LiveDeployment.NodeEditor.java

Source

// **********************************************************************
//
// Copyright (c) 2003-2016 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 com.zeroc.IceGridGUI.LiveDeployment;

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.CellConstraints;

import com.zeroc.IceGrid.*;

class NodeEditor extends Editor {
    NodeEditor() {
        _hostname.setEditable(false);
        _os.setEditable(false);
        _machineType.setEditable(false);
        _loadAverage.setEditable(false);

        Action refresh = new AbstractAction("Refresh") {
            @Override
            public void actionPerformed(ActionEvent e) {
                _target.showLoad();
            }
        };
        refresh.putValue(Action.SHORT_DESCRIPTION, "Fetch the latest values from this IceGrid Node");
        _refreshButton = new JButton(refresh);
    }

    void show(Node node) {
        _target = node;

        NodeInfo info = node.getStaticInfo();

        if (info == null) {
            _hostname.setText("Unknown");
            _os.setText("Unknown");
            _machineType.setText("Unknown");
            _loadAverageLabel.setText("Load Average");
            _loadAverage.setText("Unknown");
        } else {
            _hostname.setText(info.hostname);
            _os.setText(info.os + " " + info.release + " " + info.version);
            _os.setCaretPosition(0);
            _machineType.setText(info.machine + " with " + info.nProcessors + " CPU thread"
                    + (info.nProcessors >= 2 ? "s" : ""));

            if (node.isRunningWindows()) {
                _loadAverageLabel.setText("CPU Usage");
                _loadAverage.setToolTipText("CPU usage in the past 1 min, 5 min and 15 min period");
            } else {
                _loadAverageLabel.setText("Load Average");
                _loadAverage.setToolTipText("Load average in the past 1 min, 5 min and 15 min period");
            }
            _loadAverage.setText("Refreshing...");
            node.showLoad();
        }

        _loadFactor.setSortedMap(node.getLoadFactors());
    }

    void setLoad(String load, Node node) {
        if (node == _target) {
            _loadAverage.setText(load);
        }
        //
        // Otherwise, we've already moved to another node
        //
    }

    @Override
    protected void appendProperties(DefaultFormBuilder builder) {
        builder.appendSeparator("System Information");

        builder.append("Hostname");
        builder.append(_hostname, 3);
        builder.nextLine();
        builder.append("Operating System");
        builder.append(_os, 3);

        builder.nextLine();
        builder.append("Machine Type");
        builder.append(_machineType, 3);
        builder.append(_loadAverageLabel, _loadAverage);
        builder.append(_refreshButton);
        builder.nextLine();

        builder.appendSeparator("Configuration");

        builder.append("Load Factor");
        builder.nextLine();

        builder.append("");
        builder.nextLine();

        builder.append("");
        builder.nextLine();

        builder.append("");
        builder.nextRow(-6);
        CellConstraints cc = new CellConstraints();
        JScrollPane scrollPane = new JScrollPane(_loadFactor);
        builder.add(scrollPane, cc.xywh(builder.getColumn(), builder.getRow(), 3, 7));
        builder.nextRow(6);
        builder.nextLine();
    }

    @Override
    protected void buildPropertiesPanel() {
        super.buildPropertiesPanel();
        _propertiesPanel.setName("Node Properties");
    }

    private JTextField _hostname = new JTextField(20);
    private JTextField _os = new JTextField(20);
    private JTextField _machineType = new JTextField(20);
    private JLabel _loadAverageLabel = new JLabel();
    private JTextField _loadAverage = new JTextField(20);
    private JButton _refreshButton;

    private TableField _loadFactor = new TableField("Application", "Value");

    private Node _target;
}