added a screen resolution dependant JFileChooser

This commit is contained in:
hneemann 2017-05-11 21:38:13 +02:00
parent 1bbb30b44f
commit 8957a87bcf
6 changed files with 52 additions and 12 deletions

View File

@ -906,7 +906,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
if (filename != null)
folder = filename.getParentFile();
JFileChooser fileChooser = new JFileChooser(folder);
JFileChooser fileChooser = new MyFileChooser(folder);
fileChooser.setFileFilter(new FileNameExtensionFilter("Circuit", "dig"));
return fileChooser;
}
@ -1034,7 +1034,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
if (filename != null)
fc.setSelectedFile(SaveAsHelper.checkSuffix(filename, suffix));

View File

@ -15,6 +15,7 @@ import de.neemann.digital.lang.Lang;
import de.neemann.digital.testing.TestData;
import de.neemann.gui.ErrorMessage;
import de.neemann.gui.LineBreaker;
import de.neemann.gui.MyFileChooser;
import de.neemann.gui.ToolTipAction;
import de.neemann.gui.language.Bundle;
import de.neemann.gui.language.Language;
@ -267,7 +268,7 @@ public final class EditorFactory {
JButton button = new JButton(new AbstractAction("...") {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser(FileEditor.this.getValue());
JFileChooser fc = new MyFileChooser(FileEditor.this.getValue());
if (fc.showOpenDialog(panel) == JFileChooser.APPROVE_OPTION)
textField.setText(fc.getSelectedFile().getPath());
}
@ -323,7 +324,7 @@ public final class EditorFactory {
panel.add(new ToolTipAction(Lang.get("btn_load")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
fc.setSelectedFile(attr.getFile(ROM.LAST_DATA_FILE_KEY));
fc.setFileFilter(new FileNameExtensionFilter("hex", "hex"));
if (fc.showOpenDialog(panel) == JFileChooser.APPROVE_OPTION) {
@ -353,7 +354,7 @@ public final class EditorFactory {
panel.add(new ToolTipAction(Lang.get("btn_save")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
fc.setSelectedFile(attr.getFile(ROM.LAST_DATA_FILE_KEY));
fc.setFileFilter(new FileNameExtensionFilter("hex", "hex"));
new SaveAsHelper(panel, fc, "hex").checkOverwrite(

View File

@ -8,6 +8,7 @@ import de.neemann.digital.gui.SaveAsHelper;
import de.neemann.digital.gui.components.OrderMerger;
import de.neemann.digital.gui.sync.Sync;
import de.neemann.digital.lang.Lang;
import de.neemann.gui.MyFileChooser;
import de.neemann.gui.ToolTipAction;
import javax.swing.*;
@ -83,7 +84,7 @@ public class DataSetDialog extends JDialog implements ModelStateObserver {
file.add(new ToolTipAction(Lang.get("menu_saveData")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
JFileChooser fileChooser = new MyFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("Comma Separated Values", "csv"));
new SaveAsHelper(DataSetDialog.this, fileChooser, "csv")
.checkOverwrite(file -> dataSet.saveCSV(file));

View File

@ -1,6 +1,7 @@
package de.neemann.digital.gui.components.table;
import de.neemann.digital.lang.Lang;
import de.neemann.gui.Screen;
import javax.swing.*;
import java.awt.*;
@ -28,7 +29,7 @@ public class AllSolutionsDialog extends JDialog {
textPane.setFont(font);
textPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true);
textPane.setEditable(false);
textPane.setPreferredSize(new Dimension(600, 400));
textPane.setPreferredSize(Screen.getInstance().scale(new Dimension(600, 400)));
getContentPane().add(new JScrollPane(textPane));
pack();

View File

@ -38,6 +38,7 @@ import de.neemann.digital.gui.components.AttributeDialog;
import de.neemann.digital.gui.components.ElementOrderer;
import de.neemann.digital.lang.Lang;
import de.neemann.gui.ErrorMessage;
import de.neemann.gui.MyFileChooser;
import de.neemann.gui.Screen;
import de.neemann.gui.ToolTipAction;
@ -249,7 +250,7 @@ public class TableDialog extends JDialog {
fileMenu.add(new ToolTipAction(Lang.get("menu_open")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
if (TableDialog.this.filename != null)
fc.setSelectedFile(SaveAsHelper.checkSuffix(TableDialog.this.filename, "tru"));
if (fc.showOpenDialog(TableDialog.this) == JFileChooser.APPROVE_OPTION) {
@ -268,7 +269,7 @@ public class TableDialog extends JDialog {
fileMenu.add(new ToolTipAction(Lang.get("menu_save")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
if (TableDialog.this.filename != null)
fc.setSelectedFile(SaveAsHelper.checkSuffix(TableDialog.this.filename, "tru"));
@ -299,7 +300,7 @@ public class TableDialog extends JDialog {
fileMenu.add(new ToolTipAction(Lang.get("menu_table_exportHex")) {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
if (TableDialog.this.filename != null)
fc.setSelectedFile(SaveAsHelper.checkSuffix(TableDialog.this.filename, "hex"));
new SaveAsHelper(TableDialog.this, fc, "hex")
@ -504,7 +505,7 @@ public class TableDialog extends JDialog {
else
filename = SaveAsHelper.checkSuffix(filename, suffix);
JFileChooser fileChooser = new JFileChooser();
JFileChooser fileChooser = new MyFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("JEDEC", suffix));
fileChooser.setSelectedFile(filename);
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
@ -544,7 +545,7 @@ public class TableDialog extends JDialog {
try {
File cuplPath;
if (filename == null) {
JFileChooser fc = new JFileChooser();
JFileChooser fc = new MyFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setDialogTitle(Lang.get("msg_selectAnEmptyFolder"));
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {

View File

@ -0,0 +1,36 @@
package de.neemann.gui;
import javax.swing.*;
import java.awt.*;
import java.io.File;
/**
* File chooser that fixes the window size issues.
* Created by hneemann on 11.05.17.
*/
public class MyFileChooser extends JFileChooser {
/**
* Create a new instance
*/
public MyFileChooser() {
super();
matchScreenSize();
}
/**
* Create a new instance
*
* @param folder the folder to use
*/
public MyFileChooser(File folder) {
super(folder);
matchScreenSize();
}
private void matchScreenSize() {
if (Screen.getInstance().getScaling() != 1)
setPreferredSize(Screen.getInstance().scale(new Dimension(505, 326)));
}
}