4545
4646public class OrganizeManifestsWizardPage extends UserInputWizardPage implements ILaunchingPreferenceConstants , IOrganizeManifestsSettings {
4747
48+ private Button fAddFixedVersions ;
49+ private Button fAddBundledVersions ;
50+ private Button fAddMissingVersions ;
4851 private Button fRemoveUnresolved ;
4952 private Button fCalculateUses ;
5053 private Button fAddMissing ;
@@ -164,6 +167,19 @@ private void createExportedPackagesGroup(Composite container) {
164167 gd = new GridData ();
165168 gd .verticalIndent = 5 ;
166169 fCalculateUses .setLayoutData (gd );
170+
171+ fAddMissingVersions = new Button (group , SWT .CHECK );
172+ fAddMissingVersions .setText (PDEUIMessages .OrganizeManifestsWizardPage_addMissingVersions );
173+ gd = new GridData ();
174+ gd .verticalIndent = 5 ;
175+ fAddMissingVersions .setLayoutData (gd );
176+
177+ fAddFixedVersions = new Button (group , SWT .RADIO );
178+ fAddFixedVersions .setText (PDEUIMessages .OrganizeManifestsWizardPage_addFixedVersions );
179+
180+ fAddBundledVersions = new Button (group , SWT .RADIO );
181+ fAddBundledVersions .setText (PDEUIMessages .OrganizeManifestsWizardPage_addBundledVersions );
182+
167183 }
168184
169185 private void createRequireImportGroup (Composite container ) {
@@ -226,6 +242,7 @@ private void presetOptions() {
226242 fMarkInternal .setSelection (selection );
227243 fProcessor .setMarkInternal (selection );
228244
245+
229246 String filter = settings .get (PROP_INTERAL_PACKAGE_FILTER );
230247 if (filter == null ) {
231248 filter = VALUE_DEFAULT_FILTER ;
@@ -237,6 +254,15 @@ private void presetOptions() {
237254 fRemoveUnresolved .setSelection (selection );
238255 fProcessor .setRemoveUnresolved (selection );
239256
257+ selection = settings .getBoolean (PROP_ADD_MISSING_VERSIONS );
258+ fAddMissingVersions .setSelection (selection );
259+ fProcessor .setAddMissingVersions (selection );
260+
261+ selection = settings .getBoolean (PROP_MISSING_VERSION_OPTIONS );
262+ fAddBundledVersions .setSelection (selection );
263+ fAddFixedVersions .setSelection (!selection );
264+ fProcessor .setMissingVersionOptions (selection );
265+
240266 selection = settings .getBoolean (PROP_CALCULATE_USES );
241267 fCalculateUses .setSelection (selection );
242268 fProcessor .setCalculateUses (selection );
@@ -291,6 +317,8 @@ protected void performOk() {
291317 settings .put (PROP_REMOVE_UNRESOLVED_EX , !fRemoveUnresolved .getSelection ());
292318 settings .put (PROP_CALCULATE_USES , fCalculateUses .getSelection ());
293319
320+ settings .put (PROP_ADD_MISSING_VERSIONS , !fAddMissingVersions .getSelection ());
321+
294322 settings .put (PROP_MODIFY_DEP , !fModifyDependencies .getSelection ());
295323 settings .put (PROP_RESOLVE_IMP_MARK_OPT , fOptionalImport .getSelection ());
296324 settings .put (PROP_UNUSED_DEPENDENCIES , fUnusedDependencies .getSelection ());
@@ -313,10 +341,15 @@ private void setEnabledStates() {
313341 boolean modifyDependencies = fModifyDependencies .getSelection ();
314342 fRemoveImport .setEnabled (modifyDependencies );
315343 fOptionalImport .setEnabled (modifyDependencies );
344+
345+ boolean addMissingVersions = fAddMissingVersions .getSelection ();
346+ fAddBundledVersions .setEnabled (addMissingVersions );
347+ fAddFixedVersions .setEnabled (addMissingVersions );
316348 }
317349
318350 private void setButtonArrays () {
319- fTopLevelButtons = new Button [] { fRemoveUnresolved , fAddMissing , fModifyDependencies , fMarkInternal ,
351+ fTopLevelButtons = new Button [] { fRemoveUnresolved , fAddMissing , fAddMissingVersions , fModifyDependencies ,
352+ fMarkInternal ,
320353 fUnusedDependencies , fAdditonalDependencies , fComputeImportPackages , fFixIconNLSPaths ,
321354 fRemovedUnusedKeys , fRemoveLazy , fRemoveUselessFiles , fCalculateUses };
322355 }
@@ -333,7 +366,8 @@ private void setPageComplete() {
333366 }
334367
335368 private void hookListeners () {
336- hookSelectionListener (new Button [] { fMarkInternal , fModifyDependencies }, widgetSelectedAdapter (e -> {
369+ hookSelectionListener (new Button [] { fMarkInternal , fModifyDependencies , fAddMissingVersions },
370+ widgetSelectedAdapter (e -> {
337371 setEnabledStates ();
338372 doProcessorSetting (e .getSource ());
339373 }));
@@ -344,6 +378,8 @@ private void hookListeners() {
344378 hookSelectionListener (new Button [] { fRemoveImport , fOptionalImport },
345379 widgetSelectedAdapter (e -> doProcessorSetting (e .getSource ())));
346380 hookTextListener (new Text [] {fPackageFilter }, e -> doProcessorSetting (e .getSource ()));
381+ hookSelectionListener (new Button [] { fAddFixedVersions , fAddBundledVersions },
382+ widgetSelectedAdapter (e -> doProcessorSetting (e .getSource ())));
347383 }
348384
349385 private void doProcessorSetting (Object source ) {
@@ -380,9 +416,16 @@ private void doProcessorSetting(Object source) {
380416 fProcessor .setPrefixIconNL (fFixIconNLSPaths .getSelection ());
381417 } else if (fRemovedUnusedKeys .equals (source )) {
382418 fProcessor .setUnusedKeys (fRemovedUnusedKeys .getSelection ());
419+ } else if (fAddMissingVersions .equals (source )) {
420+ fProcessor .setAddMissingVersions (fAddMissingVersions .getSelection ());
421+ } else if (fAddFixedVersions .equals (source )) {
422+ fProcessor .setMissingVersionOptions (fAddFixedVersions .getSelection ());
423+ } else if (fAddBundledVersions .equals (source )) {
424+ fProcessor .setMissingVersionOptions (fAddBundledVersions .getSelection ());
383425 }
384426 }
385427
428+
386429 private void hookSelectionListener (Button [] buttons , SelectionListener adapter ) {
387430 for (Button button : buttons ) {
388431 button .addSelectionListener (adapter );
0 commit comments