Package org.w3c.jigadmin.editors

Source Code of org.w3c.jigadmin.editors.ServerEditor$Retryer

// ServerEditor.java
// $Id: ServerEditor.java,v 1.15 2000/08/16 21:37:31 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 java.awt.BorderLayout;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.BorderFactory;
import javax.swing.JTabbedPane;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeListener;

import java.util.Properties;

import org.w3c.jigadmin.RemoteResourceWrapper;
import org.w3c.jigadmin.widgets.DnDTabbedPane;
import org.w3c.jigadmin.events.ResourceActionSource;
import org.w3c.jigadmin.events.ResourceActionListener;

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

import org.w3c.tools.widgets.Utilities;
import org.w3c.tools.sorter.Sorter;

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

    private class Retryer extends Thread {
 
  RemoteAccessException ex = null;

  public void run() {
      while (server.getServerBrowser().shouldRetry(ex)) {
    try {
        initializeServerHelpers();
        break;
    } catch (RemoteAccessException ex2) {
        ex = ex2;
    }
      }
      build();
  }

  private Retryer(RemoteAccessException ex) {
      this.ex = ex;
  }
    }

    protected RemoteResourceWrapper server     = null;
    protected String                name       = null;
    protected ServerHelperInterface shelpers[] = null;

    /**
     * Reload the server configuration.
     * @param server the new server wrapper
     */
    public void setServer(RemoteResourceWrapper server) {
  this.server = server;
  try {
      initializeServerHelpers();
      build();
  } catch (RemoteAccessException ex) {
      (new Retryer(ex)).start();
  }
    }

    /**
     * Get the component.
     * @return a Component
     */
    public Component getComponent() {
  return this;
    }

    /**
     * initialize the server helpers.
     * @exception RemoteAccessException if a remote error occurs
     */
    protected void initializeServerHelpers()
  throws RemoteAccessException
    {
  shelpers = null;
  //use ServerHelperFactory....
  RemoteResource rr = server.getResource();
  String names[] = rr.enumerateResourceIdentifiers();
  Sorter.sortStringArray(names, true);
  shelpers = new ServerHelperInterface[names.length];
  for (int i = 0 ; i < names.length ; i++) {
      RemoteResourceWrapper rrw = server.getChildResource(names[i]);
      shelpers[i] = ServerHelperFactory.getServerHelper(names[i], rrw);
  }

  for (int i = 0 ; i < shelpers.length ; i++) {
      if (shelpers[i] instanceof ResourceActionSource) {
    ResourceActionSource source =
        (ResourceActionSource)shelpers[i];
    for (int j = 0 ; j < shelpers.length ; j++) {
        if (j != i) {
      if (shelpers[j] instanceof ResourceActionListener) {
          ResourceActionListener listener =
        (ResourceActionListener) shelpers[j];
          source.addResourceActionListener(listener);
      }
        }
    }
      }
  }
    }

    /**
     * Build the interface.
     */
    protected void build() {
  removeAll();
  invalidate();
  setLayout(new BorderLayout());
  TitledBorder border = BorderFactory.createTitledBorder(name);
  border.setTitleFont(Utilities.reallyBigBoldFont);
  setBorder(border);
  //tabbedpane
  JTabbedPane tabbedPane = new DnDTabbedPane();
  if (shelpers == null)
      return;

  for (int i = 0 ; i < shelpers.length ; i++) {
      if (shelpers[i] instanceof ChangeListener)
    tabbedPane.addChangeListener((ChangeListener)shelpers[i]);

      if (shelpers[i] instanceof ControlServerHelper) {
    //add it on top of the panel
    add(shelpers[i].getComponent(), BorderLayout.NORTH);
      } else {
    String name = shelpers[i].getName().replace('_',' ');
    char chars[] = name.toCharArray();
    chars[0] = Character.toUpperCase(chars[0]);
    String helperName = new String(chars);
    tabbedPane.addTab(helperName, null,
          shelpers[i].getComponent(),
          shelpers[i].getToolTip());
      }
  }
  tabbedPane.setSelectedIndex(0);
  add(tabbedPane, BorderLayout.CENTER);
  validate();
    }

    /**
     * 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)
    {
  this.server = rrw;
  this.name   = name;
    }

    public ServerEditor() {
  //for new Isntance
    }

  
   
}
TOP

Related Classes of org.w3c.jigadmin.editors.ServerEditor$Retryer

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.