java 1.6 compat
authorNiki Roo <niki@nikiroo.be>
Sun, 19 Apr 2020 18:34:12 +0000 (20:34 +0200)
committerNiki Roo <niki@nikiroo.be>
Sun, 19 Apr 2020 18:34:12 +0000 (20:34 +0200)
src/be/nikiroo/fanfix_swing/gui/BooksPanel.java
src/be/nikiroo/fanfix_swing/gui/importer/ImporterFrame.java
src/be/nikiroo/fanfix_swing/gui/utils/ListModel.java

index 580cc70c282bab1a43b3f83217394cf333ebf5d7..8c22de1e16f470a503b210811e1ad206ed22c78d 100644 (file)
@@ -41,7 +41,8 @@ public class BooksPanel extends ListenerPanel {
        private boolean seeWordCount;
        private boolean listMode;
 
-       private JList<BookInfo> list;
+       @SuppressWarnings("rawtypes") // JList<BookInfo> is not java 1.6
+       private JList list;
        private ListModel<BookInfo> data;
        private DelayWorker bookCoverUpdater;
        private String filter = "";
@@ -146,7 +147,8 @@ public class BooksPanel extends ListenerPanel {
                }
        }
 
-       private JList<BookInfo> initList() {
+       @SuppressWarnings("rawtypes") // JList<BookInfo> is not java 1.6
+       private JList initList() {
                final JList<BookInfo> list = new JList<BookInfo>();
                data = new ListModel<BookInfo>(list, new BookPopup(
                                Instance.getInstance().getLibrary(), initInformer()));
@@ -252,6 +254,7 @@ public class BooksPanel extends ListenerPanel {
                                                                book.getInfo());
                                        }
 
+                                       @Override
                                        protected void done() {
                                                try {
                                                        book.setCoverImage(get());
index c3c6059f14c96511f268a927c77466879336f7aa..6e8fcbe12c6bbb485f991f88caf004e92ad669f0 100644 (file)
@@ -32,10 +32,12 @@ public class ImporterFrame extends JFrame {
        private ListModel<ImporterItem> data;
        private String filter = "";
 
+       @SuppressWarnings("unchecked") // JList<ImporterItem> is not java 1.6
        public ImporterFrame() {
                setLayout(new BorderLayout());
 
-               JList<ImporterItem> list = new JList<ImporterItem>();
+               @SuppressWarnings("rawtypes") // JList<ImporterItem> is not java 1.6
+               JList list = new JList();
                data = new ListModel<ImporterItem>(list);
 
                list.setCellRenderer(ListModel.generateRenderer(data));
index 81a8cecd3613839c1ba49cdbb3f5ea4dcddac525..ab916e53f5f27a66ba7ea583f36a08262a926f4e 100644 (file)
@@ -26,7 +26,8 @@ import javax.swing.ListCellRenderer;
  * @param <T>
  *            the type of elements and items (the same type)
  */
-public class ListModel<T> extends DefaultListModel<T> {
+@SuppressWarnings("rawtypes") // ListModel<T> and JList<T> are not java 1.6
+public class ListModel<T> extends DefaultListModel {
        private static final long serialVersionUID = 1L;
 
        /**
@@ -77,7 +78,7 @@ public class ListModel<T> extends DefaultListModel<T> {
 
        private int hoveredIndex;
        private List<T> items = new ArrayList<T>();
-       private JList<T> list;
+       private JList list;
 
        /**
         * Create a new {@link ListModel}.
@@ -85,7 +86,7 @@ public class ListModel<T> extends DefaultListModel<T> {
         * @param list
         *            the {@link JList} we will handle the data of (cannot be NULL)
         */
-       public ListModel(JList<T> list) {
+       public ListModel(JList list) {
                this(list, null);
        }
 
@@ -97,7 +98,8 @@ public class ListModel<T> extends DefaultListModel<T> {
         * @param popup
         *            the popup to use and keep track of (can be NULL)
         */
-       public ListModel(final JList<T> list, final JPopupMenu popup) {
+       @SuppressWarnings("unchecked") // ListModel<T> and JList<T> are not java 1.6
+       public ListModel(final JList list, final JPopupMenu popup) {
                this.list = list;
                list.setModel(this);
 
@@ -260,6 +262,7 @@ public class ListModel<T> extends DefaultListModel<T> {
         *            the filter will be copied as an element (can be NULL, in that
         *            case all items will be copied as elements)
         */
+       @SuppressWarnings("unchecked") // ListModel<T> and JList<T> are not java 1.6
        public void filter(Predicate<T> filter) {
                clear();
                for (T item : items) {
@@ -326,6 +329,12 @@ public class ListModel<T> extends DefaultListModel<T> {
                }
        }
 
+       @SuppressWarnings("unchecked") // ListModel<T> and JList<T> are not java 1.6
+       @Override
+       public T get(int index) {
+               return (T) super.get(index);
+       }
+
        /**
         * Generate a {@link ListCellRenderer} that supports {@link Hoverable}
         * elements.
@@ -339,20 +348,20 @@ public class ListModel<T> extends DefaultListModel<T> {
         * 
         * @return a suitable, {@link Hoverable} compatible renderer
         */
-       static public <T extends Component> ListCellRenderer<T> generateRenderer(
+       static public <T extends Component> ListCellRenderer generateRenderer(
                        final ListModel<T> model) {
-               return new ListCellRenderer<T>() {
+               return new ListCellRenderer() {
                        @Override
-                       public Component getListCellRendererComponent(
-                                       JList<? extends T> list, T item, int index,
-                                       boolean isSelected, boolean cellHasFocus) {
+                       public Component getListCellRendererComponent(JList list,
+                                       Object item, int index, boolean isSelected,
+                                       boolean cellHasFocus) {
                                if (item instanceof Hoverable) {
                                        Hoverable hoverable = (Hoverable) item;
                                        hoverable.setSelected(isSelected);
                                        hoverable.setHovered(model.isHovered(index));
                                }
 
-                               return item;
+                               return (Component) item;
                        }
                };
        }