ListModel.java
上传用户:haobig99
上传日期:2022-06-15
资源大小:369k
文件大小:4k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
  3.  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4.  *
  5.  * This code is free software; you can redistribute it and/or modify it
  6.  * under the terms of the GNU General Public License version 2 only, as
  7.  * published by the Free Software Foundation.  Sun designates this
  8.  * particular file as subject to the "Classpath" exception as provided
  9.  * by Sun in the LICENSE file that accompanied this code.
  10.  *
  11.  * This code is distributed in the hope that it will be useful, but WITHOUT
  12.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14.  * version 2 for more details (a copy is included in the LICENSE file that
  15.  * accompanied this code).
  16.  *
  17.  * You should have received a copy of the GNU General Public License version
  18.  * 2 along with this work; if not, write to the Free Software Foundation,
  19.  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20.  *
  21.  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22.  * CA 95054 USA or visit www.sun.com if you need additional information or
  23.  * have any questions.
  24.  */
  25. package com.sun.lwuit.list;
  26. import com.sun.lwuit.events.DataChangedListener;
  27. import com.sun.lwuit.events.SelectionListener;
  28. /**
  29.  * Represents the data structure of the list, thus allowing a list to
  30.  * represent any potential data source by referencing different implementations of this
  31.  * interface. E.g. a list model can be implemented in such a way that it retrieves data
  32.  * directly from storage (although caching would be recommended).
  33.  * <p>It is the responsibility of the list to notify observers (specifically the view 
  34.  * {@link com.sun.lwuit.List} of any changes to its state (items removed/added/changed etc.)
  35.  * thus the data would get updated on the view.
  36.  * 
  37.  * @author Chen Fishbein
  38.  */
  39. public interface ListModel {
  40.     
  41.     /**
  42.      * Returns the item at the given offset
  43.      * @param index an index into this list
  44.      * @return the item at the specified index
  45.      */
  46.     public Object getItemAt(int index);
  47.     
  48.     /**
  49.      * Returns the number of items in the list
  50.      * @return the number of items in the list
  51.      */
  52.     public int getSize();
  53.     
  54.     /**
  55.      * Returns the selected list offset
  56.      * 
  57.      * @return the selected list index
  58.      */
  59.     public int getSelectedIndex();
  60.     /**
  61.      * Sets the selected list offset can be set to -1 to clear selection
  62.      * @param index an index into this list
  63.      */
  64.     public void setSelectedIndex(int index);
  65.     
  66.     /**
  67.      * Invoked to indicate interest in future change events
  68.      * @param l a data changed listener
  69.      */
  70.     public void addDataChangedListener(DataChangedListener l);
  71.     
  72.     /**
  73.      * Invoked to indicate no further interest in future change events
  74.      * @param l a data changed listener 
  75.      */
  76.     public void removeDataChangedListener(DataChangedListener l);
  77.     
  78.     /**
  79.      * Invoked to indicate interest in future selection events
  80.      * @param l a selection listener
  81.      */
  82.     public void addSelectionListener(SelectionListener l);
  83.     
  84.     /**
  85.      * Invoked to indicate no further interest in future selection events
  86.      * @param l a selection listener
  87.      */
  88.     public void removeSelectionListener(SelectionListener l);
  89.     
  90.     /**
  91.      * Adds the specified item to the end of this list.
  92.      * An optional operation for mutable lists, it can throw an unsupported operation
  93.      * exception if a list model is not mutable.
  94.      * @param item the item to be added
  95.      */
  96.     public void addItem(Object item);
  97.     
  98.     /**
  99.      * Removes the item at the specified position in this list.
  100.      * @param index the index of the item to removed
  101.      */
  102.     public void removeItem(int index);
  103. }