Skip to content

Commit 4d2fb38

Browse files
committed
Optimize layout of the MavenArchetypesPreferencePage
1 parent 6952c5a commit 4d2fb38

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenArchetypesPreferencePage.java

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
2626

27-
import org.eclipse.jface.preference.BooleanFieldEditor;
28-
import org.eclipse.jface.preference.FieldEditorPreferencePage;
27+
import org.eclipse.jface.preference.PreferencePage;
2928
import org.eclipse.jface.viewers.ArrayContentProvider;
3029
import org.eclipse.jface.viewers.CheckboxTableViewer;
3130
import org.eclipse.jface.viewers.IColorProvider;
@@ -39,10 +38,13 @@
3938
import org.eclipse.swt.events.SelectionListener;
4039
import org.eclipse.swt.graphics.Color;
4140
import org.eclipse.swt.graphics.Image;
41+
import org.eclipse.swt.layout.BorderData;
42+
import org.eclipse.swt.layout.BorderLayout;
4243
import org.eclipse.swt.layout.GridData;
4344
import org.eclipse.swt.layout.GridLayout;
4445
import org.eclipse.swt.widgets.Button;
4546
import org.eclipse.swt.widgets.Composite;
47+
import org.eclipse.swt.widgets.Control;
4648
import org.eclipse.swt.widgets.Display;
4749
import org.eclipse.swt.widgets.Link;
4850
import org.eclipse.swt.widgets.Table;
@@ -57,17 +59,17 @@
5759
import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator;
5860
import org.eclipse.m2e.core.ui.internal.Messages;
5961
import org.eclipse.m2e.core.ui.internal.archetype.ArchetypeCatalogFactory;
60-
import org.eclipse.m2e.core.ui.internal.archetype.ArchetypePlugin;
6162
import org.eclipse.m2e.core.ui.internal.archetype.ArchetypeCatalogFactory.LocalCatalogFactory;
6263
import org.eclipse.m2e.core.ui.internal.archetype.ArchetypeCatalogFactory.RemoteCatalogFactory;
64+
import org.eclipse.m2e.core.ui.internal.archetype.ArchetypePlugin;
6365

6466

6567
/**
6668
* Maven Archetype catalogs preference page
6769
*
6870
* @author Eugene Kuleshov
6971
*/
70-
public class MavenArchetypesPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
72+
public class MavenArchetypesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
7173
private static final Logger log = LoggerFactory.getLogger(MavenArchetypesPreferencePage.class);
7274

7375
ArchetypePlugin archetypeManager;
@@ -76,8 +78,9 @@ public class MavenArchetypesPreferencePage extends FieldEditorPreferencePage imp
7678

7779
List<ArchetypeCatalogFactory> archetypeCatalogs;
7880

81+
private Button snapshotsBtn;
82+
7983
public MavenArchetypesPreferencePage() {
80-
super(GRID);
8184
setTitle(Messages.MavenArchetypesPreferencePage_title);
8285
setPreferenceStore(M2EUIPluginActivator.getDefault().getPreferenceStore());
8386
this.archetypeManager = M2EUIPluginActivator.getDefault().getArchetypePlugin();
@@ -121,6 +124,7 @@ public boolean performOk() {
121124
return false;
122125
}
123126

127+
getPreferenceStore().setValue(MavenPreferenceConstants.P_ENABLE_SNAPSHOT_ARCHETYPES, snapshotsBtn.getSelection());
124128
return super.performOk();
125129
}
126130

@@ -129,16 +133,12 @@ public void init(IWorkbench workbench) {
129133
}
130134

131135
@Override
132-
protected void createFieldEditors() {
133-
Composite composite = new Composite(getFieldEditorParent(), SWT.NONE);
134-
GridLayout gridLayout = new GridLayout(2, false);
135-
gridLayout.marginWidth = 0;
136-
gridLayout.marginHeight = 0;
137-
composite.setLayout(gridLayout);
136+
protected Control createContents(Composite parent) {
137+
Composite composite = new Composite(parent, SWT.NONE);
138+
composite.setLayout(new BorderLayout());
138139

139140
Link addRemoveOrLink = new Link(composite, SWT.NONE);
140-
GridData gd_addRemoveOrLink = new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1);
141-
addRemoveOrLink.setLayoutData(gd_addRemoveOrLink);
141+
addRemoveOrLink.setLayoutData(new BorderData(SWT.TOP));
142142
addRemoveOrLink.setText(Messages.MavenArchetypesPreferencePage_link);
143143
addRemoveOrLink.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
144144
try {
@@ -159,6 +159,7 @@ protected void createFieldEditors() {
159159
archetypesViewer.setContentProvider(new ArrayContentProvider());
160160

161161
Table table = archetypesViewer.getTable();
162+
table.setLayoutData(new BorderData(SWT.CENTER));
162163
table.setLinesVisible(false);
163164
table.setHeaderVisible(false);
164165
table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 6));
@@ -167,17 +168,20 @@ protected void createFieldEditors() {
167168
typeColumn.setWidth(250);
168169
typeColumn.setText(""); //$NON-NLS-1$
169170

170-
Button enableAllBtn = new Button(composite, SWT.NONE);
171+
Composite buttons = new Composite(composite, SWT.NONE);
172+
buttons.setLayoutData(new BorderData(SWT.RIGHT));
173+
buttons.setLayout(new GridLayout(1, true));
174+
Button enableAllBtn = new Button(buttons, SWT.NONE);
171175
enableAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
172176
enableAllBtn.setText(Messages.MavenArchetypesPreferencePage_btnEnableAll);
173177
enableAllBtn.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> toggleRepositories(true)));
174178

175-
Button disableAllBtn = new Button(composite, SWT.NONE);
179+
Button disableAllBtn = new Button(buttons, SWT.NONE);
176180
disableAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
177181
disableAllBtn.setText(Messages.MavenArchetypesPreferencePage_btnDisableAll);
178182
disableAllBtn.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> toggleRepositories(false)));
179183

180-
Button addLocalButton = new Button(composite, SWT.NONE);
184+
Button addLocalButton = new Button(buttons, SWT.NONE);
181185
addLocalButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
182186
addLocalButton.setText(Messages.MavenArchetypesPreferencePage_btnAddLocal);
183187
addLocalButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
@@ -187,7 +191,7 @@ protected void createFieldEditors() {
187191
}
188192
}));
189193

190-
Button addRemoteButton = new Button(composite, SWT.NONE);
194+
Button addRemoteButton = new Button(buttons, SWT.NONE);
191195
addRemoteButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
192196
addRemoteButton.setText(Messages.MavenArchetypesPreferencePage_btnAddRemote);
193197
addRemoteButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
@@ -197,7 +201,7 @@ protected void createFieldEditors() {
197201
}
198202
}));
199203

200-
final Button editButton = new Button(composite, SWT.NONE);
204+
final Button editButton = new Button(buttons, SWT.NONE);
201205
editButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
202206
editButton.setEnabled(false);
203207
editButton.setText(Messages.MavenArchetypesPreferencePage_btnEdit);
@@ -225,7 +229,7 @@ protected void createFieldEditors() {
225229
}
226230
}));
227231

228-
final Button removeButton = new Button(composite, SWT.NONE);
232+
final Button removeButton = new Button(buttons, SWT.NONE);
229233
removeButton.setEnabled(false);
230234
removeButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, true));
231235
removeButton.setText(Messages.MavenArchetypesPreferencePage_btnRemove);
@@ -254,8 +258,10 @@ protected void createFieldEditors() {
254258
archetypeCatalogs.forEach(a -> archetypesViewer.setChecked(a, a.isEnabled()));
255259
archetypesViewer.refresh(); // should listen on property changes instead?
256260

257-
addField(new BooleanFieldEditor(MavenPreferenceConstants.P_ENABLE_SNAPSHOT_ARCHETYPES, org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_btnSnapshots,
258-
getFieldEditorParent()));
261+
this.snapshotsBtn = new Button(composite, SWT.CHECK);
262+
this.snapshotsBtn.setLayoutData(new BorderData(SWT.BOTTOM));
263+
this.snapshotsBtn.setText(org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_btnSnapshots);
264+
return composite;
259265
}
260266

261267
protected void toggleRepositories(boolean toggle) {

0 commit comments

Comments
 (0)