1 package sourceforge.org.qmc2.options.editor.ui; 2 3 import org.eclipse.jface.viewers.ITreeContentProvider; 4 import org.eclipse.jface.viewers.Viewer; 5 6 import sourceforge.org.qmc2.options.editor.model.DescriptableItem; 7 import sourceforge.org.qmc2.options.editor.model.QMC2TemplateFile; 8 import sourceforge.org.qmc2.options.editor.model.Section; 9 10 public class QMC2ContentProvider implements ITreeContentProvider { 11 12 @Override dispose()13 public void dispose() { 14 // do nothing 15 16 } 17 18 @Override inputChanged(Viewer viewer, Object oldInput, Object newInput)19 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 20 21 } 22 23 @Override getElements(Object inputElement)24 public Object[] getElements(Object inputElement) { 25 26 if (inputElement instanceof QMC2TemplateFile) { 27 return ((QMC2TemplateFile) inputElement).getSections().toArray(); 28 } else if (inputElement instanceof Section) { 29 return ((Section) inputElement).getOptions().toArray(); 30 } 31 32 return null; 33 34 } 35 36 @Override getChildren(Object parentElement)37 public Object[] getChildren(Object parentElement) { 38 return getElements(parentElement); 39 } 40 41 @Override getParent(Object element)42 public Object getParent(Object element) { 43 if (element instanceof DescriptableItem) { 44 return ((DescriptableItem) element).getParent(); 45 } 46 return null; 47 } 48 49 @Override hasChildren(Object element)50 public boolean hasChildren(Object element) { 51 if (element instanceof QMC2TemplateFile) { 52 return ((QMC2TemplateFile) element).getSections().size() > 0; 53 } else if (element instanceof Section) { 54 return ((Section) element).getOptions().size() > 0; 55 } 56 return false; 57 } 58 59 } 60