2424import org .slf4j .Logger ;
2525import 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 ;
2928import org .eclipse .jface .viewers .ArrayContentProvider ;
3029import org .eclipse .jface .viewers .CheckboxTableViewer ;
3130import org .eclipse .jface .viewers .IColorProvider ;
3938import org .eclipse .swt .events .SelectionListener ;
4039import org .eclipse .swt .graphics .Color ;
4140import org .eclipse .swt .graphics .Image ;
41+ import org .eclipse .swt .layout .BorderData ;
42+ import org .eclipse .swt .layout .BorderLayout ;
4243import org .eclipse .swt .layout .GridData ;
4344import org .eclipse .swt .layout .GridLayout ;
4445import org .eclipse .swt .widgets .Button ;
4546import org .eclipse .swt .widgets .Composite ;
47+ import org .eclipse .swt .widgets .Control ;
4648import org .eclipse .swt .widgets .Display ;
4749import org .eclipse .swt .widgets .Link ;
4850import org .eclipse .swt .widgets .Table ;
5759import org .eclipse .m2e .core .ui .internal .M2EUIPluginActivator ;
5860import org .eclipse .m2e .core .ui .internal .Messages ;
5961import org .eclipse .m2e .core .ui .internal .archetype .ArchetypeCatalogFactory ;
60- import org .eclipse .m2e .core .ui .internal .archetype .ArchetypePlugin ;
6162import org .eclipse .m2e .core .ui .internal .archetype .ArchetypeCatalogFactory .LocalCatalogFactory ;
6263import 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