Package org.w3c.jigadmin.editors

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

// PropertiesServerHelper.java
// $Id: PropertiesServerHelper.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.Insets;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Cursor;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.AbstractButton;
import javax.swing.BorderFactory;
import javax.swing.JTabbedPane;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;

import java.util.Properties;
import java.util.Hashtable;

import org.w3c.jigadmin.RemoteResourceWrapper;
import org.w3c.jigadmin.PropertyManager;
import org.w3c.jigadmin.gui.Message;

import org.w3c.jigsaw.admin.RemoteAccessException;

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

/**
* The server helper dedicated to the properties.
* @version $Revision: 1.11 $
* @author  Beno�t Mah� (bmahe@w3.org)
*/
public class PropertiesServerHelper extends JPanel
    implements ServerHelperInterface, ChangeListener
{
    protected String                name         = null;
    protected String                tooltip      = null;
    protected RemoteResourceWrapper root         = null;
    protected String                properties[] = null;
    protected JPanel                cards        = null;
    protected Hashtable             helpers      = null;
    protected String                selected     = null;

    /**
     * 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.name = name;
  this.root = rrw;
  this.tooltip = (String) p.get(TOOLTIP_P);
  build();
    }

    /**
     * ChangeListener implementation.
     * @param e a ChangeEvent
     */
    public void stateChanged(ChangeEvent e) {
  Object source = e.getSource();
  if (source instanceof JTabbedPane) {
      JTabbedPane pane = (JTabbedPane) source;
      if (pane.getSelectedComponent() == this) {
    removeAll();
    invalidate();
    build();
    if (selected != null)
        select(selected);
    validate();
      }
  }
 
    }

    /**
     * Build the interface.
     */
    protected void build() {
  int     len   = 0;
  JButton b     = null;

  helpers = new Hashtable();

  try {
      properties = root.getResource().enumerateResourceIdentifiers();
      Sorter.sortStringArray(properties, true);
  } catch (RemoteAccessException ex) {
      Message.showErrorMessage(this, ex);
  }
  if (properties == null)
      return;

  setLayout(new BorderLayout());
  len = properties.length;
  JPanel buttons = new JPanel(new GridLayout(len, 1));
  cards = new JPanel(new CardLayout());

  ActionListener listener = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
    root.getServerBrowser().setCursor(Cursor.WAIT_CURSOR);
    String property = e.getActionCommand();
    select(property);
    root.getServerBrowser().setCursor(Cursor.DEFAULT_CURSOR);
      }
  };

  for (int i = 0 ; i < len ; i++) {
      String name = properties[i];
      //button
      b = new JButton(name);
      b.setVerticalTextPosition(AbstractButton.CENTER);
      b.setHorizontalTextPosition(AbstractButton.CENTER);
      b.setActionCommand(name);
      b.addActionListener(listener);
      b.setMargin(Utilities.insets2);
      buttons.add(b);
      //attribute helper
      JPanel p1 = new JPanel(new GridLayout(1,1));
      p1.setBorder(BorderFactory.createTitledBorder(name));
      helpers.put(name, p1);
      cards.add(name, p1);
  }
  JPanel p1 = new JPanel(new BorderLayout());
  p1.add(buttons, BorderLayout.NORTH);
  p1.setBorder(BorderFactory.createTitledBorder("Properties"));
  add(p1, BorderLayout.WEST);
  add(cards, BorderLayout.CENTER);
    }

    protected void select(String name) {
  selected = name;
  JPanel p1 = (JPanel)helpers.get(name);
  p1.removeAll();
  try {
      RemoteResourceWrapper rrw = root.getChildResource(name);
      AttributesHelper helper = new AttributesHelper();
      PropertyManager pm = PropertyManager.getPropertyManager();
      Properties props = pm.getEditorProperties(rrw);
      helper.initialize(rrw, props);
      p1.add(helper.getComponent());
      p1.invalidate();
      p1.validate();
  } catch (RemoteAccessException ex) {
      Message.showErrorMessage(this, ex);
  }
  ((CardLayout)cards.getLayout()).show(cards, name);
    }

    /**
     * Get the helper name.
     * @return a String instance
     */
    public String getName() {
  return name;
    }

    /**
     * Get the helper tooltip
     * @return a String
     */
    public String getToolTip() {
  return tooltip;
    }

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

    /**
     * Constructor.
     */
    public PropertiesServerHelper() {
  //new instance
    }

}
TOP

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

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.