All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jive3.StartServerDlg Maven / Gradle / Ivy

The newest version!
package jive3;

import fr.esrf.Tango.DevFailed;
import fr.esrf.TangoApi.*;
import jive.JiveUtils;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * Start new server Dlg
 */
public class StartServerDlg extends JFrame implements ActionListener {

  class LevelComboBoxRenderer extends JComboBox implements TableCellRenderer {

    public LevelComboBoxRenderer(String[] items) {
      super(items);
    }

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                                                   boolean hasFocus, int row, int column) {
      if (isSelected) {
        setForeground(table.getSelectionForeground());
        super.setBackground(table.getSelectionBackground());
      } else {
        setForeground(table.getForeground());
        setBackground(table.getBackground());
      }
      int idx = ((Integer)value).intValue();
      setSelectedIndex(idx);
      return this;
    }

  }

  class LevelComboBoxEditor extends DefaultCellEditor {

    public LevelComboBoxEditor(String[] items) {
      super(new JComboBox(items));
    }

    public Component getTableCellEditorComponent(JTable table, Object value,
                                          boolean isSelected,
                                          int row, int column) {

      JComboBox cb = (JComboBox)editorComponent;
      int idx = ((Integer)value).intValue();
      cb.setSelectedIndex(idx);
      return editorComponent;

    }

    public Object getCellEditorValue() {

      JComboBox cb = (JComboBox)editorComponent;
      return cb.getSelectedIndex();

    }

  }

  class ServerInfo {

    String serverName;
    int level;
    String host;

  }

  private JTextTips serverText;
  private JScrollPane serversView;
  private JTable serversTable;
  private DefaultTableModel serversModel;
  private JPanel innerPanel;
  private JButton addButton;
  private JButton addFromButton;
  private String  hostName;
  private DeviceProxy starter;
  private MainPanel invoker;

  private JButton clearAllButton;
  private JButton clearButton;
  private JButton startButton;
  private JButton dismissButton;

  private ArrayList serverInfos;
  private Database db;

  public StartServerDlg(Database db,String hostName,DeviceProxy starter,MainPanel invoker) {

    this.db = db;
    this.hostName = hostName;
    this.starter = starter;
    this.invoker = invoker;
    serverInfos = new ArrayList<>();

    innerPanel = new JPanel();
    innerPanel.setLayout(new BorderLayout());

    String[] levels = new String[TreePanelHostCollection.NB_LEVELS+2];
    levels[0] = "Remove Starter Info";
    levels[1] = "Not controlled";
    for(int i=2;i0 ) {
      String[] toAdd = db.get_host_server_list(hostName);
      for(int i=0;i1) ProgressFrame.displayProgress("Starting servers");
    for(int i=0;i0) {
      JiveUtils.showJiveError(errStr.toString());
    }

    return true;

  }

  @Override
  public void actionPerformed(ActionEvent e) {

    Object src = e.getSource();

    if(src==dismissButton) {

      setVisible(false);

    } else if(src==addButton || src==serverText) {

      addServers();

    } else if(src==addFromButton) {

      try {
        addServerFromHost(getHost());
      } catch (DevFailed ex) {
        JiveUtils.showTangoError(ex);
      }
      updateTable();

    } else if (src==clearButton) {

      int[] rows = serversTable.getSelectedRows();
      Arrays.sort(rows);
      for(int i=rows.length-1;i>=0;i--) {
        serverInfos.remove(rows[i]);
      }
      updateTable();

    } else if (src==clearAllButton) {

      serverInfos.clear();
      updateTable();

    } else if (src==startButton) {

      if( startServers() ) {
        setVisible(false);
        invoker.getHsotCollectionTreePanel().refresh();
      }

    }

  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy