diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchyCore.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchyCore.java index c18151cc809..e088865fff1 100644 --- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchyCore.java +++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchyCore.java @@ -49,6 +49,7 @@ public class CallHierarchyCore { public static final String PREF_SHOW_ALL_CODE = "PREF_SHOW_ALL_CODE"; //$NON-NLS-1$ public static final String PREF_HIDE_TEST_CODE = "PREF_HIDE_TEST_CODE"; //$NON-NLS-1$ public static final String PREF_SHOW_TEST_CODE_ONLY = "PREF_SHOW_TEST_CODE_ONLY"; //$NON-NLS-1$ + public static final String[] PREF_FILTERS = {PREF_SHOW_ALL_CODE, PREF_HIDE_TEST_CODE, PREF_SHOW_TEST_CODE_ONLY}; public static final String PREF_USE_IMPLEMENTORS= "PREF_USE_IMPLEMENTORS"; //$NON-NLS-1$ public static final String PREF_USE_FILTERS= "PREF_USE_FILTERS"; //$NON-NLS-1$ @@ -72,6 +73,7 @@ public boolean isSearchUsingImplementorsEnabled() { } public boolean isShowTestCode() { + return Boolean.parseBoolean(JavaManipulation.getPreference(PREF_SHOW_TEST_CODE_ONLY, null)); } @@ -82,6 +84,13 @@ public boolean isShowAll() { public boolean isHideTestCode() { return Boolean.parseBoolean(JavaManipulation.getPreference(PREF_HIDE_TEST_CODE, null)); } + public String getActiveFilter() { + for (String string : PREF_FILTERS) { //must be one of the threee + if(Boolean.parseBoolean(JavaManipulation.getPreference(string, null))) { + return string; + } + } return null; + } public Collection getImplementingMethods(IMethod method) { if (isSearchUsingImplementorsEnabled()) { @@ -328,4 +337,5 @@ public static boolean isPossibleInputElement(Object element){ return true; } + } diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchy.java b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchy.java index e6ba4815373..6ea8852327c 100644 --- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchy.java +++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/callhierarchy/CallHierarchy.java @@ -75,6 +75,18 @@ public void setShowTestCode(boolean value) { settings.setValue(PREF_SHOW_TEST_CODE_ONLY, value); } + public void setActiveFilter (String string) { + IPreferenceStore settings = JavaPlugin.getDefault().getPreferenceStore(); + for (String s : CallHierarchyCore.PREF_FILTERS) { + if(s == string) { + settings.setValue(s, true); + } else { + settings.setValue(s, false); + } + } + + } + public boolean isSearchUsingImplementorsEnabled() { IPreferenceStore settings = JavaPlugin.getDefault().getPreferenceStore(); return settings.getBoolean(PREF_USE_IMPLEMENTORS); @@ -149,6 +161,7 @@ public boolean isHideTestCode() { return settings.getBoolean(PREF_HIDE_TEST_CODE); } + public boolean isShowTestCode() { IPreferenceStore settings = JavaPlugin.getDefault().getPreferenceStore(); return settings.getBoolean(PREF_SHOW_TEST_CODE_ONLY); diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/FiltersDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/FiltersDialog.java index 5c7be2431bb..5e25c53ca62 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/FiltersDialog.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/FiltersDialog.java @@ -31,6 +31,7 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.jdt.internal.corext.callhierarchy.CallHierarchy; +import org.eclipse.jdt.internal.corext.callhierarchy.CallHierarchyCore; import org.eclipse.jdt.internal.ui.IJavaHelpContextIds; import org.eclipse.jdt.internal.ui.dialogs.StatusInfo; @@ -43,7 +44,7 @@ class FiltersDialog extends StatusDialog { private Button fShowAll; private Button fHideTest; private Button fShowTest; - + private Button[] buttons = {fShowAll, fHideTest, fShowTest}; protected FiltersDialog(Shell parentShell) { super(parentShell); } @@ -118,6 +119,10 @@ private void createTestCodeArea(Composite parent) { layout.numColumns= 1; radioGroup.setLayout(layout); + for (Button button : buttons) { + button = new Button(radioGroup, SWT.RADIO); + } + fShowAll= new Button(radioGroup, SWT.RADIO); fShowAll.setText(CallHierarchyMessages.FiltersDialog_ShowAllCode); @@ -191,9 +196,18 @@ private void updateFilterFromUI() { CallHierarchy.getDefault().setFilters(fNames.getText()); CallHierarchy.getDefault().setFilterEnabled(fFilterOnNames.getSelection()); - CallHierarchy.getDefault().setShowAll(fShowAll.getSelection()); - CallHierarchy.getDefault().setHideTestCode(fHideTest.getSelection()); - CallHierarchy.getDefault().setShowTestCode(fShowTest.getSelection()); +// CallHierarchy.getDefault().setShowAll(fShowAll.getSelection()); +// CallHierarchy.getDefault().setHideTestCode(fHideTest.getSelection()); +// CallHierarchy.getDefault().setShowTestCode(fShowTest.getSelection()); + String activeFilter; + for (Button button : buttons) { + if(button.getSelection()) { + activeFilter = getString(button); + } + } + activeFilter = ""; //$NON-NLS-1$ + + CallHierarchy.getDefault().setActiveFilter(activeFilter); } /** @@ -205,9 +219,18 @@ private void updateUIFromFilter() { fFilterOnNames.setSelection(CallHierarchy.getDefault().isFilterEnabled()); setSelection(); - + updateEnabledState(); } + private String getString(Button B) { + if(B == fShowAll) { + return CallHierarchyCore.PREF_SHOW_ALL_CODE; + } else if (B == fHideTest) { + return CallHierarchyCore.PREF_HIDE_TEST_CODE; + } else { + return CallHierarchyCore.PREF_SHOW_TEST_CODE_ONLY; + } + } /**