private void getGroups() {

        String[] temp = manager.getGroupNames();
        //build a new array to hold all our names plus the new value
        if (temp != null) {
            groupNames = new String[temp.length + 1];

            groupNames[0] = "<New>";

            for (int i = 0; i < temp.length; ++i) {
                groupNames[i + 1] = temp[i];
            }

        } else {
            //no groups
            groupNames = new String[]{"<New>"};
        }
        if (groupList != null) {
            //update our model for our list display
            groupList.setModel(new javax.swing.AbstractListModel() {
                String[] strings = groupNames;

                @Override
                public int getSize() {
                    return strings.length;
                }

                @Override
                public Object getElementAt(int i) {
                    return strings[i];
                }
            });


            this.repaint();

            //search our groups and select the one with matching name to
            // whatever group the user is working on
            if (editingFilt != null) {
                int res = Arrays.binarySearch(groupNames, editingFilt.getName());
                if (res >= 0) {
                    groupList.setSelectedIndex(res);
                } else {
                    groupList.setSelectedIndex(0);
                }
            } else {
                //they are working on a new group
                groupList.setSelectedIndex(0);
            }
        }


    }