mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 06:45:43 +02:00
partually support editing multiple problems at the same time
This commit is contained in:
parent
1db363d94c
commit
14199fcfa3
5 changed files with 126 additions and 47 deletions
|
@ -18,7 +18,7 @@ import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List implementation of IProblemPreference.
|
* List implementation of IProblemPreference.
|
||||||
*
|
*
|
||||||
* @noextend This class is not intended to be extended by clients.
|
* @noextend This class is not intended to be extended by clients.
|
||||||
*/
|
*/
|
||||||
public class ListProblemPreference extends AbstractProblemPreference implements IProblemPreferenceCompositeValue,
|
public class ListProblemPreference extends AbstractProblemPreference implements IProblemPreferenceCompositeValue,
|
||||||
|
@ -49,7 +49,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
/**
|
/**
|
||||||
* Set child descriptor (all elements have the same). Value and key
|
* Set child descriptor (all elements have the same). Value and key
|
||||||
* of it would be ignored and reset.
|
* of it would be ignored and reset.
|
||||||
*
|
*
|
||||||
* @param desc
|
* @param desc
|
||||||
* @return set child descriptor
|
* @return set child descriptor
|
||||||
*/
|
*/
|
||||||
|
@ -66,7 +66,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
* Sets common descriptor for all elements, if value if not null sets the
|
* Sets common descriptor for all elements, if value if not null sets the
|
||||||
* value for its key also. Do not make assumptions of values of desc after
|
* value for its key also. Do not make assumptions of values of desc after
|
||||||
* you pass it to this function.
|
* you pass it to this function.
|
||||||
*
|
*
|
||||||
* @return read only preference matching the key
|
* @return read only preference matching the key
|
||||||
*/
|
*/
|
||||||
public IProblemPreference addChildDescriptor(IProblemPreference desc) {
|
public IProblemPreference addChildDescriptor(IProblemPreference desc) {
|
||||||
|
@ -78,7 +78,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return descriptor of the child elements
|
* @return descriptor of the child elements
|
||||||
*/
|
*/
|
||||||
public IProblemPreference getChildDescriptor() {
|
public IProblemPreference getChildDescriptor() {
|
||||||
|
@ -88,7 +88,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
/**
|
/**
|
||||||
* Returns cloned descriptor of the i'th child. Modifying return value would
|
* Returns cloned descriptor of the i'th child. Modifying return value would
|
||||||
* not affect internal state of the list element.
|
* not affect internal state of the list element.
|
||||||
*
|
*
|
||||||
* @param i - index of the element
|
* @param i - index of the element
|
||||||
* @return child preference
|
* @return child preference
|
||||||
*/
|
*/
|
||||||
|
@ -103,7 +103,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
/**
|
/**
|
||||||
* Get read only problem preference for element equal to key's int value.
|
* Get read only problem preference for element equal to key's int value.
|
||||||
* If key is null or # return generic descriptor with null value.
|
* If key is null or # return generic descriptor with null value.
|
||||||
*
|
*
|
||||||
* @throws NumberFormatException
|
* @throws NumberFormatException
|
||||||
* if key is not number
|
* if key is not number
|
||||||
*/
|
*/
|
||||||
|
@ -170,7 +170,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds value to the list
|
* Adds value to the list
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
public void addChildValue(Object value) {
|
public void addChildValue(Object value) {
|
||||||
|
@ -211,6 +211,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void importValue(String str) {
|
public void importValue(String str) {
|
||||||
|
if (str.length()==0) return;
|
||||||
StreamTokenizer tokenizer = getImportTokenizer(str);
|
StreamTokenizer tokenizer = getImportTokenizer(str);
|
||||||
try {
|
try {
|
||||||
importValue(tokenizer);
|
importValue(tokenizer);
|
||||||
|
@ -288,7 +289,7 @@ public class ListProblemPreference extends AbstractProblemPreference implements
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets list value to values of array given as argument.
|
* Sets list value to values of array given as argument.
|
||||||
*
|
*
|
||||||
* @param value - must be Object[]
|
* @param value - must be Object[]
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package org.eclipse.cdt.codan.internal.ui.actions;
|
package org.eclipse.cdt.codan.internal.ui.actions;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.codan.core.model.IProblem;
|
||||||
import org.eclipse.cdt.codan.core.model.IProblemProfile;
|
import org.eclipse.cdt.codan.core.model.IProblemProfile;
|
||||||
import org.eclipse.cdt.codan.internal.core.model.CodanProblem;
|
import org.eclipse.cdt.codan.internal.core.model.CodanProblem;
|
||||||
import org.eclipse.cdt.codan.internal.core.model.CodanProblemMarker;
|
import org.eclipse.cdt.codan.internal.core.model.CodanProblemMarker;
|
||||||
|
@ -21,17 +25,23 @@ public class OpenProblemPreferences implements IObjectActionDelegate {
|
||||||
|
|
||||||
public void run(IAction action) {
|
public void run(IAction action) {
|
||||||
if (selection instanceof IStructuredSelection) {
|
if (selection instanceof IStructuredSelection) {
|
||||||
Object firstElement = ((IStructuredSelection) selection).getFirstElement(); // TODO support multiple
|
IStructuredSelection ss = (IStructuredSelection) selection;
|
||||||
if (firstElement instanceof IMarker) {
|
ArrayList<IProblem> list = new ArrayList<IProblem>();
|
||||||
IMarker marker = (IMarker) firstElement;
|
IResource resource = null;
|
||||||
String id = CodanProblemMarker.getProblemId(marker);
|
for (Iterator<?> iterator = ss.iterator(); iterator.hasNext();) {
|
||||||
if (id == null)
|
Object el = iterator.next();
|
||||||
return;
|
if (el instanceof IMarker) {
|
||||||
IResource resource = marker.getResource();
|
IMarker marker = (IMarker) el;
|
||||||
IProblemProfile profile = CodanProblemMarker.getProfile(resource);
|
String id = CodanProblemMarker.getProblemId(marker);
|
||||||
CodanProblem problem = ((CodanProblem) profile.findProblem(id));
|
if (id == null)
|
||||||
new CustomizeProblemDialog(targetPart.getSite().getShell(), problem, resource).open();
|
return;
|
||||||
|
resource = marker.getResource();
|
||||||
|
IProblemProfile profile = CodanProblemMarker.getProfile(resource);
|
||||||
|
CodanProblem problem = ((CodanProblem) profile.findProblem(id));
|
||||||
|
list.add(problem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
new CustomizeProblemDialog(targetPart.getSite().getShell(), list.toArray(new IProblem[list.size()]), resource).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,11 @@ package org.eclipse.cdt.codan.internal.ui.dialogs;
|
||||||
|
|
||||||
import org.eclipse.cdt.codan.core.model.IProblem;
|
import org.eclipse.cdt.codan.core.model.IProblem;
|
||||||
import org.eclipse.cdt.codan.core.model.IProblemWorkingCopy;
|
import org.eclipse.cdt.codan.core.model.IProblemWorkingCopy;
|
||||||
|
import org.eclipse.cdt.codan.core.param.RootProblemPreference;
|
||||||
|
import org.eclipse.cdt.codan.internal.core.model.CodanProblem;
|
||||||
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
||||||
import org.eclipse.cdt.codan.internal.ui.widgets.CustomizeProblemComposite;
|
import org.eclipse.cdt.codan.internal.ui.widgets.CustomizeProblemComposite;
|
||||||
|
import org.eclipse.cdt.codan.internal.ui.widgets.ParametersComposite;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
import org.eclipse.jface.dialogs.TitleAreaDialog;
|
import org.eclipse.jface.dialogs.TitleAreaDialog;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
@ -29,6 +32,7 @@ import org.eclipse.swt.widgets.Shell;
|
||||||
public class CustomizeProblemDialog extends TitleAreaDialog {
|
public class CustomizeProblemDialog extends TitleAreaDialog {
|
||||||
private CustomizeProblemComposite comp;
|
private CustomizeProblemComposite comp;
|
||||||
private IProblem problem;
|
private IProblem problem;
|
||||||
|
private IProblem[] problems;
|
||||||
private IResource resource;
|
private IResource resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,13 +40,30 @@ public class CustomizeProblemDialog extends TitleAreaDialog {
|
||||||
* @param selectedProblem
|
* @param selectedProblem
|
||||||
* @param iResource
|
* @param iResource
|
||||||
*/
|
*/
|
||||||
public CustomizeProblemDialog(Shell parentShell, IProblem selectedProblem, IResource resource) {
|
public CustomizeProblemDialog(Shell parentShell, IProblem[] selectedProblems, IResource resource) {
|
||||||
super(parentShell);
|
super(parentShell);
|
||||||
this.problem = selectedProblem;
|
this.problems = selectedProblems;
|
||||||
|
this.problem = buildCombined(selectedProblems);
|
||||||
this.resource = resource;
|
this.resource = resource;
|
||||||
setShellStyle(getShellStyle() | SWT.RESIZE);
|
setShellStyle(getShellStyle() | SWT.RESIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param selectedProblems
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private IProblem buildCombined(IProblem[] selectedProblems) {
|
||||||
|
if (selectedProblems.length == 1) {
|
||||||
|
return selectedProblems[0];
|
||||||
|
}
|
||||||
|
CodanProblem problem = new CodanProblem("multi", getTitle());
|
||||||
|
problem.setMessagePattern(ParametersComposite.NO_CHANGE);
|
||||||
|
problem.setPreference(new RootProblemPreference());
|
||||||
|
problem.setSeverity(selectedProblems[0].getSeverity());
|
||||||
|
problem.setEnabled(selectedProblems[0].isEnabled());
|
||||||
|
return problem;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores edit values into problem working copy
|
* Stores edit values into problem working copy
|
||||||
*
|
*
|
||||||
|
@ -63,7 +84,7 @@ public class CustomizeProblemDialog extends TitleAreaDialog {
|
||||||
@Override
|
@Override
|
||||||
protected Control createDialogArea(Composite parent) {
|
protected Control createDialogArea(Composite parent) {
|
||||||
getShell().setText(CodanUIMessages.CustomizeProblemDialog_Title);
|
getShell().setText(CodanUIMessages.CustomizeProblemDialog_Title);
|
||||||
setTitle(problem.getName());
|
setTitle(getTitle());
|
||||||
setMessage(CodanUIMessages.CustomizeProblemDialog_Message);
|
setMessage(CodanUIMessages.CustomizeProblemDialog_Message);
|
||||||
Composite area = (Composite) super.createDialogArea(parent);
|
Composite area = (Composite) super.createDialogArea(parent);
|
||||||
comp = new CustomizeProblemComposite(area, problem, resource);
|
comp = new CustomizeProblemComposite(area, problem, resource);
|
||||||
|
@ -73,6 +94,22 @@ public class CustomizeProblemDialog extends TitleAreaDialog {
|
||||||
return area;
|
return area;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getTitle() {
|
||||||
|
if (problems.length == 1)
|
||||||
|
return problem.getName();
|
||||||
|
String b = ""; //$NON-NLS-1$
|
||||||
|
for (int i = 0; i < problems.length; i++) {
|
||||||
|
IProblem p = problems[i];
|
||||||
|
if (i != 0)
|
||||||
|
b += ", "; //$NON-NLS-1$
|
||||||
|
b += p.getName();
|
||||||
|
}
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
|
@ -80,7 +117,10 @@ public class CustomizeProblemDialog extends TitleAreaDialog {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void okPressed() {
|
protected void okPressed() {
|
||||||
save((IProblemWorkingCopy) problem);
|
for (int i = 0; i < problems.length; i++) {
|
||||||
|
IProblemWorkingCopy wc = (IProblemWorkingCopy) problems[i];
|
||||||
|
save(wc);
|
||||||
|
}
|
||||||
super.okPressed();
|
super.okPressed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,9 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.codan.internal.ui.preferences;
|
package org.eclipse.cdt.codan.internal.ui.preferences;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
||||||
import org.eclipse.cdt.codan.core.CodanRuntime;
|
import org.eclipse.cdt.codan.core.CodanRuntime;
|
||||||
import org.eclipse.cdt.codan.core.model.ICheckersRegistry;
|
import org.eclipse.cdt.codan.core.model.ICheckersRegistry;
|
||||||
|
@ -53,7 +56,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
|
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
|
||||||
private IProblemProfile profile;
|
private IProblemProfile profile;
|
||||||
private ISelectionChangedListener problemSelectionListener;
|
private ISelectionChangedListener problemSelectionListener;
|
||||||
private IProblem selectedProblem;
|
private ArrayList<IProblem> selectedProblems;
|
||||||
private Button infoButton;
|
private Button infoButton;
|
||||||
private ProblemsTreeEditor checkedTreeEditor;
|
private ProblemsTreeEditor checkedTreeEditor;
|
||||||
|
|
||||||
|
@ -66,10 +69,14 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
if (infoButton != null) {
|
if (infoButton != null) {
|
||||||
if (event.getSelection() instanceof ITreeSelection) {
|
if (event.getSelection() instanceof ITreeSelection) {
|
||||||
ITreeSelection s = (ITreeSelection) event.getSelection();
|
ITreeSelection s = (ITreeSelection) event.getSelection();
|
||||||
if (s.getFirstElement() instanceof IProblem)
|
ArrayList<IProblem> list = new ArrayList<IProblem>();
|
||||||
setSelectedProblem((IProblem) s.getFirstElement());
|
for (Iterator iterator = s.iterator(); iterator.hasNext();) {
|
||||||
else
|
Object o = iterator.next();
|
||||||
setSelectedProblem(null);
|
if (o instanceof IProblem) {
|
||||||
|
list.add((IProblem) o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setSelectedProblems(list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,7 +131,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
Composite info = new Composite(comp, SWT.NONE);
|
Composite info = new Composite(comp, SWT.NONE);
|
||||||
info.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
info.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
GridLayout layout = new GridLayout(1, false);
|
GridLayout layout = new GridLayout(1, false);
|
||||||
layout.marginWidth=0;
|
layout.marginWidth = 0;
|
||||||
info.setLayout(layout);
|
info.setLayout(layout);
|
||||||
infoButton = new Button(info, SWT.PUSH);
|
infoButton = new Button(info, SWT.PUSH);
|
||||||
infoButton.setLayoutData(GridDataFactory.swtDefaults().align(SWT.END, SWT.BEGINNING).create());
|
infoButton.setLayoutData(GridDataFactory.swtDefaults().align(SWT.END, SWT.BEGINNING).create());
|
||||||
|
@ -141,8 +148,8 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
/**
|
/**
|
||||||
* @param selection
|
* @param selection
|
||||||
*/
|
*/
|
||||||
protected void setSelectedProblem(IProblem problem) {
|
protected void setSelectedProblems(ArrayList<IProblem> list) {
|
||||||
this.selectedProblem = problem;
|
this.selectedProblems = list;
|
||||||
updateProblemInfo();
|
updateProblemInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,8 +174,11 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveWidgetValues() {
|
private void saveWidgetValues() {
|
||||||
CodanUIActivator.getDefault().getDialogSettings()
|
CodanUIActivator
|
||||||
.put(getWidgetId(), selectedProblem == null ? EMPTY_STRING : selectedProblem.getId());
|
.getDefault()
|
||||||
|
.getDialogSettings()
|
||||||
|
.put(getWidgetId(),
|
||||||
|
(selectedProblems == null || selectedProblems.size() == 0) ? EMPTY_STRING : selectedProblems.get(0).getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void restoreWidgetValues() {
|
private void restoreWidgetValues() {
|
||||||
|
@ -176,7 +186,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
if (id != null && id.length() > 0 && checkedTreeEditor != null) {
|
if (id != null && id.length() > 0 && checkedTreeEditor != null) {
|
||||||
checkedTreeEditor.getTreeViewer().setSelection(new StructuredSelection(profile.findProblem(id)), true);
|
checkedTreeEditor.getTreeViewer().setSelection(new StructuredSelection(profile.findProblem(id)), true);
|
||||||
} else {
|
} else {
|
||||||
setSelectedProblem(null);
|
setSelectedProblems(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +198,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateProblemInfo() {
|
private void updateProblemInfo() {
|
||||||
if (selectedProblem == null) {
|
if (selectedProblems == null) {
|
||||||
infoButton.setEnabled(false);
|
infoButton.setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
infoButton.setEnabled(true);
|
infoButton.setEnabled(true);
|
||||||
|
@ -205,9 +215,11 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void openCustomizeDialog() {
|
protected void openCustomizeDialog() {
|
||||||
if (selectedProblem == null)
|
if (selectedProblems == null || selectedProblems.size() == 0)
|
||||||
return;
|
return;
|
||||||
CustomizeProblemDialog dialog = new CustomizeProblemDialog(getShell(), selectedProblem, (IResource) getElement());
|
CustomizeProblemDialog dialog = new CustomizeProblemDialog(getShell(), selectedProblems.toArray(new IProblem[selectedProblems
|
||||||
|
.size()]), (IResource) getElement());
|
||||||
dialog.open();
|
dialog.open();
|
||||||
|
checkedTreeEditor.getTreeViewer().refresh(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -45,6 +45,7 @@ public class ParametersComposite extends Composite {
|
||||||
private static final String PREF_ENABLED = "enabled"; //$NON-NLS-1$
|
private static final String PREF_ENABLED = "enabled"; //$NON-NLS-1$
|
||||||
private static final String PREF_SEVERITY = "severity"; //$NON-NLS-1$
|
private static final String PREF_SEVERITY = "severity"; //$NON-NLS-1$
|
||||||
private static final String PREF_MESSAGE = "message"; //$NON-NLS-1$
|
private static final String PREF_MESSAGE = "message"; //$NON-NLS-1$
|
||||||
|
public static final String NO_CHANGE = "<do not change>";
|
||||||
private FieldEditorPreferencePage page;
|
private FieldEditorPreferencePage page;
|
||||||
private IProblem problem;
|
private IProblem problem;
|
||||||
private PreferenceStore prefStore;
|
private PreferenceStore prefStore;
|
||||||
|
@ -70,6 +71,7 @@ public class ParametersComposite extends Composite {
|
||||||
String[][] entries = { { CodanSeverity.Error.toString(), CodanSeverity.Error.toString() }, //
|
String[][] entries = { { CodanSeverity.Error.toString(), CodanSeverity.Error.toString() }, //
|
||||||
{ CodanSeverity.Warning.toString(), CodanSeverity.Warning.toString() }, //
|
{ CodanSeverity.Warning.toString(), CodanSeverity.Warning.toString() }, //
|
||||||
{ CodanSeverity.Info.toString(), CodanSeverity.Info.toString() }, //
|
{ CodanSeverity.Info.toString(), CodanSeverity.Info.toString() }, //
|
||||||
|
{ NO_CHANGE, NO_CHANGE }, //
|
||||||
};
|
};
|
||||||
addField(new ComboFieldEditor(PREF_SEVERITY, CodanUIMessages.ParametersComposite_Severity, entries, getFieldEditorParent()));
|
addField(new ComboFieldEditor(PREF_SEVERITY, CodanUIMessages.ParametersComposite_Severity, entries, getFieldEditorParent()));
|
||||||
addField(new StringFieldEditor(PREF_MESSAGE, CodanUIMessages.ParametersComposite_MessagePattern, getFieldEditorParent()));
|
addField(new StringFieldEditor(PREF_MESSAGE, CodanUIMessages.ParametersComposite_MessagePattern, getFieldEditorParent()));
|
||||||
|
@ -183,17 +185,25 @@ public class ParametersComposite extends Composite {
|
||||||
} else {
|
} else {
|
||||||
initPrefStore(info);
|
initPrefStore(info);
|
||||||
}
|
}
|
||||||
prefStore.setValue(PREF_ENABLED, problem.isEnabled());
|
prefStore.setDefault(PREF_ENABLED, problem.isEnabled());
|
||||||
prefStore.setValue(PREF_SEVERITY, problem.getSeverity().toString());
|
if (problem.getMessagePattern() == NO_CHANGE) {
|
||||||
prefStore.setValue(PREF_MESSAGE, problem.getMessagePattern());
|
prefStore.setDefault(PREF_SEVERITY, NO_CHANGE);
|
||||||
|
} else {
|
||||||
|
prefStore.setDefault(PREF_SEVERITY, problem.getSeverity().toString());
|
||||||
|
}
|
||||||
|
prefStore.setDefault(PREF_MESSAGE, problem.getMessagePattern());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void save(IProblemWorkingCopy problem) {
|
public void save(IProblemWorkingCopy problem) {
|
||||||
page.performOk();
|
page.performOk();
|
||||||
savePrefStore(problem.getPreference());
|
savePrefStore(problem.getPreference());
|
||||||
problem.setEnabled(prefStore.getBoolean(PREF_ENABLED));
|
problem.setEnabled(prefStore.getBoolean(PREF_ENABLED));
|
||||||
problem.setSeverity(CodanSeverity.valueOf(prefStore.getString(PREF_SEVERITY)));
|
String severity = prefStore.getString(PREF_SEVERITY);
|
||||||
problem.setMessagePattern(prefStore.getString(PREF_MESSAGE));
|
if (!severity.equals(NO_CHANGE))
|
||||||
|
problem.setSeverity(CodanSeverity.valueOf(severity));
|
||||||
|
String message = prefStore.getString(PREF_MESSAGE);
|
||||||
|
if (!message.equals(NO_CHANGE))
|
||||||
|
problem.setMessagePattern(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void savePrefStore(IProblemPreference desc) {
|
private void savePrefStore(IProblemPreference desc) {
|
||||||
|
@ -237,22 +247,28 @@ public class ParametersComposite extends Composite {
|
||||||
String key = desc.getQualifiedKey();
|
String key = desc.getQualifiedKey();
|
||||||
switch (desc.getType()) {
|
switch (desc.getType()) {
|
||||||
case TYPE_STRING:
|
case TYPE_STRING:
|
||||||
prefStore.setValue(key, (String) desc.getValue());
|
prefStore.setDefault(key, (String) desc.getValue());
|
||||||
|
//prefStore.setValue(key, (String) desc.getValue());
|
||||||
break;
|
break;
|
||||||
case TYPE_BOOLEAN:
|
case TYPE_BOOLEAN:
|
||||||
prefStore.setValue(key, (Boolean) desc.getValue());
|
prefStore.setDefault(key, (Boolean) desc.getValue());
|
||||||
|
//prefStore.setValue(key, (Boolean) desc.getValue());
|
||||||
break;
|
break;
|
||||||
case TYPE_INTEGER:
|
case TYPE_INTEGER:
|
||||||
prefStore.setValue(key, (Integer) desc.getValue());
|
prefStore.setDefault(key, (Integer) desc.getValue());
|
||||||
|
//prefStore.setValue(key, (Integer) desc.getValue());
|
||||||
break;
|
break;
|
||||||
case TYPE_FILE:
|
case TYPE_FILE:
|
||||||
prefStore.setValue(key, ((File) desc.getValue()).getPath());
|
prefStore.setDefault(key, ((File) desc.getValue()).getPath());
|
||||||
|
//prefStore.setValue(key, ((File) desc.getValue()).getPath());
|
||||||
break;
|
break;
|
||||||
case TYPE_LIST:
|
case TYPE_LIST:
|
||||||
prefStore.setValue(key, desc.exportValue());
|
prefStore.setDefault(key, desc.exportValue());
|
||||||
|
//prefStore.setValue(key, desc.exportValue());
|
||||||
break;
|
break;
|
||||||
case TYPE_CUSTOM:
|
case TYPE_CUSTOM:
|
||||||
prefStore.setValue(key, desc.exportValue());
|
prefStore.setDefault(key, desc.exportValue());
|
||||||
|
//prefStore.setValue(key, desc.exportValue());
|
||||||
break;
|
break;
|
||||||
case TYPE_MAP:
|
case TYPE_MAP:
|
||||||
IProblemPreference[] childrenDescriptor = ((IProblemPreferenceCompositeDescriptor) desc).getChildDescriptors();
|
IProblemPreference[] childrenDescriptor = ((IProblemPreferenceCompositeDescriptor) desc).getChildDescriptors();
|
||||||
|
|
Loading…
Add table
Reference in a new issue