mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
2004-08-04 Alain Magloire
Implementation of Grouping for includes. * src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java * src/org/eclipse/cdt/internal/ui/ICHelpContextIds.java * src/org/eclipse/cdt/internal/ui/cview/CView.java * src/org/eclipse/cdt/internal/ui/cview/CViewContentProvider.java * src/org/eclipse/cdt/internal/ui/cview/IncludeRefContainer.java * src/org/eclipse/cdt/internal/ui/cview/LibraryRefContainer.java * src/org/eclipse/cdt/internal/ui/editor/CContentOutlinerProvider.java * src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java * src/org/eclipse/cdt/internal/ui/preferences/CPluginPreferencePage.java * src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties * src/org/eclipse/cdt/ui/CElementGrouping.java * src/org/eclipse/cdt/ui/CElementSorter.java * src/org/eclipse/cdt/ui/IncludesGrouping.java * src/org/eclipse/cdt/ui/PreferenceConstants.java
This commit is contained in:
parent
16d71675fa
commit
e4e81a75b2
17 changed files with 484 additions and 163 deletions
|
@ -1,3 +1,21 @@
|
|||
2004-08-04 Alain Magloire
|
||||
|
||||
Implementation of Grouping for includes.
|
||||
* src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java
|
||||
* src/org/eclipse/cdt/internal/ui/ICHelpContextIds.java
|
||||
* src/org/eclipse/cdt/internal/ui/cview/CView.java
|
||||
* src/org/eclipse/cdt/internal/ui/cview/CViewContentProvider.java
|
||||
* src/org/eclipse/cdt/internal/ui/cview/IncludeRefContainer.java
|
||||
* src/org/eclipse/cdt/internal/ui/cview/LibraryRefContainer.java
|
||||
* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinerProvider.java
|
||||
* src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java
|
||||
* src/org/eclipse/cdt/internal/ui/preferences/CPluginPreferencePage.java
|
||||
* src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties
|
||||
* src/org/eclipse/cdt/ui/CElementGrouping.java
|
||||
* src/org/eclipse/cdt/ui/CElementSorter.java
|
||||
* src/org/eclipse/cdt/ui/IncludesGrouping.java
|
||||
* src/org/eclipse/cdt/ui/PreferenceConstants.java
|
||||
|
||||
2004-08-03 Tanya Wolff
|
||||
|
||||
Fix for 71033: English "Find Refs" in Workbench Key preferences.
|
||||
|
|
|
@ -236,4 +236,5 @@ annotationHoverDescription= Shows the description of the selected annotation.
|
|||
problemHover= Problem Description
|
||||
problemHoverDescription= Shows the description of the selected problem.
|
||||
|
||||
|
||||
#
|
||||
appearancePrefName= Appearance
|
||||
|
|
|
@ -403,6 +403,12 @@
|
|||
category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
|
||||
name="%CDTSearch.name"
|
||||
id="org.eclipse.cdt.ui.preferences.CSearchPreferencePage"/>
|
||||
<page
|
||||
name="%appearancePrefName"
|
||||
category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
|
||||
class="org.eclipse.cdt.internal.ui.preferences.AppearancePreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferences.AppearancePreferencePage">
|
||||
</page>
|
||||
<!--page
|
||||
name="%WorkInProgress.name"
|
||||
category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
|
||||
|
|
|
@ -22,7 +22,9 @@ import org.eclipse.cdt.core.model.IParent;
|
|||
import org.eclipse.cdt.core.model.ISourceRoot;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.core.model.IWorkingCopy;
|
||||
import org.eclipse.cdt.ui.CElementGrouping;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.IncludesGrouping;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
@ -57,15 +59,17 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
|
||||
protected boolean fProvideMembers= false;
|
||||
protected boolean fProvideWorkingCopy= false;
|
||||
protected boolean fIncludesGrouping= false;
|
||||
|
||||
public BaseCElementContentProvider() {
|
||||
this(false, false);
|
||||
}
|
||||
|
||||
public BaseCElementContentProvider(boolean provideMembers, boolean provideWorkingCopy) {
|
||||
fProvideMembers= provideMembers;
|
||||
fProvideMembers= provideMembers;
|
||||
fProvideWorkingCopy= provideWorkingCopy;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns whether the members are provided when asking
|
||||
* for a TU's or ClassFile's children.
|
||||
|
@ -98,13 +102,22 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return fProvideWorkingCopy;
|
||||
}
|
||||
|
||||
/* (non-Cdoc)
|
||||
* Method declared on IStructuredContentProvider.
|
||||
/**
|
||||
* Can elements be group.
|
||||
* @return
|
||||
*/
|
||||
public Object[] getElements(Object parent) {
|
||||
return getChildren(parent);
|
||||
public boolean areIncludesGroup() {
|
||||
return fIncludesGrouping;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allow Elements to be group.
|
||||
* @param b
|
||||
*/
|
||||
public void setIncludesGrouping(boolean b) {
|
||||
fIncludesGrouping = b;
|
||||
}
|
||||
|
||||
/* (non-Cdoc)
|
||||
* Method declared on IContentProvider.
|
||||
*/
|
||||
|
@ -117,6 +130,13 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
public void dispose() {
|
||||
}
|
||||
|
||||
/* (non-Cdoc)
|
||||
* Method declared on IStructuredContentProvider.
|
||||
*/
|
||||
public Object[] getElements(Object parent) {
|
||||
return getChildren(parent);
|
||||
}
|
||||
|
||||
/* (non-Cdoc)
|
||||
* Method declared on ITreeContentProvider.
|
||||
*/
|
||||
|
@ -131,26 +151,22 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return getSourceRoots((ICProject)element);
|
||||
} else if (element instanceof ICContainer) {
|
||||
return getCResources((ICContainer)element);
|
||||
} else if (element instanceof IBinaryContainer) {
|
||||
return NO_CHILDREN; // we deal with this in the CVIewContentProvider
|
||||
} else if (element instanceof IArchiveContainer) {
|
||||
return NO_CHILDREN; // we deal with this in the CViewContentProvider
|
||||
} else if (element instanceof ITranslationUnit) {
|
||||
// if we want to get the chidren of a translation unit
|
||||
if (fProvideMembers) {
|
||||
// if we want to use the working copy of it
|
||||
if(fProvideWorkingCopy){
|
||||
ITranslationUnit tu = (ITranslationUnit)element;
|
||||
if (fProvideWorkingCopy){
|
||||
// if it is not already a working copy
|
||||
if(!(element instanceof IWorkingCopy)){
|
||||
if (!(element instanceof IWorkingCopy)){
|
||||
// if it has a valid working copy
|
||||
ITranslationUnit tu = (ITranslationUnit)element;
|
||||
IWorkingCopy copy = tu.findSharedWorkingCopy(CUIPlugin.getDefault().getBufferFactory());
|
||||
if(copy != null) {
|
||||
return ((IParent)copy).getChildren();
|
||||
if (copy != null) {
|
||||
tu = copy;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ((IParent)element).getChildren();
|
||||
return getTranslationUnitChildren(tu);
|
||||
}
|
||||
} else if (element instanceof IParent) {
|
||||
return ((IParent)element).getChildren();
|
||||
|
@ -158,6 +174,8 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return getResources((IProject)element);
|
||||
} else if (element instanceof IFolder) {
|
||||
return getResources((IFolder)element);
|
||||
} else if (element instanceof CElementGrouping) {
|
||||
return ((CElementGrouping)element).getChildren(element);
|
||||
}
|
||||
} catch (CModelException e) {
|
||||
//CUIPlugin.getDefault().log(e);
|
||||
|
@ -192,16 +210,6 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (element instanceof IBinaryContainer) {
|
||||
try {
|
||||
IBinaryContainer cont = (IBinaryContainer)element;
|
||||
IBinary[] bins = getExecutables(cont);
|
||||
return (bins != null) && bins.length > 0;
|
||||
} catch (CModelException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (element instanceof IParent) {
|
||||
// when we have C children return true, else we fetch all the children
|
||||
if (((IParent)element).hasChildren()) {
|
||||
|
@ -297,6 +305,26 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return objects;
|
||||
}
|
||||
|
||||
protected Object[] getTranslationUnitChildren(ITranslationUnit unit) throws CModelException {
|
||||
if (fIncludesGrouping) {
|
||||
boolean hasInclude = false;
|
||||
ICElement[] children = unit.getChildren();
|
||||
ArrayList list = new ArrayList(children.length);
|
||||
for (int i = 0; i < children.length; i++) {
|
||||
if (children[i].getElementType() != ICElement.C_INCLUDE) {
|
||||
list.add(children[i]);
|
||||
} else {
|
||||
hasInclude = true;
|
||||
}
|
||||
}
|
||||
if (hasInclude) {
|
||||
list.add (0, new IncludesGrouping(unit));
|
||||
}
|
||||
return list.toArray();
|
||||
}
|
||||
return unit.getChildren();
|
||||
}
|
||||
|
||||
protected Object[] getCResources(ICContainer container) throws CModelException {
|
||||
Object[] objects = null;
|
||||
Object[] children = container.getChildren();
|
||||
|
@ -419,27 +447,6 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
|
|||
return true;
|
||||
}
|
||||
|
||||
protected IBinary[] getExecutables(ICProject cproject) throws CModelException {
|
||||
IBinaryContainer container = cproject.getBinaryContainer();
|
||||
return getExecutables(container);
|
||||
}
|
||||
|
||||
protected IBinary[] getExecutables(IBinaryContainer container) throws CModelException {
|
||||
ICElement[] celements = container.getChildren();
|
||||
ArrayList list = new ArrayList(celements.length);
|
||||
for (int i = 0; i < celements.length; i++) {
|
||||
if (celements[i] instanceof IBinary) {
|
||||
IBinary bin = (IBinary)celements[i];
|
||||
if (bin.isExecutable() || bin.isSharedLib()) {
|
||||
list.add(bin);
|
||||
}
|
||||
}
|
||||
}
|
||||
IBinary[] bins = new IBinary[list.size()];
|
||||
list.toArray(bins);
|
||||
return bins;
|
||||
}
|
||||
|
||||
protected IBinary[] getBinaries(ICProject cproject) throws CModelException {
|
||||
IBinaryContainer container = cproject.getBinaryContainer();
|
||||
return getBinaries(container);
|
||||
|
|
|
@ -68,6 +68,8 @@ public interface ICHelpContextIds {
|
|||
public static final String PROJECT_REFERENCES = PREFIX + "std_prop_references"; //$NON-NLS-1$
|
||||
public static final String PROJECT_INCLUDE_PATHS_SYMBOLS = PREFIX + "std_prop_include"; //$NON-NLS-1$
|
||||
|
||||
public static final String APPEARANCE_PREFERENCE_PAGE = PREFIX + "appearance_preference_page_context";
|
||||
|
||||
// Console view
|
||||
public static final String CLEAR_CONSOLE_ACTION = PREFIX + "clear_console_action_context"; //$NON-NLS-1$
|
||||
public static final String CLEAR_CONSOLE_VIEW = PREFIX + "clear_console_view_context"; //$NON-NLS-1$
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.eclipse.cdt.internal.ui.preferences.CPluginPreferencePage;
|
|||
import org.eclipse.cdt.internal.ui.util.EditorUtility;
|
||||
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
|
||||
import org.eclipse.cdt.ui.CElementContentProvider;
|
||||
import org.eclipse.cdt.ui.CElementLabelProvider;
|
||||
import org.eclipse.cdt.ui.CElementSorter;
|
||||
import org.eclipse.cdt.ui.CLocalSelectionTransfer;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
@ -52,6 +51,7 @@ import org.eclipse.jface.util.IPropertyChangeListener;
|
|||
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||
import org.eclipse.jface.viewers.DecoratingLabelProvider;
|
||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||
import org.eclipse.jface.viewers.IContentProvider;
|
||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||
import org.eclipse.jface.viewers.ILabelDecorator;
|
||||
import org.eclipse.jface.viewers.ILabelProvider;
|
||||
|
@ -408,7 +408,7 @@ public class CView extends ViewPart implements ISetSelectionTarget, IPropertyCha
|
|||
* Sets the content provider for the viewer.
|
||||
*/
|
||||
void initContentProvider(TreeViewer viewer) {
|
||||
CElementContentProvider provider = createContentProvider();
|
||||
IContentProvider provider = createContentProvider();
|
||||
viewer.setContentProvider(provider);
|
||||
}
|
||||
|
||||
|
@ -557,12 +557,15 @@ public class CView extends ViewPart implements ISetSelectionTarget, IPropertyCha
|
|||
return new ProblemTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
||||
}
|
||||
|
||||
protected CElementContentProvider createContentProvider() {
|
||||
boolean showCUChildren = CPluginPreferencePage.showCompilationUnitChildren();
|
||||
return new CViewContentProvider(showCUChildren, true);
|
||||
protected IContentProvider createContentProvider() {
|
||||
boolean showCUChildren = PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_CU_CHILDREN);
|
||||
boolean groupIncludes = PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.CVIEW_GROUP_INCLUDES);
|
||||
CViewContentProvider provider = new CViewContentProvider(showCUChildren, true);
|
||||
provider.setIncludesGrouping(groupIncludes);
|
||||
return provider;
|
||||
}
|
||||
|
||||
protected CElementLabelProvider createLabelProvider() {
|
||||
protected ILabelProvider createLabelProvider() {
|
||||
return new CViewLabelProvider();
|
||||
}
|
||||
|
||||
|
@ -809,8 +812,11 @@ public class CView extends ViewPart implements ISetSelectionTarget, IPropertyCha
|
|||
String property = event.getProperty();
|
||||
|
||||
if (property.equals(PreferenceConstants.PREF_SHOW_CU_CHILDREN)) {
|
||||
boolean showCUChildren = CPluginPreferencePage.showCompilationUnitChildren();
|
||||
((CElementContentProvider) viewer.getContentProvider()).setProvideMembers(showCUChildren);
|
||||
boolean showCUChildren = PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_CU_CHILDREN);
|
||||
IContentProvider provider = viewer.getContentProvider();
|
||||
if (provider instanceof CElementContentProvider) {
|
||||
((CElementContentProvider) provider).setProvideMembers(showCUChildren);
|
||||
}
|
||||
refreshViewer = true;
|
||||
} else if (property.equals(PreferenceConstants.PREF_LINK_TO_EDITOR)) {
|
||||
CViewActionGroup group = getActionGroup();
|
||||
|
@ -818,6 +824,13 @@ public class CView extends ViewPart implements ISetSelectionTarget, IPropertyCha
|
|||
boolean enable = isLinkingEnabled();
|
||||
((MainActionGroup)group).toggleLinkingAction.setChecked(enable);
|
||||
}
|
||||
} else if (property.equals(PreferenceConstants.CVIEW_GROUP_INCLUDES)) {
|
||||
boolean groupIncludes = PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.CVIEW_GROUP_INCLUDES);
|
||||
IContentProvider provider = viewer.getContentProvider();
|
||||
if (provider instanceof CElementContentProvider) {
|
||||
((CElementContentProvider) provider).setIncludesGrouping(groupIncludes);
|
||||
}
|
||||
refreshViewer = true;
|
||||
}
|
||||
|
||||
if (refreshViewer) {
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
package org.eclipse.cdt.internal.ui.cview;
|
||||
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.IArchive;
|
||||
import org.eclipse.cdt.core.model.IArchiveContainer;
|
||||
import org.eclipse.cdt.core.model.IBinary;
|
||||
import org.eclipse.cdt.core.model.IBinaryContainer;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.model.IIncludeReference;
|
||||
|
@ -36,6 +38,7 @@ public class CViewContentProvider extends CElementContentProvider {
|
|||
*/
|
||||
public CViewContentProvider(boolean provideMembers, boolean provideWorkingCopy) {
|
||||
super(provideMembers, provideWorkingCopy);
|
||||
setIncludesGrouping(true);
|
||||
}
|
||||
|
||||
|
||||
|
@ -49,7 +52,7 @@ public class CViewContentProvider extends CElementContentProvider {
|
|||
if (element instanceof ICProject) {
|
||||
extras = getProjectChildren((ICProject)element);
|
||||
} else if (element instanceof IBinaryContainer) {
|
||||
extras = getExecutables((IBinaryContainer)element);
|
||||
extras = getBinaries((IBinaryContainer)element);
|
||||
} else if (element instanceof IArchiveContainer) {
|
||||
extras = getArchives((IArchiveContainer)element);
|
||||
} else if (element instanceof LibraryRefContainer) {
|
||||
|
@ -76,7 +79,7 @@ public class CViewContentProvider extends CElementContentProvider {
|
|||
extras = new Object[] {archive};
|
||||
}
|
||||
IBinaryContainer bin = cproject.getBinaryContainer();
|
||||
if (getExecutables(bin).length > 0) {
|
||||
if (getBinaries(bin).length > 0) {
|
||||
Object[] o = new Object[] {bin};
|
||||
if (extras != null && extras.length > 0) {
|
||||
extras = concatenate(extras, o);
|
||||
|
@ -130,4 +133,27 @@ public class CViewContentProvider extends CElementContentProvider {
|
|||
}
|
||||
return parent;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
|
||||
*/
|
||||
public boolean hasChildren(Object element) {
|
||||
if (element instanceof IBinaryContainer) {
|
||||
try {
|
||||
IBinaryContainer cont = (IBinaryContainer)element;
|
||||
IBinary[] bins = getBinaries(cont);
|
||||
return (bins != null) && bins.length > 0;
|
||||
} catch (CModelException e) {
|
||||
return false;
|
||||
}
|
||||
} else if (element instanceof IArchiveContainer) {
|
||||
try {
|
||||
IArchiveContainer cont = (IArchiveContainer)element;
|
||||
IArchive[] ars = getArchives(cont);
|
||||
return (ars != null) && ars.length > 0;
|
||||
} catch (CModelException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return super.hasChildren(element);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@ import org.eclipse.cdt.core.model.CModelException;
|
|||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.model.IIncludeReference;
|
||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||
import org.eclipse.cdt.ui.CElementGrouping;
|
||||
import org.eclipse.core.resources.IContainer;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
||||
|
@ -26,7 +26,7 @@ import org.eclipse.ui.model.IWorkbenchAdapter;
|
|||
/**
|
||||
* IncludeRefContainer
|
||||
*/
|
||||
public class IncludeRefContainer implements IAdaptable, IWorkbenchAdapter{
|
||||
public class IncludeRefContainer extends CElementGrouping {
|
||||
|
||||
private Object[] EMPTY = new Object[0];
|
||||
ICProject fCProject;
|
||||
|
@ -35,6 +35,7 @@ public class IncludeRefContainer implements IAdaptable, IWorkbenchAdapter{
|
|||
*
|
||||
*/
|
||||
public IncludeRefContainer(ICProject cproject) {
|
||||
super(INCLUDE_REF_CONTAINER);
|
||||
fCProject = cproject;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ import org.eclipse.cdt.core.model.CModelException;
|
|||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.model.ILibraryReference;
|
||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||
import org.eclipse.cdt.ui.CElementGrouping;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
||||
|
@ -26,7 +26,7 @@ import org.eclipse.ui.model.IWorkbenchAdapter;
|
|||
/**
|
||||
* VirtualGrouping
|
||||
*/
|
||||
public class LibraryRefContainer implements IAdaptable, IWorkbenchAdapter {
|
||||
public class LibraryRefContainer extends CElementGrouping {
|
||||
|
||||
private Object[] EMPTY = new Object[0];
|
||||
private ICProject fCProject;
|
||||
|
@ -35,6 +35,7 @@ public class LibraryRefContainer implements IAdaptable, IWorkbenchAdapter {
|
|||
*
|
||||
*/
|
||||
public LibraryRefContainer(ICProject cproject) {
|
||||
super(LIBRARY_REF_CONTAINER);
|
||||
fCProject = cproject;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,9 +10,6 @@
|
|||
***********************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.editor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ElementChangedEvent;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
|
@ -20,12 +17,10 @@ import org.eclipse.cdt.core.model.ICElementDelta;
|
|||
import org.eclipse.cdt.core.model.IElementChangedListener;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.internal.ui.BaseCElementContentProvider;
|
||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
||||
import org.eclipse.ui.model.WorkbenchAdapter;
|
||||
|
||||
/*
|
||||
* CContentOutlinerProvider
|
||||
|
@ -35,6 +30,7 @@ public class CContentOutlinerProvider extends BaseCElementContentProvider {
|
|||
CContentOutlinePage fOutliner;
|
||||
ITranslationUnit root;
|
||||
private ElementChangedListener fListener;
|
||||
private IPropertyChangeListener fPropertyListener;
|
||||
|
||||
/**
|
||||
* The element change listener of the java outline viewer.
|
||||
|
@ -98,55 +94,25 @@ public class CContentOutlinerProvider extends BaseCElementContentProvider {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* VirtualGrouping
|
||||
*/
|
||||
public class IncludesContainer extends WorkbenchAdapter implements IAdaptable {
|
||||
ITranslationUnit tu;
|
||||
|
||||
public IncludesContainer(ITranslationUnit unit) {
|
||||
tu = unit;
|
||||
}
|
||||
class PropertyListener implements IPropertyChangeListener {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
|
||||
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
|
||||
*/
|
||||
public Object[] getChildren(Object object) {
|
||||
try {
|
||||
return tu.getChildrenOfType(ICElement.C_INCLUDE).toArray();
|
||||
} catch (CModelException e) {
|
||||
public void propertyChange(PropertyChangeEvent event) {
|
||||
String prop = event.getProperty();
|
||||
if (prop.equals(PreferenceConstants.OUTLINE_GROUP_INCLUDES)) {
|
||||
Object newValue = event.getNewValue();
|
||||
if (newValue instanceof Boolean) {
|
||||
boolean value = ((Boolean)newValue).booleanValue();
|
||||
if (areIncludesGroup() != value) {
|
||||
setIncludesGrouping(value);
|
||||
if (fOutliner != null) {
|
||||
fOutliner.contentUpdated();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return NO_CHILDREN;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
|
||||
*/
|
||||
public String getLabel(Object object) {
|
||||
return "include statements";
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
|
||||
*/
|
||||
public ImageDescriptor getImageDescriptor(Object object) {
|
||||
return CPluginImages.DESC_OBJS_INCCONT;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
|
||||
*/
|
||||
public Object getParent(Object object) {
|
||||
return tu;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
|
||||
*/
|
||||
public Object getAdapter(Class clas) {
|
||||
if (clas == IWorkbenchAdapter.class)
|
||||
return this;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -157,40 +123,7 @@ public class CContentOutlinerProvider extends BaseCElementContentProvider {
|
|||
public CContentOutlinerProvider(CContentOutlinePage outliner) {
|
||||
super(true, true);
|
||||
fOutliner = outliner;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
|
||||
*/
|
||||
public Object[] getChildren(Object element) {
|
||||
if (element instanceof ITranslationUnit) {
|
||||
ITranslationUnit unit = (ITranslationUnit)element;
|
||||
try {
|
||||
if (fOutliner != null && fOutliner.isIncludesGroupingEnabled()) {
|
||||
boolean hasInclude = false;
|
||||
ICElement[] children = unit.getChildren();
|
||||
ArrayList list = new ArrayList(children.length);
|
||||
for (int i = 0; i < children.length; i++) {
|
||||
if (children[i].getElementType() != ICElement.C_INCLUDE) {
|
||||
list.add(children[i]);
|
||||
} else {
|
||||
hasInclude = true;
|
||||
}
|
||||
}
|
||||
if (hasInclude) {
|
||||
list.add (0, new IncludesContainer(unit));
|
||||
}
|
||||
return list.toArray();
|
||||
}
|
||||
} catch (CModelException e) {
|
||||
return NO_CHILDREN;
|
||||
}
|
||||
|
||||
} else if (element instanceof IncludesContainer) {
|
||||
IncludesContainer includes = (IncludesContainer)element;
|
||||
return includes.getChildren(element);
|
||||
}
|
||||
return super.getChildren(element);
|
||||
setIncludesGrouping(PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES));
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -201,7 +134,11 @@ public class CContentOutlinerProvider extends BaseCElementContentProvider {
|
|||
if (fListener != null) {
|
||||
CoreModel.getDefault().removeElementChangedListener(fListener);
|
||||
fListener= null;
|
||||
}
|
||||
}
|
||||
if (fPropertyListener != null) {
|
||||
PreferenceConstants.getPreferenceStore().removePropertyChangeListener(fPropertyListener);
|
||||
fPropertyListener = null;
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -211,9 +148,11 @@ public class CContentOutlinerProvider extends BaseCElementContentProvider {
|
|||
boolean isTU= (newInput instanceof ITranslationUnit);
|
||||
|
||||
if (isTU && fListener == null) {
|
||||
root = (ITranslationUnit)newInput;
|
||||
fListener= new ElementChangedListener();
|
||||
CoreModel.getDefault().addElementChangedListener(fListener);
|
||||
root = (ITranslationUnit)newInput;
|
||||
fPropertyListener = new PropertyListener();
|
||||
PreferenceConstants.getPreferenceStore().addPropertyChangeListener(fPropertyListener);
|
||||
} else if (!isTU && fListener != null) {
|
||||
CoreModel.getDefault().removeElementChangedListener(fListener);
|
||||
fListener= null;
|
||||
|
|
|
@ -0,0 +1,169 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.preferences;
|
||||
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
|
||||
import org.eclipse.jface.dialogs.Dialog;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.jface.resource.JFaceResources;
|
||||
|
||||
import org.eclipse.ui.IWorkbench;
|
||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||
import org.eclipse.ui.help.WorkbenchHelp;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
|
||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.DialogField;
|
||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
|
||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
|
||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.Separator;
|
||||
|
||||
public class AppearancePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
|
||||
|
||||
private static final String SHOW_TU_CHILDREN= PreferenceConstants.PREF_SHOW_CU_CHILDREN;
|
||||
private static final String OUTLINE_GROUP_INCLUDES = PreferenceConstants.OUTLINE_GROUP_INCLUDES;
|
||||
private static final String CVIEW_GROUP_INCLUDES = PreferenceConstants.CVIEW_GROUP_INCLUDES;
|
||||
|
||||
private SelectionButtonDialogField fShowTUChildren;
|
||||
private SelectionButtonDialogField fOutlineGroupIncludes;
|
||||
private SelectionButtonDialogField fCViewGroupIncludes;
|
||||
|
||||
public AppearancePreferencePage() {
|
||||
setPreferenceStore(PreferenceConstants.getPreferenceStore());
|
||||
setDescription(PreferencesMessages.getString("AppearancePreferencePage.description")); //$NON-NLS-1$
|
||||
|
||||
IDialogFieldListener listener= new IDialogFieldListener() {
|
||||
public void dialogFieldChanged(DialogField field) {
|
||||
doDialogFieldChanged(field);
|
||||
}
|
||||
};
|
||||
|
||||
fShowTUChildren= new SelectionButtonDialogField(SWT.CHECK);
|
||||
fShowTUChildren.setDialogFieldListener(listener);
|
||||
fShowTUChildren.setLabelText(PreferencesMessages.getString("AppearancePreferencePage.showTUChildren.label")); //$NON-NLS-1$
|
||||
|
||||
fOutlineGroupIncludes= new SelectionButtonDialogField(SWT.CHECK);
|
||||
fOutlineGroupIncludes.setDialogFieldListener(listener);
|
||||
fOutlineGroupIncludes.setLabelText(PreferencesMessages.getString("AppearancePreferencePage.outlineGroupIncludes.label")); //$NON-NLS-1$
|
||||
|
||||
fCViewGroupIncludes= new SelectionButtonDialogField(SWT.CHECK);
|
||||
fCViewGroupIncludes.setDialogFieldListener(listener);
|
||||
fCViewGroupIncludes.setLabelText(PreferencesMessages.getString("AppearancePreferencePage.cviewGroupIncludes.label")); //$NON-NLS-1$
|
||||
|
||||
}
|
||||
|
||||
private void initFields() {
|
||||
IPreferenceStore prefs= getPreferenceStore();
|
||||
fShowTUChildren.setSelection(prefs.getBoolean(SHOW_TU_CHILDREN));
|
||||
fCViewGroupIncludes.setSelection(prefs.getBoolean(CVIEW_GROUP_INCLUDES));
|
||||
fOutlineGroupIncludes.setSelection(prefs.getBoolean(OUTLINE_GROUP_INCLUDES));
|
||||
}
|
||||
|
||||
/*
|
||||
* @see PreferencePage#createControl(Composite)
|
||||
*/
|
||||
public void createControl(Composite parent) {
|
||||
super.createControl(parent);
|
||||
WorkbenchHelp.setHelp(getControl(), ICHelpContextIds.APPEARANCE_PREFERENCE_PAGE);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see PreferencePage#createContents(Composite)
|
||||
*/
|
||||
protected Control createContents(Composite parent) {
|
||||
initializeDialogUnits(parent);
|
||||
int nColumns= 1;
|
||||
|
||||
Composite result= new Composite(parent, SWT.NONE);
|
||||
GridLayout layout= new GridLayout();
|
||||
layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
|
||||
layout.marginWidth= 0;
|
||||
layout.numColumns= nColumns;
|
||||
result.setLayout(layout);
|
||||
|
||||
fShowTUChildren.doFillIntoGrid(result, nColumns);
|
||||
fCViewGroupIncludes.doFillIntoGrid(result, nColumns);
|
||||
fOutlineGroupIncludes.doFillIntoGrid(result, nColumns);
|
||||
|
||||
new Separator().doFillIntoGrid(result, nColumns);
|
||||
|
||||
|
||||
new Separator().doFillIntoGrid(result, nColumns);
|
||||
|
||||
String noteTitle= PreferencesMessages.getString("AppearancePreferencePage.note"); //$NON-NLS-1$
|
||||
String noteMessage= PreferencesMessages.getString("AppearancePreferencePage.preferenceOnlyEffectiveForNewPerspectives"); //$NON-NLS-1$
|
||||
Composite noteControl= createNoteComposite(JFaceResources.getDialogFont(), result, noteTitle, noteMessage);
|
||||
GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
|
||||
gd.horizontalSpan= 2;
|
||||
noteControl.setLayoutData(gd);
|
||||
|
||||
initFields();
|
||||
|
||||
Dialog.applyDialogFont(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void doDialogFieldChanged(DialogField field) {
|
||||
updateStatus(getValidationStatus());
|
||||
}
|
||||
|
||||
private IStatus getValidationStatus(){
|
||||
return new StatusInfo();
|
||||
}
|
||||
|
||||
private void updateStatus(IStatus status) {
|
||||
setValid(!status.matches(IStatus.ERROR));
|
||||
StatusUtil.applyToStatusLine(this, status);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see IWorkbenchPreferencePage#init(IWorkbench)
|
||||
*/
|
||||
public void init(IWorkbench workbench) {
|
||||
}
|
||||
|
||||
/*
|
||||
* @see IPreferencePage#performOk()
|
||||
*/
|
||||
public boolean performOk() {
|
||||
IPreferenceStore prefs= getPreferenceStore();
|
||||
prefs.setValue(SHOW_TU_CHILDREN, fShowTUChildren.isSelected());
|
||||
prefs.setValue(CVIEW_GROUP_INCLUDES, fCViewGroupIncludes.isSelected());
|
||||
prefs.setValue(OUTLINE_GROUP_INCLUDES, fOutlineGroupIncludes.isSelected());
|
||||
CUIPlugin.getDefault().savePluginPreferences();
|
||||
return super.performOk();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see PreferencePage#performDefaults()
|
||||
*/
|
||||
protected void performDefaults() {
|
||||
IPreferenceStore prefs= getPreferenceStore();
|
||||
fShowTUChildren.setSelection(prefs.getDefaultBoolean(SHOW_TU_CHILDREN));
|
||||
fCViewGroupIncludes.setSelection(prefs.getDefaultBoolean(CVIEW_GROUP_INCLUDES));
|
||||
fOutlineGroupIncludes.setSelection(prefs.getDefaultBoolean(OUTLINE_GROUP_INCLUDES));
|
||||
super.performDefaults();
|
||||
}
|
||||
}
|
||||
|
|
@ -24,7 +24,6 @@ public class CPluginPreferencePage extends FieldEditorPreferencePage implements
|
|||
|
||||
|
||||
private static final String LINK_TO_EDITOR_LABEL= "CBasePreferencePage.linkToEditor.label"; //$NON-NLS-1$
|
||||
private static final String SHOW_CU_CHILDREN_LABEL= "CBasePreferencePage.CUChildren.label"; //$NON-NLS-1$
|
||||
private static final String USE_STRUCTURAL_PARSE_MODE_LABEL= "CBasePreferencePage.OutlineView.structuralParseMode.label"; //$NON-NLS-1$
|
||||
|
||||
public CPluginPreferencePage() {
|
||||
|
@ -49,8 +48,6 @@ public class CPluginPreferencePage extends FieldEditorPreferencePage implements
|
|||
BooleanFieldEditor linkEditor= new BooleanFieldEditor(PreferenceConstants.PREF_LINK_TO_EDITOR, CUIPlugin.getResourceString(LINK_TO_EDITOR_LABEL), parent);
|
||||
addField(linkEditor);
|
||||
|
||||
BooleanFieldEditor showCUChildrenEditor= new BooleanFieldEditor(PreferenceConstants.PREF_SHOW_CU_CHILDREN, CUIPlugin.getResourceString(SHOW_CU_CHILDREN_LABEL), parent);
|
||||
addField(showCUChildrenEditor);
|
||||
|
||||
BooleanFieldEditor useStructuralParseMode= new BooleanFieldEditor(PreferenceConstants.PREF_USE_STRUCTURAL_PARSE_MODE, CUIPlugin.getResourceString(USE_STRUCTURAL_PARSE_MODE_LABEL), parent);
|
||||
addField(useStructuralParseMode);
|
||||
|
@ -65,10 +62,6 @@ public class CPluginPreferencePage extends FieldEditorPreferencePage implements
|
|||
CUIPlugin.getDefault().getPreferenceStore().setValue(PreferenceConstants.PREF_LINK_TO_EDITOR, enable);
|
||||
}
|
||||
|
||||
public static boolean showCompilationUnitChildren() {
|
||||
return CUIPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_CU_CHILDREN);
|
||||
}
|
||||
|
||||
public static boolean useStructuralParseMode() {
|
||||
return CUIPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_USE_STRUCTURAL_PARSE_MODE);
|
||||
}
|
||||
|
@ -85,6 +78,7 @@ public class CPluginPreferencePage extends FieldEditorPreferencePage implements
|
|||
*/
|
||||
public static void initDefaults(IPreferenceStore prefs) {
|
||||
prefs.setDefault(PreferenceConstants.PREF_LINK_TO_EDITOR, false);
|
||||
// The field is under Appearance page/preference
|
||||
prefs.setDefault(PreferenceConstants.PREF_SHOW_CU_CHILDREN, true);
|
||||
prefs.setDefault(PreferenceConstants.PREF_USE_STRUCTURAL_PARSE_MODE, CCorePlugin.getDefault().useStructuralParseMode());
|
||||
prefs.setDefault(PreferenceConstants.EDITOR_SHOW_SEGMENTS, false);
|
||||
|
|
|
@ -181,4 +181,11 @@ CEditorPreferencePage.Navigation.CacheTypesInBackground=Cache types in backgroun
|
|||
CEditorPreferencePage.behaviourPage.EditorGroup=Editor
|
||||
CEditorPreferencePage.behaviourPage.EnableEditorProblemAnnotation=Enable editor problem annotation
|
||||
|
||||
|
||||
#Appearance Preferences
|
||||
AppearancePreferencePage.description= Appearance of C elements in viewers:
|
||||
#AppearancePreferencePage.methodreturntype.label= Show &method return types
|
||||
AppearancePreferencePage.showTUChildren.label= Show translation unit members
|
||||
AppearancePreferencePage.cviewGroupIncludes.label= Group the includes in the C/C++ projects view
|
||||
AppearancePreferencePage.outlineGroupIncludes.label= Group the includes in the outliner
|
||||
AppearancePreferencePage.note=Note:
|
||||
AppearancePreferencePage.preferenceOnlyEffectiveForNewPerspectives=This preference may only take effect on new perspectives
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2004 QNX Software Systems and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.ui;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
||||
import org.eclipse.ui.model.WorkbenchAdapter;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class CElementGrouping extends WorkbenchAdapter implements IAdaptable {
|
||||
|
||||
public final static int INCLUDES_GROUPING = 0x00001;
|
||||
public final static int NAMESPACE_GROUPING = 0x00010;
|
||||
public final static int CLASS_GROUPING = 0x00100;
|
||||
public final static int LIBRARY_REF_CONTAINER = 0x01000;
|
||||
public final static int INCLUDE_REF_CONTAINER = 0x10000;
|
||||
|
||||
int type;
|
||||
|
||||
public CElementGrouping(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
|
||||
*/
|
||||
public String getLabel(Object object) {
|
||||
switch (type) {
|
||||
case INCLUDES_GROUPING:
|
||||
return "include directives";
|
||||
}
|
||||
return super.getLabel(object);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
|
||||
*/
|
||||
public ImageDescriptor getImageDescriptor(Object object) {
|
||||
switch (type) {
|
||||
case INCLUDES_GROUPING:
|
||||
return CPluginImages.DESC_OBJS_INCCONT;
|
||||
}
|
||||
return super.getImageDescriptor(object);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
|
||||
*/
|
||||
public Object getAdapter(Class clas) {
|
||||
if (clas == IWorkbenchAdapter.class)
|
||||
return this;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -180,6 +180,15 @@ public class CElementSorter extends ViewerSorter {
|
|||
return LIBRARYREFCONTAINER;
|
||||
} else if (element instanceof IncludeRefContainer) {
|
||||
return INCLUDEREFCONTAINER;
|
||||
} else if (element instanceof CElementGrouping) {
|
||||
int type = ((CElementGrouping)element).getType();
|
||||
if (type == CElementGrouping.INCLUDES_GROUPING) {
|
||||
return INCLUDES;
|
||||
} else if (type == CElementGrouping.CLASS_GROUPING) {
|
||||
return VARIABLES;
|
||||
} else if (type == CElementGrouping.NAMESPACE_GROUPING) {
|
||||
return NAMESPACES;
|
||||
}
|
||||
}
|
||||
return OTHERS;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2004 QNX Software Systems and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.ui;
|
||||
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
|
||||
|
||||
/**
|
||||
* IncludesGrouping
|
||||
*/
|
||||
public class IncludesGrouping extends CElementGrouping {
|
||||
ITranslationUnit tu;
|
||||
|
||||
public IncludesGrouping(ITranslationUnit unit) {
|
||||
super(CElementGrouping.INCLUDES_GROUPING);
|
||||
tu = unit;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
|
||||
*/
|
||||
public Object[] getChildren(Object object) {
|
||||
try {
|
||||
return tu.getChildrenOfType(ICElement.C_INCLUDE).toArray();
|
||||
} catch (CModelException e) {
|
||||
}
|
||||
return super.getChildren(object);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
|
||||
*/
|
||||
public Object getParent(Object object) {
|
||||
return tu;
|
||||
}
|
||||
|
||||
}
|
|
@ -50,7 +50,7 @@ public class PreferenceConstants {
|
|||
public static final String PREF_LINK_TO_EDITOR= "org.eclipse.cdt.ui.editor.linkToEditor"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A named preference that speficies whether children of a translation unit are shown in the package explorer.
|
||||
* A named preference that speficies whether children of a translation unit are shown in the CView.
|
||||
* <p>
|
||||
* Value is of type <code>Boolean</code>.
|
||||
* </p>
|
||||
|
@ -269,7 +269,7 @@ public class PreferenceConstants {
|
|||
public static final String OPEN_TYPE_HIERARCHY_IN_VIEW_PART= "viewPart"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A named preference that controls if the C Browsing views are linked to the active editor.
|
||||
* A named preference that controls if the Outline view.
|
||||
* <p>
|
||||
* Value is of type <code>Boolean</code>.
|
||||
* </p>
|
||||
|
@ -278,6 +278,16 @@ public class PreferenceConstants {
|
|||
*/
|
||||
public static final String OUTLINE_GROUP_INCLUDES= "org.eclipse.cdt.ui.outline.groupincludes"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A named preference that controls if the CView.
|
||||
* <p>
|
||||
* Value is of type <code>Boolean</code>.
|
||||
* </p>
|
||||
*
|
||||
* @see #LINK_PACKAGES_TO_EDITOR
|
||||
*/
|
||||
public static final String CVIEW_GROUP_INCLUDES= "org.eclipse.cdt.ui.cview.groupincludes"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Returns the CDT-UI preference store.
|
||||
*
|
||||
|
@ -286,7 +296,7 @@ public class PreferenceConstants {
|
|||
public static IPreferenceStore getPreferenceStore() {
|
||||
return CUIPlugin.getDefault().getPreferenceStore();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the given preference store with the default values.
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue