提交 b6eeef3e 编写于 作者: S Serge Rider

#4090 PG restore - allow directory selection

上级 dd5e6437
......@@ -50,12 +50,7 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
{
Composite composite = UIUtils.createPlaceholder(parent, 1);
Listener updateListener = new Listener() {
@Override
public void handleEvent(Event event) {
updateState();
}
};
Listener updateListener = event -> updateState();
Group formatGroup = UIUtils.createControlGroup(composite, PostgreMessages.wizard_restore_page_setting_label_setting, 2, GridData.FILL_HORIZONTAL, 0);
formatCombo = UIUtils.createLabelCombo(formatGroup, PostgreMessages.wizard_restore_page_setting_label_format, SWT.DROP_DOWN | SWT.READ_ONLY);
......@@ -68,7 +63,9 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
cleanFirstButton = UIUtils.createCheckbox(formatGroup,
PostgreMessages.wizard_restore_page_setting_btn_clean_first,
false
null,
false,
2
);
cleanFirstButton.addListener(SWT.Selection, updateListener);
......@@ -92,6 +89,8 @@ class PostgreRestoreWizardPageSettings extends PostgreWizardPageSettings<Postgre
wizard.inputFile = inputFileText.getText();
wizard.cleanFirst = cleanFirstButton.getSelection();
inputFileText.setOpenFolder(wizard.format == PostgreBackupRestoreWizard.ExportFormat.DIRECTORY);
getContainer().updateButtons();
}
......
......@@ -18,6 +18,7 @@ package org.jkiss.dbeaver.ui.controls;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.FileDialog;
import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
......@@ -28,17 +29,32 @@ public class TextWithOpenFile extends TextWithOpen
{
private String title;
private String[] filterExt;
private boolean openFolder = false;
public TextWithOpenFile(Composite parent, String title, String[] filterExt) {
super(parent);
this.title = title;
this.filterExt = filterExt;
}
public void setOpenFolder(boolean openFolder) {
this.openFolder = openFolder;
}
protected void openBrowser() {
FileDialog fd = new FileDialog(getShell(), SWT.OPEN | SWT.SINGLE);
fd.setText(title);
fd.setFilterExtensions(filterExt);
String selected = DialogUtils.openFileDialog(fd);
String selected;
if (openFolder) {
DirectoryDialog fd = new DirectoryDialog(getShell(), SWT.OPEN | SWT.SINGLE);
if (title != null) {
fd.setText(title);
}
selected = fd.open();
} else {
FileDialog fd = new FileDialog(getShell(), SWT.OPEN | SWT.SINGLE);
fd.setText(title);
fd.setFilterExtensions(filterExt);
selected = DialogUtils.openFileDialog(fd);
}
if (selected != null) {
setText(selected);
}
......
......@@ -16,32 +16,16 @@
*/
package org.jkiss.dbeaver.ui.controls;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
/**
* TextWithOpenFolder
*/
public class TextWithOpenFolder extends TextWithOpen
public class TextWithOpenFolder extends TextWithOpenFile
{
private String title;
public TextWithOpenFolder(Composite parent, String title) {
super(parent);
this.title = title;
}
protected void openBrowser() {
DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.NONE);
if (title != null) {
dialog.setText(title);
}
dialog.setFilterPath(getText());
String selected = dialog.open();
if (selected != null) {
setText(selected);
}
super(parent, title, new String[] { "*" });
setOpenFolder(true);
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册