-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactoring Filter from call Hierarchy #1730
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 Vector Informatik GmbH and others. | ||
* | ||
* This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* https://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* Vector Informatik GmbH - initial API and implementation | ||
*******************************************************************************/ | ||
|
||
package org.eclipse.jdt.internal.corext.callhierarchy; | ||
|
||
/** | ||
* These are the filter Options for the Call Hierarchy | ||
* When adding one, modify the getFilterOptions Method in FilterOptions | ||
*/ | ||
public enum CallHierarchyFilterOptions { | ||
SHOW_ALL_CODE("PREF_SHOW_ALL_CODE", CallHierarchyMessages.FiltersDialog_ShowAllCode), //$NON-NLS-1$ | ||
HIDE_TEST_CODE("PREF_HIDE_TEST_CODE", CallHierarchyMessages.FiltersDialog_HideTestCode), //$NON-NLS-1$ | ||
SHOW_TEST_CODE_ONLY("PREF_SHOW_TEST_CODE_ONLY", CallHierarchyMessages.FiltersDialog_TestCodeOnly); //$NON-NLS-1$ | ||
|
||
private final String identifyString; | ||
private final String text; | ||
|
||
CallHierarchyFilterOptions(String identifyString, String text) { | ||
this.identifyString = identifyString; | ||
this.text = text; | ||
} | ||
|
||
public String getId() { | ||
return identifyString; | ||
} | ||
|
||
public String getText() { | ||
return text; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -14,6 +14,9 @@ | |||||||||||||||||||||||||||||||||||||||||
*******************************************************************************/ | ||||||||||||||||||||||||||||||||||||||||||
package org.eclipse.jdt.internal.ui.callhierarchy; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
import java.util.ArrayList; | ||||||||||||||||||||||||||||||||||||||||||
import java.util.List; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.swt.SWT; | ||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.swt.events.SelectionAdapter; | ||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.swt.events.SelectionEvent; | ||||||||||||||||||||||||||||||||||||||||||
|
@@ -31,18 +34,18 @@ | |||||||||||||||||||||||||||||||||||||||||
import org.eclipse.ui.PlatformUI; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.jdt.internal.corext.callhierarchy.CallHierarchy; | ||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.jdt.internal.corext.callhierarchy.CallHierarchyFilterOptions; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.jdt.internal.ui.IJavaHelpContextIds; | ||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.jdt.internal.ui.dialogs.StatusInfo; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
class FiltersDialog extends StatusDialog { | ||||||||||||||||||||||||||||||||||||||||||
private Label fNamesHelpText; | ||||||||||||||||||||||||||||||||||||||||||
private Button fFilterOnNames; | ||||||||||||||||||||||||||||||||||||||||||
private static final String KEY_CALL_HIERARCHY_FILTER_OPTION= "callHierarchyFilterOption"; //$NON-NLS-1$ | ||||||||||||||||||||||||||||||||||||||||||
private Text fNames; | ||||||||||||||||||||||||||||||||||||||||||
private Text fMaxCallDepth; | ||||||||||||||||||||||||||||||||||||||||||
private Button fShowAll; | ||||||||||||||||||||||||||||||||||||||||||
private Button fHideTest; | ||||||||||||||||||||||||||||||||||||||||||
private Button fShowTest; | ||||||||||||||||||||||||||||||||||||||||||
private List<Button> buttons = new ArrayList<>(CallHierarchyFilterOptions.values().length); //important what comes when | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
protected FiltersDialog(Shell parentShell) { | ||||||||||||||||||||||||||||||||||||||||||
super(parentShell); | ||||||||||||||||||||||||||||||||||||||||||
|
@@ -118,28 +121,27 @@ private void createTestCodeArea(Composite parent) { | |||||||||||||||||||||||||||||||||||||||||
layout.numColumns= 1; | ||||||||||||||||||||||||||||||||||||||||||
radioGroup.setLayout(layout); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
fShowAll= new Button(radioGroup, SWT.RADIO); | ||||||||||||||||||||||||||||||||||||||||||
fShowAll.setText(CallHierarchyMessages.FiltersDialog_ShowAllCode); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
fHideTest= new Button(radioGroup, SWT.RADIO); | ||||||||||||||||||||||||||||||||||||||||||
fHideTest.setText(CallHierarchyMessages.FiltersDialog_HideTestCode); | ||||||||||||||||||||||||||||||||||||||||||
for (CallHierarchyFilterOptions op : CallHierarchyFilterOptions.values()) { | ||||||||||||||||||||||||||||||||||||||||||
Button b= new Button(radioGroup, SWT.RADIO); | ||||||||||||||||||||||||||||||||||||||||||
b.setText(op.getText()); | ||||||||||||||||||||||||||||||||||||||||||
b.setData(KEY_CALL_HIERARCHY_FILTER_OPTION, op); | ||||||||||||||||||||||||||||||||||||||||||
buttons.add(b); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
fShowTest= new Button(radioGroup, SWT.RADIO); | ||||||||||||||||||||||||||||||||||||||||||
fShowTest.setText(CallHierarchyMessages.FiltersDialog_TestCodeOnly); | ||||||||||||||||||||||||||||||||||||||||||
setSelection(); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
GridData gridData= new GridData(); | ||||||||||||||||||||||||||||||||||||||||||
gridData.horizontalIndent= 0; | ||||||||||||||||||||||||||||||||||||||||||
fShowAll.setLayoutData(gridData); | ||||||||||||||||||||||||||||||||||||||||||
fHideTest.setLayoutData(gridData); | ||||||||||||||||||||||||||||||||||||||||||
fShowTest.setLayoutData(gridData); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
for (Button button : buttons) { | ||||||||||||||||||||||||||||||||||||||||||
button.setLayoutData(gridData); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would rewrite this function to this:
Suggested change
That would fix the trimming of the labels too. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is not a refactoring, it adds/changes the following lines:
This should be done in another PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Would that be OK @gzsombor ? |
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
private void setSelection() { | ||||||||||||||||||||||||||||||||||||||||||
fShowAll.setSelection(CallHierarchy.getDefault().isShowAll()); | ||||||||||||||||||||||||||||||||||||||||||
fHideTest.setSelection(CallHierarchy.getDefault().isHideTestCode()); | ||||||||||||||||||||||||||||||||||||||||||
fShowTest.setSelection(CallHierarchy.getDefault().isShowTestCode()); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
for (Button button : buttons) { | ||||||||||||||||||||||||||||||||||||||||||
button.setSelection(CallHierarchy.getDefault().getActiveFilter() == getFilterOptions(button)); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||
|
@@ -191,9 +193,13 @@ 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()); | ||||||||||||||||||||||||||||||||||||||||||
CallHierarchyFilterOptions activeFilter = null; | ||||||||||||||||||||||||||||||||||||||||||
for (Button button : buttons) { | ||||||||||||||||||||||||||||||||||||||||||
if(button.getSelection()) { | ||||||||||||||||||||||||||||||||||||||||||
activeFilter = getFilterOptions(button); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
CallHierarchy.getDefault().setActiveFilter(activeFilter); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||
|
@@ -205,10 +211,12 @@ private void updateUIFromFilter() { | |||||||||||||||||||||||||||||||||||||||||
fFilterOnNames.setSelection(CallHierarchy.getDefault().isFilterEnabled()); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
setSelection(); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
updateEnabledState(); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
private CallHierarchyFilterOptions getFilterOptions(Button b) { | ||||||||||||||||||||||||||||||||||||||||||
return (CallHierarchyFilterOptions) b.getData(KEY_CALL_HIERARCHY_FILTER_OPTION); | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||
* Updates the filter from the UI state. | ||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need this one if you follow my advice below:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done