Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornhauge2011-10-14 21:38:10 +0000
committernhauge2011-10-14 21:38:10 +0000
commit2282cc3d83e3ad80c4820c1d24c9d22ca55fbffc (patch)
tree91cb9b9d0d1c276e0469c99868716aa3866134c2 /common/plugins/org.eclipse.jpt.common.ui
parent075a4a871e343b6abbdca2ec574b6dccaa5f6fc8 (diff)
downloadwebtools.dali-2282cc3d83e3ad80c4820c1d24c9d22ca55fbffc.tar.gz
webtools.dali-2282cc3d83e3ad80c4820c1d24c9d22ca55fbffc.tar.xz
webtools.dali-2282cc3d83e3ad80c4820c1d24c9d22ca55fbffc.zip
[310876] [321736] - Add "do not show again" option on applicable Dali dialogs, and provide a way to clear these messages. Patch from Les.
Diffstat (limited to 'common/plugins/org.eclipse.jpt.common.ui')
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF4
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties2
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java2
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/dialogs/OptionalMessageDialog.java107
4 files changed, 115 insertions, 0 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
index f804cd4689..3e7364269e 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
+++ b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
@@ -29,6 +29,10 @@ Export-Package: org.eclipse.jpt.common.ui,
x-friends:="org.eclipse.jpt.jaxb.ui,
org.eclipse.jpt.jpa.db.ui,
org.eclipse.jpt.jpa.ui",
+ org.eclipse.jpt.common.ui.internal.dialogs;
+ x-friends:="org.eclipse.jpt.jaxb.ui,
+ org.eclipse.jpt.jpa.db.ui,
+ org.eclipse.jpt.jpa.ui",
org.eclipse.jpt.common.ui.internal.jface;
x-friends:="org.eclipse.jpt.jaxb.ui,
org.eclipse.jpt.jpa.db.ui,
diff --git a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties b/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties
index aee4769cae..dd48cc6488 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties
+++ b/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties
@@ -26,3 +26,5 @@ EnumComboViewer_default=Default ()
EnumComboViewer_defaultWithDefault=Default ({0})
NewNameStateObject_nameMustBeSpecified=A name must be specified.
NewNameStateObject_nameAlreadyExists=A query with this name already exists.
+
+OptionalMessageDialog_doNotShowWarning=Do not show this &message again
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java
index 31a1080af3..75e14336c4 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java
@@ -39,6 +39,8 @@ public class JptCommonUiMessages {
public static String EnumComboViewer_defaultWithDefault;
public static String NewNameStateObject_nameAlreadyExists;
public static String NewNameStateObject_nameMustBeSpecified;
+
+ public static String OptionalMessageDialog_doNotShowWarning;
private static final String BUNDLE_NAME = "jpt_common_ui"; //$NON-NLS-1$
private static final Class<?> BUNDLE_CLASS = JptCommonUiMessages.class;
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/dialogs/OptionalMessageDialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/dialogs/OptionalMessageDialog.java
new file mode 100644
index 0000000000..bf281fc4de
--- /dev/null
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/dialogs/OptionalMessageDialog.java
@@ -0,0 +1,107 @@
+package org.eclipse.jpt.common.ui.internal.dialogs;
+
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * A <code>OptionalMessageDialog</code> is a dialog that has a check box allowing the
+ * option to no longer show the dialog in the future.
+ */
+public abstract class OptionalMessageDialog extends MessageDialog {
+
+ private static final String CHECKBOX_TEXT = JptCommonUiMessages.OptionalMessageDialog_doNotShowWarning;
+
+ // Dialog store id constants
+ private static final String STORE_ID = "OptionalMessageDialog.hide."; //$NON-NLS-1$
+
+ public static final int NOT_SHOWN = IDialogConstants.CLIENT_ID + 1;
+
+ private final String id;
+
+ private final String checkBoxText;
+
+ /**
+ * Creates a dialog with the given parent.
+ *
+ * @param parentShell
+ * object that returns the current parent shell
+ */
+ public OptionalMessageDialog(String id, Shell parentShell, String dialogTitle, String dialogMessage, int dialogType, String[] buttonLabels, int defaultButtonIndex) {
+ this(id, parentShell, dialogTitle, dialogMessage, dialogType, buttonLabels, defaultButtonIndex, CHECKBOX_TEXT);
+ }
+
+ /**
+ * Creates a dialog with the given parent and a checkbox with the labeled with the text in <code>checkBoxText</code>
+ *
+ * @param parentShell
+ * object that returns the current parent shell
+ */
+ public OptionalMessageDialog(String id, Shell parentShell, String dialogTitle, String dialogMessage, int dialogType, String[] buttonLabels, int defaultButtonIndex, String checkBoxText) {
+ super(parentShell, dialogTitle, null, dialogMessage, dialogType, buttonLabels, defaultButtonIndex);
+ this.id = id;
+ this.checkBoxText = checkBoxText;
+ }
+
+ @Override
+ protected Control createCustomArea(Composite parent) {
+ final Button checkbox = new Button(parent, SWT.CHECK);
+ checkbox.setText(this.checkBoxText);
+ checkbox.setSelection(false);
+ checkbox.setLayoutData(new GridData(GridData.FILL_BOTH));
+ checkbox.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ setDialogEnabled(id, !((Button)e.widget).getSelection());
+ }
+ });
+ return checkbox;
+ }
+
+ /**
+ * Returns this dialog settings
+ *
+ * @return the settings to be used
+ */
+ private static IDialogSettings getDialogSettings() {
+ IDialogSettings settings= JavaPlugin.getDefault().getDialogSettings();
+ settings= settings.getSection(STORE_ID);
+ if (settings == null)
+ settings= JavaPlugin.getDefault().getDialogSettings().addNewSection(STORE_ID);
+ return settings;
+ }
+
+ /**
+ * Answers whether the optional dialog is enabled and should be shown.
+ */
+ public static boolean isDialogEnabled(String key) {
+ IDialogSettings settings= getDialogSettings();
+ return !settings.getBoolean(key);
+ }
+
+ /**
+ * Sets whether the optional dialog is enabled and should be shown.
+ */
+ public static void setDialogEnabled(String key, boolean isEnabled) {
+ IDialogSettings settings= getDialogSettings();
+ settings.put(key, !isEnabled);
+ }
+
+ /**
+ * Clears all remembered information about hidden dialogs
+ */
+ public static void clearAllRememberedStates() {
+ IDialogSettings settings= JavaPlugin.getDefault().getDialogSettings();
+ settings.addNewSection(STORE_ID);
+ }
+}

Back to the top