Package org.w3c.jigadmin.editors

Source Code of org.w3c.jigadmin.editors.AdminServerEditor

// AdminServerEditor.java
// $Id: AdminServerEditor.java,v 1.11 2000/08/16 21:37:30 ylafon Exp $
// (c) COPYRIGHT MIT and INRIA, 1998.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigadmin.editors;

import java.awt.GridLayout;
import java.awt.Font;
import java.awt.Component;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;

import java.util.Properties;
import java.util.Vector;

import org.w3c.jigadmin.RemoteResourceWrapper;
import org.w3c.jigadmin.gui.Message;
import org.w3c.jigadmin.events.ResourceActionListener;
import org.w3c.jigadmin.events.ResourceActionEvent;

import org.w3c.jigsaw.admin.RemoteAccessException;
import org.w3c.jigsaw.admin.RemoteResource;

import org.w3c.tools.widgets.Utilities;

/**
* The admin server editor
* @version $Revision: 1.11 $
* @author  Beno�t Mah� (bmahe@w3.org)
*/
public class AdminServerEditor extends ServerEditor
    implements ServerEditorInterface, ResourceActionListener
{

    protected final static String CONTROL_NAME = "control";
    protected final static String REALMS_NAME  = "realms";

    private RemoteResource[] controls = null;

    /**
     * initialize the server helpers. There is only one helper for the
     * Admin server, the ControlServerHelper
     * @exception RemoteAccessException if a remote error occurs
     */
    protected void initializeServerHelpers()
  throws RemoteAccessException
    {
  shelpers = new ServerHelperInterface[2]; //control + realms
  //control
  RemoteResourceWrapper rrw = server.getChildResource(CONTROL_NAME);
  shelpers[0] = ServerHelperFactory.getServerHelper(CONTROL_NAME, rrw);
  ControlServerHelper control = (ControlServerHelper) shelpers[0];
  control.setResOpEnabled(false);
  control.setSaveToolTipText("Save all servers configuration");
  control.setStopToolTipText("Stop all servers");
  control.addResourceActionListener(this);
  //realms
  rrw = server.getChildResource(REALMS_NAME);
  shelpers[1] = ServerHelperFactory.getServerHelper(REALMS_NAME, rrw);
    }

    /**
     * Get the control resource of all administrated servers.
     * @return a RemoteResource Array
     * @exception RemoteAccessException if a remote error occurs
     */
    protected RemoteResource[] getControls()
  throws RemoteAccessException
    {
  if (controls == null) {
      RemoteResource admin = server.getResource();
      String names[] = admin.enumerateResourceIdentifiers();
      Vector vcontrols = new Vector(2);
      for (int i = 0 ; i < names.length ; i++) {
    if ((! names[i].equals("control")) &&
        (! names[i].equals("realms"))) {
        RemoteResource srr = admin.loadResource(names[i]);
        //load the control node
        RemoteResource control = srr.loadResource("control");
        vcontrols.addElement(control);
    }
      }
      controls = new RemoteResource[vcontrols.size()];
      vcontrols.copyInto(controls);
  }
  return controls;
    }

    /**
     * A resource action occured.
     * @param e the ResourceActionEvent
     */
    public void resourceActionPerformed(ResourceActionEvent e) {
  switch (e.getResourceActionCommand())
      {
      case ResourceActionEvent.SAVE_EVENT:
    try {
        RemoteResource ctrls[] = getControls();
        for (int i = 0 ; i < ctrls.length ; i++)
      ctrls[i].loadResource("save");
    } catch (RemoteAccessException ex) {
        Message.showErrorMessage(server, ex);
    }
    break;
      case ResourceActionEvent.STOP_EVENT:
    try {
        RemoteResource ctrls[] = getControls();
        for (int i = 0 ; i < ctrls.length ; i++)
      ctrls[i].loadResource("stop");
    } catch (RemoteAccessException ex) {
        Message.showErrorMessage(server, ex);
    }
    break;
      default:
    //nothing to do
      }
    }

    /**
     * Initialize this editor.
     * @param name the editor name
     * @param rrw the RemoteResourceWrapper wrapping the editor node.
     * @param p the editor properties
     */
    public void initialize(String name,
         RemoteResourceWrapper rrw,
         Properties p)
    {
  super.initialize(name, rrw, p);
  //must be built at init time
  setServer(rrw);
    }

    /**
     * Constructor.
     */
    public AdminServerEditor() {
  //for newInstance
    }

}
TOP

Related Classes of org.w3c.jigadmin.editors.AdminServerEditor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.