Bug 553663 - Icon selection dialog of the e4 application model editor
resizes badly

Set a minimum shell size in SaveDialogBoundsSettingsDialog and enable
dialog resizing. Set a separate minimum size for
FilteredContributionDialog(s).
Let FindParentReferenceElementDialog inherit from
SaveDialogBoundsSettingsDialog to make look and feel of the e4 tools
dialogs consistent

Change-Id: Ic38eafe46f8db6e2b8e349468478470a4cad57cd
Signed-off-by: Benedikt Kuntz <benedikt.kuntz@airbus.com>
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractCommandSelectionDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractCommandSelectionDialog.java
index 2efc12d..f7e17c9 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractCommandSelectionDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractCommandSelectionDialog.java
@@ -128,11 +128,6 @@
 		}
 	}
 
-	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
 	protected abstract Command createStoreCommand(EditingDomain editingDomain, MCommand command);
 
 	private static class LabelProviderImpl extends StyledCellLabelProvider implements ILabelProvider {
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIconDialogWithHardcodedScope.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIconDialogWithHardcodedScope.java
index 532d740..c38e5e0 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIconDialogWithHardcodedScope.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIconDialogWithHardcodedScope.java
@@ -228,11 +228,6 @@
 	}
 
 	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
-	@Override
 	protected void okPressed() {
 		value = null;
 		IStructuredSelection s = (IStructuredSelection) viewer.getSelection();
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIdDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIdDialog.java
index 4e2fc39..9b768d0 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIdDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/AbstractIdDialog.java
@@ -83,11 +83,6 @@
 
 	protected abstract String getListItemInformation(ElementClass listItem);
 
-	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
 	protected IBaseLabelProvider getLabelProvider() {
 		return new DelegatingStyledCellLabelProvider(new DefaultStyledLabelProvider());
 	}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FeatureSelectionDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FeatureSelectionDialog.java
index 61f16c2..04d6f8c 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FeatureSelectionDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FeatureSelectionDialog.java
@@ -76,11 +76,6 @@
 	}
 
 	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
-	@Override
 	protected Control createDialogArea(Composite parent) {
 		getShell().setText(Messages.FeatureSelectionDialog_ShellTitle);
 		setTitle(Messages.FeatureSelectionDialog_DialogTitle);
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FilteredContributionDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FilteredContributionDialog.java
index 665b349..d884ba6 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FilteredContributionDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FilteredContributionDialog.java
@@ -100,6 +100,9 @@
 public abstract class FilteredContributionDialog extends SaveDialogBoundsSettingsDialog {
 
 	private static final int MAX_RESULTS = 500;
+	private static final int DIALOG_MINIMUM_WIDTH = 600;
+	private static final int DIALOG_MINIMUM_HEIGHT = 350;
+
 	private Image contributionTypeImage;
 	private TableViewer viewer;
 	private static final String PREF_SEARCHSCOPE = "searchScope"; //$NON-NLS-1$
@@ -248,6 +251,12 @@
 	}
 
 	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setMinimumSize(DIALOG_MINIMUM_WIDTH, DIALOG_MINIMUM_HEIGHT);
+	}
+
+	@Override
 	protected void createButtonsForButtonBar(Composite parent) {
 
 		// Rename the default OK text for the button
@@ -620,11 +629,6 @@
 		updateUiState();
 	}
 
-	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
 	public List<String> getFilterPackages() {
 		return filterPackages;
 	}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FindParentReferenceElementDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FindParentReferenceElementDialog.java
index ab8aeb9..78a8dfc 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FindParentReferenceElementDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/FindParentReferenceElementDialog.java
@@ -38,7 +38,6 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.edit.command.SetCommand;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
 import org.eclipse.jface.fieldassist.AutoCompleteField;
 import org.eclipse.jface.fieldassist.ComboContentAdapter;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -74,7 +73,7 @@
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
 
-public class FindParentReferenceElementDialog extends TitleAreaDialog {
+public class FindParentReferenceElementDialog extends SaveDialogBoundsSettingsDialog {
 
 	private static final String XPATH_URI = "xpath:/"; //$NON-NLS-1$
 
@@ -113,11 +112,6 @@
 	}
 
 	@Override
-	protected boolean isResizable() {
-		return true;
-	}
-
-	@Override
 	protected Control createDialogArea(Composite parent) {
 		final Composite comp = (Composite) super.createDialogArea(parent);
 
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/SaveDialogBoundsSettingsDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/SaveDialogBoundsSettingsDialog.java
index e48e845..39e29cb 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/SaveDialogBoundsSettingsDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/SaveDialogBoundsSettingsDialog.java
@@ -14,9 +14,8 @@
  *******************************************************************************/
 package org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs;
 
-import org.eclipse.e4.tools.emf.ui.common.Plugin;
-
 import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.e4.tools.emf.ui.common.Plugin;
 import org.eclipse.jface.dialogs.DialogSettings;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
@@ -30,6 +29,8 @@
 	private static final String DIALOG_ORIGIN_Y = "DIALOG_Y_ORIGIN"; //$NON-NLS-1$
 	private static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
 	private static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
+	private static final int DIALOG_MINIMUM_HEIGHT = 300;
+	private static final int DIALOG_MINIMUM_WIDTH = 400;
 
 	private IDialogSettings dialogSettings = new DialogSettings(Plugin.ID);
 
@@ -57,6 +58,17 @@
 	}
 
 	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setMinimumSize(DIALOG_MINIMUM_WIDTH, DIALOG_MINIMUM_HEIGHT);
+	}
+
+	@Override
+	protected boolean isResizable() {
+		return true;
+	}
+
+	@Override
 	public boolean close() {
 		boolean returnValue = super.close();
 		saveDialogSettings();