01: /*******************************************************************************
02: * Copyright (c) 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.ui.editor.toc;
11:
12: import java.util.List;
13:
14: import org.eclipse.jface.viewers.ILabelProvider;
15: import org.eclipse.pde.internal.core.text.toc.TocModel;
16: import org.eclipse.pde.internal.core.text.toc.TocObject;
17: import org.eclipse.pde.internal.core.util.PDETextHelper;
18: import org.eclipse.pde.internal.ui.editor.FormOutlinePage;
19: import org.eclipse.pde.internal.ui.editor.PDEFormEditor;
20:
21: /**
22: * TocFormOutlinePage
23: *
24: */
25: public class TocFormOutlinePage extends FormOutlinePage {
26: /**
27: * @param editor
28: */
29: public TocFormOutlinePage(PDEFormEditor editor) {
30: super (editor);
31: }
32:
33: /**
34: * TocLabelProvider
35: *
36: */
37: private class TocLabelProvider extends BasicLabelProvider {
38: public String getText(Object obj) {
39: if (obj instanceof TocObject) {
40: return getObjectText((TocObject) obj);
41: }
42: return super .getText(obj);
43: }
44: }
45:
46: /**
47: * @param obj
48: * @return
49: */
50: protected String getObjectText(TocObject obj) {
51: return PDETextHelper.translateReadText(obj.getName());
52: }
53:
54: /* (non-Javadoc)
55: * @see org.eclipse.pde.internal.ui.editor.FormOutlinePage#getChildren(java.lang.Object)
56: */
57: protected Object[] getChildren(Object parent) {
58: if (parent instanceof TocPage) {
59: TocModel toc = (TocModel) fEditor.getAggregateModel();
60: if (toc != null && toc.isLoaded()) {
61: Object[] list = new Object[1];
62: list[0] = toc.getToc();
63: return list;
64: }
65: } else if (parent instanceof TocObject) {
66: List list = ((TocObject) parent).getChildren();
67: // List is never null
68: if (list.size() > 0) {
69: return list.toArray();
70: }
71: }
72:
73: return super .getChildren(parent);
74: }
75:
76: /* (non-Javadoc)
77: * @see org.eclipse.pde.internal.ui.editor.FormOutlinePage#createLabelProvider()
78: */
79: public ILabelProvider createLabelProvider() {
80: return new TocLabelProvider();
81: }
82:
83: /* (non-Javadoc)
84: * @see org.eclipse.pde.internal.ui.editor.FormOutlinePage#getParentPageId(java.lang.Object)
85: */
86: protected String getParentPageId(Object item) {
87: return TocPage.PAGE_ID;
88: }
89: }
|