blob: 8ab7882357e37a2b3d375e1c1209842cef6d3099 (
plain) (
tree)
|
|
package org.openslx.dozmod.gui.window;
import java.awt.Window;
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.List;
import javax.swing.JFrame;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.Satellite;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.window.layout.SatelliteListWindowLayout;
/**
* Window for selecting an available satellite or setting custom ip.
*/
@SuppressWarnings("serial")
public class SatelliteListWindow extends SatelliteListWindowLayout implements UiFeedback {
private final static Logger LOGGER = Logger.getLogger(SatelliteListWindow.class);
private static Satellite satellite;
public interface UserAddedCallback {
public void userAdded(UserInfo user, SatelliteListWindow window);
}
/**
* Don't use this, use the static function open instead.
*/
public SatelliteListWindow(final Window modalParent, List<Satellite> satList) {
super(modalParent);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
if (satList != null && !satList.isEmpty()){
satelliteTable.setData(satList, true);
radioSatelliteTable.setSelected(true);
customIpField.setEnabled(false);
satelliteTable.setSelectedItem(satelliteTable.getModelRow(0));
} else {
radioSatelliteTable.setEnabled(false);
radioCustomIp.setSelected(true);
}
radioCustomIp.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
satelliteTable.setEnabled(false);
customIpField.setEnabled(true);
satelliteTable.clearSelection();
}
});
radioSatelliteTable.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
satelliteTable.setEnabled(true);
customIpField.setEnabled(false);
satelliteTable.setSelectedItem(satelliteTable.getModelRow(0));
}
});
exitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(radioSatelliteTable.isSelected() && satelliteTable.getSelectedItem() != null)
satellite = satelliteTable.getSelectedItem();
else {
satellite = new Satellite();
satellite.addressList = new ArrayList<String>();
satellite.addressList.add(customIpField.getText());
}
dispose();
}
});
getRootPane().setDefaultButton(exitButton);
satelliteTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(satelliteTable.isEnabled()){
if (e.getClickCount() == 2) {
exitButton.doClick();
}
}
}
});
Gui.centerShellOverShell(modalParent, this);
}
/**
* Open a new SatelliteListWindow
*
* @param modalParent
* @param satList The list of satellites to display.
* @return satellite with address to use.
*/
public static Satellite open(Window modalParent, List<Satellite> satList) {
SatelliteListWindow win = new SatelliteListWindow( modalParent, satList );
win.setVisible(true);
return satellite;
}
@Override
public boolean wantConfirmQuit() {
return false;
}
@Override
public void escapePressed() {
}
}
|