### Eclipse Workspace Patch 1.0 #P org.eclipse.compare Index: compare/org/eclipse/compare/internal/CompareMessages.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java,v retrieving revision 1.17.4.4 diff -u -r1.17.4.4 CompareMessages.java --- compare/org/eclipse/compare/internal/CompareMessages.java 1 Aug 2008 13:08:19 -0000 1.17.4.4 +++ compare/org/eclipse/compare/internal/CompareMessages.java 11 Aug 2008 13:20:26 -0000 @@ -120,6 +120,7 @@ public static String CompareWithOther_clear; public static String CompareWithOther_warning_two_way; public static String CompareWithOther_info; + public static String CompareWithOther_openResourceButton; static { NLS.initializeMessages(BUNDLE_NAME, CompareMessages.class); Index: compare/org/eclipse/compare/internal/CompareWithOtherResourceDialog.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Attic/CompareWithOtherResourceDialog.java,v retrieving revision 1.1.2.4 diff -u -r1.1.2.4 CompareWithOtherResourceDialog.java --- compare/org/eclipse/compare/internal/CompareWithOtherResourceDialog.java 1 Aug 2008 13:08:19 -0000 1.1.2.4 +++ compare/org/eclipse/compare/internal/CompareWithOtherResourceDialog.java 11 Aug 2008 13:20:26 -0000 @@ -45,6 +45,7 @@ import org.eclipse.ui.forms.events.ExpansionAdapter; import org.eclipse.ui.forms.events.ExpansionEvent; import org.eclipse.ui.forms.widgets.ExpandableComposite; +import org.eclipse.ui.internal.ide.dialogs.OpenResourceDialog; import org.eclipse.ui.part.ResourceTransfer; /** @@ -57,6 +58,7 @@ private int CLEAR_RETURN_CODE = 150; // any number != 0 private int MIN_WIDTH = 300; private int MIN_HEIGHT = 175; + private int OPEN_RESOURCE_BUTTON_RETURN_CODE = 152; // any number != 0 private class FileTextDragListener implements DragSourceListener { @@ -161,6 +163,7 @@ protected Group group; protected Text fileText; private IResource resource; + private Button openResourceButton; public InternalSection(Composite parent) { createContents(parent); @@ -174,6 +177,7 @@ createGroup(parent); createFileLabel(); createFileCombo(); + createOpenResourceButton(group); initDrag(); initDrop(); } @@ -258,6 +262,36 @@ final Label fileLabel = new Label(group, SWT.NONE); fileLabel.setText(CompareMessages.CompareWithOther_fileLabel); } + + protected void createOpenResourceButton(Composite parent) { + openResourceButton = createButton(parent, + OPEN_RESOURCE_BUTTON_RETURN_CODE, CompareMessages.CompareWithOther_openResourceButton, false); + openResourceButton.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + widgetSelected(e); + } + public void widgetSelected(SelectionEvent e) { + setResource(getResourceFromDialog()); + } + }); + } + + private IResource getResourceFromDialog() { + IResource r = null; + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + OpenResourceDialog dialog = new OpenResourceDialog(getShell(), + root, IResource.FILE); + int returnCode = dialog.open(); + + if (returnCode != IDialogConstants.OK_ID) + return null; + + Object[] result = dialog.getResult(); + if (result.length > 0) + r = (IResource) result[0]; + + return r; + } } private class InternalGroup extends InternalSection { @@ -288,6 +322,7 @@ createGroup(parent); createFileLabel(); createFileCombo(); + createOpenResourceButton(group); createClearButton(group); initDrag(); initDrop(); Index: compare/org/eclipse/compare/internal/CompareMessages.properties =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties,v retrieving revision 1.27.4.4 diff -u -r1.27.4.4 CompareMessages.properties --- compare/org/eclipse/compare/internal/CompareMessages.properties 1 Aug 2008 13:08:19 -0000 1.27.4.4 +++ compare/org/eclipse/compare/internal/CompareMessages.properties 11 Aug 2008 13:20:26 -0000 @@ -132,3 +132,4 @@ CompareWithOther_warning_two_way=Ancestor is not a valid resource. Two-way compare will be performed. CompareWithOther_clear=Clear CompareWithOther_info=Drag files from a view or between dialog's fields. +CompareWithOther_openResourceButton=Workspace file...