Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java	(revision 30532)
@@ -2,5 +2,16 @@
 
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.GroupLayout;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.josm.Main;
@@ -70,23 +81,23 @@
     private void initComponents() {
 
-        mainPanel = new javax.swing.JPanel();
-        addNewTagCheckBox = new javax.swing.JCheckBox();
-        addNewTagKeyField = new javax.swing.JTextField();
-        jLabel1 = new javax.swing.JLabel();
-        addNewTagValueField = new javax.swing.JTextField();
-        jLabel2 = new javax.swing.JLabel();
-        optimizeComboBox = new javax.swing.JComboBox();
-        buildingCheckBox = new javax.swing.JCheckBox();
+        mainPanel = new JPanel();
+        addNewTagCheckBox = new JCheckBox();
+        addNewTagKeyField = new JTextField();
+        jLabel1 = new JLabel();
+        addNewTagValueField = new JTextField();
+        jLabel2 = new JLabel();
+        optimizeComboBox = new JComboBox<>();
+        buildingCheckBox = new JCheckBox();
 
         thisPanel.setLayout(new java.awt.GridLayout(1, 0));
 
         addNewTagCheckBox.setText("Novým primitivám přidávat tag:");
-        addNewTagCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
+        addNewTagCheckBox.addChangeListener(new ChangeListener() {
+            public void stateChanged(ChangeEvent evt) {
                 addNewTagChanged(evt);
             }
         });
-        addNewTagCheckBox.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
+        addNewTagCheckBox.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
                 addNewTagCheckBoxActionPerformed(evt);
             }
@@ -103,11 +114,11 @@
         jLabel2.setText("Optimalizovat algoritmus přiřazování:");
 
-        optimizeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "pro rychlejší odezvu", "menší spotřebu paměti" }));
+        optimizeComboBox.setModel(new DefaultComboBoxModel<>(new String[] { "pro rychlejší odezvu", "menší spotřebu paměti" }));
         optimizeComboBox.setSelectedIndex(1);
         optimizeComboBox.setEnabled(false);
 
         buildingCheckBox.setText("Nově polygonům přidávat tag \"building=yes\"");
-        buildingCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
+        buildingCheckBox.addChangeListener(new ChangeListener() {
+            public void stateChanged(ChangeEvent evt) {
                 buildingCheckBoxaddNewTagChanged(evt);
             }
@@ -119,5 +130,5 @@
         });
 
-        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
+        javax.swing.GroupLayout mainPanelLayout = new GroupLayout(mainPanel);
         mainPanel.setLayout(mainPanelLayout);
         mainPanelLayout.setHorizontalGroup(
@@ -213,5 +224,5 @@
     private javax.swing.JLabel jLabel2;
     private javax.swing.JPanel mainPanel;
-    private javax.swing.JComboBox optimizeComboBox;
+    private javax.swing.JComboBox<String> optimizeComboBox;
     // End of variables declaration//GEN-END:variables
 
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java	(revision 30532)
@@ -57,6 +57,3 @@
         return houses;
     }
-
-
-
 }
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java	(revision 30532)
@@ -87,6 +87,6 @@
         candLabel = new javax.swing.JLabel();
         mainZoomButton = new javax.swing.JButton();
-        mainField = new javax.swing.JComboBox();
-        candField = new javax.swing.JComboBox();
+        mainField = new javax.swing.JComboBox<>();
+        candField = new javax.swing.JComboBox<>();
         candPickButton = new javax.swing.JButton();
         mainPickButton = new javax.swing.JButton();
@@ -123,8 +123,8 @@
         });
 
-        mainField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+        mainField.setModel(new javax.swing.DefaultComboBoxModel<Object>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
         mainField.setRenderer(new UniversalListRenderer());
 
-        candField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " " }));
+        candField.setModel(new javax.swing.DefaultComboBoxModel<Object>(new String[] { " " }));
         candField.setRenderer(new UniversalListRenderer());
 
@@ -236,5 +236,5 @@
                     r.unOverwrite(prim, r.translate(prim));
 
-                ComboBoxModel model = candField.getModel();
+                ComboBoxModel<Object> model = candField.getModel();
                 for (int i = 0; i < model.getSize(); i++) {
                     AddressElement elem = (AddressElement) model.getElementAt(i);
@@ -253,5 +253,5 @@
                     r.unOverwrite(r.translate(elem), elem);
 
-                ComboBoxModel model = candField.getModel();
+                ComboBoxModel<Object> model = candField.getModel();
                 for (int i = 0; i < model.getSize(); i++) {
                     OsmPrimitive prim = (OsmPrimitive) model.getElementAt(i);
@@ -279,9 +279,9 @@
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JComboBox candField;
+    private javax.swing.JComboBox<Object> candField;
     private javax.swing.JLabel candLabel;
     private javax.swing.JButton candPickButton;
     private javax.swing.JButton candZoomButton;
-    private javax.swing.JComboBox mainField;
+    private javax.swing.JComboBox<Object> mainField;
     private javax.swing.JLabel mainLabel;
     private javax.swing.JPanel mainPanel;
@@ -325,5 +325,5 @@
 
     private ConflictsModel conflictModel = new ConflictsModel();
-    private class ConflictsModel implements ComboBoxModel {
+    private class ConflictsModel implements ComboBoxModel<Object> {
 
         ArrayList<AddressElement> elements = new ArrayList<AddressElement>();
@@ -473,5 +473,5 @@
             conflPrims.addAll(Reasoner.getInstance().getCandidates(selElem));
             Collections.sort(conflPrims, PrimUtils.comparator);
-            candField.setModel(new CandidatesModel<OsmPrimitive>(conflPrims));
+            candField.setModel(new CandidatesModel<Object>(conflPrims));
 
         } else if (selected instanceof OsmPrimitive) {
@@ -480,8 +480,8 @@
             conflElems.addAll(Reasoner.getInstance().getCandidates(selElem));
             Collections.sort(conflElems);
-            candField.setModel(new CandidatesModel<AddressElement>(conflElems));
+            candField.setModel(new CandidatesModel<Object>(conflElems));
 
         } else {
-            candField.setModel(new DefaultComboBoxModel());
+            candField.setModel(new DefaultComboBoxModel<>());
             candZoomButton.setEnabled(false);
             reassignButton.setEnabled(false);
@@ -512,5 +512,5 @@
     }
 
-    private class CandidatesModel<E> implements ComboBoxModel {
+    private class CandidatesModel<E> implements ComboBoxModel<E> {
 
         Set<ListDataListener> listeners = new HashSet<ListDataListener>();
@@ -540,6 +540,4 @@
             } else
                 reassignButton.setEnabled(false);
-
-
         }
 
@@ -552,5 +550,5 @@
         }
 
-        public Object getElementAt(int index) {
+        public E getElementAt(int index) {
             if (index < primitives.size())
                 return primitives.get(index);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java	(revision 30532)
@@ -121,5 +121,5 @@
 
         for (int i=0; i<houseModel.getSize(); i++)
-            if (houseModel.getHouseAt(i) == house) {
+            if (houseModel.getElementAt(i) == house) {
                 houseList.setSelectedIndex(i);
                 houseList.ensureIndexIsVisible(i);
@@ -159,5 +159,5 @@
         index++; // Initial kick to do at least one move.
         House current;
-        while ( (current = houseModel.getHouseAt(index))  != null
+        while ( (current = houseModel.getElementAt(index)) != null
              && Reasoner.getInstance().translate(current) != null)
             index++;
@@ -262,18 +262,18 @@
         mainPanel = new javax.swing.JPanel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         keepOddityCheckBox = new javax.swing.JCheckBox();
         relocateButton = new javax.swing.JButton();
-        streetComboBox = new javax.swing.JComboBox();
+        streetComboBox = new javax.swing.JComboBox<>();
 
         setLayout(new java.awt.GridLayout(1, 0));
-
-        houseList.setModel(new javax.swing.AbstractListModel() {
+/*
+        houseList.setModel(new javax.swing.AbstractListModel<String>() {
             String[] strings = { " " };
             @Override
             public int getSize() { return strings.length; }
             @Override
-            public Object getElementAt(int i) { return strings[i]; }
-        });
+            public String getElementAt(int i) { return strings[i]; }
+        });*/
         houseList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
         houseList.setEnabled(false);
@@ -349,10 +349,10 @@
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JScrollPane jScrollPane1;
     private javax.swing.JCheckBox keepOddityCheckBox;
     private javax.swing.JPanel mainPanel;
     private javax.swing.JButton relocateButton;
-    private javax.swing.JComboBox streetComboBox;
+    private javax.swing.JComboBox<ElementWithHouses> streetComboBox;
     // End of variables declaration//GEN-END:variables
 
@@ -370,5 +370,5 @@
     private class StreetListRenderer extends DefaultListCellRenderer {
         @Override
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 
@@ -398,5 +398,5 @@
 
         @Override
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 
@@ -467,5 +467,5 @@
 //==============================================================================
 
-    private class StreetListModel extends HalfCookedComboBoxModel {
+    private class StreetListModel extends HalfCookedComboBoxModel<ElementWithHouses> {
 
         private ElementWithHouses selected = null;
@@ -499,5 +499,5 @@
 
         @Override
-        public Object getElementAt(int index) {
+        public ElementWithHouses getElementAt(int index) {
             if (parent == null) return null;
 
@@ -528,5 +528,5 @@
 //==============================================================================
 
-    private class HouseListModel extends HalfCookedListModel
+    private class HouseListModel extends HalfCookedListModel<House>
                                  implements ReasonerListener {
 
@@ -544,5 +544,6 @@
         }
 
-        public House getHouseAt(int index) {
+        @Override
+        public House getElementAt(int index) {
             if (streetComboBox.getSelectedItem() == null) return null;
             ElementWithHouses selected
@@ -555,9 +556,4 @@
 
         @Override
-        public Object getElementAt(int index) {
-            return getHouseAt(index);
-        }
-
-        @Override
         public void primitiveChanged(OsmPrimitive prim) {}
         @Override
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java	(revision 30532)
@@ -66,5 +66,5 @@
         initLocationHints();
 
-        DefaultComboBoxModel regions = new DefaultComboBoxModel(Database.getInstance().regions.toArray());
+        DefaultComboBoxModel<Region> regions = new DefaultComboBoxModel<>(Database.getInstance().regions.toArray(new Region[0]));
         regionHlIndex = reshuffleListItems(regions, hlRegions);
         oblastComboBox.setModel(regions);
@@ -173,11 +173,10 @@
     * beginning, return number of moved items.
     */
-
-    private int reshuffleListItems(DefaultComboBoxModel list, final ArrayList<AddressElement> hlList) {
+    private <E> int reshuffleListItems(DefaultComboBoxModel<E> list, final ArrayList<AddressElement> hlList) {
         int curHlIndex = 0;
 
         for (int i = 0; i < list.getSize(); i++)
             for (int j = 0; j < hlList.size(); j++) {
-                Object t = list.getElementAt(i);
+                E t = list.getElementAt(i);
                 if (t == hlList.get(j)) {
                     list.removeElementAt(i);
@@ -199,7 +198,7 @@
 
         mainPanel = new javax.swing.JPanel();
-        oblastComboBox = new javax.swing.JComboBox();
-        suburbComboBox = new javax.swing.JComboBox();
-        vitociComboBox = new javax.swing.JComboBox();
+        oblastComboBox = new javax.swing.JComboBox<>();
+        suburbComboBox = new javax.swing.JComboBox<>();
+        vitociComboBox = new javax.swing.JComboBox<>();
         obecLabel = new javax.swing.JLabel();
         castObceLabel = new javax.swing.JLabel();
@@ -298,5 +297,5 @@
         if (oblast == null) return;
 
-        DefaultComboBoxModel vitocis = new DefaultComboBoxModel(oblast.getViToCis().toArray());
+        DefaultComboBoxModel<ViToCi> vitocis = new DefaultComboBoxModel<>(oblast.getViToCis().toArray(new ViToCi[0]));
         vitociHlIndex = reshuffleListItems(vitocis, hlViToCis);
         vitociComboBox.setModel(vitocis);
@@ -312,14 +311,14 @@
 
         if (obec.getSuburbs().size() > 0) {
-            Object[] suburbs = new Object[obec.getSuburbs().size() + 1];
+            ElementWithStreets[] suburbs = new ElementWithStreets[obec.getSuburbs().size() + 1];
             for (int i=0; i<obec.getSuburbs().size(); i++)
                 suburbs[i] = obec.getSuburbs().get(i);
             suburbs[obec.getSuburbs().size()] = obec;
-            DefaultComboBoxModel suburbsList = new DefaultComboBoxModel(suburbs);
+            DefaultComboBoxModel<ElementWithStreets> suburbsList = new DefaultComboBoxModel<>(suburbs);
             suburbHlIndex = reshuffleListItems(suburbsList, hlSuburbs);
             suburbComboBox.setModel(suburbsList);
             suburbComboBox.setSelectedItem(suburbsList.getElementAt(0));
         } else
-            suburbComboBox.setModel(new DefaultComboBoxModel());
+            suburbComboBox.setModel(new DefaultComboBoxModel<ElementWithStreets>());
 
         suburbComboBox.setEnabled(suburbComboBox.getModel().getSize() > 1);
@@ -353,8 +352,8 @@
     private javax.swing.JPanel mainPanel;
     private javax.swing.JLabel obecLabel;
-    private javax.swing.JComboBox oblastComboBox;
+    private javax.swing.JComboBox<Region> oblastComboBox;
     private javax.swing.JLabel oblastLabel;
-    private javax.swing.JComboBox suburbComboBox;
-    private javax.swing.JComboBox vitociComboBox;
+    private javax.swing.JComboBox<ElementWithStreets> suburbComboBox;
+    private javax.swing.JComboBox<ViToCi> vitociComboBox;
     // End of variables declaration//GEN-END:variables
 
@@ -362,5 +361,5 @@
         @Override
         public Component getListCellRendererComponent(
-                    JList list, Object value, int index,
+                    JList<?> list, Object value, int index,
                     boolean isSelected, boolean cellHasFocus) {
 
@@ -383,5 +382,5 @@
     private class SuburbRenderer extends AddressElementRenderer {
         @Override
-        public Component getListCellRendererComponent(JList list, Object value,
+        public Component getListCellRendererComponent(JList<?> list, Object value,
                           int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value,
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java	(revision 30532)
@@ -197,6 +197,6 @@
         changeLocationButton = new javax.swing.JButton();
         jScrollPane1 = new javax.swing.JScrollPane();
-        proposalList = new javax.swing.JList();
-        matchesComboBox = new javax.swing.JComboBox();
+        proposalList = new javax.swing.JList<>();
+        matchesComboBox = new javax.swing.JComboBox<>();
         jLabel6 = new javax.swing.JLabel();
         statusLabel = new javax.swing.JLabel();
@@ -236,5 +236,5 @@
         jScrollPane1.setViewportView(proposalList);
 
-        matchesComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));
+        //matchesComboBox.setModel(new javax.swing.DefaultComboBoxModel<String>(new String[] { "" }));
         matchesComboBox.addItemListener(new java.awt.event.ItemListener() {
             public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -307,5 +307,5 @@
     private void proposalListKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_proposalListKeyReleased
         if (evt.getKeyCode() == KeyEvent.VK_DELETE) {
-            for (Object o : proposalList.getSelectedValues())
+            for (Object o : proposalList.getSelectedValuesList())
                 proposalContainer.removeProposal((Proposal) o);
         }
@@ -341,6 +341,6 @@
     private javax.swing.JTextField locationEdit;
     private javax.swing.JPanel mainPanel;
-    private javax.swing.JComboBox matchesComboBox;
-    private javax.swing.JList proposalList;
+    private javax.swing.JComboBox<AddressElement> matchesComboBox;
+    private javax.swing.JList<Proposal> proposalList;
     private javax.swing.JLabel statusLabel;
     // End of variables declaration//GEN-END:variables
@@ -349,5 +349,5 @@
      * Container for all Houses, which match the given 'alternatenumber'.
      */
-    private class MatchesComboBoxModel extends HalfCookedComboBoxModel {
+    private class MatchesComboBoxModel extends HalfCookedComboBoxModel<AddressElement> {
 
         private List<AddressElement> matches = null;
@@ -379,5 +379,5 @@
         }
 
-        public Object getElementAt(int index) {
+        public AddressElement getElementAt(int index) {
             if (matches == null) return null;
             if (index >= matches.size()) return null;
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java	(revision 30532)
@@ -37,5 +37,5 @@
 
         nameField.setText(street.getName());
-        houseList.setModel(new DefaultComboBoxModel(street.getHouses().toArray()));
+        houseList.setModel(new DefaultComboBoxModel<>(street.getHouses().toArray(new House[0])));
         houseList.setCellRenderer(new UniversalListRenderer());
 
@@ -72,5 +72,5 @@
         jLabel3 = new javax.swing.JLabel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         parentEditButton = new javax.swing.JButton();
         houseEditButton = new javax.swing.JButton();
@@ -163,5 +163,5 @@
         assert selectedHouse != null;
         if (EditorFactory.editHouse(selectedHouse))
-            houseList.setModel(new DefaultComboBoxModel(street.getHouses().toArray()));
+            houseList.setModel(new DefaultComboBoxModel<>(street.getHouses().toArray(new House[0])));
     }//GEN-LAST:event_houseEditButtonActionPerformed
 
@@ -175,5 +175,5 @@
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton houseEditButton;
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java	(revision 30532)
@@ -39,5 +39,5 @@
         parentEditButton.setEnabled(EditorFactory.isEditable(parent));
 
-        houseList.setModel(new DefaultComboBoxModel(suburb.getHouses().toArray()));
+        houseList.setModel(new DefaultComboBoxModel<>(suburb.getHouses().toArray(new House[0])));
         houseList.setCellRenderer(new UniversalListRenderer());
 
@@ -46,5 +46,5 @@
         houseListChanged(null);
 
-        streetList.setModel(new DefaultComboBoxModel(suburb.getStreets().toArray()));
+        streetList.setModel(new DefaultComboBoxModel<>(suburb.getStreets().toArray(new Street[0])));
         streetList.setCellRenderer(new UniversalListRenderer());
 
@@ -81,9 +81,9 @@
         jLabel3 = new javax.swing.JLabel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         parentEditButton = new javax.swing.JButton();
         houseEditButton = new javax.swing.JButton();
         jScrollPane2 = new javax.swing.JScrollPane();
-        streetList = new javax.swing.JList();
+        streetList = new javax.swing.JList<>();
         streetEditButton = new javax.swing.JButton();
         jLabel4 = new javax.swing.JLabel();
@@ -212,5 +212,5 @@
         assert selectedHouse != null;
         if (EditorFactory.editHouse(selectedHouse))
-            houseList.setModel(new DefaultComboBoxModel(suburb.getHouses().toArray()));
+            houseList.setModel(new DefaultComboBoxModel<>(suburb.getHouses().toArray(new House[0])));
 }//GEN-LAST:event_houseEditButtonActionPerformed
 
@@ -223,5 +223,5 @@
         assert selectedStreet != null;
         if (EditorFactory.editStreet(selectedStreet))
-            streetList.setModel(new DefaultComboBoxModel(suburb.getStreets().toArray()));
+            streetList.setModel(new DefaultComboBoxModel<>(suburb.getStreets().toArray(new Street[0])));
     }//GEN-LAST:event_streetEditButtonActionPerformed
 
@@ -229,5 +229,5 @@
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton houseEditButton;
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
@@ -242,5 +242,5 @@
     private javax.swing.JTextField parentField;
     private javax.swing.JButton streetEditButton;
-    private javax.swing.JList streetList;
+    private javax.swing.JList<Street> streetList;
     // End of variables declaration//GEN-END:variables
 
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java	(revision 30532)
@@ -16,12 +16,14 @@
  * @author Radomír Černoch, radomir.cernoch@gmail.com
  */
-public abstract class HalfCookedComboBoxModel implements ComboBoxModel {
+public abstract class HalfCookedComboBoxModel<E> implements ComboBoxModel<E> {
 
     List<ListDataListener> listeners = new ArrayList<ListDataListener>();
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java	(revision 30532)
@@ -16,12 +16,14 @@
  * @author Radomír Černoch, radomir.cernoch@gmail.com
  */
-public abstract class HalfCookedListModel implements ListModel {
+public abstract class HalfCookedListModel<E> implements ListModel<E> {
 
     List<ListDataListener> listeners = new ArrayList<ListDataListener>();
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java	(revision 30346)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java	(revision 30532)
@@ -23,6 +23,5 @@
  * @see Proposal
  */
-public class ProposalContainer implements ListModel, Comparable<ProposalContainer> {
-
+public class ProposalContainer implements ListModel<Proposal>, Comparable<ProposalContainer> {
 
     /**
@@ -65,6 +64,5 @@
      * The list of proposals to be applied to encapsulated primitive.
      */
-    protected List<Proposal> proposals
-            = new ArrayList<Proposal>();
+    protected List<Proposal> proposals = new ArrayList<Proposal>();
 
     /**
@@ -184,23 +182,27 @@
     }
 
+    @Override
     public int getSize() {
         return proposals.size();
     }
 
-    public Object getElementAt(int index) {
+    @Override
+    public Proposal getElementAt(int index) {
         return proposals.get(index);
     }
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
     }
 
+    @Override
     public int compareTo(ProposalContainer o) {
         return PrimUtils.comparator.compare(this.target, o.target);
     }
-
 }
