/*
* Copyright 2011 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package eclserver.panels;
import eclserver.db.objects.ServerObject;
import eclserver.renderers.ListEntryRenderer;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.event.EventListenerList;
import javax.swing.JList;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
/**
*
* @author rbalsewich
*/
public class WebListPanel extends javax.swing.JPanel {
/** Creates new form AddressListPanel */
public WebListPanel() {
renderer = new ListEntryRenderer();
model = new DefaultListModel();
initComponents();
listeners = new EventListenerList();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
scrollPane = new javax.swing.JScrollPane();
addressList = new javax.swing.JList();
jLabel1 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
btAddServer = new javax.swing.JButton();
txtWebPort = new javax.swing.JTextField();
btDeleteServer = new javax.swing.JButton();
setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS));
scrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
addressList.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
addressList.setModel(model);
addressList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
addressList.setCellRenderer(renderer);
addressList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
addressListValueChanged(evt);
}
});
scrollPane.setViewportView(addressList);
add(scrollPane);
jLabel1.setFont(new java.awt.Font("Tahoma", 3, 11));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLabel1.setText("Host : Port ");
jLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
add(jLabel1);
btAddServer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/eclserver/images/Add.png"))); // NOI18N
btAddServer.setActionCommand("SAVE_WEB");
btAddServer.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
btAddServer.setBorderPainted(false);
btAddServer.setContentAreaFilled(false);
btAddServer.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
btAddServer.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
btAddServer.setMargin(new java.awt.Insets(2, 3, 2, 3));
btAddServer.setSelected(true);
btAddServer.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btAddServerMouseReleased(evt);
}
});
btAddServer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAddServerActionPerformed(evt);
}
});
jPanel1.add(btAddServer);
txtWebPort.setToolTipText("Enter HOST:PORT");
txtWebPort.setPreferredSize(new java.awt.Dimension(100, 35));
txtWebPort.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtWebPortActionPerformed(evt);
}
});
jPanel1.add(txtWebPort);
btDeleteServer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/eclserver/images/action_delete.png"))); // NOI18N
btDeleteServer.setToolTipText("Delete Server");
btDeleteServer.setActionCommand("DELETE_WEB");
btDeleteServer.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 2));
btDeleteServer.setContentAreaFilled(false);
btDeleteServer.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
btDeleteServer.setMargin(new java.awt.Insets(2, 3, 2, 3));
btDeleteServer.setMaximumSize(new java.awt.Dimension(35, 35));
btDeleteServer.setSelected(true);
btDeleteServer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btDeleteServerActionPerformed(evt);
}
});
jPanel1.add(btDeleteServer);
add(jPanel1);
}// </editor-fold>//GEN-END:initComponents
private void btAddServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAddServerActionPerformed
// TODO add your handling code here:
String[] inputValue = this.getWebPort().split(":");
System.out.println("Fetching user BES input value...");
if (inputValue.length == 2 ){
fireActionEvent(evt);
} else {
JOptionPane.showMessageDialog(this, "Value must be host name : port. e.g. local:8080");
}
}//GEN-LAST:event_btAddServerActionPerformed
private void txtWebPortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtWebPortActionPerformed
// TODO add your handling code here:
fireActionEvent(evt);
}//GEN-LAST:event_txtWebPortActionPerformed
private void btDeleteServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btDeleteServerActionPerformed
// TODO add your handling code here:
fireActionEvent(evt);
}//GEN-LAST:event_btDeleteServerActionPerformed
private void btAddServerMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btAddServerMouseReleased
// TODO add your handling code here:
}//GEN-LAST:event_btAddServerMouseReleased
private void addressListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_addressListValueChanged
// TODO add your handling code here:
if (evt.getValueIsAdjusting()) {
return;
}
JList entryList = (JList) evt.getSource();
selectedEntry = entryList.getSelectedIndex();
}//GEN-LAST:event_addressListValueChanged
public void addListEntry(ServerObject entry) {
model.addElement(entry);
}
public void addListEntries(List<ServerObject> list) {
for(ServerObject entry: list) {
addListEntry(entry);
}
}
public int getSelectedIndex() {
return addressList.getSelectedIndex();
}
public int setSelectedIndex(int index) {
assert(index >= -1);
DefaultListModel model = (DefaultListModel)addressList.getModel();
int size = model.getSize();
// System.out.println("Model size: " + size);
if (index < size) {
addressList.setSelectedIndex(index);
} else {
addressList.setSelectedIndex(size-1);
index = size -1;
}
return index;
}
public ServerObject getSelectedListEntry() {
//System.out.println("using selecteValue for List Entry: " + addressList.getSelectedValue() );
ServerObject entry = (ServerObject)addressList.getSelectedValue();
return entry;
}
public void deleteSelectedEntry() {
int selectedIndex = addressList.getSelectedIndex();
if (selectedIndex >= 0) {
DefaultListModel model = (DefaultListModel)addressList.getModel();
model.remove(selectedIndex);
}
}
private void fireActionEvent(ActionEvent evt) {
ActionListener[] listenerList = listeners.getListeners(ActionListener.class);
for (int i = listenerList.length-1; i>=0; --i) {
listenerList[i].actionPerformed(evt);
}
}
public void addActionListener(ActionListener listener) {
listeners.add(ActionListener.class, listener);
}
public void removeActionListener(ActionListener listener) {
if (listeners != null) {
listeners.remove(ActionListener.class, listener);
}
}
public String getWebPort() {
String webPort = txtWebPort.getText();
return webPort;
}
public void setWebPort(String value) {
this.txtWebPort.setText(value);
}
public int getdaoSelectedEntry(){
return this.daoSelectedEntry;
}
public int getSelectedEntry(){
return this.selectedEntry;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JList addressList;
private javax.swing.JButton btAddServer;
private javax.swing.JButton btDeleteServer;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane scrollPane;
private javax.swing.JTextField txtWebPort;
// End of variables declaration//GEN-END:variables
EventListenerList listeners;
private ListEntryRenderer renderer;
private DefaultListModel model;
private int selectedEntry = -1;
private int daoSelectedEntry = 0;
}