private void updateItems(final FileInfo parent) { if (fDisplay == null) return; assert Thread.currentThread() == fDisplay.getThread(); TreeItem[] items = null; boolean expanded = true; if (parent.children == null || parent.children_error != null) { if (parent == fRootInfo) { fileTree.setItemCount(1); items = fileTree.getItems(); } else { TreeItem item = findItem(parent); if (item == null) return; expanded = item.getExpanded(); item.setItemCount(1); items = item.getItems(); } assert items.length == 1; items[0].removeAll(); if (parent.children_pending) { items[0].setForeground(fDisplay.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); items[0].setText("Pending..."); } else if (parent.children_error != null) { String msg = parent.children_error.getMessage(); if (msg == null) msg = parent.children_error.getClass().getName(); else msg = msg.replace('\n', ' '); items[0].setForeground(fDisplay.getSystemColor(SWT.COLOR_RED)); items[0].setText(msg); items[0].setImage((Image) null); } else if (expanded) { loadChildren(parent); items[0].setForeground(fDisplay.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); items[0].setText("Pending..."); } else { items[0].setText(""); } } else { FileInfo[] arr = parent.children; if (parent == fRootInfo) { fileTree.setItemCount(arr.length); items = fileTree.getItems(); } else { TreeItem item = findItem(parent); if (item == null) return; expanded = item.getExpanded(); item.setItemCount(expanded ? arr.length : 1); items = item.getItems(); } if (expanded) { assert items.length == arr.length; for (int i = 0; i < items.length; i++) fillItem(items[i], arr[i]); expandSelect(); } else { items[0].setText(""); } } }
private void fillItem(TreeItem item, FileInfo info) { assert Thread.currentThread() == fDisplay.getThread(); Object data = item.getData("TCFContextInfo"); if (data != null && data != info) item.removeAll(); item.setData("TCFContextInfo", info); String text = info.name != null ? info.name : info.fullname; item.setText(text); item.setForeground(fDisplay.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); item.setImage(getImage(info)); if (!canHaveChildren(info)) item.setItemCount(0); else if (info.children == null || info.children_error != null) item.setItemCount(1); else item.setItemCount(info.children.length); }
private void fillItem(TreeItem item, ContactInfo info) { item.setText(1, Integer.toString(info.getContactId())); item.setText(2, info.getNumber()); item.setText(3, info.getName()); item.setText(4, info.getSex()); item.setText(5, info.getJob()); item.setText(6, info.getPostTimeBegin() + " 至 " + info.getPostTimeEnd()); item.setText(7, info.getCardId()); item.setText(8, info.getPhoto()); item.setText(9, info.getPhone()); item.setText(10, info.getFax()); item.setText(11, info.getEmail()); item.setData(info); item.setItemCount(0); }