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

Java tutorial

Introduction

Here is the source code for com.zeroc.IceGridGUI.LiveDeployment.ServiceEditor.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.JCheckBox;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;

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

import com.jgoodies.looks.Options;
import com.jgoodies.looks.HeaderStyle;
import com.jgoodies.looks.BorderStyle;
import com.jgoodies.looks.plastic.PlasticLookAndFeel;

import com.zeroc.IceGrid.*;
import com.zeroc.IceGridGUI.*;

class ServiceEditor extends CommunicatorEditor {
    @Override
    public JToolBar getToolBar() {
        if (_toolBar == null) {
            _toolBar = new ToolBar();
        }
        return _toolBar;
    }

    ServiceEditor(Coordinator coordinator) {
        _coordinator = coordinator;
        _entry.setEditable(false);
        _started.setEnabled(false);

        _buildId.setEditable(false);

        Action refresh = new AbstractAction("Refresh") {
            @Override
            public void actionPerformed(ActionEvent e) {
                _buildId.setText("Retrieving...");
                _properties.clear();
                _target.showRuntimeProperties();
            }
        };
        refresh.putValue(Action.SHORT_DESCRIPTION, "Reread the properties from the service");
        _refreshButton = new JButton(refresh);
    }

    void show(Service service) {
        _target = service;

        ServiceDescriptor descriptor = service.getServiceDescriptor();
        Utils.Resolver resolver = service.getResolver();

        show(descriptor, service.getProperties(), resolver);
        _entry.setText(resolver.substitute(descriptor.entry));
        _started.setSelected(service.isStarted());

        Server server = (Server) service.getParent();

        int iceIntVersion = server.getIceVersion();

        if (server.getState() == ServerState.Active && (iceIntVersion == 0 || iceIntVersion >= 30300)) {
            _buildId.setText("Retrieving...");
            _properties.clear();

            //
            // Retrieve all properties in background
            //
            _target.showRuntimeProperties();
            _refreshButton.setEnabled(true);
        } else {
            _buildId.setText("");
            _properties.clear();
            _refreshButton.setEnabled(false);
        }
    }

    @Override
    protected void appendProperties(DefaultFormBuilder builder) {
        builder.appendSeparator("Runtime Status");

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

        builder.append("Build Id");
        builder.append(_buildId, _refreshButton);
        builder.nextLine();

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

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

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

        builder.appendSeparator("Configuration");

        super.appendProperties(builder);

        builder.append("Entry Point");
        builder.append(_entry, 3);
        builder.nextLine();
    }

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

    void setBuildId(String buildString, Service service) {
        //
        // That's to report error messages
        //

        if (service == _target) {
            _buildId.setText(buildString);
        }
        //
        // Otherwise we've already moved to another server
        //
    }

    void setRuntimeProperties(java.util.SortedMap<String, String> map, Service service) {
        if (service == _target) {
            _properties.setSortedMap(map);

            String buildString = map.get("BuildId");
            if (buildString == null) {
                _buildId.setText("");
            } else {
                _buildId.setText(buildString);
            }
        }
        //
        // Otherwise we've already moved to another server
        //
    }

    private class ToolBar extends JToolBar {
        private ToolBar() {
            putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.SINGLE);
            putClientProperty(PlasticLookAndFeel.BORDER_STYLE_KEY, BorderStyle.SEPARATOR);
            setFloatable(false);
            putClientProperty("JToolBar.isRollover", Boolean.TRUE);

            LiveActions la = _coordinator.getLiveActionsForMenu();

            add(la.get(TreeNode.START));
            add(la.get(TreeNode.STOP));
        }
    }

    private final Coordinator _coordinator;
    private Service _target;
    private JTextField _entry = new JTextField(20);
    private JCheckBox _started = new JCheckBox("Started");
    private JTextField _buildId = new JTextField(20);
    private JButton _refreshButton;
    private TableField _properties = new TableField("Name", "Value");
    private JToolBar _toolBar;
}