Commit ccbec6d7 authored by Kristof Szabados's avatar Kristof Szabados
Browse files

could be final


Signed-off-by: Kristof Szabados's avatarKristof Szabados <Kristof.Szabados@ericsson.com>
parent d3da5431
......@@ -55,14 +55,14 @@ class ChangeCreator {
private Change change;
ChangeCreator(final IFile selectedFile, MoveFunctionSettings settings, List<FunctionData> functions, IProject project) {
ChangeCreator(final IFile selectedFile, final MoveFunctionSettings settings, final List<FunctionData> functions, final IProject project) {
this.selectedFile = selectedFile;
this.settings = settings;
this.functions = functions;
this.project = project;
}
ChangeCreator(final IFile selectedFile, MoveFunctionSettings settings, List<FunctionData> functions, IProject project, Map<Module, List<Module>> mi) {
ChangeCreator(final IFile selectedFile, final MoveFunctionSettings settings, final List<FunctionData> functions, final IProject project, final Map<Module, List<Module>> mi) {
this.selectedFile = selectedFile;
this.settings = settings;
this.functions = functions;
......@@ -105,7 +105,7 @@ class ChangeCreator {
return null;
}
boolean noDestination = true;
for (FunctionData fd : functions) {
for (final FunctionData fd : functions) {
if (fd.isToBeMoved() && fd.getFinalDestination() != null) {
noDestination = false;
}
......@@ -126,36 +126,36 @@ class ChangeCreator {
cc.add(tfc);
final MultiTextEdit rootEdit = new MultiTextEdit();
tfc.setEdit(rootEdit);
for(FunctionData function : functions) {
for(final FunctionData function : functions) {
if(function.getFinalDestination() == null || !function.isToBeMoved()) {
continue;
}
TextFileChange tfcDestination = new TextFileChange(function.getFinalDestination().getModule().getName(), (IFile) function.getFinalDestination().getModule().getLocation().getFile());
MultiTextEdit rootEdit2 = new MultiTextEdit();
final TextFileChange tfcDestination = new TextFileChange(function.getFinalDestination().getModule().getName(), (IFile) function.getFinalDestination().getModule().getLocation().getFile());
final MultiTextEdit rootEdit2 = new MultiTextEdit();
tfcDestination.setEdit(rootEdit2);
cc.add(tfcDestination);
int length = function.getDefiniton().getLocation().getEndOffset() - function.getDefiniton().getLocation().getOffset();
DeleteEdit deleteEdit = new DeleteEdit(function.getDefiniton().getLocation().getOffset(), length);
final int length = function.getDefiniton().getLocation().getEndOffset() - function.getDefiniton().getLocation().getOffset();
final DeleteEdit deleteEdit = new DeleteEdit(function.getDefiniton().getLocation().getOffset(), length);
rootEdit.addChild(deleteEdit);
if (!moduleImports.containsKey(function.getFinalDestination().getModule())) {
moduleImports.put(function.getFinalDestination().getModule(), new ArrayList<Module>());
}
InsertEdit importEdit = insertMissingImports(function.getFinalDestination().getModule(), function.getUsedModules());
final InsertEdit importEdit = insertMissingImports(function.getFinalDestination().getModule(), function.getUsedModules());
if (importEdit != null) {
rootEdit2.addChild(importEdit);
}
findFunctionUses(function);
for (Module m : function.getUsedBy()) {
TextFileChange tfcModuleUsedMethod = new TextFileChange(m.getName(), (IFile) m.getLocation().getFile());
MultiTextEdit rootEdit3 = new MultiTextEdit();
for (final Module m : function.getUsedBy()) {
final TextFileChange tfcModuleUsedMethod = new TextFileChange(m.getName(), (IFile) m.getLocation().getFile());
final MultiTextEdit rootEdit3 = new MultiTextEdit();
tfcModuleUsedMethod.setEdit(rootEdit3);
int offset = m.getLocation().getEndOffset();
Assignments assignments = m.getAssignments();
int nOfAssignments = assignments.getNofAssignments();
final Assignments assignments = m.getAssignments();
final int nOfAssignments = assignments.getNofAssignments();
for (int i=0; i<nOfAssignments; i++) {
int assignmentOffset = assignments.getAssignmentByIndex(i).getLocation().getOffset();
final int assignmentOffset = assignments.getAssignmentByIndex(i).getLocation().getOffset();
if (offset > assignmentOffset) {
offset = assignmentOffset;
}
......@@ -171,11 +171,11 @@ class ChangeCreator {
}
private InsertEdit insertMissingImports(Module destinationModule, List<Module> usedModules) {
List<Module> importedModules = destinationModule.getImportedModules();
private InsertEdit insertMissingImports(final Module destinationModule, final List<Module> usedModules) {
final List<Module> importedModules = destinationModule.getImportedModules();
String importText = "";
for (Module m : usedModules) {
for (final Module m : usedModules) {
if (!importedModules.contains(m)
&& !m.equals(destinationModule)
&& !moduleImports.get(destinationModule).contains(m)) {
......@@ -188,10 +188,10 @@ class ChangeCreator {
final MultiTextEdit rootEdit = new MultiTextEdit();
insertImports.setEdit(rootEdit);
int offset = destinationModule.getLocation().getEndOffset();
Assignments assignments = destinationModule.getAssignments();
int nOfAssignments = assignments.getNofAssignments();
final Assignments assignments = destinationModule.getAssignments();
final int nOfAssignments = assignments.getNofAssignments();
for (int i=0; i<nOfAssignments; i++) {
int assignmentOffset = assignments.getAssignmentByIndex(i).getLocation().getOffset();
final int assignmentOffset = assignments.getAssignmentByIndex(i).getLocation().getOffset();
if (offset > assignmentOffset) {
offset = assignmentOffset;
}
......@@ -203,11 +203,11 @@ class ChangeCreator {
return new InsertEdit(offset, importText);
}
private void findFunctionUses(FunctionData function) {
private void findFunctionUses(final FunctionData function) {
final ProjectSourceParser projectSourceParser = GlobalParser.getProjectSourceParser(project);
for(Module m : projectSourceParser.getModules()) {
for(final Module m : projectSourceParser.getModules()) {
if (!m.equals(function.getFinalDestination().getModule())) {
ModuleVisitor vis = new ModuleVisitor(function.getDefiniton());
final ModuleVisitor vis = new ModuleVisitor(function.getDefiniton());
m.accept(vis);
if (vis.getIsUsed()
& !m.getImportedModules().contains(function.getFinalDestination().getModule())
......@@ -223,7 +223,7 @@ class ChangeCreator {
private Def_Function function;
private boolean isUsed;
public ModuleVisitor(Def_Function function) {
public ModuleVisitor(final Def_Function function) {
this.function = function;
this.isUsed = false;
}
......
......@@ -27,7 +27,7 @@ public class FunctionData implements Comparable<FunctionData> {
private MoveFunctionMethod method;
private List<Module> usedBy;
public FunctionData(Def_Function definiton, String functionBody) {
public FunctionData(final Def_Function definiton, final String functionBody) {
this.definiton = definiton;
this.functionBody = functionBody;
toBeMoved = true;
......@@ -36,42 +36,42 @@ public class FunctionData implements Comparable<FunctionData> {
usedBy = new ArrayList<Module>();
}
public void setToBeMoved(boolean toBeMoved) {
public void setToBeMoved(final boolean toBeMoved) {
this.toBeMoved = toBeMoved;
}
public void setModule(Module module) {
public void setModule(final Module module) {
this.module = module;
}
public void addDestination(Module destination, Integer rating, int newImports) {
public void addDestination(final Module destination, final Integer rating, final int newImports) {
destinations.add(new Destination(destination, rating, this, newImports));
}
public void addUsedModule(Module module) {
public void addUsedModule(final Module module) {
usedModules.add(module);
}
public void addUsedModules(List<Module> modules) {
public void addUsedModules(final List<Module> modules) {
usedModules.addAll(modules);
}
public void addUsedBy(Module m) {
public void addUsedBy(final Module m) {
usedBy.add(m);
}
public void setUsedModules(List<Module> modules) {
public void setUsedModules(final List<Module> modules) {
usedModules = modules;
}
public void setFinalDestination(Destination destination) {
public void setFinalDestination(final Destination destination) {
this.finalDestination = destination;
if(destination != null) {
destination.setFunctionData(this);
}
}
public void setRefactoringMethod(MoveFunctionMethod rMethod) {
public void setRefactoringMethod(final MoveFunctionMethod rMethod) {
this.method = rMethod;
}
......@@ -112,7 +112,7 @@ public class FunctionData implements Comparable<FunctionData> {
}
@Override
public int compareTo(FunctionData arg0) {
public int compareTo(final FunctionData arg0) {
return this.getDefiniton().getIdentifier().getDisplayName().compareToIgnoreCase(arg0.getDefiniton().getIdentifier().getDisplayName());
}
......@@ -132,7 +132,7 @@ class Destination implements Comparable<Destination> {
}
public Destination(Module module, int rating, FunctionData functionData, int newImports) {
public Destination(final Module module, final int rating, final FunctionData functionData, final int newImports) {
this.module = module;
this.rating = rating;
this.functionData = functionData;
......@@ -156,24 +156,24 @@ class Destination implements Comparable<Destination> {
return newImports;
}
public void setModule(Module module) {
public void setModule(final Module module) {
this.module = module;
}
public void setRating(int rating) {
public void setRating(final int rating) {
this.rating = rating;
}
public void setFunctionData(FunctionData functionData) {
public void setFunctionData(final FunctionData functionData) {
this.functionData = functionData;
}
public void setNewImports(int newImports) {
public void setNewImports(final int newImports) {
this.newImports = newImports;
}
@Override
public int compareTo(Destination arg0) {
public int compareTo(final Destination arg0) {
return arg0.rating - this.rating;
}
}
......@@ -41,9 +41,9 @@ public class MoveFunctionWizard extends RefactoringWizard implements
@Override
protected void addUserInputPages() {
setDefaultPageTitle(WIZ_WINDOWTITLE1);
MoveFunctionWizardFunctionsPage functionsPage = new MoveFunctionWizardFunctionsPage(WIZ_WINDOWTITLE2, refactoring);
final MoveFunctionWizardFunctionsPage functionsPage = new MoveFunctionWizardFunctionsPage(WIZ_WINDOWTITLE2, refactoring);
addPage(functionsPage);
MoveFunctionWizardDestinationsPage destinationsPage = new MoveFunctionWizardDestinationsPage(WIZ_WINDOWTITLE3, refactoring);
final MoveFunctionWizardDestinationsPage destinationsPage = new MoveFunctionWizardDestinationsPage(WIZ_WINDOWTITLE3, refactoring);
addPage(destinationsPage);
}
}
......@@ -46,7 +46,7 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
protected static boolean displayZeros;
private Button displayZerosCheckBox;
MoveFunctionWizardDestinationsPage(final String name, MoveFunctionRefactoring refactoring) {
MoveFunctionWizardDestinationsPage(final String name, final MoveFunctionRefactoring refactoring) {
super(name);
this.refactoring = refactoring;
refactoring.getSettings().setType(MoveFunctionType.MODULE);
......@@ -61,17 +61,17 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
initializeDialogUnits(top);
top.setLayout(new GridLayout(1, false));
Composite comp = new Composite(top, SWT.NONE);
final Composite comp = new Composite(top, SWT.NONE);
initializeDialogUnits(comp);
comp.setLayout(new GridLayout(1, false));
Label label = new Label(comp, SWT.NONE);
final Label label = new Label(comp, SWT.NONE);
label.setText("Choose method: ");
Button shortestModule = new Button(comp, SWT.RADIO);
final Button shortestModule = new Button(comp, SWT.RADIO);
shortestModule.setText("choose shortest module");
shortestModule.setSelection(true);
shortestModule.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
public void widgetSelected(final SelectionEvent event) {
if (refactoring.getSettings().getMethod().equals(MoveFunctionMethod.LENGTH) && !refactoring.getSettings().isChanged()) {
refactoring.getSettings().setChanged(false);
}
......@@ -85,10 +85,10 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
});
Button leastImports = new Button(comp, SWT.RADIO);
final Button leastImports = new Button(comp, SWT.RADIO);
leastImports.setText("insert the least new imports");
leastImports.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
public void widgetSelected(final SelectionEvent event) {
if (refactoring.getSettings().getMethod().equals(MoveFunctionMethod.IMPORTS) && !refactoring.getSettings().isChanged()) {
refactoring.getSettings().setChanged(false);
}
......@@ -109,10 +109,10 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
};
});
*/
Button component = new Button(comp, SWT.RADIO);
final Button component = new Button(comp, SWT.RADIO);
component.setText("by component");
component.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
public void widgetSelected(final SelectionEvent event) {
if (refactoring.getSettings().getMethod().equals(MoveFunctionMethod.COMPONENT) && !refactoring.getSettings().isChanged()) {
refactoring.getSettings().setChanged(false);
}
......@@ -135,8 +135,8 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
displayZerosCheckBox.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
Button btn = (Button) event.getSource();
public void widgetSelected(final SelectionEvent event) {
final Button btn = (Button) event.getSource();
displayZeros = btn.getSelection();
tree.refresh();
}
......@@ -151,9 +151,9 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
excludedModulesField.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
String regex = excludedModulesField.getText().replaceAll(",", "|").replaceAll(" +", " ").trim();
final String regex = excludedModulesField.getText().replaceAll(",", "|").replaceAll(" +", " ").trim();
try {
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
if (refactoring.getSettings().getExcludedModuleNames().equals(pattern) && !refactoring.getSettings().isChanged()) {
refactoring.getSettings().setChanged(false);
......@@ -173,8 +173,8 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
setErrorMessage(null);
}
public void displayDestinations(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
public void displayDestinations(final Composite parent) {
final Composite comp = new Composite(parent, SWT.NONE);
initializeDialogUnits(comp);
comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
comp.setLayout(new FillLayout());
......@@ -187,7 +187,7 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
tree.expandToLevel(2);
tree.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
public void checkStateChanged(final CheckStateChangedEvent event) {
if (event.getElement() instanceof FunctionData) {
if (event.getChecked()) {
tree.setChecked(event.getElement(), event.getChecked());
......@@ -200,11 +200,11 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
}
}
else if (event.getElement() instanceof Destination) {
Destination dest = (Destination)event.getElement();
final Destination dest = (Destination)event.getElement();
tree.setChecked(dest, event.getChecked());
for (Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
for (final Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
if (entry.getValue().contains(dest.getFunctionData())) {
for (FunctionData fd : entry.getValue()) {
for (final FunctionData fd : entry.getValue()) {
if (dest.getFunctionData().equals(fd)) {
if (fd.getFinalDestination() != null & !dest.equals(fd.getFinalDestination())) {
tree.setChecked(fd.getFinalDestination(), false);
......@@ -236,8 +236,8 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
public void setTreeChecked() {
boolean hasDestination = false;
for (List<FunctionData> list : refactoring.getFunctions().values()) {
for (FunctionData fd : list) {
for (final List<FunctionData> list : refactoring.getFunctions().values()) {
for (final FunctionData fd : list) {
if (fd.isToBeMoved()) {
tree.setChecked(fd, true);
if (fd.getFinalDestination() != null) {
......@@ -256,7 +256,7 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
@Override
public IWizardPage getPreviousPage() {
IWizardPage page2 = super.getPreviousPage();
final IWizardPage page2 = super.getPreviousPage();
if (page2 instanceof MoveFunctionWizardFunctionsPage) {
((MoveFunctionWizardFunctionsPage)page2).refreshTree();
}
......@@ -267,12 +267,12 @@ public class MoveFunctionWizardDestinationsPage extends UserInputWizardPage {
class DestinationDataProvider implements ITreeContentProvider {
@Override
public Object[] getElements(Object inputElement) {
public Object[] getElements(final Object inputElement) {
if (inputElement instanceof Map<?, ?>) {
Map<Module, List<FunctionData>> map = (Map<Module, List<FunctionData>>)inputElement;
ArrayList<FunctionData> obj = new ArrayList<FunctionData>();
for (Map.Entry<Module, List<FunctionData>> entry : map.entrySet()) {
for (FunctionData fd : entry.getValue()) {
final Map<Module, List<FunctionData>> map = (Map<Module, List<FunctionData>>)inputElement;
final ArrayList<FunctionData> obj = new ArrayList<FunctionData>();
for (final Map.Entry<Module, List<FunctionData>> entry : map.entrySet()) {
for (final FunctionData fd : entry.getValue()) {
if (fd.isToBeMoved() && !fd.getDestinations().isEmpty()) {
obj.add(fd);
}
......@@ -289,23 +289,22 @@ class DestinationDataProvider implements ITreeContentProvider {
}
@Override
public Object[] getChildren(Object parentElement) {
public Object[] getChildren(final Object parentElement) {
if (parentElement instanceof FunctionData) {
if (!((FunctionData)parentElement).getDestinations().isEmpty()) {
List<Destination> destinations = new ArrayList<Destination>();
for (Destination dest : ((FunctionData)parentElement).getDestinations()) {
final List<Destination> destinations = new ArrayList<Destination>();
for (final Destination dest : ((FunctionData)parentElement).getDestinations()) {
if (!MoveFunctionWizardDestinationsPage.displayZeros && dest.getRating()!= 0) {
destinations.add(dest);
}
else if (MoveFunctionWizardDestinationsPage.displayZeros) {
} else if (MoveFunctionWizardDestinationsPage.displayZeros) {
destinations.add(dest);
}
}
Collections.sort(destinations, new Comparator<Destination>() {
@Override
public int compare(Destination arg0, Destination arg1) {
int val = (-1)*(arg0.getRating() - arg1.getRating());
public int compare(final Destination arg0, final Destination arg1) {
final int val = (-1)*(arg0.getRating() - arg1.getRating());
int val2 = 0;
if (val == 0 && arg0.getNewImports() != -1) {
val2 = arg1.getNewImports() - arg0.getNewImports();
......@@ -324,12 +323,12 @@ class DestinationDataProvider implements ITreeContentProvider {
}
@Override
public Object getParent(Object element) {
public Object getParent(final Object element) {
return null;
}
@Override
public boolean hasChildren(Object element) {
public boolean hasChildren(final Object element) {
if (element instanceof Module) {
return false;
}
......@@ -346,7 +345,7 @@ class DestinationDataProvider implements ITreeContentProvider {
}
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
}
}
......
......@@ -48,7 +48,7 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
private StyledText functionBody;
private CheckboxTreeViewer tree;
MoveFunctionWizardFunctionsPage(final String name, MoveFunctionRefactoring refactoring) {
MoveFunctionWizardFunctionsPage(final String name, final MoveFunctionRefactoring refactoring) {
super(name);
this.refactoring = refactoring;
refactoring.getSettings().setType(MoveFunctionType.MODULE);
......@@ -63,15 +63,15 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
top.setLayout(new GridLayout(1, false));
Label title = new Label(top, SWT.NULL);
final Label title = new Label(top, SWT.NULL);
title.setText("Select the functions you want to move.");
Composite comp1 = new Composite(top, SWT.NONE);
final Composite comp1 = new Composite(top, SWT.NONE);
initializeDialogUnits(comp1);
comp1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
comp1.setLayout(new FillLayout());
Composite comp2 = new Composite(top, SWT.NONE);
final Composite comp2 = new Composite(top, SWT.NONE);
initializeDialogUnits(comp2);
comp2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
comp2.setLayout(new FillLayout());
......@@ -86,7 +86,7 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
if (event.getElement() instanceof Module
&& event.getChecked()
&& refactoring.getFunctions().get(event.getElement()).isEmpty()) {
WorkspaceJob wj = new WorkspaceJob("Find functions in module: "+event.getElement()) {
final WorkspaceJob wj = new WorkspaceJob("Find functions in module: "+event.getElement()) {
@Override
public IStatus runInWorkspace(final IProgressMonitor monitor) {
try {
......@@ -129,9 +129,9 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
tree.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
for (Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
for (FunctionData fd : entry.getValue()) {
public void selectionChanged(final SelectionChangedEvent event) {
for (final Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
for (final FunctionData fd : entry.getValue()) {
if (event.getSelection().toString().substring(1, event.getSelection().toString().length()-1).equals(fd.toString())) {
functionBody.setText(fd.getFunctionBody());
}
......@@ -155,8 +155,8 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
public void refreshTree() {
tree.refresh();
for (List<FunctionData> list : refactoring.getFunctions().values()) {
for (FunctionData fd : list) {
for (final List<FunctionData> list : refactoring.getFunctions().values()) {
for (final FunctionData fd : list) {
if (fd.isToBeMoved()) {
tree.setSubtreeChecked(fd, true);
}
......@@ -174,11 +174,11 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
}
public void setCheckedFunctions() {
List<Object> checked = Arrays.asList(tree.getCheckedElements());
final List<Object> checked = Arrays.asList(tree.getCheckedElements());
boolean isChecked = false;
for (Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
for (FunctionData fd : entry.getValue()) {
for (final Map.Entry<Module, List<FunctionData>> entry : refactoring.getFunctions().entrySet()) {
for (final FunctionData fd : entry.getValue()) {
if (checked.contains(fd)) {
isChecked = true;
fd.setToBeMoved(true);
......@@ -199,7 +199,7 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
@Override
public IWizardPage getNextPage() {
IWizardPage page2 = super.getNextPage();
final IWizardPage page2 = super.getNextPage();
if (page2.getControl() != null) {
if (page2 instanceof MoveFunctionWizardDestinationsPage) {
((MoveFunctionWizardDestinationsPage)page2).refreshTree();
......@@ -211,13 +211,13 @@ public class MoveFunctionWizardFunctionsPage extends UserInputWizardPage {
class DataProvider implements ITreeContentProvider {
@Override
public Object[]