
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