public void testModelChanged(TestModelChange change) { switch (change.getKind()) { case TestModelChange.INSERT: doInsert(change); break; case TestModelChange.REMOVE: doRemove(change); break; case TestModelChange.STRUCTURE_CHANGE: doStructureChange(change); break; case TestModelChange.NON_STRUCTURE_CHANGE: doNonStructureChange(change); break; default: throw new IllegalArgumentException("Unknown kind of change"); } StructuredSelection selection = new StructuredSelection(change.getChildren()); if ((change.getModifiers() & TestModelChange.SELECT) != 0) { ((StructuredViewer) fViewer).setSelection(selection); } if ((change.getModifiers() & TestModelChange.REVEAL) != 0) { Object element = selection.getFirstElement(); if (element != null) { ((StructuredViewer) fViewer).reveal(element); } } }
protected void doRemove(TestModelChange change) { if (fViewer instanceof ListViewer) { ((ListViewer) fViewer).remove(change.getChildren()); } else if (fViewer instanceof TableViewer) { ((TableViewer) fViewer).remove(change.getChildren()); } else if (fViewer instanceof AbstractTreeViewer) { ((AbstractTreeViewer) fViewer).remove(change.getChildren()); } else if (fViewer instanceof ComboViewer) { ((ComboViewer) fViewer).remove(change.getChildren()); } else { Assert.isTrue(false, "Unknown kind of viewer"); } }
protected void doStructureChange(TestModelChange change) { if (fViewer instanceof StructuredViewer) { ((StructuredViewer) fViewer).refresh(change.getParent()); } else { Assert.isTrue(false, "Unknown kind of viewer"); } }
protected void doNonStructureChange(TestModelChange change) { if (fViewer instanceof StructuredViewer) { ((StructuredViewer) fViewer) .update(change.getParent(), new String[] {IBasicPropertyConstants.P_TEXT}); } else { Assert.isTrue(false, "Unknown kind of viewer"); } }
protected void doInsert(TestModelChange change) { if (fViewer instanceof ListViewer) { if (change.getParent() != null && change.getParent().equals(fViewer.getInput())) { ((ListViewer) fViewer).add(change.getChildren()); } } else if (fViewer instanceof TableViewer) { if (change.getParent() != null && change.getParent().equals(fViewer.getInput())) { ((TableViewer) fViewer).add(change.getChildren()); } } else if (fViewer instanceof AbstractTreeViewer) { ((AbstractTreeViewer) fViewer).add(change.getParent(), change.getChildren()); } else if (fViewer instanceof ComboViewer) { ((ComboViewer) fViewer).add(change.getChildren()); } else { Assert.isTrue(false, "Unknown kind of viewer"); } }