/* * 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.renderers.ListEntryRenderer; import eclserver.db.objects.ServerObject; 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 rich balsewich */ public class BesListPanel extends javax.swing.JPanel { /** Creates new form AddressListPanel */ public BesListPanel() { 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(); txtServerPort = 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_ADDRESS"); 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); txtServerPort.setToolTipText("Enter HOST:PORT"); txtServerPort.setPreferredSize(new java.awt.Dimension(100, 35)); txtServerPort.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtServerPortActionPerformed(evt); } }); jPanel1.add(txtServerPort); btDeleteServer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/eclserver/images/action_delete.png"))); // NOI18N btDeleteServer.setToolTipText("Delete Server"); btDeleteServer.setActionCommand("DELETE_ADDRESS"); 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.getServerPort().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 txtServerPortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtServerPortActionPerformed // TODO add your handling code here: fireActionEvent(evt); }//GEN-LAST:event_txtServerPortActionPerformed 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(); this.txtServerPort.setText(""); }//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 ServerObject getListEntry(int id){ return (ServerObject)model.get(id); } public void deleteSelectedEntry() { int selectedIndex = addressList.getSelectedIndex(); if (selectedIndex >= 0) { DefaultListModel model = (DefaultListModel)addressList.getModel(); model.remove(selectedIndex); } } public String getServerPort() { String serverPort = txtServerPort.getText(); return serverPort; } public void setServerPort(String value) { this.txtServerPort.setText(value); } public int getdaoSelectedEntry(){ return this.daoSelectedEntry; } public int getSelectedEntry(){ return this.selectedEntry; } public int getListSize(){ return this.model.size(); } 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); } } // 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 txtServerPort; // End of variables declaration//GEN-END:variables EventListenerList listeners; private ListEntryRenderer renderer; private DefaultListModel model; private int selectedEntry = -1; private int daoSelectedEntry = 0; }