/* * 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.AddressObject; import eclserver.renderers.ContactsListRenderer; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.event.ListSelectionListener; /** * * @author rbalsewich */ public class ContactsListPanel extends javax.swing.JPanel { /** Creates new form AddressListPanel */ public ContactsListPanel() { renderer = new ContactsListRenderer(); model = new DefaultListModel(); initComponents(); } /** 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(); setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS)); scrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); addressList.setModel(model); addressList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); addressList.setCellRenderer(renderer); scrollPane.setViewportView(addressList); add(scrollPane); }// </editor-fold>//GEN-END:initComponents public void addListEntry(AddressObject entry) { model.addElement(entry); } public void addListEntries(List<AddressObject> list) { for(AddressObject 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(); if (index < size) { addressList.setSelectedIndex(index); } else { addressList.setSelectedIndex(size-1); index = size -1; } return index; } public AddressObject getSelectedListEntry() { AddressObject entry = (AddressObject)addressList.getSelectedValue(); return entry; } public int deleteSelectedEntry() { int selectedIndex = addressList.getSelectedIndex(); if (selectedIndex >= 0) { DefaultListModel model = (DefaultListModel)addressList.getModel(); model.remove(selectedIndex); } return selectedIndex; } public void deleteAllEntries(){ try { model.clear(); } catch (Exception ex){ System.out.println("Error clearing Contacts List Panel: " + ex.getMessage()); } } public int updateIndexEntryAt(AddressObject obj, int index){ if (index >= 0) { DefaultListModel model = (DefaultListModel)addressList.getModel(); // model.remove(index); model.setElementAt(obj, index); } return index; } public void addListSelectionListener(ListSelectionListener listener) { addressList.addListSelectionListener(listener); } public void removeListSelectionListener(ListSelectionListener listener) { addressList.removeListSelectionListener(listener); } public int getSelectedEntry(){ return this.selectedEntry; } public void setSelectedEntry(int value){ this.selectedEntry = value; } private int selectedEntry = -1; // private int daoSelectedEntry = 0; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JList addressList; private javax.swing.JScrollPane scrollPane; // End of variables declaration//GEN-END:variables private ContactsListRenderer renderer; private DefaultListModel model; }