From 414030cbd205c7f659b068f7e715ddc34c73ecb7 Mon Sep 17 00:00:00 2001 From: eyck Date: Mon, 30 Mar 2020 11:31:51 +0200 Subject: [PATCH] fix behavior of FileBrowserDialog --- .../e4/application/handlers/OpenHandler.java | 2 +- .../e4/application/messages.properties | 2 +- .../application/parts/FileBrowserDialog.java | 25 +++++++++---------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java index fdc91bd..9d6f034 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java @@ -31,7 +31,7 @@ public class OpenHandler { @Execute public void execute(Shell shell, MApplication app, EModelService modelService, EPartService partService){ FileBrowserDialog dlg = new FileBrowserDialog(shell); - dlg.create(); + //dlg.create(); dlg.setFilterExtensions (new String []{Messages.OpenHandler_0, "*"}); if (dlg.open() != Window.OK) return; List files = dlg.getSelectedFiles(); diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties index 654ac95..bde69ab 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties @@ -45,7 +45,7 @@ WaveformViewer_18=Would you like to reload the database? WaveformViewer_19=vcd WaveformViewer_20=txdb WaveformViewer_21=txlog -WaveformViewer_22=txldb +WaveformViewer_22=fbrdb WaveformViewer_37=Database open WaveformViewer_38=Would you like to open the adjacent database WaveformViewer_39=\ as well? diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/FileBrowserDialog.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/FileBrowserDialog.java index 7ba9924..49ee835 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/FileBrowserDialog.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/FileBrowserDialog.java @@ -92,8 +92,11 @@ public class FileBrowserDialog extends TrayDialog { } else { globber= new FileGlobber(filterStrings[0]); imageGlobber = new FileGlobber(filterStrings[0]); + if(filterCombo!=null) { filterCombo.setItems(filterStrings); filterCombo.select(0); + filterCombo.computeSize(SWT.DEFAULT, SWT.DEFAULT); + } } this.filterStrings=filterStrings; } @@ -102,20 +105,14 @@ public class FileBrowserDialog extends TrayDialog { return selectedFiles; } - @Override - public int open() { - dirTreeViewer.setInput("root"); - dirTreeViewer.refresh(); - setDirSelection(currentDirFile.getAbsoluteFile().getParentFile()); - getButton(IDialogConstants.OK_ID).setEnabled(!tableViewer.getSelection().isEmpty()); - return super.open(); - } - @Override protected Control createContents(Composite parent) { Control ret = super.createContents(parent); + setDirSelection(currentDirFile.getAbsoluteFile().getParentFile()); + getButton(IDialogConstants.OK_ID).setEnabled(!tableViewer.getSelection().isEmpty()); if(parent instanceof Shell) { - ((Shell)parent).setSize(800, 400); + Point size = ((Shell)parent).computeSize(SWT.DEFAULT, SWT.DEFAULT); + ((Shell)parent).setSize(size.x, 400); ((Shell)parent).setText("Select database"); } return ret; @@ -138,7 +135,8 @@ public class FileBrowserDialog extends TrayDialog { tableViewer.setInput(selectedDir.listFiles()); } }); - + dirTreeViewer.setInput("root"); + final Composite tableViewerParent = new Composite(sashForm, SWT.NONE); GridLayout gridLayout = new GridLayout(1, true); gridLayout.horizontalSpacing=0; @@ -252,6 +250,7 @@ public class FileBrowserDialog extends TrayDialog { fileNameEntry = new Text(bottomBar, SWT.BORDER); fileNameEntry.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); fileNameEntry.setEditable(false); //TODO: temporary disabled + fileNameEntry.setEnabled(false); filterCombo = new Combo(bottomBar, SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY); filterCombo.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); @@ -264,7 +263,7 @@ public class FileBrowserDialog extends TrayDialog { tableViewer.setInput(selectedDir.listFiles()); } }); - sashForm.setWeights(new int[]{2, 3}); + sashForm.setWeights(new int[]{3, 3}); return area; } @@ -285,7 +284,7 @@ public class FileBrowserDialog extends TrayDialog { private void setDirSelection(File f) { ArrayList fileTree = getParentDirList(f); TreeSelection selection = new TreeSelection(new TreePath(fileTree.toArray())); - dirTreeViewer.setSelection(selection); + dirTreeViewer.setSelection(selection, true); } private ArrayList getParentDirList(File actual){