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