mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-05 08:46:02 +02:00
FIXED - bug 266726: Generate Getters and Setters could be prettier if it shared more code with JDT
https://bugs.eclipse.org/bugs/show_bug.cgi?id=266726
This commit is contained in:
parent
63fbea0b0b
commit
3f794a608f
7 changed files with 252 additions and 82 deletions
|
@ -543,26 +543,26 @@ public:
|
||||||
const int socSecNo;
|
const int socSecNo;
|
||||||
|
|
||||||
Person myFriend;
|
Person myFriend;
|
||||||
int getSystemId() const
|
|
||||||
{
|
|
||||||
return systemId;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setSystemId(int systemId)
|
|
||||||
{
|
|
||||||
this->systemId = systemId;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *getName() const
|
char *getName() const
|
||||||
{
|
{
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getSystemId() const
|
||||||
|
{
|
||||||
|
return systemId;
|
||||||
|
}
|
||||||
|
|
||||||
void setName(char *name)
|
void setName(char *name)
|
||||||
{
|
{
|
||||||
this->name = name;
|
this->name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setSystemId(int systemId)
|
||||||
|
{
|
||||||
|
this->systemId = systemId;
|
||||||
|
}
|
||||||
|
|
||||||
Person(int socSecNo); // contructor
|
Person(int socSecNo); // contructor
|
||||||
|
|
||||||
~Person(); // destructor
|
~Person(); // destructor
|
||||||
|
@ -624,26 +624,26 @@ public:
|
||||||
virtual ~GaS();
|
virtual ~GaS();
|
||||||
bool isOk;
|
bool isOk;
|
||||||
void methode2();
|
void methode2();
|
||||||
bool getIsOk() const
|
|
||||||
{
|
|
||||||
return isOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setIsOk(bool isOk)
|
|
||||||
{
|
|
||||||
this->isOk = isOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getI() const
|
int getI() const
|
||||||
{
|
{
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool getIsOk() const
|
||||||
|
{
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
|
||||||
void setI(int i)
|
void setI(int i)
|
||||||
{
|
{
|
||||||
this->i = i;
|
this->i = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setIsOk(bool isOk)
|
||||||
|
{
|
||||||
|
this->isOk = isOk;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int i;
|
int i;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,23 +11,30 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.Set;
|
||||||
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import org.eclipse.jface.viewers.CheckStateChangedEvent;
|
import org.eclipse.jface.viewers.CheckStateChangedEvent;
|
||||||
import org.eclipse.jface.viewers.ICheckStateListener;
|
import org.eclipse.jface.viewers.ICheckStateListener;
|
||||||
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
|
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.events.SelectionAdapter;
|
||||||
|
import org.eclipse.swt.events.SelectionEvent;
|
||||||
import org.eclipse.swt.layout.FillLayout;
|
import org.eclipse.swt.layout.FillLayout;
|
||||||
|
import org.eclipse.swt.layout.GridData;
|
||||||
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
|
import org.eclipse.swt.widgets.Button;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
|
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.internal.ui.refactoring.gettersandsetters.GetterAndSetterContext.FieldWrapper;
|
import org.eclipse.cdt.internal.ui.refactoring.gettersandsetters.GetterAndSetterContext.FieldWrapper;
|
||||||
|
import org.eclipse.cdt.internal.ui.refactoring.gettersandsetters.GetterSetterInsertEditProvider.Type;
|
||||||
|
|
||||||
public class GenerateGettersAndSettersInputPage extends UserInputWizardPage {
|
public class GenerateGettersAndSettersInputPage extends UserInputWizardPage {
|
||||||
|
|
||||||
private GetterAndSetterContext context;
|
private GetterAndSetterContext context;
|
||||||
|
private ContainerCheckedTreeViewer variableSelectionView;
|
||||||
|
private GetterSetterLabelProvider labelProvider;
|
||||||
|
|
||||||
public GenerateGettersAndSettersInputPage(GetterAndSetterContext context) {
|
public GenerateGettersAndSettersInputPage(GetterAndSetterContext context) {
|
||||||
super(Messages.GettersAndSetters_Name);
|
super(Messages.GettersAndSetters_Name);
|
||||||
|
@ -36,55 +43,140 @@ public class GenerateGettersAndSettersInputPage extends UserInputWizardPage {
|
||||||
|
|
||||||
public void createControl(Composite parent) {
|
public void createControl(Composite parent) {
|
||||||
Composite comp = new Composite(parent, SWT.NONE );
|
Composite comp = new Composite(parent, SWT.NONE );
|
||||||
comp.setLayout(new FillLayout());
|
|
||||||
|
setTitle(Messages.GettersAndSetters_Name);
|
||||||
|
setMessage(Messages.GenerateGettersAndSettersInputPage_header);
|
||||||
|
|
||||||
|
comp.setLayout(new GridLayout(2, false));
|
||||||
createTree(comp);
|
createTree(comp);
|
||||||
|
GridData gd = new GridData(GridData.FILL_BOTH);
|
||||||
|
variableSelectionView.getTree().setLayoutData(gd);
|
||||||
|
|
||||||
|
Composite btComp = createButtonComposite(comp);
|
||||||
|
gd = new GridData();
|
||||||
|
gd.verticalAlignment = SWT.TOP;
|
||||||
|
btComp.setLayoutData(gd);
|
||||||
|
|
||||||
setControl(comp);
|
setControl(comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createTree(Composite comp) {
|
private Composite createButtonComposite(Composite comp) {
|
||||||
final ContainerCheckedTreeViewer variableSelectionView = new ContainerCheckedTreeViewer(comp, SWT.BORDER);
|
Composite btComp = new Composite(comp, SWT.NONE);
|
||||||
for(IASTSimpleDeclaration currentField : context.existingFields){
|
FillLayout layout = new FillLayout(SWT.VERTICAL);
|
||||||
if(currentField.getDeclarators().length == 0){
|
layout.spacing = 4;
|
||||||
continue;
|
btComp.setLayout(layout);
|
||||||
}
|
|
||||||
|
Button selectAll = new Button(btComp, SWT.PUSH);
|
||||||
variableSelectionView.setContentProvider(context);
|
selectAll.setText(Messages.GenerateGettersAndSettersInputPage_SelectAll);
|
||||||
variableSelectionView.setAutoExpandLevel(3);
|
selectAll.addSelectionListener(new SelectionAdapter(){
|
||||||
variableSelectionView.setInput(""); //$NON-NLS-1$
|
@Override
|
||||||
if(context.selectedName != null) {
|
public void widgetSelected(SelectionEvent e) {
|
||||||
String rawSignature = context.selectedName.getRawSignature();
|
Object[] items = context.getElements(null);
|
||||||
for(Object obj : variableSelectionView.getVisibleExpandedElements()) {
|
SortedSet<GetterSetterInsertEditProvider> checkedFunctions = context.selectedFunctions;
|
||||||
if (obj instanceof FieldWrapper){
|
for (Object treeItem : items) {
|
||||||
|
variableSelectionView.setChecked(treeItem, true);
|
||||||
if(obj.toString().contains(rawSignature)){
|
Object[] childs = context.getChildren(treeItem);
|
||||||
variableSelectionView.setSubtreeChecked(obj, true);
|
for(Object currentElement : childs){
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ArrayList<GetterSetterInsertEditProvider> checkedFunctions = new ArrayList<GetterSetterInsertEditProvider>();
|
|
||||||
for(Object currentElement : variableSelectionView.getCheckedElements()){
|
|
||||||
if (currentElement instanceof GetterSetterInsertEditProvider) {
|
|
||||||
GetterSetterInsertEditProvider editProvider = (GetterSetterInsertEditProvider) currentElement;
|
|
||||||
checkedFunctions.add(editProvider);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
context.selectedFunctions = checkedFunctions;
|
|
||||||
|
|
||||||
variableSelectionView.addCheckStateListener(new ICheckStateListener(){
|
|
||||||
|
|
||||||
public void checkStateChanged(CheckStateChangedEvent event) {
|
|
||||||
ArrayList<GetterSetterInsertEditProvider> checkedFunctions = new ArrayList<GetterSetterInsertEditProvider>();
|
|
||||||
for(Object currentElement : variableSelectionView.getCheckedElements()){
|
|
||||||
if (currentElement instanceof GetterSetterInsertEditProvider) {
|
if (currentElement instanceof GetterSetterInsertEditProvider) {
|
||||||
GetterSetterInsertEditProvider editProvider = (GetterSetterInsertEditProvider) currentElement;
|
GetterSetterInsertEditProvider editProvider = (GetterSetterInsertEditProvider) currentElement;
|
||||||
checkedFunctions.add(editProvider);
|
checkedFunctions.add(editProvider);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.selectedFunctions = checkedFunctions;
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Button deselectAll = new Button(btComp, SWT.PUSH);
|
||||||
|
deselectAll.setText(Messages.GenerateGettersAndSettersInputPage_DeselectAll);
|
||||||
|
deselectAll.addSelectionListener(new SelectionAdapter(){
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
Object[] items = context.getElements(null);
|
||||||
|
for (Object treeItem : items) {
|
||||||
|
variableSelectionView.setChecked(treeItem, false);
|
||||||
|
}
|
||||||
|
context.selectedFunctions.clear();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Button selectGetter = new Button(btComp, SWT.PUSH);
|
||||||
|
selectGetter.setText(Messages.GenerateGettersAndSettersInputPage_SelectGetters);
|
||||||
|
selectGetter.addSelectionListener(new SelectionAdapter(){
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
selectMethods(Type.getter);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Button selectSetter = new Button(btComp, SWT.PUSH);
|
||||||
|
selectSetter.setText(Messages.GenerateGettersAndSettersInputPage_SelectSetters);
|
||||||
|
selectSetter.addSelectionListener(new SelectionAdapter(){
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
selectMethods(Type.setter);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return btComp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void selectMethods(Type type) {
|
||||||
|
Object[] items = context.getElements(null);
|
||||||
|
Set<GetterSetterInsertEditProvider> checked = context.selectedFunctions;
|
||||||
|
for (Object treeItem : items) {
|
||||||
|
if (treeItem instanceof FieldWrapper) {
|
||||||
|
FieldWrapper field = (FieldWrapper) treeItem;
|
||||||
|
Object[] funtions = context.getChildren(field);
|
||||||
|
for (Object funct : funtions) {
|
||||||
|
if (funct instanceof GetterSetterInsertEditProvider) {
|
||||||
|
GetterSetterInsertEditProvider getSet = (GetterSetterInsertEditProvider) funct;
|
||||||
|
if(getSet.getType() == type) {
|
||||||
|
checked.add(getSet);
|
||||||
|
variableSelectionView.setChecked(getSet, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createTree(Composite comp) {
|
||||||
|
variableSelectionView = new ContainerCheckedTreeViewer(comp, SWT.BORDER);
|
||||||
|
labelProvider = new GetterSetterLabelProvider();
|
||||||
|
variableSelectionView.setContentProvider(context);
|
||||||
|
variableSelectionView.setLabelProvider(labelProvider);
|
||||||
|
|
||||||
|
variableSelectionView.setAutoExpandLevel(3);
|
||||||
|
variableSelectionView.setInput(""); //$NON-NLS-1$
|
||||||
|
if (context.selectedName != null) {
|
||||||
|
String rawSignature = context.selectedName.getRawSignature();
|
||||||
|
for (Object obj : variableSelectionView.getVisibleExpandedElements()) {
|
||||||
|
if (obj instanceof FieldWrapper) {
|
||||||
|
if (obj.toString().contains(rawSignature)) {
|
||||||
|
variableSelectionView.setSubtreeChecked(obj, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Set<GetterSetterInsertEditProvider> checkedFunctions = context.selectedFunctions;
|
||||||
|
for (Object currentElement : variableSelectionView.getCheckedElements()) {
|
||||||
|
if (currentElement instanceof GetterSetterInsertEditProvider) {
|
||||||
|
GetterSetterInsertEditProvider editProvider = (GetterSetterInsertEditProvider) currentElement;
|
||||||
|
checkedFunctions.add(editProvider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
variableSelectionView.addCheckStateListener(new ICheckStateListener() {
|
||||||
|
|
||||||
|
public void checkStateChanged(CheckStateChangedEvent event) {
|
||||||
|
Set<GetterSetterInsertEditProvider> checkedFunctions = context.selectedFunctions;
|
||||||
|
for (Object currentElement : variableSelectionView.getCheckedElements()) {
|
||||||
|
if (currentElement instanceof GetterSetterInsertEditProvider) {
|
||||||
|
GetterSetterInsertEditProvider editProvider = (GetterSetterInsertEditProvider) currentElement;
|
||||||
|
checkedFunctions.add(editProvider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.SortedSet;
|
||||||
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
import org.eclipse.jface.viewers.Viewer;
|
||||||
|
@ -21,6 +23,7 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.internal.ui.refactoring.gettersandsetters.GetterSetterInsertEditProvider.Type;
|
||||||
import org.eclipse.cdt.internal.ui.refactoring.utils.NameHelper;
|
import org.eclipse.cdt.internal.ui.refactoring.utils.NameHelper;
|
||||||
|
|
||||||
public class GetterAndSetterContext implements ITreeContentProvider{
|
public class GetterAndSetterContext implements ITreeContentProvider{
|
||||||
|
@ -28,23 +31,26 @@ public class GetterAndSetterContext implements ITreeContentProvider{
|
||||||
public ArrayList<IASTSimpleDeclaration> existingFields = new ArrayList<IASTSimpleDeclaration>();
|
public ArrayList<IASTSimpleDeclaration> existingFields = new ArrayList<IASTSimpleDeclaration>();
|
||||||
public ArrayList<IASTFunctionDefinition> existingFunctionDefinitions = new ArrayList<IASTFunctionDefinition>();
|
public ArrayList<IASTFunctionDefinition> existingFunctionDefinitions = new ArrayList<IASTFunctionDefinition>();
|
||||||
public ArrayList<IASTSimpleDeclaration> existingFunctionDeclarations = new ArrayList<IASTSimpleDeclaration>();
|
public ArrayList<IASTSimpleDeclaration> existingFunctionDeclarations = new ArrayList<IASTSimpleDeclaration>();
|
||||||
public ArrayList<GetterSetterInsertEditProvider> selectedFunctions = new ArrayList<GetterSetterInsertEditProvider>();
|
public SortedSet<GetterSetterInsertEditProvider> selectedFunctions = new TreeSet<GetterSetterInsertEditProvider>();
|
||||||
private IASTTranslationUnit unit;
|
private IASTTranslationUnit unit;
|
||||||
public IASTName selectedName;
|
public IASTName selectedName;
|
||||||
|
private ArrayList<FieldWrapper> wrappedFields;
|
||||||
|
|
||||||
public Object[] getChildren(Object parentElement) {
|
public Object[] getChildren(Object parentElement) {
|
||||||
|
|
||||||
ArrayList<GetterSetterInsertEditProvider> children = new ArrayList<GetterSetterInsertEditProvider>();
|
ArrayList<GetterSetterInsertEditProvider> children = new ArrayList<GetterSetterInsertEditProvider>();
|
||||||
if (parentElement instanceof FieldWrapper) {
|
if (parentElement instanceof FieldWrapper) {
|
||||||
FieldWrapper wrapper = (FieldWrapper) parentElement;
|
FieldWrapper wrapper = (FieldWrapper) parentElement;
|
||||||
|
|
||||||
if(!wrapper.getter.exists()){
|
if(wrapper.getChildNodes().isEmpty()) {
|
||||||
children.add(createGetterInserter(wrapper.field));
|
if(!wrapper.getter.exists()){
|
||||||
}
|
wrapper.childNodes.add(createGetterInserter(wrapper.field));
|
||||||
if(!wrapper.setter.exists() && !wrapper.field.getDeclSpecifier().isConst()){
|
}
|
||||||
|
if(!wrapper.setter.exists() && !wrapper.field.getDeclSpecifier().isConst()){
|
||||||
children.add(createSetterInserter(wrapper.field));
|
wrapper.childNodes.add(createSetterInserter(wrapper.field));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
children = wrapper.getChildNodes();
|
||||||
}
|
}
|
||||||
return children.toArray();
|
return children.toArray();
|
||||||
}
|
}
|
||||||
|
@ -53,14 +59,14 @@ public class GetterAndSetterContext implements ITreeContentProvider{
|
||||||
String varName = simpleDeclaration.getDeclarators()[0].getName().toString();
|
String varName = simpleDeclaration.getDeclarators()[0].getName().toString();
|
||||||
IASTFunctionDefinition getter = FunctionFactory.createGetter(varName, simpleDeclaration);
|
IASTFunctionDefinition getter = FunctionFactory.createGetter(varName, simpleDeclaration);
|
||||||
getter.setParent(unit);
|
getter.setParent(unit);
|
||||||
return new GetterSetterInsertEditProvider(getter);
|
return new GetterSetterInsertEditProvider(getter, Type.getter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetterSetterInsertEditProvider createSetterInserter(IASTSimpleDeclaration simpleDeclaration) {
|
public GetterSetterInsertEditProvider createSetterInserter(IASTSimpleDeclaration simpleDeclaration) {
|
||||||
String varName = simpleDeclaration.getDeclarators()[0].getName().toString();
|
String varName = simpleDeclaration.getDeclarators()[0].getName().toString();
|
||||||
IASTFunctionDefinition setter = FunctionFactory.createSetter(varName, simpleDeclaration);
|
IASTFunctionDefinition setter = FunctionFactory.createSetter(varName, simpleDeclaration);
|
||||||
setter.setParent(unit);
|
setter.setParent(unit);
|
||||||
return new GetterSetterInsertEditProvider(setter);
|
return new GetterSetterInsertEditProvider(setter, Type.setter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getParent(Object element) {
|
public Object getParent(Object element) {
|
||||||
|
@ -95,14 +101,16 @@ public class GetterAndSetterContext implements ITreeContentProvider{
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayList<FieldWrapper> getWrappedFields() {
|
private ArrayList<FieldWrapper> getWrappedFields() {
|
||||||
ArrayList<FieldWrapper> wrappedFields = new ArrayList<FieldWrapper>();
|
if(wrappedFields == null) {
|
||||||
for(IASTSimpleDeclaration currentField : existingFields){
|
wrappedFields = new ArrayList<FieldWrapper>();
|
||||||
FieldWrapper wrapper = new FieldWrapper();
|
for(IASTSimpleDeclaration currentField : existingFields){
|
||||||
wrapper.field = currentField;
|
FieldWrapper wrapper = new FieldWrapper();
|
||||||
wrapper.getter = getGetterForField(currentField);
|
wrapper.field = currentField;
|
||||||
wrapper.setter = getSetterForField(currentField);
|
wrapper.getter = getGetterForField(currentField);
|
||||||
if(wrapper.missingGetterOrSetter()){
|
wrapper.setter = getSetterForField(currentField);
|
||||||
wrappedFields.add(wrapper);
|
if(wrapper.missingGetterOrSetter()){
|
||||||
|
wrappedFields.add(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return wrappedFields;
|
return wrappedFields;
|
||||||
|
@ -146,12 +154,17 @@ public class GetterAndSetterContext implements ITreeContentProvider{
|
||||||
protected IASTSimpleDeclaration field;
|
protected IASTSimpleDeclaration field;
|
||||||
protected FunctionWrapper getter;
|
protected FunctionWrapper getter;
|
||||||
protected FunctionWrapper setter;
|
protected FunctionWrapper setter;
|
||||||
|
protected ArrayList<GetterSetterInsertEditProvider> childNodes = new ArrayList<GetterSetterInsertEditProvider>(2);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return field.getDeclarators()[0].getName().toString();
|
return field.getDeclarators()[0].getName().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<GetterSetterInsertEditProvider> getChildNodes() {
|
||||||
|
return childNodes;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean missingGetterOrSetter() {
|
public boolean missingGetterOrSetter() {
|
||||||
return !getter.exists() || !setter.exists();
|
return !getter.exists() || !setter.exists();
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,12 +14,21 @@ package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
|
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
|
||||||
|
|
||||||
|
|
||||||
public class GetterSetterInsertEditProvider {
|
public class GetterSetterInsertEditProvider implements Comparable<GetterSetterInsertEditProvider>{
|
||||||
|
public enum Type{
|
||||||
|
getter,
|
||||||
|
setter;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private IASTFunctionDefinition function;
|
private IASTFunctionDefinition function;
|
||||||
|
private Type type;
|
||||||
|
|
||||||
public GetterSetterInsertEditProvider(IASTFunctionDefinition function){
|
|
||||||
|
public GetterSetterInsertEditProvider(IASTFunctionDefinition function, Type type){
|
||||||
this.function = function;
|
this.function = function;
|
||||||
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -30,4 +39,14 @@ public class GetterSetterInsertEditProvider {
|
||||||
public IASTFunctionDefinition getFunction() {
|
public IASTFunctionDefinition getFunction() {
|
||||||
return function;
|
return function;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Type getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compareTo(GetterSetterInsertEditProvider o) {
|
||||||
|
return toString().compareTo(o.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2009 Institute for Software, HSR Hochschule fuer Technik
|
||||||
|
* Rapperswil, University of applied sciences and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Institute for Software (IFS)- initial API and implementation
|
||||||
|
******************************************************************************/
|
||||||
|
package org.eclipse.cdt.internal.ui.refactoring.gettersandsetters;
|
||||||
|
|
||||||
|
import org.eclipse.jface.viewers.LabelProvider;
|
||||||
|
import org.eclipse.swt.graphics.Image;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emanuel Graf IFS
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GetterSetterLabelProvider extends LabelProvider {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Image getImage(Object element) {
|
||||||
|
if(element != null) {
|
||||||
|
if (element instanceof GetterSetterInsertEditProvider) {
|
||||||
|
return CElementImageProvider.getMethodImageDescriptor(ASTAccessVisibility.PUBLIC).createImage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,6 +21,11 @@ public final class Messages extends NLS {
|
||||||
// Do not instantiate
|
// Do not instantiate
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String GenerateGettersAndSettersInputPage_DeselectAll;
|
||||||
|
public static String GenerateGettersAndSettersInputPage_header;
|
||||||
|
public static String GenerateGettersAndSettersInputPage_SelectAll;
|
||||||
|
public static String GenerateGettersAndSettersInputPage_SelectGetters;
|
||||||
|
public static String GenerateGettersAndSettersInputPage_SelectSetters;
|
||||||
public static String GenerateGettersAndSettersRefactoring_NoCassDefFound;
|
public static String GenerateGettersAndSettersRefactoring_NoCassDefFound;
|
||||||
public static String GenerateGettersAndSettersRefactoring_NoFields;
|
public static String GenerateGettersAndSettersRefactoring_NoFields;
|
||||||
public static String GettersAndSetters_Name;
|
public static String GettersAndSetters_Name;
|
||||||
|
|
|
@ -9,6 +9,11 @@
|
||||||
# Contributors:
|
# Contributors:
|
||||||
# Institute for Software - initial API and implementation
|
# Institute for Software - initial API and implementation
|
||||||
###############################################################################
|
###############################################################################
|
||||||
GettersAndSetters_Name=Generate Getters and Setters
|
GettersAndSetters_Name=Generate getters and setters
|
||||||
|
GenerateGettersAndSettersInputPage_DeselectAll=Deselect All
|
||||||
|
GenerateGettersAndSettersInputPage_header=Select getters and setters to create:
|
||||||
|
GenerateGettersAndSettersInputPage_SelectAll=Select All
|
||||||
|
GenerateGettersAndSettersInputPage_SelectGetters=Select Getters
|
||||||
|
GenerateGettersAndSettersInputPage_SelectSetters=Select Setters
|
||||||
GenerateGettersAndSettersRefactoring_NoCassDefFound=No class definition found
|
GenerateGettersAndSettersRefactoring_NoCassDefFound=No class definition found
|
||||||
GenerateGettersAndSettersRefactoring_NoFields=The class does not contain any fields.
|
GenerateGettersAndSettersRefactoring_NoFields=The class does not contain any fields.
|
||||||
|
|
Loading…
Add table
Reference in a new issue