javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/ListBox.java
changeset 26 dc7c549001d5
parent 21 2a9601315dfc
child 35 85266cc22c7f
--- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/ListBox.java	Fri May 14 15:47:24 2010 +0300
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/ListBox.java	Thu May 27 12:49:31 2010 +0300
@@ -200,7 +200,7 @@
     private Font headingFont;
     private Image[][] detailImages;
     private Image[][] headingImages;
-
+    private ListBoxItem []items;
     /**
      * single line item, 1 column (default)
      */
@@ -705,6 +705,9 @@
         checkWidget();
         if (index < 0 || index >= listBase_getItemCount())
             SWT.error(SWT.ERROR_INVALID_RANGE);
+        if(items[index]==null){
+        	OS.ListModel_setItemContentsToNull(dataModelHandle, index);
+        }
         int indexHandle = OS.QAbstractItemModel_index(dataModelHandle, index,
                 0, 0);
         OS.QAbstractItemView_update(topHandle(), indexHandle);
@@ -1426,7 +1429,7 @@
             detailImages = null;
             return;
         }
-
+        this.items = items;
         headingImages = new Image[count][];
         detailImages = new Image[count][];
         OS.ListModel_beginInsertRows(dataModelHandle, 0, 0, count - 1);
@@ -1434,7 +1437,7 @@
         int[] headingImageHandles;
         int imageCount;
         for (int i = 0; i < count; i++) {
-            if (items[i].detailIcons != null) {
+            if (items[i]!=null && items[i].detailIcons != null) {
                 imageCount = items[i].detailIcons.length;
                 detailImageHandles = new int[imageCount];
                 for (int j = 0; j < imageCount; j++) {
@@ -1444,7 +1447,7 @@
                 detailImageHandles = null;
             }
 
-            if (items[i].headingIcons != null) {
+            if ( items[i]!=null && items[i].headingIcons != null) {
                 imageCount = items[i].headingIcons.length;
                 headingImageHandles = new int[imageCount];
                 for (int j = 0; j < imageCount; j++) {
@@ -1453,14 +1456,22 @@
             } else {
                 headingImageHandles = null;
             }
-            OS.ListModel_append(dataModelHandle, items[i].detailText,
+            if(items[i]!=null){
+            	OS.ListModel_append(dataModelHandle, items[i].detailText,
                     detailImageHandles,
                     detailImageHandles != null ? detailImageHandles.length : 0,
                     items[i].headingText, headingImageHandles,
                     headingImageHandles != null ? headingImageHandles.length
                             : 0);
-            headingImages[i] = items[i].getHeadingIcons();
-            detailImages[i] = items[i].getDetailIcons();
+            	headingImages[i] = items[i].getHeadingIcons();
+            	detailImages[i] = items[i].getDetailIcons();
+        	} else {
+        		OS.ListModel_append(dataModelHandle, null, detailImageHandles,
+                        detailImageHandles != null ? detailImageHandles.length : 0,
+                        null, headingImageHandles, headingImageHandles != null ? headingImageHandles.length : 0);
+        		headingImages[i] = null;
+            	detailImages[i] = null;
+        	}
         }
         OS.ListModel_endInsertRows(dataModelHandle);
     }