Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config/checkstyle-checks.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,6 +660,7 @@
<module name="CyclomaticComplexity">
<property name="switchBlockAsSingleDecisionPoint" value="true"/>
</module>
<module name="JavaNCSS"/>
<module name="NPathComplexity"/>

<!-- Misc -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,30 +110,36 @@ public Composite createContents(Composite parent) {

boolean useDefaultColumn = mWorkingSet instanceof GlobalCheckConfigurationWorkingSet;

ButtonBarActions buttonBarActions = new ButtonBarActions(this::addCheckConfig,
this::editCheckConfig, this::configureCheckConfig, this::copyCheckConfig,
this::removeCheckConfig, this::setDefaultCheckConfig,
this::exportCheckstyleCheckConfig);
this.buttonBar = new ButtonBar(configComposite, SWT.NULL, useDefaultColumn, buttonBarActions);
this.buttonBar = new ButtonBar(configComposite, SWT.NULL, useDefaultColumn,
new ButtonBarActions(this::addCheckConfig, this::editCheckConfig,
this::configureCheckConfig, this::copyCheckConfig, this::removeCheckConfig,
this::setDefaultCheckConfig, this::exportCheckstyleCheckConfig));
FormData formData = new FormData();
formData.top = new FormAttachment(0);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
buttonBar.setLayoutData(formData);

Composite tableAndDesc = new Composite(configComposite, SWT.NULL);
createTableAndDesc(configComposite, useDefaultColumn);
// enforce update of button enabled state
handleSelectionChanged(null);

return configComposite;
}

private void createTableAndDesc(Composite parent, boolean useDefaultColumn) {
Composite tableAndDesc = new Composite(parent, SWT.NULL);
tableAndDesc.setLayout(new FormLayout());
formData = new FormData();
FormData formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(0);
formData.right = new FormAttachment(buttonBar, -3, SWT.LEFT);
formData.bottom = new FormAttachment(100, 0);
tableAndDesc.setLayoutData(formData);

final ConfigurationLabelProvider multiProvider = new ConfigurationLabelProvider(mWorkingSet);
this.configTable = new ConfigTable(tableAndDesc, SWT.NULL, useDefaultColumn,
mWorkingSet.getWorkingCopies(), multiProvider, this::configureCheckConfig,
this::handleSelectionChanged);
mWorkingSet.getWorkingCopies(), new ConfigurationLabelProvider(mWorkingSet),
this::configureCheckConfig, this::handleSelectionChanged);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(0);
Expand Down Expand Up @@ -168,39 +174,38 @@ public Composite createContents(Composite parent) {
mConfigurationDescription.setLayoutData(formData);

if (mIsShowUsage) {
Composite usageArea = new Composite(tableAndDesc, SWT.NULL);
usageArea.setLayout(new FormLayout());
formData = new FormData();
formData.left = new FormAttachment(60, 0);
formData.top = new FormAttachment(this.configTable, 3);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
usageArea.setLayoutData(formData);

Label lblUsage = new Label(usageArea, SWT.NULL);
lblUsage.setText(Messages.CheckstylePreferencePage_lblProjectUsage);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(0);
formData.right = new FormAttachment(100);
lblUsage.setLayoutData(formData);

mUsageView = new TableViewer(usageArea);
mUsageView.getControl().setBackground(usageArea.getBackground());
mUsageView.setContentProvider(new ArrayContentProvider());
mUsageView.setLabelProvider(new WorkbenchLabelProvider());
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(lblUsage);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
mUsageView.getControl().setLayoutData(formData);
createUsageArea(tableAndDesc);
}
}

// enforce update of button enabled state
handleSelectionChanged(null);
private void createUsageArea(Composite parent) {
Composite usageArea = new Composite(parent, SWT.NULL);
usageArea.setLayout(new FormLayout());
FormData formData = new FormData();
formData.left = new FormAttachment(60, 0);
formData.top = new FormAttachment(this.configTable, 3);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
usageArea.setLayoutData(formData);

return configComposite;
Label lblUsage = new Label(usageArea, SWT.NULL);
lblUsage.setText(Messages.CheckstylePreferencePage_lblProjectUsage);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(0);
formData.right = new FormAttachment(100);
lblUsage.setLayoutData(formData);

mUsageView = new TableViewer(usageArea);
mUsageView.getControl().setBackground(usageArea.getBackground());
mUsageView.setContentProvider(new ArrayContentProvider());
mUsageView.setLabelProvider(new WorkbenchLabelProvider());
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(lblUsage);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
mUsageView.getControl().setLayoutData(formData);
}

/**
Expand Down Expand Up @@ -490,63 +495,50 @@ private ButtonBar(Composite parent, int style, boolean useDefaultButton, ButtonB

setLayout(new FormLayout());

Button mAddButton = new Button(this, SWT.PUSH);
mAddButton.setText(Messages.CheckstylePreferencePage_btnNew);
mAddButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.addCheckConfig.accept(getShell())));
FormData formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(0);
formData.right = new FormAttachment(100);
Button mAddButton = createButton(this, Messages.CheckstylePreferencePage_btnNew,
actions.addCheckConfig);
mAddButton.setLayoutData(formData);

mEditButton = new Button(this, SWT.PUSH);
mEditButton.setText(Messages.CheckstylePreferencePage_btnProperties);
mEditButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.editCheckConfig.accept(getShell())));
mEditButton = createButton(this, Messages.CheckstylePreferencePage_btnProperties,
actions.editCheckConfig);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(mAddButton, 3, SWT.BOTTOM);
formData.right = new FormAttachment(100);
mEditButton.setLayoutData(formData);

mConfigureButton = new Button(this, SWT.PUSH);
mConfigureButton.setText(Messages.CheckstylePreferencePage_btnConfigure);
mConfigureButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.configureCheckConfig.accept(getShell())));
mConfigureButton = createButton(this, Messages.CheckstylePreferencePage_btnConfigure,
actions.configureCheckConfig);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(mEditButton, 3, SWT.BOTTOM);
formData.right = new FormAttachment(100);
mConfigureButton.setLayoutData(formData);

mCopyButton = new Button(this, SWT.PUSH);
mCopyButton.setText(Messages.CheckstylePreferencePage_btnCopy);
mCopyButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.copyCheckConfig.accept(getShell())));
mCopyButton = createButton(this, Messages.CheckstylePreferencePage_btnCopy,
actions.copyCheckConfig);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(mConfigureButton, 3, SWT.BOTTOM);
formData.right = new FormAttachment(100);
mCopyButton.setLayoutData(formData);

mRemoveButton = new Button(this, SWT.PUSH);
mRemoveButton.setText(Messages.CheckstylePreferencePage_btnRemove);
mRemoveButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.removeCheckConfig.accept(getShell())));
mRemoveButton = createButton(this, Messages.CheckstylePreferencePage_btnRemove,
actions.removeCheckConfig);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(mCopyButton, 3, SWT.BOTTOM);
formData.right = new FormAttachment(100);
mRemoveButton.setLayoutData(formData);

if (useDefaultButton) {
mDefaultButton = new Button(this, SWT.PUSH);
mDefaultButton.setText(Messages.CheckstylePreferencePage_btnDefault);
mDefaultButton.addSelectionListener(SelectionListener
.widgetSelectedAdapter(event -> actions.setDefaultCheckConfig.run()));
mDefaultButton = createButton(this, Messages.CheckstylePreferencePage_btnDefault,
event -> actions.setDefaultCheckConfig.run());
mDefaultButton.setToolTipText(Messages.CheckstylePreferencePage_txtDefault);

formData = new FormData();
formData.left = new FormAttachment(0);
formData.top = new FormAttachment(mRemoveButton, 3, SWT.BOTTOM);
Expand All @@ -556,17 +548,23 @@ private ButtonBar(Composite parent, int style, boolean useDefaultButton, ButtonB
mDefaultButton = null;
}

mExportButton = new Button(this, SWT.PUSH);
mExportButton.setText(Messages.CheckstylePreferencePage_btnExport);
mExportButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(
event -> actions.exportCheckstyleCheckConfig.accept(getShell())));
mExportButton = createButton(this, Messages.CheckstylePreferencePage_btnExport,
actions.exportCheckstyleCheckConfig);
formData = new FormData();
formData.left = new FormAttachment(0);
formData.right = new FormAttachment(100);
formData.bottom = new FormAttachment(100);
mExportButton.setLayoutData(formData);
}

private Button createButton(Composite parent, String text, Consumer<Shell> action) {
Button button = new Button(parent, SWT.PUSH);
button.setText(text);
button.addSelectionListener(SelectionListener.widgetSelectedAdapter(
event -> action.accept(getShell())));
return button;
}

private void setSelectionState(boolean configSelected, boolean configEditable,
boolean configDefault) {
mEditButton.setEnabled(configSelected);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.util.function.Consumer;

import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
Expand Down Expand Up @@ -75,36 +76,7 @@ public ConfiguredModulesTable(Composite parent, int style, boolean configurable,
configuredModulesGroup.setLayout(new GridLayout());
configuredModulesGroup.setText("\0");

Table table = new Table(configuredModulesGroup,
SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
table.setLayoutData(new GridData(GridData.FILL_BOTH));
table.setHeaderVisible(true);
table.setLinesVisible(true);

TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);

TableColumn column1 = new TableColumn(table, SWT.NONE);
column1.setAlignment(SWT.CENTER);
column1.setText(Messages.CheckConfigurationConfigureDialog_colEnabled);
tableLayout.addColumnData(new ColumnWeightData(15));

TableColumn column2 = new TableColumn(table, SWT.NONE);
column2.setText(Messages.CheckConfigurationConfigureDialog_colModule);
tableLayout.addColumnData(new ColumnWeightData(30));

TableColumn column3 = new TableColumn(table, SWT.NONE);
column3.setText(Messages.CheckConfigurationConfigureDialog_colSeverity);
tableLayout.addColumnData(new ColumnWeightData(20));

TableColumn column4 = new TableColumn(table, SWT.NONE);
column4.setText(Messages.CheckConfigurationConfigureDialog_colComment);
tableLayout.addColumnData(new ColumnWeightData(35));

// by default the table viewer sorts on column 0, but we want to sort by the module label
table.setSortColumn(column2);

this.tableViewer = new CheckboxTableViewer(table);
this.tableViewer = new CheckboxTableViewer(createTable(configuredModulesGroup));
ModuleLabelProvider multiProvider = new ModuleLabelProvider();
tableViewer.setLabelProvider(multiProvider);
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
Expand Down Expand Up @@ -133,29 +105,14 @@ public ConfiguredModulesTable(Composite parent, int style, boolean configurable,
}));
}

tableViewer.setCheckStateProvider(new ICheckStateProvider() {

@Override
public boolean isGrayed(Object element) {
return !configurable;
}

@Override
public boolean isChecked(Object element) {
Module module = (Module) element;
return !Severity.IGNORE.equals(module.getSeverity()) || !module.getMetaData().hasSeverity();
}
});
tableViewer.setCheckStateProvider(new TableCheckStateProvider(configurable));

tableViewer.setInput(modules);

TableViewerEnhancer.enhance(tableViewer, multiProvider);

Composite buttons = new Composite(configuredModulesGroup, SWT.NONE);
GridLayout layout = new GridLayout(2, true);
layout.marginHeight = 0;
layout.marginWidth = 0;
buttons.setLayout(layout);
GridLayoutFactory.swtDefaults().numColumns(2).equalWidth(true).margins(0, 0).applyTo(buttons);
buttons.setLayoutData(new GridData());

Button mRemoveButton = new Button(buttons, SWT.PUSH);
Expand All @@ -178,6 +135,38 @@ public boolean isChecked(Object element) {
.accept((Module) tableViewer.getStructuredSelection().getFirstElement())));
}

private static Table createTable(Composite parent) {
Table table = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
table.setLayoutData(new GridData(GridData.FILL_BOTH));
table.setHeaderVisible(true);
table.setLinesVisible(true);

TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);

TableColumn column1 = new TableColumn(table, SWT.NONE);
column1.setAlignment(SWT.CENTER);
column1.setText(Messages.CheckConfigurationConfigureDialog_colEnabled);
tableLayout.addColumnData(new ColumnWeightData(15));

TableColumn column2 = new TableColumn(table, SWT.NONE);
column2.setText(Messages.CheckConfigurationConfigureDialog_colModule);
tableLayout.addColumnData(new ColumnWeightData(30));

TableColumn column3 = new TableColumn(table, SWT.NONE);
column3.setText(Messages.CheckConfigurationConfigureDialog_colSeverity);
tableLayout.addColumnData(new ColumnWeightData(20));

TableColumn column4 = new TableColumn(table, SWT.NONE);
column4.setText(Messages.CheckConfigurationConfigureDialog_colComment);
tableLayout.addColumnData(new ColumnWeightData(35));

// by default the table viewer sorts on column 0, but we want to sort by the module label
table.setSortColumn(column2);

return table;
}

public void refresh() {
tableViewer.refresh();
}
Expand Down Expand Up @@ -267,4 +256,24 @@ public IDialogSettings getTableSettings() {
return settings;
}
}

private static class TableCheckStateProvider implements ICheckStateProvider {

private final boolean configurable;

private TableCheckStateProvider(boolean configurable) {
this.configurable = configurable;
}

@Override
public boolean isGrayed(Object element) {
return !configurable;
}

@Override
public boolean isChecked(Object element) {
Module module = (Module) element;
return !Severity.IGNORE.equals(module.getSeverity()) || !module.getMetaData().hasSeverity();
}
}
}
Loading
Loading