Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java')
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java712
1 files changed, 356 insertions, 356 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java
index 7d8cfe7db2..87f58b0caa 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/preference/CreaterepoGeneralPropertyPage.java
@@ -41,361 +41,361 @@ import org.eclipse.ui.dialogs.PreferencesUtil;
*/
public class CreaterepoGeneralPropertyPage extends CreaterepoPropertyPage {
- private static final String linkTags = "<a>{0}</a>"; //$NON-NLS-1$
-
- private Composite composite;
-
- private Button btnProjectSettings;
- private Link lnWorkspaceSettings;
-
- private Group generalGroup;
- private BooleanFieldEditor bfeIncludeChecksum;
- private BooleanFieldEditor bfeSQLDB;
- private BooleanFieldEditor bfeIgnoreSymlinks;
- private BooleanFieldEditor bfePrettyXML;
- private IntegerFieldEditor ifeSpawns;
-
- private Group updatesGroup;
- private BooleanFieldEditor bfeSameFilename;
- private Label lblCheckTs;
-
- private Group changelogGroup;
- private IntegerFieldEditor ifeChangelogLimit;
-
- private Composite checksumsContainer;
- private RadioGroupFieldEditor rgfeChecksums;
- private Composite compressContainer;
- private RadioGroupFieldEditor rgfeCompressionTypes;
-
- /**
- * Default Constructor. Sets the description of the property page.
- */
- public CreaterepoGeneralPropertyPage() {
- super(Messages.CreaterepoPreferencePage_description);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.rpm.createrepo.preference.CreaterepoPropertyPage#addContents(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Composite addContents(Composite parent) {
- composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- GridData layoutData = new GridData();
- composite.setLayout(layout);
-
- // TODO: use BooleanFieldEditor and get it to layout properly
- // with the link (lnWorkspaceSettings)
- btnProjectSettings = new Button(composite, SWT.CHECK);
- btnProjectSettings.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- toggleEnabled();
- }
- });
- layoutData = new GridData();
- layoutData.horizontalAlignment = GridData.BEGINNING;
- layoutData.horizontalAlignment = GridData.FILL;
- layoutData.grabExcessHorizontalSpace = true;
- btnProjectSettings.setText(Messages.CreaterepoGeneralPropertyPage_projectSettings);
- btnProjectSettings.setLayoutData(layoutData);
- btnProjectSettings.setSelection(Activator.getDefault().getPreferenceStore()
- .getBoolean(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED));
- btnProjectSettings.addSelectionListener(new SelectionAdapter() {
- /*
- * (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
- */
- @Override
- public void widgetSelected(SelectionEvent e) {
- checkState();
- }
- });
-
- lnWorkspaceSettings = new Link(composite, SWT.NONE);
- layoutData = new GridData();
- layoutData.horizontalAlignment = SWT.END;
- lnWorkspaceSettings.setLayoutData(layoutData);
- lnWorkspaceSettings.setText(NLS.bind(linkTags, Messages.CreaterepoGeneralPropertyPage_workspaceSettings));
- lnWorkspaceSettings.setFont(parent.getFont());
- lnWorkspaceSettings.addListener(SWT.Selection, new Listener() {
- /*
- * (non-Javadoc)
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
- */
- @Override
- public void handleEvent(Event event) {
- PreferenceDialog preferenceDialog = PreferencesUtil.createPreferenceDialogOn(getShell(),
- CREATEREPO_PREFERENCE_ID, new String[] {CREATEREPO_PREFERENCE_ID}, null);
- preferenceDialog.open();
- }
- });
-
- // general group
- generalGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
- layout = new GridLayout(2, false);
- generalGroup.setLayout(layout);
- generalGroup.setText(Messages.CreaterepoPreferencePage_generalGroupLabel);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2,1).applyTo(generalGroup);
-
- // generate unique metadata filenames
- bfeIncludeChecksum = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME,
- Messages.CreaterepoPreferencePage_booleanChecksumName, generalGroup);
- bfeIncludeChecksum.fillIntoGrid(generalGroup, 2);
- bfeIncludeChecksum.setPreferenceStore(preferenceStore);
- bfeIncludeChecksum.setPropertyChangeListener(this);
- bfeIncludeChecksum.load();
-
- // generate sqlite databases
- bfeSQLDB = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_GENERATE_DB,
- Messages.CreaterepoPreferencePage_booleanGenerateSQLDB, generalGroup);
- bfeSQLDB.fillIntoGrid(generalGroup, 2);
- bfeSQLDB.setPreferenceStore(preferenceStore);
- bfeSQLDB.setPropertyChangeListener(this);
- bfeSQLDB.load();
-
- // ignore symlinks for packages
- bfeIgnoreSymlinks = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS,
- Messages.CreaterepoPreferencePage_booleanIgnoreSymlinks, generalGroup);
- bfeIgnoreSymlinks.fillIntoGrid(generalGroup, 2);
- bfeIgnoreSymlinks.setPreferenceStore(preferenceStore);
- bfeIgnoreSymlinks.setPropertyChangeListener(this);
- bfeIgnoreSymlinks.load();
-
- // output files in pretty xml format
- bfePrettyXML = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_PRETTY_XML,
- Messages.CreaterepoPreferencePage_booleanPrettyXML, generalGroup);
- bfePrettyXML.fillIntoGrid(generalGroup, 2);
- bfePrettyXML.setPreferenceStore(preferenceStore);
- bfePrettyXML.setPropertyChangeListener(this);
- bfePrettyXML.load();
-
- // number of workers
- ifeSpawns = new IntegerFieldEditor(CreaterepoPreferenceConstants.PREF_WORKERS,
- Messages.CreaterepoPreferencePage_numWorkers, generalGroup);
- ifeSpawns.fillIntoGrid(generalGroup, 2);
- // more than 128 is alot. limiting. (createrepo warning)
- ifeSpawns.setValidRange(0, 128);
- ifeSpawns.setPreferenceStore(preferenceStore);
- ifeSpawns.setPropertyChangeListener(this);
- ifeSpawns.load();
- updateGroupSpacing(generalGroup);
-
- // updates group
- updatesGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
- updatesGroup.setText(Messages.CreaterepoPreferencePage_updateGroupLabel);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).hint(10, SWT.DEFAULT).applyTo(updatesGroup);
-
- // don't generate repo metadata, if their timestamps are newer than its rpms
- bfeSameFilename = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_CHECK_TS,
- Messages.CreaterepoPreferencePage_booleanCheckTS, updatesGroup);
- bfeSameFilename.fillIntoGrid(updatesGroup, 2);
- bfeSameFilename.setPreferenceStore(preferenceStore);
- bfeSameFilename.setPropertyChangeListener(this);
- bfeSameFilename.load();
-
- // note of caution
- lblCheckTs = new Label(updatesGroup, SWT.WRAP);
- lblCheckTs.setText(Messages.CreaterepoPreferencePage_checkTSNote);
- layoutData = new GridData();
- layoutData.widthHint = 130;
- layoutData.horizontalAlignment = SWT.FILL;
- layoutData.grabExcessHorizontalSpace = true;
- layoutData.horizontalIndent = 5;
- lblCheckTs.setLayoutData(layoutData);
- updateGroupSpacing(updatesGroup);
-
- // changelog group
- changelogGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
- changelogGroup.setText(Messages.CreaterepoPreferencePage_changelogGroupLabel);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).hint(10, SWT.DEFAULT).applyTo(changelogGroup);
-
- // don't generate repo metadata, if their timestamps are newer than its rpms
- ifeChangelogLimit = new IntegerFieldEditor(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT,
- Messages.CreaterepoPreferencePage_numChangelogLimit, changelogGroup);
- ifeChangelogLimit.fillIntoGrid(changelogGroup, 2);
- ifeChangelogLimit.setValidRange(0, Integer.MAX_VALUE);
- ifeChangelogLimit.setPreferenceStore(preferenceStore);
- ifeChangelogLimit.setPropertyChangeListener(this);
- ifeChangelogLimit.load();
- updateGroupSpacing(changelogGroup);
-
- checksumsContainer = new Composite(composite, SWT.NONE);
- checksumsContainer.setLayout(new GridLayout());
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).indent(0, 20).grab(true, false).applyTo(checksumsContainer);
- // available checksums
- rgfeChecksums = new RadioGroupFieldEditor(CreaterepoPreferenceConstants.PREF_CHECKSUM,
- Messages.CreaterepoPreferencePage_checksumGroupLabel, 1, new String[][]{
- {ICreaterepoChecksums.SHA1, ICreaterepoChecksums.SHA1},
- {ICreaterepoChecksums.MD5, ICreaterepoChecksums.MD5},
- {ICreaterepoChecksums.SHA256, ICreaterepoChecksums.SHA256},
- {ICreaterepoChecksums.SHA512, ICreaterepoChecksums.SHA512}
- }, checksumsContainer, true);
- rgfeChecksums.setPreferenceStore(preferenceStore);
- rgfeChecksums.setPropertyChangeListener(this);
- rgfeChecksums.load();
-
- compressContainer = new Composite(composite, SWT.NONE);
- compressContainer.setLayout(new GridLayout());
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).indent(0, 20).grab(true, false).applyTo(compressContainer);
- // available compression types
- rgfeCompressionTypes = new RadioGroupFieldEditor(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE,
- Messages.CreaterepoPreferencePage_compressionGroupLabel, 1, new String[][]{
- {ICreaterepoCompressionTypes.COMPAT, ICreaterepoCompressionTypes.COMPAT},
- {ICreaterepoCompressionTypes.XZ, ICreaterepoCompressionTypes.XZ},
- {ICreaterepoCompressionTypes.GZ, ICreaterepoCompressionTypes.GZ},
- {ICreaterepoCompressionTypes.BZ2, ICreaterepoCompressionTypes.BZ2}
- }, compressContainer, true);
- rgfeCompressionTypes.setPreferenceStore(preferenceStore);
- rgfeCompressionTypes.setPropertyChangeListener(this);
- rgfeCompressionTypes.load();
-
- toggleEnabled();
-
- return composite;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
- */
- @Override
- public void performDefaults() {
- // load the defaults UI
- btnProjectSettings.setSelection(Activator.getDefault().getPreferenceStore()
- .getDefaultBoolean(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED));
- bfeIncludeChecksum.loadDefault();
- bfeSQLDB.loadDefault();
- bfeIgnoreSymlinks.loadDefault();
- bfePrettyXML.loadDefault();
- ifeSpawns.loadDefault();
- rgfeChecksums.loadDefault();
- bfeSameFilename.loadDefault();
- ifeChangelogLimit.loadDefault();
- rgfeChecksums.loadDefault();
- rgfeCompressionTypes.loadDefault();
-
- // set the defaults preferences
- Activator.getDefault().getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_GENERATE_DB);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_PRETTY_XML);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_WORKERS);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHECK_TS);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHECKSUM);
- getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE);
-
- toggleEnabled();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performOk()
- */
- @Override
- public boolean performOk() {
- // only save when using project specific settings
- if (btnProjectSettings.getSelection()) {
- Activator.getDefault().getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED,
- true);
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME,
- bfeIncludeChecksum.getBooleanValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERATE_DB,
- bfeSQLDB.getBooleanValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS,
- bfeIgnoreSymlinks.getBooleanValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_PRETTY_XML,
- bfePrettyXML.getBooleanValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_WORKERS,
- ifeSpawns.getIntValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHECK_TS,
- bfeSameFilename.getBooleanValue());
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT,
- ifeChangelogLimit.getIntValue());
-
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHECKSUM,
- getSelectedRadioButton(rgfeChecksums.getRadioBoxControl(checksumsContainer),
- rgfeChecksums.getPreferenceName()));
- getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE,
- getSelectedRadioButton(rgfeCompressionTypes.getRadioBoxControl(compressContainer),
- rgfeCompressionTypes.getPreferenceName()));
- } else {
- Activator.getDefault().getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED,
- false);
- }
- return true;
- }
-
- /**
- * Helper method to get the selected radio button from the radio button list.
- * The default value of the preference key will be returned if nothing was found to be
- * selected.
- *
- * @param radioBoxControl The radio button list.
- * @param preferenceKey The preference key to get the default from.
- * @return The selected radio button or the default value if nothing selected.
- */
- private String getSelectedRadioButton(Composite radioBoxControl, String preferenceKey) {
- String defaultValue = getPreferenceStore().getDefaultString(preferenceKey);
- Control[] children = radioBoxControl.getChildren();
- if (children.length > 0) {
- for (Control control : children) {
- Button radioButton = (Button) control;
- if (radioButton.getSelection()) {
- return radioButton.getText();
- }
- }
- }
- return defaultValue;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.linuxtools.internal.rpm.createrepo.preference.CreaterepoPropertyPage#checkState()
- */
- @Override
- protected void checkState() {
- // if enable project specific settings is false, then allow performOk
- if (!btnProjectSettings.getSelection()) {
- setErrorMessage(null);
- setValid(true);
- // if the spawns are invalid, disable performOk
- } else if (!ifeSpawns.isValid()) {
- setErrorMessage(ifeSpawns.getErrorMessage());
- setValid(false);
- } else if (!ifeChangelogLimit.isValid()) {
- setErrorMessage(ifeChangelogLimit.getErrorMessage());
- setValid(false);
- // otherwise, allow performOk
- } else {
- setErrorMessage(null);
- setValid(true);
- }
- toggleEnabled();
- }
-
- /**
- * If "Enable project specific settings" is true, so will
- * the options below it. The workspace settings link will be opposite
- * to what value the checkbox is.
- */
- private void toggleEnabled() {
- boolean enabled = btnProjectSettings.getSelection();
- lnWorkspaceSettings.setEnabled(!enabled);
- bfeIncludeChecksum.setEnabled(enabled, generalGroup);
- bfeSQLDB.setEnabled(enabled, generalGroup);
- bfeIgnoreSymlinks.setEnabled(enabled, generalGroup);
- bfePrettyXML.setEnabled(enabled, generalGroup);
- ifeSpawns.setEnabled(enabled, generalGroup);
- rgfeChecksums.setEnabled(enabled, generalGroup);
- bfeSameFilename.setEnabled(enabled, updatesGroup);
- ifeChangelogLimit.setEnabled(enabled, changelogGroup);
- rgfeChecksums.setEnabled(enabled, checksumsContainer);
- rgfeCompressionTypes.setEnabled(enabled, compressContainer);
- lblCheckTs.setEnabled(enabled);
- }
+ private static final String linkTags = "<a>{0}</a>"; //$NON-NLS-1$
+
+ private Composite composite;
+
+ private Button btnProjectSettings;
+ private Link lnWorkspaceSettings;
+
+ private Group generalGroup;
+ private BooleanFieldEditor bfeIncludeChecksum;
+ private BooleanFieldEditor bfeSQLDB;
+ private BooleanFieldEditor bfeIgnoreSymlinks;
+ private BooleanFieldEditor bfePrettyXML;
+ private IntegerFieldEditor ifeSpawns;
+
+ private Group updatesGroup;
+ private BooleanFieldEditor bfeSameFilename;
+ private Label lblCheckTs;
+
+ private Group changelogGroup;
+ private IntegerFieldEditor ifeChangelogLimit;
+
+ private Composite checksumsContainer;
+ private RadioGroupFieldEditor rgfeChecksums;
+ private Composite compressContainer;
+ private RadioGroupFieldEditor rgfeCompressionTypes;
+
+ /**
+ * Default Constructor. Sets the description of the property page.
+ */
+ public CreaterepoGeneralPropertyPage() {
+ super(Messages.CreaterepoPreferencePage_description);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.linuxtools.internal.rpm.createrepo.preference.CreaterepoPropertyPage#addContents(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Composite addContents(Composite parent) {
+ composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout(2, false);
+ GridData layoutData = new GridData();
+ composite.setLayout(layout);
+
+ // TODO: use BooleanFieldEditor and get it to layout properly
+ // with the link (lnWorkspaceSettings)
+ btnProjectSettings = new Button(composite, SWT.CHECK);
+ btnProjectSettings.addListener(SWT.Selection, new Listener() {
+ @Override
+ public void handleEvent(Event event) {
+ toggleEnabled();
+ }
+ });
+ layoutData = new GridData();
+ layoutData.horizontalAlignment = GridData.BEGINNING;
+ layoutData.horizontalAlignment = GridData.FILL;
+ layoutData.grabExcessHorizontalSpace = true;
+ btnProjectSettings.setText(Messages.CreaterepoGeneralPropertyPage_projectSettings);
+ btnProjectSettings.setLayoutData(layoutData);
+ btnProjectSettings.setSelection(Activator.getDefault().getPreferenceStore()
+ .getBoolean(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED));
+ btnProjectSettings.addSelectionListener(new SelectionAdapter() {
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ checkState();
+ }
+ });
+
+ lnWorkspaceSettings = new Link(composite, SWT.NONE);
+ layoutData = new GridData();
+ layoutData.horizontalAlignment = SWT.END;
+ lnWorkspaceSettings.setLayoutData(layoutData);
+ lnWorkspaceSettings.setText(NLS.bind(linkTags, Messages.CreaterepoGeneralPropertyPage_workspaceSettings));
+ lnWorkspaceSettings.setFont(parent.getFont());
+ lnWorkspaceSettings.addListener(SWT.Selection, new Listener() {
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ */
+ @Override
+ public void handleEvent(Event event) {
+ PreferenceDialog preferenceDialog = PreferencesUtil.createPreferenceDialogOn(getShell(),
+ CREATEREPO_PREFERENCE_ID, new String[] {CREATEREPO_PREFERENCE_ID}, null);
+ preferenceDialog.open();
+ }
+ });
+
+ // general group
+ generalGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
+ layout = new GridLayout(2, false);
+ generalGroup.setLayout(layout);
+ generalGroup.setText(Messages.CreaterepoPreferencePage_generalGroupLabel);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2,1).applyTo(generalGroup);
+
+ // generate unique metadata filenames
+ bfeIncludeChecksum = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME,
+ Messages.CreaterepoPreferencePage_booleanChecksumName, generalGroup);
+ bfeIncludeChecksum.fillIntoGrid(generalGroup, 2);
+ bfeIncludeChecksum.setPreferenceStore(preferenceStore);
+ bfeIncludeChecksum.setPropertyChangeListener(this);
+ bfeIncludeChecksum.load();
+
+ // generate sqlite databases
+ bfeSQLDB = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_GENERATE_DB,
+ Messages.CreaterepoPreferencePage_booleanGenerateSQLDB, generalGroup);
+ bfeSQLDB.fillIntoGrid(generalGroup, 2);
+ bfeSQLDB.setPreferenceStore(preferenceStore);
+ bfeSQLDB.setPropertyChangeListener(this);
+ bfeSQLDB.load();
+
+ // ignore symlinks for packages
+ bfeIgnoreSymlinks = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS,
+ Messages.CreaterepoPreferencePage_booleanIgnoreSymlinks, generalGroup);
+ bfeIgnoreSymlinks.fillIntoGrid(generalGroup, 2);
+ bfeIgnoreSymlinks.setPreferenceStore(preferenceStore);
+ bfeIgnoreSymlinks.setPropertyChangeListener(this);
+ bfeIgnoreSymlinks.load();
+
+ // output files in pretty xml format
+ bfePrettyXML = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_PRETTY_XML,
+ Messages.CreaterepoPreferencePage_booleanPrettyXML, generalGroup);
+ bfePrettyXML.fillIntoGrid(generalGroup, 2);
+ bfePrettyXML.setPreferenceStore(preferenceStore);
+ bfePrettyXML.setPropertyChangeListener(this);
+ bfePrettyXML.load();
+
+ // number of workers
+ ifeSpawns = new IntegerFieldEditor(CreaterepoPreferenceConstants.PREF_WORKERS,
+ Messages.CreaterepoPreferencePage_numWorkers, generalGroup);
+ ifeSpawns.fillIntoGrid(generalGroup, 2);
+ // more than 128 is alot. limiting. (createrepo warning)
+ ifeSpawns.setValidRange(0, 128);
+ ifeSpawns.setPreferenceStore(preferenceStore);
+ ifeSpawns.setPropertyChangeListener(this);
+ ifeSpawns.load();
+ updateGroupSpacing(generalGroup);
+
+ // updates group
+ updatesGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
+ updatesGroup.setText(Messages.CreaterepoPreferencePage_updateGroupLabel);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).hint(10, SWT.DEFAULT).applyTo(updatesGroup);
+
+ // don't generate repo metadata, if their timestamps are newer than its rpms
+ bfeSameFilename = new BooleanFieldEditor(CreaterepoPreferenceConstants.PREF_CHECK_TS,
+ Messages.CreaterepoPreferencePage_booleanCheckTS, updatesGroup);
+ bfeSameFilename.fillIntoGrid(updatesGroup, 2);
+ bfeSameFilename.setPreferenceStore(preferenceStore);
+ bfeSameFilename.setPropertyChangeListener(this);
+ bfeSameFilename.load();
+
+ // note of caution
+ lblCheckTs = new Label(updatesGroup, SWT.WRAP);
+ lblCheckTs.setText(Messages.CreaterepoPreferencePage_checkTSNote);
+ layoutData = new GridData();
+ layoutData.widthHint = 130;
+ layoutData.horizontalAlignment = SWT.FILL;
+ layoutData.grabExcessHorizontalSpace = true;
+ layoutData.horizontalIndent = 5;
+ lblCheckTs.setLayoutData(layoutData);
+ updateGroupSpacing(updatesGroup);
+
+ // changelog group
+ changelogGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
+ changelogGroup.setText(Messages.CreaterepoPreferencePage_changelogGroupLabel);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).hint(10, SWT.DEFAULT).applyTo(changelogGroup);
+
+ // don't generate repo metadata, if their timestamps are newer than its rpms
+ ifeChangelogLimit = new IntegerFieldEditor(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT,
+ Messages.CreaterepoPreferencePage_numChangelogLimit, changelogGroup);
+ ifeChangelogLimit.fillIntoGrid(changelogGroup, 2);
+ ifeChangelogLimit.setValidRange(0, Integer.MAX_VALUE);
+ ifeChangelogLimit.setPreferenceStore(preferenceStore);
+ ifeChangelogLimit.setPropertyChangeListener(this);
+ ifeChangelogLimit.load();
+ updateGroupSpacing(changelogGroup);
+
+ checksumsContainer = new Composite(composite, SWT.NONE);
+ checksumsContainer.setLayout(new GridLayout());
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).indent(0, 20).grab(true, false).applyTo(checksumsContainer);
+ // available checksums
+ rgfeChecksums = new RadioGroupFieldEditor(CreaterepoPreferenceConstants.PREF_CHECKSUM,
+ Messages.CreaterepoPreferencePage_checksumGroupLabel, 1, new String[][]{
+ {ICreaterepoChecksums.SHA1, ICreaterepoChecksums.SHA1},
+ {ICreaterepoChecksums.MD5, ICreaterepoChecksums.MD5},
+ {ICreaterepoChecksums.SHA256, ICreaterepoChecksums.SHA256},
+ {ICreaterepoChecksums.SHA512, ICreaterepoChecksums.SHA512}
+ }, checksumsContainer, true);
+ rgfeChecksums.setPreferenceStore(preferenceStore);
+ rgfeChecksums.setPropertyChangeListener(this);
+ rgfeChecksums.load();
+
+ compressContainer = new Composite(composite, SWT.NONE);
+ compressContainer.setLayout(new GridLayout());
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).indent(0, 20).grab(true, false).applyTo(compressContainer);
+ // available compression types
+ rgfeCompressionTypes = new RadioGroupFieldEditor(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE,
+ Messages.CreaterepoPreferencePage_compressionGroupLabel, 1, new String[][]{
+ {ICreaterepoCompressionTypes.COMPAT, ICreaterepoCompressionTypes.COMPAT},
+ {ICreaterepoCompressionTypes.XZ, ICreaterepoCompressionTypes.XZ},
+ {ICreaterepoCompressionTypes.GZ, ICreaterepoCompressionTypes.GZ},
+ {ICreaterepoCompressionTypes.BZ2, ICreaterepoCompressionTypes.BZ2}
+ }, compressContainer, true);
+ rgfeCompressionTypes.setPreferenceStore(preferenceStore);
+ rgfeCompressionTypes.setPropertyChangeListener(this);
+ rgfeCompressionTypes.load();
+
+ toggleEnabled();
+
+ return composite;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
+ */
+ @Override
+ public void performDefaults() {
+ // load the defaults UI
+ btnProjectSettings.setSelection(Activator.getDefault().getPreferenceStore()
+ .getDefaultBoolean(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED));
+ bfeIncludeChecksum.loadDefault();
+ bfeSQLDB.loadDefault();
+ bfeIgnoreSymlinks.loadDefault();
+ bfePrettyXML.loadDefault();
+ ifeSpawns.loadDefault();
+ rgfeChecksums.loadDefault();
+ bfeSameFilename.loadDefault();
+ ifeChangelogLimit.loadDefault();
+ rgfeChecksums.loadDefault();
+ rgfeCompressionTypes.loadDefault();
+
+ // set the defaults preferences
+ Activator.getDefault().getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_GENERATE_DB);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_PRETTY_XML);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_WORKERS);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHECK_TS);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_CHECKSUM);
+ getPreferenceStore().setToDefault(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE);
+
+ toggleEnabled();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performOk()
+ */
+ @Override
+ public boolean performOk() {
+ // only save when using project specific settings
+ if (btnProjectSettings.getSelection()) {
+ Activator.getDefault().getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED,
+ true);
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_UNIQUE_MD_NAME,
+ bfeIncludeChecksum.getBooleanValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERATE_DB,
+ bfeSQLDB.getBooleanValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_IGNORE_SYMLINKS,
+ bfeIgnoreSymlinks.getBooleanValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_PRETTY_XML,
+ bfePrettyXML.getBooleanValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_WORKERS,
+ ifeSpawns.getIntValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHECK_TS,
+ bfeSameFilename.getBooleanValue());
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHANGELOG_LIMIT,
+ ifeChangelogLimit.getIntValue());
+
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_CHECKSUM,
+ getSelectedRadioButton(rgfeChecksums.getRadioBoxControl(checksumsContainer),
+ rgfeChecksums.getPreferenceName()));
+ getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_COMPRESSION_TYPE,
+ getSelectedRadioButton(rgfeCompressionTypes.getRadioBoxControl(compressContainer),
+ rgfeCompressionTypes.getPreferenceName()));
+ } else {
+ Activator.getDefault().getPreferenceStore().setValue(CreaterepoPreferenceConstants.PREF_GENERAL_ENABLED,
+ false);
+ }
+ return true;
+ }
+
+ /**
+ * Helper method to get the selected radio button from the radio button list.
+ * The default value of the preference key will be returned if nothing was found to be
+ * selected.
+ *
+ * @param radioBoxControl The radio button list.
+ * @param preferenceKey The preference key to get the default from.
+ * @return The selected radio button or the default value if nothing selected.
+ */
+ private String getSelectedRadioButton(Composite radioBoxControl, String preferenceKey) {
+ String defaultValue = getPreferenceStore().getDefaultString(preferenceKey);
+ Control[] children = radioBoxControl.getChildren();
+ if (children.length > 0) {
+ for (Control control : children) {
+ Button radioButton = (Button) control;
+ if (radioButton.getSelection()) {
+ return radioButton.getText();
+ }
+ }
+ }
+ return defaultValue;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.linuxtools.internal.rpm.createrepo.preference.CreaterepoPropertyPage#checkState()
+ */
+ @Override
+ protected void checkState() {
+ // if enable project specific settings is false, then allow performOk
+ if (!btnProjectSettings.getSelection()) {
+ setErrorMessage(null);
+ setValid(true);
+ // if the spawns are invalid, disable performOk
+ } else if (!ifeSpawns.isValid()) {
+ setErrorMessage(ifeSpawns.getErrorMessage());
+ setValid(false);
+ } else if (!ifeChangelogLimit.isValid()) {
+ setErrorMessage(ifeChangelogLimit.getErrorMessage());
+ setValid(false);
+ // otherwise, allow performOk
+ } else {
+ setErrorMessage(null);
+ setValid(true);
+ }
+ toggleEnabled();
+ }
+
+ /**
+ * If "Enable project specific settings" is true, so will
+ * the options below it. The workspace settings link will be opposite
+ * to what value the checkbox is.
+ */
+ private void toggleEnabled() {
+ boolean enabled = btnProjectSettings.getSelection();
+ lnWorkspaceSettings.setEnabled(!enabled);
+ bfeIncludeChecksum.setEnabled(enabled, generalGroup);
+ bfeSQLDB.setEnabled(enabled, generalGroup);
+ bfeIgnoreSymlinks.setEnabled(enabled, generalGroup);
+ bfePrettyXML.setEnabled(enabled, generalGroup);
+ ifeSpawns.setEnabled(enabled, generalGroup);
+ rgfeChecksums.setEnabled(enabled, generalGroup);
+ bfeSameFilename.setEnabled(enabled, updatesGroup);
+ ifeChangelogLimit.setEnabled(enabled, changelogGroup);
+ rgfeChecksums.setEnabled(enabled, checksumsContainer);
+ rgfeCompressionTypes.setEnabled(enabled, compressContainer);
+ lblCheckTs.setEnabled(enabled);
+ }
}

Back to the top