Bug 73140 Refresh Branches dialog doesn't resize tree vertically
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/DateTagDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/DateTagDialog.java
index e301dae..d7204ad 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/DateTagDialog.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/DateTagDialog.java
@@ -44,7 +44,7 @@
}
public void createArea(Composite parent) {
- Composite composite = createComposite(parent, 4);
+ Composite composite = createComposite(parent, 4, false);
initializeDialogUnits(composite);
createLabel(composite, Policy.bind("DateTagDialog.0"), 1); //$NON-NLS-1$
fromMonthCombo = new Combo(composite, SWT.READ_ONLY);
@@ -119,7 +119,7 @@
* @see org.eclipse.team.internal.ui.dialogs.DialogArea#createArea(org.eclipse.swt.widgets.Composite)
*/
public void createArea(Composite parent) {
- Composite composite = createComposite(parent, 2);
+ Composite composite = createComposite(parent, 2, false);
initializeDialogUnits(composite);
includeTime = createCheckbox(composite, Policy.bind("DateTagDialog.1"), 2); //$NON-NLS-1$
createLabel(composite, Policy.bind("DateTagDialog.2"), 1); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java
index 9f5ce08..360efd7 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ListSelectionArea.java
@@ -10,12 +10,20 @@
*******************************************************************************/
package org.eclipse.team.internal.ccvs.ui;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -38,10 +46,6 @@
private Object[] previousCheckedElements;
- // sizing constants
- private final static int SIZING_SELECTION_WIDGET_HEIGHT = 250;
- private final static int SIZING_SELECTION_WIDGET_WIDTH = 300;
-
public static final String LIST_SELECTION = "ListSelection"; //$NON-NLS-1$
/**
@@ -67,17 +71,20 @@
* @see org.eclipse.team.internal.ccvs.ui.DialogArea#createArea(org.eclipse.swt.widgets.Composite)
*/
public void createArea(Composite parent) {
- Dialog.applyDialogFont(parent);
- Composite composite = createComposite(parent, 1);
+
+ Dialog.applyDialogFont(parent);
+
+ final Composite composite = createComposite(parent, 1, true);
+
initializeDialogUnits(composite);
if (message != null)
createWrappingLabel(composite, message, 1);
listViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
- data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
+ GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
+ data.heightHint = 0; // It will expand to the size of the wizard page!
+ data.widthHint = 0;
listViewer.getTable().setLayoutData(data);
listViewer.setLabelProvider(labelProvider);
@@ -124,12 +131,8 @@
*/
private void addSelectionButtons(Composite composite) {
Composite buttonComposite = new Composite(composite, SWT.RIGHT);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- buttonComposite.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
- data.grabExcessHorizontalSpace = true;
- composite.setData(data);
+ buttonComposite.setLayout(new GridLayout(2, false));
+ buttonComposite.setData(new GridData(SWT.END, SWT.BEGINNING, true, false));
Button selectButton = createButton(buttonComposite, Policy.bind("ListSelectionArea.selectAll"), GridData.HORIZONTAL_ALIGN_FILL); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java
index bc15b2e..f4ac262 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/WorkingSetSelectionArea.java
@@ -95,10 +95,9 @@
*/
public void createArea(Composite parent) {
Dialog.applyDialogFont(parent);
- Composite composite = createComposite(parent, 2);
+ final Composite composite = createComposite(parent, 2, false);
initializeDialogUnits(composite);
- GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- composite.setLayoutData(data);
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.numColumns = 2;
@@ -122,8 +121,8 @@
// Create the combo/button which allows working set selection
mruList = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
- data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- data.horizontalIndent=15;
+ GridData data = new GridData(SWT.FILL, SWT.CENTER, true, true);
+ data.horizontalIndent= 15;
mruList.setLayoutData(data);
selectButton = createButton(composite, Policy.bind("WorkingSetSelectionArea.workingSetOther"), GridData.HORIZONTAL_ALIGN_FILL); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java
index 107a19e..21197ff 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/GenerateDiffFileAction.java
@@ -23,6 +23,10 @@
* by a create patch command in the compare viewer.
*/
public class GenerateDiffFileAction extends WorkspaceAction {
+
+ // The initial size of this wizard.
+ private final static int INITIAL_WIDTH = 300;
+ private final static int INITIAL_HEIGHT = 350;
/** (Non-javadoc)
* Method declared on IActionDelegate.
@@ -33,7 +37,7 @@
final GenerateDiffFileWizard wizard = new GenerateDiffFileWizard(resources[0]);
wizard.setWindowTitle(title);
WizardDialog dialog = new WizardDialog(getShell(), wizard);
- dialog.setMinimumPageSize(350, 250);
+ dialog.setMinimumPageSize(INITIAL_WIDTH, INITIAL_HEIGHT);
dialog.open();
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java
index 45829c5..0533790 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectSelectionPage.java
@@ -18,6 +18,8 @@
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
@@ -38,7 +40,7 @@
* refreshed.
*/
public class RefreshRemoteProjectSelectionPage extends CVSWizardPage {
-
+
private Dialog parentDialog;
private ICVSRemoteResource[] rootFolders;
private ListSelectionArea listArea;
@@ -94,8 +96,12 @@
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
- Composite composite = createComposite(parent, 1);
+
+ final Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(1, false));
+
setControl(composite);
+
// set F1 help
WorkbenchHelp.setHelp(composite, IHelpContextIds.REFRESH_REMOTE_PROJECT_SELECTION_PAGE);
@@ -105,6 +111,7 @@
new WorkbenchLabelProvider(),
Policy.bind("RefreshRemoteProjectSelectionPage.selectRemoteProjects")); //$NON-NLS-1$
listArea.createArea(composite);
+
listArea.addPropertyChangeListener(new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
updateEnablement();
@@ -151,7 +158,6 @@
ICVSRemoteResource resource = resources[i];
listArea.getViewer().setChecked(resource, true);
}
-
}
}
@@ -168,5 +174,4 @@
Object[] checked = listArea.getViewer().getCheckedElements();
return (ICVSRemoteResource[]) Arrays.asList(checked).toArray(new ICVSRemoteResource[checked.length]);
}
-
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
index 27fa4ca..0fa12b6 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
@@ -32,11 +32,17 @@
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
import org.eclipse.team.internal.ccvs.ui.Policy;
+
+
/**
* Wizard for refreshing the tags for a CVS repository location
*/
public class RefreshRemoteProjectWizard extends Wizard {
-
+
+ // The initial size of this wizard.
+ private final static int INITIAL_WIDTH = 300;
+ private final static int INITIAL_HEIGHT = 350;
+
private Dialog parentDialog;
private ICVSRepositoryLocation root;
private ICVSRemoteResource[] rootFolders;
@@ -64,6 +70,11 @@
}
RefreshRemoteProjectWizard wizard = new RefreshRemoteProjectWizard(root, rootFolders[0]);
WizardDialog dialog = new WizardDialog(shell, wizard);
+ /**
+ * This is the only place where a size hint > 0 is required. The wizard
+ * page should in general have hints of 0 (and grab excessive space).
+ */
+ dialog.setMinimumPageSize(INITIAL_WIDTH, INITIAL_HEIGHT);
wizard.setParentDialog(dialog);
return (dialog.open() == Window.OK);
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java
index 54e0afb..871c96a 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CVSWizardPage.java
@@ -49,6 +49,7 @@
* for widget creation.
*/
public abstract class CVSWizardPage extends WizardPage {
+
protected static final int LABEL_WIDTH_HINT = 400;
protected static final int LABEL_INDENT_WIDTH = 32;
protected static final int LIST_HEIGHT_HINT = 100;
@@ -120,18 +121,9 @@
* @return the newly-created coposite
*/
protected Composite createComposite(Composite parent, int numColumns) {
- Composite composite = new Composite(parent, SWT.NULL);
-
- // GridLayout
- GridLayout layout = new GridLayout();
- layout.numColumns = numColumns;
- composite.setLayout(layout);
-
- // GridData
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- composite.setLayoutData(data);
+ final Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout(numColumns, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
return composite;
}
/**
@@ -181,11 +173,8 @@
protected Label createWrappingLabel(Composite parent, String text, int indent, int horizontalSpan) {
Label label = new Label(parent, SWT.LEFT | SWT.WRAP);
label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = horizontalSpan;
- data.horizontalAlignment = GridData.FILL;
+ GridData data = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
data.horizontalIndent = indent;
- data.grabExcessHorizontalSpace = true;
data.widthHint = LABEL_WIDTH_HINT;
label.setLayoutData(data);
return label;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java
index 02e7ab9..c87db76 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/GenerateDiffFileWizard.java
@@ -75,12 +75,6 @@
private class LocationPage extends WizardPage {
/**
- * Sizing constants.
- */
- private static final int SIZING_SELECTION_PANE_HEIGHT = 125;
- private static final int SIZING_SELECTION_PANE_WIDTH = 200;
-
- /**
* The possible locations to save a patch.
*/
public final static int CLIPBOARD = 1;
@@ -240,9 +234,7 @@
public void createControl(Composite parent) {
final Composite composite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout();
- composite.setLayout(layout);
- composite.setLayoutData(new GridData());
+ composite.setLayout(new GridLayout());
setControl(composite);
initializeDialogUnits(composite);
@@ -281,8 +273,8 @@
wsTreeViewer = new TreeViewer(composite, SWT.BORDER);
final GridData gd= new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.widthHint = SIZING_SELECTION_PANE_WIDTH;
- gd.heightHint = SIZING_SELECTION_PANE_HEIGHT;
+ gd.widthHint= 0;
+ gd.heightHint= 0;
wsTreeViewer.getTree().setLayoutData(gd);
final ContainerContentProvider cp = new ContainerContentProvider();
@@ -291,13 +283,14 @@
wsTreeViewer.setLabelProvider(new WorkbenchLabelProvider());
wsTreeViewer.setInput(ResourcesPlugin.getWorkspace());
- final Composite group = new Composite(composite,SWT.NONE);
+ final Composite group = new Composite(composite, SWT.NONE);
final GridLayout layout = new GridLayout(2, false);
layout.marginWidth = 0;
group.setLayout(layout);
- group.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
final Label label = new Label(group, SWT.NONE);
+ label.setLayoutData(new GridData());
label.setText(Policy.bind("Fi&le_name__9")); //$NON-NLS-1$
wsFilenameText = new Text(group,SWT.BORDER);
@@ -310,6 +303,7 @@
private void setupFilesystemControls(final Composite composite) {
GridLayout layout;
fsRadio= new Button(composite, SWT.RADIO);
+
fsRadio.setText(Policy.bind("Save_In_File_System_3")); //$NON-NLS-1$
final Composite nameGroup = new Composite(composite,SWT.NONE);
@@ -317,7 +311,7 @@
layout.numColumns = 2;
layout.marginWidth = 0;
nameGroup.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
+ final GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
nameGroup.setLayoutData(data);
fsPathText= new Text(nameGroup, SWT.BORDER);
@@ -326,10 +320,6 @@
fsBrowseButton = new Button(nameGroup, SWT.NULL);
fsBrowseButton.setText(Policy.bind("Browse..._4")); //$NON-NLS-1$
- data = new GridData(GridData.HORIZONTAL_ALIGN_END);
- data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- fsBrowseButton.setLayoutData(data);
}
/**
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/DialogArea.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/DialogArea.java
index d21b957..536f8cc 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/DialogArea.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/DialogArea.java
@@ -29,8 +29,6 @@
*/
public abstract class DialogArea {
- protected static final int LABEL_WIDTH_HINT = 400;
-
protected Dialog parentDialog;
protected FontMetrics fontMetrics;
protected IDialogSettings settings;
@@ -149,7 +147,7 @@
data.horizontalSpan = horizontalSpan;
data.horizontalAlignment = GridData.FILL;
data.grabExcessHorizontalSpace = true;
- data.widthHint = LABEL_WIDTH_HINT;
+ data.widthHint= 0;
label.setLayoutData(data);
return label;
}
@@ -164,26 +162,19 @@
}
/**
* Creates composite control and sets the default layout data.
- *
* @param parent the parent of the new composite
* @param numColumns the number of columns for the new composite
+ * @param grab specify whether the composite should grab for excessive space in both directions.
* @return the newly-created coposite
*/
- protected Composite createComposite(Composite parent, int numColumns) {
- Composite composite = new Composite(parent, SWT.NULL);
- Font font = parent.getFont();
+ protected Composite createComposite(Composite parent, int numColumns, boolean grab) {
+ final Composite composite = new Composite(parent, SWT.NULL);
+ final Font font = parent.getFont();
composite.setFont(font);
- // GridLayout
- GridLayout layout = new GridLayout();
- layout.numColumns = numColumns;
- composite.setLayout(layout);
-
- // GridData
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- composite.setLayoutData(data);
+ composite.setLayout(new GridLayout(numColumns, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, grab, grab));
+
return composite;
}